| 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() {",
|
|
|