set method
Sets a property of this value.
Implementation
@override
void set(String memberName, Object? value, [InterpreterVisitor? visitor]) {
Logger.debug(
"[EnumValue.set] called for '$this.$memberName' with value: $value");
// 1. Check instance setters defined on the enum
final setter = parentEnum.setters[memberName];
if (setter != null) {
// Call the setter, binding `this`
setter.bind(this).call(visitor!, [value], {});
return;
}
// 2. Set instance field specific to this enum value
// Should only allow setting fields declared in the enum? Dart enums usually have final fields.
// For now, allow setting for flexibility, like InterpretedInstance.
_fields[memberName] = value;
}