Index: editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/resolver/NonErrorResolverTest.java |
diff --git a/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/resolver/NonErrorResolverTest.java b/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/resolver/NonErrorResolverTest.java |
index a62ab53783aac6bb143dc92eebaeee03572e59ca..08ea82202c5eef6075fbe18f5c4d62476f7d41ea 100644 |
--- a/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/resolver/NonErrorResolverTest.java |
+++ b/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/resolver/NonErrorResolverTest.java |
@@ -3120,6 +3120,25 @@ public class NonErrorResolverTest extends ResolverTestCase { |
verify(source); |
} |
+ public void test_typePromotion_if_extends_moreSpecific() throws Exception { |
+ Source source = addSource(createSource(// |
+ "class V {}", |
+ "class VP extends V {}", |
+ "class A<T> {}", |
+ "class B<S> extends A<S> {", |
+ " var b;", |
+ "}", |
+ "", |
+ "main(A<V> p) {", |
+ " if (p is B<VP>) {", |
+ " p.b;", |
+ " }", |
+ "}")); |
+ resolve(source); |
+ assertNoErrors(source); |
+ verify(source); |
+ } |
+ |
public void test_typePromotion_if_hasAssignment_outsideAfter() throws Exception { |
Source source = addSource(createSource(// |
"main(Object p) {", |
@@ -3146,6 +3165,25 @@ public class NonErrorResolverTest extends ResolverTestCase { |
verify(source); |
} |
+ public void test_typePromotion_if_implements_moreSpecific() throws Exception { |
+ Source source = addSource(createSource(// |
+ "class V {}", |
+ "class VP extends V {}", |
+ "class A<T> {}", |
+ "class B<S> implements A<S> {", |
+ " var b;", |
+ "}", |
+ "", |
+ "main(A<V> p) {", |
+ " if (p is B<VP>) {", |
+ " p.b;", |
+ " }", |
+ "}")); |
+ resolve(source); |
+ assertNoErrors(source); |
+ verify(source); |
+ } |
+ |
public void test_typePromotion_if_inClosure_assignedAfter_inSameFunction() throws Exception { |
Source source = addSource(createSource(// |
"main() {", |