Index: pkg/analyzer/test/generated/resolver_test.dart |
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart |
index c32fb53e5b46d3f246b41c09bd1fd6ea08008e77..65f38089434643003d4da5279a393987dc843bbb 100644 |
--- a/pkg/analyzer/test/generated/resolver_test.dart |
+++ b/pkg/analyzer/test/generated/resolver_test.dart |
@@ -12,6 +12,8 @@ import 'package:analyzer/dart/ast/visitor.dart'; |
import 'package:analyzer/dart/element/element.dart'; |
import 'package:analyzer/dart/element/type.dart'; |
import 'package:analyzer/src/context/context.dart'; |
+import 'package:analyzer/src/dart/ast/ast.dart' |
+ show SimpleIdentifierImpl, PrefixedIdentifierImpl; |
import 'package:analyzer/src/dart/element/element.dart'; |
import 'package:analyzer/src/dart/element/member.dart'; |
import 'package:analyzer/src/dart/element/type.dart'; |
@@ -17074,6 +17076,30 @@ class TypeResolverVisitorTest { |
_listener.assertNoErrors(); |
} |
+ void test_visitTypeName_noParameters_noArguments_undefined() { |
+ SimpleIdentifier id = AstFactory.identifier3("unknown") |
+ ..staticElement = new _StaleElement(); |
+ TypeName typeName = new TypeName(id, null); |
+ _resolveNode(typeName, []); |
+ expect(typeName.type, UndefinedTypeImpl.instance); |
+ expect(typeName.name.staticElement, null); |
+ _listener.assertErrorsWithCodes([StaticWarningCode.UNDEFINED_CLASS]); |
+ } |
+ |
+ void test_visitTypeName_prefixed_noParameters_noArguments_undefined() { |
+ SimpleIdentifier prefix = AstFactory.identifier3("unknownPrefix") |
+ ..staticElement = new _StaleElement(); |
+ SimpleIdentifier suffix = AstFactory.identifier3("unknownSuffix") |
+ ..staticElement = new _StaleElement(); |
+ TypeName typeName = |
+ new TypeName(AstFactory.identifier(prefix, suffix), null); |
+ _resolveNode(typeName, []); |
+ expect(typeName.type, UndefinedTypeImpl.instance); |
+ expect(prefix.staticElement, null); |
+ expect(suffix.staticElement, null); |
+ _listener.assertErrorsWithCodes([StaticWarningCode.UNDEFINED_CLASS]); |
+ } |
+ |
void test_visitTypeName_parameters_arguments() { |
ClassElement classA = ElementFactory.classElement2("A", ["E"]); |
ClassElement classB = ElementFactory.classElement2("B"); |
@@ -17234,6 +17260,21 @@ class _SimpleResolverTest_localVariable_types_invoked |
} |
/** |
+ * Represents an element left over from a previous resolver run. |
+ * |
+ * A _StaleElement should always be replaced with either null or a new Element. |
+ */ |
+class _StaleElement extends ElementImpl { |
+ _StaleElement() : super("_StaleElement", -1); |
+ |
+ @override |
+ accept(_) => throw "_StaleElement shouldn't be visited"; |
+ |
+ @override |
+ get kind => throw "_StaleElement's kind shouldn't be accessed"; |
+} |
+ |
+/** |
* Shared infrastructure for [StaticTypeAnalyzer2Test] and |
* [StrongModeStaticTypeAnalyzer2Test]. |
*/ |