instance_member_access_from_factory
Instance members can't be accessed from a factory constructor.
Description
#The analyzer produces this diagnostic when a factory constructor contains
an unqualified reference to an instance member. In a generative
constructor, the instance of the class is created and initialized before
the body of the constructor is executed, so the instance can be bound to
this
and accessed just like it would be in an instance method. But, in a
factory constructor, the instance isn't created before executing the body,
so this
can't be used to reference it.
Example
#The following code produces this diagnostic because x
isn't in scope in
the factory constructor:
dart
class C {
int x;
factory C() {
return C._(x);
}
C._(this.x);
}
Common fixes
#Rewrite the code so that it doesn't reference the instance member:
dart
class C {
int x;
factory C() {
return C._(0);
}
C._(this.x);
}