Fix for absent names of parameters in GenericFunctionType.
R=brianwilkerson@google.com
Change-Id: I9a6444cc076b5d6a79c4ebf33fae9deef85e2049
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99189
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 2184fd9..7383a7d 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -8349,17 +8349,25 @@
);
}
} else {
- var name = node.identifier.name;
- var reference = containerRef.getChild(name);
- if (reference.element == null) {
- reference.node2 = node;
- ParameterElementImpl.forLinkedNodeFactory(
+ if (node.identifier == null) {
+ return ParameterElementImpl.forLinkedNodeFactory(
enclosing,
- reference,
+ containerRef.getChild(''),
node,
);
+ } else {
+ var name = node.identifier.name;
+ var reference = containerRef.getChild(name);
+ if (reference.element == null) {
+ reference.node2 = node;
+ ParameterElementImpl.forLinkedNodeFactory(
+ enclosing,
+ reference,
+ node,
+ );
+ }
+ return reference.element as ParameterElement;
}
- return reference.element as ParameterElement;
}
}).toList();
}
diff --git a/pkg/analyzer/lib/src/summary2/type_builder.dart b/pkg/analyzer/lib/src/summary2/type_builder.dart
index ccad03b..b52c055 100644
--- a/pkg/analyzer/lib/src/summary2/type_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/type_builder.dart
@@ -86,7 +86,7 @@
var formalParameters = parameterList.parameters.map((parameter) {
return ParameterElementImpl.synthetic(
- parameter.identifier.name,
+ parameter.identifier?.name ?? '',
LazyAst.getType(parameter),
// ignore: deprecated_member_use_from_same_package
parameter.kind,
diff --git a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
index 99b8730..55a5f00 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
@@ -196,13 +196,6 @@
@override
@failingTest
- test_class_notSimplyBounded_function_typed_bound_complex_via_parameter_type() async {
- await super
- .test_class_notSimplyBounded_function_typed_bound_complex_via_parameter_type();
- }
-
- @override
- @failingTest
test_class_type_parameters_bound() async {
await super.test_class_type_parameters_bound();
}
@@ -530,19 +523,6 @@
@override
@failingTest
- test_typedef_generic() async {
- await super.test_typedef_generic();
- }
-
- @override
- @failingTest
- test_typedef_notSimplyBounded_dependency_via_param_type_new_style_name_omitted() async {
- await super
- .test_typedef_notSimplyBounded_dependency_via_param_type_new_style_name_omitted();
- }
-
- @override
- @failingTest
test_typedef_type_parameters_bound() async {
await super.test_typedef_type_parameters_bound();
}