lib/loxxy/back_end/resolver.rb in loxxy-0.3.03 vs lib/loxxy/back_end/resolver.rb in loxxy-0.4.00
- old
+ new
@@ -136,9 +136,14 @@
aSetExpr.value.accept(aVisitor)
# Evaluate object part
aSetExpr.object.accept(aVisitor)
end
+ def after_logical_expr(aLogicalExpr, aVisitor)
+ # Force the visit of second operand (resolver should ignore shortcuts)
+ aLogicalExpr.operands.last.accept(aVisitor)
+ end
+
# Variable expressions require their variables resolved
def before_variable_expr(aVarExpr)
var_name = aVarExpr.name
if !scopes.empty? && (scopes.last[var_name] == false)
raise Loxxy::RuntimeError, "Can't read variable #{var_name} in its own initializer"