inStaticContext property
Whether node is in a static context.
Implementation
bool get inStaticContext {
// Constructor initializers cannot reference `this`.
if (node.thisOrAncestorOfType<ConstructorInitializer>() != null) {
return true;
}
// Field initializers cannot reference `this`.
var fieldDeclaration = node.thisOrAncestorOfType<FieldDeclaration>();
if (fieldDeclaration != null) {
return fieldDeclaration.isStatic || !fieldDeclaration.fields.isLate;
}
// Static method.
var method = node.thisOrAncestorOfType<MethodDeclaration>();
return method != null && method.isStatic;
}