check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(
DcqRegistry registry,
) {
final ignoredInvocations =
configStringList(ruleConfig, 'ignored-invocations') ?? const [];
registry.addStringInterpolation((node) {
if (ignoredInvocations.isNotEmpty) {
final parent = node.parent;
if (parent is ArgumentList) {
final grandparent = parent.parent;
String? invocationName;
if (grandparent is MethodInvocation) {
invocationName = grandparent.methodName.name;
} else if (grandparent is FunctionExpressionInvocation) {
final fn = grandparent.function;
if (fn is SimpleIdentifier) invocationName = fn.name;
}
if (invocationName != null &&
ignoredInvocations.contains(invocationName)) {
return;
}
}
}
for (final element in node.elements) {
if (element is InterpolationExpression) {
final expr = element.expression;
final type = expr.staticType;
if (type == null) continue;
if (type.nullabilitySuffix != NullabilitySuffix.question) continue;
if (_isPromotedNonNull(expr)) continue;
reportAtNode(element);
}
}
});
}