value property
Implementation
@override
dynamic get value {
if (isExternal) {
final externalClass = interpreter.fetchExternalClass(classId!);
final externalValue = externalClass.memberGet(id!);
return externalValue;
} else {
if (!_isInitialized) {
if (ip != null) {
initialize();
} else {
throw HTError.uninitialized(id!);
}
}
return _value;
}
}
Assign a new value to this variable.
Implementation
@override
set value(dynamic value) {
if (!isMutable && _isInitialized) {
throw HTError.immutable(id!);
}
// if (interpreter.config.checkTypeAnnotationAtRuntime) {
// if (declType != null) {
// // final resolvedType =
// // declType!.isResolved ? declType : declType!.resolve(closure);
// final valueType = interpreter.typeof(value);
// if (valueType.isNotA(declType!)) {
// final err = HTError.assignType(
// id!,
// interpreter.lexicon.stringify(valueType),
// interpreter.lexicon.stringify(declType),
// );
// print(
// "hetu: (warning) - ${err.message} (at [${interpreter.currentFileName}:${interpreter.currentLine}:${interpreter.currentColumn}])");
// }
// }
// }
_value = value;
_isInitialized = true;
}