343536373839404142
for (Node p : parents) { Value pv = p.interp(s); properties.putAll(((RecordType) pv).properties); } } Value r = new RecordType(name.id, this, properties); s.putValue(name.id, r); return r; }
686970717273747576
// add all properties or all fields in parent properties.putAll(parentProps); } } Value r = new RecordType(name.id, this, properties); s.putValue(name.id, r); return r; }
42434445464748
public Value interp(Scope s) { Scope properties = new Scope(); for (Map.Entry<String, Node> e : map.entrySet()) { properties.putValue(e.getKey(), e.getValue().interp(s)); } return new RecordType(null, this, properties); }
52535455565758
public Value typecheck(Scope s) { Scope properties = new Scope(); for (Map.Entry<String, Node> e : map.entrySet()) { properties.putValue(e.getKey(), e.getValue().typecheck(s)); } return new RecordType(null, this, properties); }