| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 /*@testedFeatures=checks*/ | 5 /*@testedFeatures=checks*/ |
| 6 library test; | 6 library test; |
| 7 | 7 |
| 8 abstract class I<T> { | 8 abstract class I<T> { |
| 9 void f1(T x); | 9 void f1(T /*@checkInterface=semiTyped*/ x); |
| 10 void f2(T x); | 10 void f2(T /*@checkInterface=semiTyped*/ x); |
| 11 } | 11 } |
| 12 | 12 |
| 13 class C<U> implements I<int> { | 13 class C<U> implements I<int> { |
| 14 void f1(int /*@checkFormal=semiSafe*/ x) {} | 14 void f1(int /*@checkFormal=semiSafe*/ x) {} |
| 15 void f2(int /*@checkFormal=semiSafe*/ x, [U /*@checkFormal=semiSafe*/ y]) {} | 15 void f2(int /*@checkFormal=semiSafe*/ x, |
| 16 [U /*@checkFormal=semiSafe*/ /*@checkInterface=semiTyped*/ y]) {} |
| 16 } | 17 } |
| 17 | 18 |
| 18 void g1(C<num> c) { | 19 void g1(C<num> c) { |
| 19 c.f1(1); | 20 c.f1(1); |
| 20 } | 21 } |
| 21 | 22 |
| 22 void g2(I<num> i) { | 23 void g2(I<num> i) { |
| 23 i.f1 /*@checkCall=interface(semiTyped:0)*/ (1.5); | 24 i.f1(1.5); |
| 24 } | 25 } |
| 25 | 26 |
| 26 void g3(C<num> c) { | 27 void g3(C<num> c) { |
| 27 c.f2 /*@checkCall=interface(semiTyped:1)*/ (1, 1.5); | 28 c.f2(1, 1.5); |
| 28 } | 29 } |
| 29 | 30 |
| 30 void test() { | 31 void test() { |
| 31 g2(new C<num>()); | 32 g2(new C<num>()); |
| 32 } | 33 } |
| 33 | 34 |
| 34 void main() {} | 35 void main() {} |
| OLD | NEW |