inStaticContext property

bool get inStaticContext
inherited

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;
}