check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(DcqRegistry registry) {
final patternStr = configString(ruleConfig, 'return-type-pattern');
if (patternStr == null || patternStr.isEmpty) return;
final RegExp pattern;
try {
pattern = RegExp(patternStr);
} on FormatException {
return;
}
void checkDecl(AstNode node, DartType? returnType) {
if (returnType == null) return;
final typeName = returnType.getDisplayString();
if (!pattern.hasMatch(typeName)) return;
reportAtNode(node);
}
registry.addFunctionDeclaration((node) {
final element = node.declaredFragment?.element;
if (element == null) return;
if (_hasUseResult(node.metadata)) return;
checkDecl(node, element.returnType);
});
registry.addMethodDeclaration((node) {
final element = node.declaredFragment?.element;
if (element == null) return;
if (_hasUseResult(node.metadata)) return;
checkDecl(node, element.returnType);
});
}