Resolve 'dynamic' element references.
R=brianwilkerson@google.com, paulberry@google.com
Change-Id: I12414cd68a48a06940ad8a12ea1a34e22f4c72dc
Reviewed-on: https://dart-review.googlesource.com/62441
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 709f366..a7510b0 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -1151,6 +1151,8 @@
element = resynthesizer
.getElementFromCanonicalName(referencedNode.classNode.canonicalName);
assert(element != null);
+ } else if (referencedNode is kernel.DynamicType) {
+ element = DynamicElementImpl.instance;
} else {
throw new UnimplementedError(
'TODO(paulberry): ${referencedNode.runtimeType}');
diff --git a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
index f7ef2eb..c032088 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
@@ -118,13 +118,6 @@
@override
@failingTest
- test_const_dynamic() {
- // UnimplementedError: TODO(paulberry): DynamicType
- return super.test_const_dynamic();
- }
-
- @override
- @failingTest
@potentialAnalyzerProblem
test_constConstructorWithNonConstSuper_unresolved() async {
return super.test_constConstructorWithNonConstSuper_unresolved();
@@ -160,13 +153,6 @@
@override
@failingTest
- test_dynamicIdentifier() {
- // UnimplementedError: TODO(paulberry): DynamicType
- return super.test_dynamicIdentifier();
- }
-
- @override
- @failingTest
test_fieldFormalParameter_genericFunctionTyped() {
// Expected 0 errors of type ParserErrorCode.EXPECTED_TOKEN, found 1 (88)
return super.test_fieldFormalParameter_genericFunctionTyped();