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_mixin_applications; | 5 library test.generic_mixin; |
| 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_test.dart'; |
| 12 | 12 |
| 13 class Super<S> {} | 13 class Super<S> {} |
| 14 class Mixin<M> {} | 14 class Mixin<M> {} |
| 15 class Nixim<N> {} | 15 class Nixim<N> {} |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 56 typeArguments(reflectClass(NonGenericClass2).mixin, []); | 56 typeArguments(reflectClass(NonGenericClass2).mixin, []); |
| 57 typeArguments(reflectClass(GenericClass1).mixin, []); | 57 typeArguments(reflectClass(GenericClass1).mixin, []); |
| 58 typeArguments(reflectClass(GenericClass2).mixin, []); | 58 typeArguments(reflectClass(GenericClass2).mixin, []); |
| 59 typeArguments(reflectClass(NonGenericClass1).superclass.mixin, [dynamicMirror] ); | 59 typeArguments(reflectClass(NonGenericClass1).superclass.mixin, [dynamicMirror] ); |
| 60 typeArguments(reflectClass(NonGenericClass2).superclass.mixin, [reflectClass(S tring)]); | 60 typeArguments(reflectClass(NonGenericClass2).superclass.mixin, [reflectClass(S tring)]); |
| 61 typeArguments(reflectClass(GenericClass1).superclass.mixin, [reflectClass(Gene ricClass1).typeVariables.single]); | 61 typeArguments(reflectClass(GenericClass1).superclass.mixin, [reflectClass(Gene ricClass1).typeVariables.single]); |
| 62 typeArguments(reflectClass(GenericClass2).superclass.mixin, [reflectClass(Stri ng)]); | 62 typeArguments(reflectClass(GenericClass2).superclass.mixin, [reflectClass(Stri ng)]); |
| 63 typeArguments(reflectClass(GenericMultipleMixins).mixin, []); | 63 typeArguments(reflectClass(GenericMultipleMixins).mixin, []); |
| 64 typeArguments(reflectClass(GenericMultipleMixins).superclass.mixin, [reflectCl ass(GenericMultipleMixins).typeVariables[2]]); | 64 typeArguments(reflectClass(GenericMultipleMixins).superclass.mixin, [reflectCl ass(GenericMultipleMixins).typeVariables[2]]); |
| 65 typeArguments(reflectClass(GenericMultipleMixins).superclass.superclass.mixin, [reflectClass(GenericMultipleMixins).typeVariables[1]]); | 65 typeArguments(reflectClass(GenericMultipleMixins).superclass.superclass.mixin, [reflectClass(GenericMultipleMixins).typeVariables[1]]); |
| 66 // 1 - VM fails here because of equality between type parameters | 66 typeArguments(reflectClass(GenericMultipleMixins).superclass.superclass.superc lass.mixin, [reflectClass(GenericMultipleMixins).typeVariables[0]]); |
|
ahe
2013/10/17 08:07:12
Many long lines in this file.
| |
| 67 typeArguments(reflectClass(GenericMultipleMixins).superclass.superclass.superc lass.mixin, [reflectClass(GenericMultipleMixins).typeVariables[0]]); /// 01: ok | |
| 68 | 67 |
| 69 | 68 |
| 70 typeParameters(reflect(new NonGenericMixinApplication1()).type.mixin, [#M]); | 69 typeParameters(reflect(new NonGenericMixinApplication1()).type.mixin, [#M]); |
| 71 typeParameters(reflect(new NonGenericMixinApplication2()).type.mixin, [#M]); | 70 typeParameters(reflect(new NonGenericMixinApplication2()).type.mixin, [#M]); |
| 72 typeParameters(reflect(new GenericMixinApplication1<bool>()).type.mixin, [#M]) ; | 71 typeParameters(reflect(new GenericMixinApplication1<bool>()).type.mixin, [#M]) ; |
| 73 typeParameters(reflect(new GenericMixinApplication2<bool>()).type.mixin, [#M]) ; | 72 typeParameters(reflect(new GenericMixinApplication2<bool>()).type.mixin, [#M]) ; |
| 74 typeParameters(reflect(new NonGenericClass1()).type.mixin, []); | 73 typeParameters(reflect(new NonGenericClass1()).type.mixin, []); |
| 75 typeParameters(reflect(new NonGenericClass2()).type.mixin, []); | 74 typeParameters(reflect(new NonGenericClass2()).type.mixin, []); |
| 76 typeParameters(reflect(new GenericClass1<bool>()).type.mixin, [#C]); | 75 typeParameters(reflect(new GenericClass1<bool>()).type.mixin, [#C]); |
| 77 typeParameters(reflect(new GenericClass2<bool>()).type.mixin, [#C]); | 76 typeParameters(reflect(new GenericClass2<bool>()).type.mixin, [#C]); |
| 78 typeParameters(reflect(new NonGenericClass1()).type.superclass.mixin, [#M]); | 77 typeParameters(reflect(new NonGenericClass1()).type.superclass.mixin, [#M]); |
| 79 typeParameters(reflect(new NonGenericClass2()).type.superclass.mixin, [#M]); | 78 typeParameters(reflect(new NonGenericClass2()).type.superclass.mixin, [#M]); |
| 80 typeParameters(reflect(new GenericClass1<bool>()).type.superclass.mixin, [#M]) ; | 79 typeParameters(reflect(new GenericClass1<bool>()).type.superclass.mixin, [#M]) ; |
| 81 typeParameters(reflect(new GenericClass2<bool>()).type.superclass.mixin, [#M]) ; | 80 typeParameters(reflect(new GenericClass2<bool>()).type.superclass.mixin, [#M]) ; |
| 82 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.mi xin, [#A, #B, #C]); | 81 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.mi xin, [#A, #B, #C]); |
| 83 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.su perclass.mixin, [#N]); | 82 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.su perclass.mixin, [#N]); |
| 84 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.su perclass.superclass.mixin, [#M]); | 83 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.su perclass.superclass.mixin, [#M]); |
| 85 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.su perclass.superclass.superclass.mixin, [#S]); | 84 typeParameters(reflect(new GenericMultipleMixins<bool, String, int>()).type.su perclass.superclass.superclass.mixin, [#S]); |
| 86 | 85 |
| 87 // 2 - VM fails here because of failure to substitute | |
| 88 typeArguments(reflect(new NonGenericMixinApplication1()).type.mixin, [dynamicM irror]); | 86 typeArguments(reflect(new NonGenericMixinApplication1()).type.mixin, [dynamicM irror]); |
| 89 typeArguments(reflect(new NonGenericMixinApplication2()).type.mixin, [reflectC lass(String)]); | 87 typeArguments(reflect(new NonGenericMixinApplication2()).type.mixin, [reflectC lass(String)]); |
| 90 typeArguments(reflect(new GenericMixinApplication1<bool>()).type.mixin, [refle ctClass(bool)]); /// 02: ok | 88 typeArguments(reflect(new GenericMixinApplication1<bool>()).type.mixin, [refle ctClass(bool)]); |
| 91 typeArguments(reflect(new GenericMixinApplication2<bool>()).type.mixin, [refle ctClass(String)]); | 89 typeArguments(reflect(new GenericMixinApplication2<bool>()).type.mixin, [refle ctClass(String)]); |
| 92 typeArguments(reflect(new NonGenericClass1()).type.mixin, []); | 90 typeArguments(reflect(new NonGenericClass1()).type.mixin, []); |
| 93 typeArguments(reflect(new NonGenericClass2()).type.mixin, []); | 91 typeArguments(reflect(new NonGenericClass2()).type.mixin, []); |
| 94 typeArguments(reflect(new GenericClass1<bool>()).type.mixin, [reflectClass(boo l)]); | 92 typeArguments(reflect(new GenericClass1<bool>()).type.mixin, [reflectClass(boo l)]); |
| 95 typeArguments(reflect(new GenericClass2<bool>()).type.mixin, [reflectClass(boo l)]); | 93 typeArguments(reflect(new GenericClass2<bool>()).type.mixin, [reflectClass(boo l)]); |
| 96 typeArguments(reflect(new NonGenericClass1()).type.superclass.mixin, [dynamicM irror]); | 94 typeArguments(reflect(new NonGenericClass1()).type.superclass.mixin, [dynamicM irror]); |
| 97 typeArguments(reflect(new NonGenericClass2()).type.superclass.mixin, [reflectC lass(String)]); | 95 typeArguments(reflect(new NonGenericClass2()).type.superclass.mixin, [reflectC lass(String)]); |
| 98 typeArguments(reflect(new GenericClass1<bool>()).type.superclass.mixin, [refle ctClass(bool)]); /// 02: ok | 96 typeArguments(reflect(new GenericClass1<bool>()).type.superclass.mixin, [refle ctClass(bool)]); |
| 99 typeArguments(reflect(new GenericClass2<bool>()).type.superclass.mixin, [refle ctClass(String)]); | 97 typeArguments(reflect(new GenericClass2<bool>()).type.superclass.mixin, [refle ctClass(String)]); |
| 100 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.mix in, [reflectClass(bool), reflectClass(String), reflectClass(int)]); | 98 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.mix in, [reflectClass(bool), reflectClass(String), reflectClass(int)]); |
| 101 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.sup erclass.mixin, [reflectClass(int)]); /// 02: ok | 99 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.sup erclass.mixin, [reflectClass(int)]); |
| 102 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.sup erclass.superclass.mixin, [reflectClass(String)]); /// 02: ok | 100 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.sup erclass.superclass.mixin, [reflectClass(String)]); |
| 103 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.sup erclass.superclass.superclass.mixin, [reflectClass(bool)]); /// 02: ok | 101 typeArguments(reflect(new GenericMultipleMixins<bool, String, int>()).type.sup erclass.superclass.superclass.mixin, [reflectClass(bool)]); |
| 104 } | 102 } |
| OLD | NEW |