promoteToClassMember method
void
promoteToClassMember()
If accessed outside of build()
, makes a variable into a class field.
Implementation
void promoteToClassMember() {
if (_visibility == NodeReferenceVisibility.classPublic) {
return;
}
final initialValue = _initialValue;
final hasInitialValue = initialValue != null && initialValue != o.NULL_EXPR;
_visibility = NodeReferenceVisibility.classPublic;
_storage!.allocate(
_name,
outputType: _type,
// All of our NodeReferences are shallowly immutable, that is, they are
// initialized lazily, but the instance does not change after that. If
// we have an initialValue (for example "Text('')"), it is effectively
// final.
modifiers: hasInitialValue
? const [o.StmtModifier.Final]
: const [o.StmtModifier.Late, o.StmtModifier.Final],
initializer: initialValue,
);
}