check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(DcqRegistry registry) {
registry.addClassDeclaration((node) {
if (!isHookWidgetClass(node)) return;
final body = node.body;
if (body is! BlockClassBody) return;
final finder = _HookCallFinder();
body.accept(finder);
if (!finder.found) {
reportAtToken(node.namePart.typeName);
}
});
registry.addInstanceCreationExpression((node) {
final name = node.constructorName.type.name.lexeme;
if (name != 'HookBuilder') return;
// Check the builder argument for hook calls.
for (final arg in node.argumentList.arguments) {
final expression = arg is NamedExpression ? arg.expression : arg;
if (expression is FunctionExpression) {
final finder = _HookCallFinder();
expression.body.accept(finder);
if (!finder.found) {
reportAtNode(node.constructorName);
}
return;
}
}
});
}