aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-06 17:24:13 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-06 17:24:13 +0100
commit9ed69cadcf684119fb8a1cbc843aa0b1d9c09651 (patch)
tree06894e8309657d522236333173bad7e4ad8c7c23 /src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java
parent1520bcfed66005467ef6186cee174d4da2ead324 (diff)
Only allow declared fields to be set
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java
index acb6ef7..7ff8bb1 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java
@@ -4,6 +4,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
+import org.zwobble.couscous.interpreter.NoSuchField;
import org.zwobble.couscous.values.PrimitiveValue;
public class ObjectInterpreterValue implements InterpreterValue {
@@ -35,6 +36,7 @@ public class ObjectInterpreterValue implements InterpreterValue {
}
public void setField(String fieldName, InterpreterValue value) {
- fields.put(fieldName, value);
+ type.getField(fieldName).orElseThrow(() -> new NoSuchField(fieldName));
+ fields.put(fieldName, value);
}
}