check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(
DcqRegistry registry,
) {
registry.addInstanceCreationExpression((node) {
final name = node.constructorName.type.name.lexeme;
if (name != 'Flexible' && name != 'Expanded') return;
AstNode? current = node.parent;
while (current != null) {
if (current is ListLiteral) {
final listParent = current.parent;
if (listParent is NamedExpression &&
listParent.name.label.name == 'children') {
final argParent = listParent.parent;
if (argParent is ArgumentList) {
final constructorParent = argParent.parent;
if (constructorParent is InstanceCreationExpression) {
final parentName =
constructorParent.constructorName.type.name.lexeme;
if (_flexWidgets.contains(parentName)) return;
}
}
}
}
current = current.parent;
}
reportAtNode(node);
});
}