| commit | 0c342ae4910f8a56a0889e8e9e743c7cd01399cc | [log] [tgz] |
|---|---|---|
| author | Konstantin Shcheglov <scheglov@google.com> | Thu Oct 08 15:17:05 2020 +0000 |
| committer | commit-bot@chromium.org <commit-bot@chromium.org> | Thu Oct 08 15:17:05 2020 +0000 |
| tree | 1d7ba268ab480c65f60e724c59b48c41042b16c3 | |
| parent | 383b470d39a5f68cbf8b51406745564e128cb511 [diff] |
Fix crash when invalid default field formal parameter has annotation. Change-Id: Iabb329f850195be981d80b0589d9f7851596c680 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/166740 Reviewed-by: Samuel Rawlins <srawlins@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart index 81255f6..858f235 100644 --- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart +++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
@@ -462,11 +462,11 @@ element.isFinal = node.isFinal; element.parameterKind = node.kind; _setCodeRange(element, node); - element.metadata = _createElementAnnotations(node.metadata); } nameNode.staticElement = element; } + element.metadata = _createElementAnnotations(node.metadata); node.metadata.accept(this); _setElementAnnotations(node.metadata, element.metadata);
diff --git a/pkg/analyzer/test/generated/invalid_code_test.dart b/pkg/analyzer/test/generated/invalid_code_test.dart index 5f397fd..a116216 100644 --- a/pkg/analyzer/test/generated/invalid_code_test.dart +++ b/pkg/analyzer/test/generated/invalid_code_test.dart
@@ -326,6 +326,17 @@ '''); } + test_localFunction_defaultFieldFormalParameter_metadata() async { + await _assertCanBeAnalyzed(r''' +const my = 0; + +void foo() { + // ignore:unused_element + void bar({@my this.x}) {} +} +'''); + } + test_typeBeforeAnnotation() async { await _assertCanBeAnalyzed(''' class A {