Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library test.generic_bounded; | 5 library test.generic_bounded; |
| 6 | 6 |
| 7 import 'dart:mirrors'; | 7 import 'dart:mirrors'; |
| 8 | 8 |
| 9 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
| 10 | 10 |
| 11 import 'generics_test.dart'; | 11 import 'generics_helper.dart'; |
| 12 | 12 |
| 13 class Interface<T> {} | 13 class Interface<T> {} |
| 14 class Bounded<S extends num> {} | 14 class Bounded<S extends num> {} |
| 15 | 15 |
| 16 class Fixed implements Interface<int> {} | 16 class Fixed implements Interface<int> {} |
| 17 class Generic<R> implements Interface<R> {} | 17 class Generic<R> implements Interface<R> {} |
| 18 | 18 |
| 19 class Bienbounded implements Bounded<int> {} | 19 class Bienbounded implements Bounded<int> {} |
|
regis
2013/10/28 21:06:39
Bienbounded? :-)
| |
| 20 class Malbounded implements Bounded<String> {} | 20 class Malbounded implements Bounded<String> {} /// static type warning |
| 21 class FBounded implements Interface<FBounded> {} | 21 class FBounded implements Interface<FBounded> {} |
| 22 | 22 |
| 23 class Mixin {} | 23 class Mixin {} |
| 24 class FixedMixinApplication = Object with Mixin implements Interface<int>; | 24 class FixedMixinApplication = Object with Mixin implements Interface<int>; |
| 25 class GenericMixinApplication<X> = Object with Mixin implements Interface<X>; | 25 class GenericMixinApplication<X> = Object with Mixin implements Interface<X>; |
| 26 class FixedClass extends Object with Mixin implements Interface<int> {} | 26 class FixedClass extends Object with Mixin implements Interface<int> {} |
| 27 class GenericClass<Y> extends Object with Mixin implements Interface<Y> {} | 27 class GenericClass<Y> extends Object with Mixin implements Interface<Y> {} |
| 28 | 28 |
| 29 main() { | 29 main() { |
| 30 TypeMirror dynamicMirror = currentMirrorSystem().dynamicType; | 30 TypeMirror dynamicMirror = currentMirrorSystem().dynamicType; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 90 typeParameters(interfaceOfX, [#T]); | 90 typeParameters(interfaceOfX, [#T]); |
| 91 typeParameters(interfaceOfDouble, [#T]); | 91 typeParameters(interfaceOfDouble, [#T]); |
| 92 typeParameters(interfaceOfInt3, [#T]); | 92 typeParameters(interfaceOfInt3, [#T]); |
| 93 typeParameters(interfaceOfY, [#T]); | 93 typeParameters(interfaceOfY, [#T]); |
| 94 typeParameters(interfaceOfDouble2, [#T]); | 94 typeParameters(interfaceOfDouble2, [#T]); |
| 95 | 95 |
| 96 typeArguments(interfaceDecl, []); | 96 typeArguments(interfaceDecl, []); |
| 97 typeArguments(boundedDecl, []); | 97 typeArguments(boundedDecl, []); |
| 98 typeArguments(interfaceOfInt, [reflectClass(int)]); | 98 typeArguments(interfaceOfInt, [reflectClass(int)]); |
| 99 typeArguments(interfaceOfR, [rFromGeneric]); | 99 typeArguments(interfaceOfR, [rFromGeneric]); |
| 100 typeArguments(interfaceOfBool, [reflectClass(bool)]); /// 01: ok | 100 typeArguments(interfaceOfBool, [reflectClass(bool)]); |
| 101 typeArguments(boundedOfInt, [reflectClass(int)]); | 101 typeArguments(boundedOfInt, [reflectClass(int)]); |
| 102 typeArguments(boundedOfString, [reflectClass(String)]); | 102 typeArguments(boundedOfString, [reflectClass(String)]); |
| 103 typeArguments(interfaceOfFBounded, [reflectClass(FBounded)]); | 103 typeArguments(interfaceOfFBounded, [reflectClass(FBounded)]); |
| 104 typeArguments(interfaceOfInt2, [reflectClass(int)]); | 104 typeArguments(interfaceOfInt2, [reflectClass(int)]); |
| 105 typeArguments(interfaceOfX, [xFromGenericMixinApplication]); | 105 typeArguments(interfaceOfX, [xFromGenericMixinApplication]); |
| 106 typeArguments(interfaceOfDouble, [reflectClass(double)]); /// 01: ok | 106 typeArguments(interfaceOfDouble, [reflectClass(double)]); |
| 107 typeArguments(interfaceOfInt3, [reflectClass(int)]); | 107 typeArguments(interfaceOfInt3, [reflectClass(int)]); |
| 108 typeArguments(interfaceOfY, [yFromGenericClass]); | 108 typeArguments(interfaceOfY, [yFromGenericClass]); |
| 109 typeArguments(interfaceOfDouble2, [reflectClass(double)]); /// 01: ok | 109 typeArguments(interfaceOfDouble2, [reflectClass(double)]); |
| 110 } | 110 } |
| OLD | NEW |