visitVariable method

  1. @override
Eval visitVariable(
  1. Variable expr,
  2. CallVisitorContext context
)
override

Implementation

@override
Eval visitVariable(Variable expr, CallVisitorContext context) {
  if ( context.contextVars.containsKey(expr.identifier.name)) {
    return EvalContextVar(variable: expr.identifier.name);
  }

  var property =  rootClass.getProperty(expr.identifier.name);
  return property.isField() ?
    EvalField(field: property as FieldDescriptor) :
    EvalMethod(receiver: This(), method: property as MethodDescriptor); // ?context.instance must be a call
}