runWithReporter method
Override this method to implement your lint rule.
Use context to register callbacks for AST node types:
context.addMethodInvocation((node) {
if (condition) {
reporter.atNode(node);
}
});
Implementation
@override
void runWithReporter(
SaropaDiagnosticReporter reporter,
SaropaContext context,
) {
context.addAssignmentExpression((AssignmentExpression node) {
// Only check simple assignments (not +=, etc.)
if (node.operator.type != TokenType.EQ) return;
final Expression left = node.leftHandSide;
final Expression right = node.rightHandSide;
// Both sides must be simple identifiers
if (left is! SimpleIdentifier) return;
if (right is! SimpleIdentifier) return;
// Check if both sides refer to the same variable
if (left.name == right.name) {
reporter.atNode(node);
}
});
}