| OLD | NEW | 
|   1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file |   1 // Copyright (c) 2014, 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 class S0<T> { } |   5 class S0<T> { } | 
|   6  |   6  | 
|   7 class S<U extends num, V extends U> extends S0<String> { } |   7 class S<U extends num, V extends U> extends S0<String> { } | 
|   8  |   8  | 
|   9 class M<U extends num, V extends U> { } |   9 class M<U extends num, V extends U> { } | 
|  10  |  10  | 
|  11 class A<U extends num, V extends U> extends S with M { } |  11 class A<U extends num, V extends U> extends S with M { } | 
|  12  |  12  | 
|  13 // A StaticWarning is reported here and in C, D, and E below, because U and V |  13 // A StaticWarning is reported here and in C, D, and E below, because U and V | 
|  14 // are not bounded. The purpose of this test is to verify bound checking in S, |  14 // are not bounded. The purpose of this test is to verify bound checking in S, | 
|  15 // M, and A, the reason no bounds are declared for U and V here. |  15 // M, and A, the reason no bounds are declared for U and V here. | 
|  16 class B<U, V> extends S<U, V> with M<int, int> { } |  16 class B<U, V> extends S<U, V> with M<int, int> { } | 
|  17  |  17  | 
|  18 class C<U, V> extends S<int, int> with M<U, V> { } |  18 class C<U, V> extends S<int, int> with M<U, V> { } | 
|  19  |  19  | 
|  20 class D<U, V> extends S<U, V> with M<double, int> { } |  20 class D<U, V> extends S<U, V> with M<double, int> { } | 
|  21  |  21  | 
|  22 class E<U, V> extends S<double, int> with M<U, V> { } |  22 class E<U, V> extends S<double, int> with M<U, V> { } | 
|  23  |  23  | 
|  24 main() { |  24 main() { | 
|  25   new A<int, int>();  /// 01: static type warning |  25   new A<int, int>(); // /// 01: static type warning | 
|  26   new A<double, int>();  /// 02: static type warning, dynamic type error |  26   new A<double, int>(); // /// 02: static type warning, dynamic type error | 
|  27   new A<bool, bool>();  /// 03: static type warning, dynamic type error |  27   new A<bool, bool>(); // /// 03: static type warning, dynamic type error | 
|  28   new B<int, int>();  /// 04: static type warning |  28   new B<int, int>(); // /// 04: static type warning | 
|  29   new B<double, int>();  /// 05: static type warning, dynamic type error |  29   new B<double, int>(); // /// 05: static type warning, dynamic type error | 
|  30   new B<bool, bool>();  /// 06: static type warning, dynamic type error |  30   new B<bool, bool>(); // /// 06: static type warning, dynamic type error | 
|  31   new C<int, int>();  /// 07: static type warning |  31   new C<int, int>(); // /// 07: static type warning | 
|  32   new C<double, int>();  /// 08: static type warning, dynamic type error |  32   new C<double, int>(); // /// 08: static type warning, dynamic type error | 
|  33   new C<bool, bool>();  /// 09: static type warning, dynamic type error |  33   new C<bool, bool>(); // /// 09: static type warning, dynamic type error | 
|  34   new D<int, int>();  /// 10: static type warning, dynamic type error |  34   new D<int, int>(); // /// 10: static type warning, dynamic type error | 
|  35   new D<double, int>();  /// 11: static type warning, dynamic type error |  35   new D<double, int>(); // /// 11: static type warning, dynamic type error | 
|  36   new D<bool, bool>();  /// 12: static type warning, dynamic type error |  36   new D<bool, bool>(); // /// 12: static type warning, dynamic type error | 
|  37   new E<int, int>();  /// 12: static type warning, dynamic type error |  37   new E<int, int>(); // /// 12: static type warning, dynamic type error | 
|  38   new E<double, int>();  /// 13: static type warning, dynamic type error |  38   new E<double, int>(); // /// 13: static type warning, dynamic type error | 
|  39   new E<bool, bool>();  /// 14: static type warning, dynamic type error |  39   new E<bool, bool>(); // /// 14: static type warning, dynamic type error | 
|  40 } |  40 } | 
| OLD | NEW |