check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(
DcqRegistry registry,
) {
registry.addBlock((node) {
final statements = node.statements;
if (statements.length < 2) return;
for (var i = 0; i < statements.length - 1; i++) {
final current = statements[i];
if (current is! VariableDeclarationStatement) continue;
final variables = current.variables.variables;
if (variables.length != 1) continue;
final variable = variables.first;
if (variable.initializer == null) continue;
final name = variable.name.lexeme;
final next = statements[i + 1];
final finder = _ReferenceFinder(name);
next.accept(finder);
if (finder.count != 1) continue;
if (finder.isReceiver) continue;
final remainingCount = _countInStatements(
statements,
name,
fromIndex: i + 2,
);
if (remainingCount > 0) continue;
reportAtNode(current);
}
});
}