check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(DcqRegistry registry) {
var hasPatrolImport = false;
registry.addImportDirective((node) {
final uri = node.uri.stringValue;
if (uri != null && uri.startsWith('package:patrol')) {
hasPatrolImport = true;
}
});
final pendingNodes = <InstanceCreationExpression>[];
registry.addInstanceCreationExpression((node) {
final typeName = node.constructorName.type.name.lexeme;
if (typeName != 'Key' && typeName != 'ValueKey') return;
final args = node.argumentList.arguments;
if (args.length == 1 && args.first is SimpleStringLiteral) {
pendingNodes.add(node);
}
});
registry.afterLibrary(() {
if (!hasPatrolImport) return;
for (final node in pendingNodes) {
reportAtNode(node);
}
});
}