visitFormalParameterList method

  1. @override
void visitFormalParameterList(
  1. FormalParameterList node
)
override

Implementation

@override
void visitFormalParameterList(FormalParameterList node) {
  List<DefaultFormalParameter> getParams() {
    final params = <DefaultFormalParameter>[];
    for (final p in node.parameters) {
      // Only named parameters
      if (p.isNamed) {
        final parameter = p as DefaultFormalParameter;
        // Without a default value or marked required
        if (parameter.defaultValue == null) {
          final declaredElement = parameter.declaredElement;
          if (declaredElement != null && !declaredElement.hasRequired) {
            params.add(parameter);
          }
        }
      }
    }
    return params;
  }

  final parent = node.parent;
  if (parent is FunctionExpression) {
    _checkParams(getParams(), parent.body);
  } else if (parent is ConstructorDeclaration) {
    _checkInitializerList(getParams(), parent.initializers);
    _checkParams(getParams(), parent.body);
  } else if (parent is MethodDeclaration) {
    _checkParams(getParams(), parent.body);
  }
}