check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(
DcqRegistry registry,
) {
registry.addFormalParameterList((node) {
final params = node.parameters;
if (params.length < 2) return;
final firstParam = params.first;
final effectiveFirst = firstParam is DefaultFormalParameter
? firstParam.parameter
: firstParam;
if (effectiveFirst is! SimpleFormalParameter) return;
final firstType = effectiveFirst.type;
if (firstType is! NamedType) return;
if (firstType.name.lexeme != 'Ref') return;
for (final param in params.skip(1)) {
final effectiveParam = param is DefaultFormalParameter
? param.parameter
: param;
if (effectiveParam is! SimpleFormalParameter) continue;
final typeAnnotation = effectiveParam.type;
if (typeAnnotation is! NamedType) continue;
final typeName = typeAnnotation.name.lexeme;
if (_mutableCollectionTypes.contains(typeName)) {
reportAtNode(param);
}
}
});
}