isGetxControllerClass function

bool isGetxControllerClass(
  1. ClassDeclaration node
)

Returns true if the class declaration extends a GetX controller base class. Walks the type hierarchy when resolved, falls back to AST name check.

Implementation

bool isGetxControllerClass(ClassDeclaration node) {
  final superType = node.extendsClause?.superclass.type;
  if (superType is InterfaceType) {
    InterfaceType? current = superType;
    while (current != null) {
      final name = current.element.name;
      if (name != null && _getxBaseClasses.contains(name)) return true;
      current = current.element.supertype;
    }
  }
  // Fallback to AST name when type is unresolved.
  final superName = node.extendsClause?.superclass.name.lexeme;
  return superName != null && _getxBaseClasses.contains(superName);
}