Skip to content

Commit a51dd36

Browse files
committed
Check for null in NativeMember
closes CraftTweaker/CraftTweaker#1126
1 parent 56dbe86 commit a51dd36

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

src/main/java/stanhebben/zenscript/type/natives/ZenNativeMember.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,22 @@ public InstanceGetValue(ZenPosition position, IPartialExpression value) {
8080

8181
@Override
8282
public Expression eval(IEnvironmentGlobal environment) {
83-
return new ExpressionCallVirtual(position, environment, getter, value.eval(environment));
83+
if(getter != null) {
84+
return new ExpressionCallVirtual(position, environment, getter, value.eval(environment));
85+
}
86+
environment.error(position, "No getter available");
87+
final ZenType type = getType();
88+
return new ExpressionInvalid(position, type == null ? ZenType.ANY : type);
8489
}
8590

8691
@Override
8792
public Expression assign(ZenPosition position, IEnvironmentGlobal environment, Expression other) {
88-
return new ExpressionCallVirtual(position, environment, setter, value.eval(environment), other);
93+
if(setter != null) {
94+
return new ExpressionCallVirtual(position, environment, setter, value.eval(environment), other);
95+
}
96+
97+
environment.error(position, "No setter available");
98+
return new ExpressionInvalid(position, ZenType.VOID);
8999
}
90100

91101
@Override

0 commit comments

Comments
 (0)