isGetxControllerClass function
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);
}