@Override protected boolean checkLocal() { TypeNode targetType = targetExpr.getType(); if (!(targetType instanceof MapTypeNode)) { targetExpr.reportError("This argument to map range expression must be of type map<S,T>"); return false; } return true; }
@Override protected IR constructIR() { return new MapRangeExpr(targetExpr.checkIR(Expression.class), getType().getType()); }
@Override public TypeNode getType() { return SetTypeNode.getSetType(((MapTypeNode) targetExpr.getType()).valueTypeUnresolved); }