getVariable method
Returns an ASTVariable
of name
in this context.
allowClassFields
if true allows class fields.
Implementation
FutureOr<ASTVariable?> getVariable(String name, bool allowClassFields) {
if (name == 'this') {
var obj = getClassInstance();
if (obj != null) {
return ASTRuntimeVariable(obj.type, name, obj);
}
}
var variable = _variables[name];
if (variable != null) return variable;
if (allowClassFields) {
var obj = getClassInstance();
if (obj != null) {
if (obj is ASTClassInstance) {
var fieldValue = obj.clazz
.getInstanceFieldValue(this, ASTRunStatus.dummy, obj, name);
return fieldValue.resolveMapped((v) {
if (v != null) {
return ASTRuntimeVariable(v.type, name, v);
}
return parent?.getVariable(name, allowClassFields);
});
}
}
}
return parent?.getVariable(name, allowClassFields);
}