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 lib; | 5 library lib; |
6 | 6 |
7 import 'package:expect/expect.dart'; | 7 import 'package:expect/expect.dart'; |
8 import 'stringify.dart'; | 8 import 'stringify.dart'; |
9 import 'dart:mirrors'; | 9 import 'dart:mirrors'; |
10 | 10 |
11 class Foo<T> {} | 11 class Foo<T> {} |
| 12 |
12 class Bar<T, R> {} | 13 class Bar<T, R> {} |
13 | 14 |
14 main() { | 15 main() { |
15 var cm = reflectClass(Foo); | 16 var cm = reflectClass(Foo); |
16 var cm1 = reflect((new Foo<String>())).type; | 17 var cm1 = reflect((new Foo<String>())).type; |
17 | 18 |
18 Expect.notEquals(cm, cm1); | 19 Expect.notEquals(cm, cm1); |
19 Expect.isFalse(cm1.isOriginalDeclaration); | 20 Expect.isFalse(cm1.isOriginalDeclaration); |
20 Expect.isTrue(cm.isOriginalDeclaration); | 21 Expect.isTrue(cm.isOriginalDeclaration); |
21 | 22 |
22 Expect.equals(cm, cm1.originalDeclaration); | 23 Expect.equals(cm, cm1.originalDeclaration); |
23 | 24 |
24 Expect.equals(cm, reflectClass(Foo)); | 25 Expect.equals(cm, reflectClass(Foo)); |
25 Expect.equals(cm, reflectClass((new Foo().runtimeType))); | 26 Expect.equals(cm, reflectClass((new Foo().runtimeType))); |
26 Expect.equals(cm1, reflect(new Foo<String>()).type); | 27 Expect.equals(cm1, reflect(new Foo<String>()).type); |
27 | 28 |
28 expect('[]', cm.typeArguments); | 29 expect('[]', cm.typeArguments); |
29 expect('[Class(s(String) in s(dart.core), top-level)]', cm1.typeArguments); | 30 expect('[Class(s(String) in s(dart.core), top-level)]', cm1.typeArguments); |
30 | 31 |
31 cm = reflect(new Bar<List, Set>()).type; | 32 cm = reflect(new Bar<List, Set>()).type; |
32 cm1 = reflect(new Bar<List, Set<String>>()).type; | 33 cm1 = reflect(new Bar<List, Set<String>>()).type; |
33 | 34 |
34 var cm2 = reflect(new Bar<List<String>, Set>()).type; | 35 var cm2 = reflect(new Bar<List<String>, Set>()).type; |
35 var cm3 = reflect(new Bar<List<String>, Set<String>>()).type; | 36 var cm3 = reflect(new Bar<List<String>, Set<String>>()).type; |
36 | 37 |
37 expect('[Class(s(List) in s(dart.core), top-level),' | 38 expect( |
38 ' Class(s(Set) in s(dart.core), top-level)]', cm.typeArguments); | 39 '[Class(s(List) in s(dart.core), top-level),' |
39 expect('[Class(s(List) in s(dart.core), top-level),' | 40 ' Class(s(Set) in s(dart.core), top-level)]', |
40 ' Class(s(Set) in s(dart.core), top-level)]', cm1.typeArguments); | 41 cm.typeArguments); |
41 expect('[Class(s(List) in s(dart.core), top-level),' | 42 expect( |
42 ' Class(s(Set) in s(dart.core), top-level)]', cm2.typeArguments); | 43 '[Class(s(List) in s(dart.core), top-level),' |
43 expect('[Class(s(List) in s(dart.core), top-level),' | 44 ' Class(s(Set) in s(dart.core), top-level)]', |
44 ' Class(s(Set) in s(dart.core), top-level)]', cm3.typeArguments); | 45 cm1.typeArguments); |
| 46 expect( |
| 47 '[Class(s(List) in s(dart.core), top-level),' |
| 48 ' Class(s(Set) in s(dart.core), top-level)]', |
| 49 cm2.typeArguments); |
| 50 expect( |
| 51 '[Class(s(List) in s(dart.core), top-level),' |
| 52 ' Class(s(Set) in s(dart.core), top-level)]', |
| 53 cm3.typeArguments); |
45 | 54 |
46 expect('[Class(s(String) in s(dart.core), top-level)]', | 55 expect('[Class(s(String) in s(dart.core), top-level)]', |
47 cm1.typeArguments[1].typeArguments); | 56 cm1.typeArguments[1].typeArguments); |
48 expect('[Class(s(String) in s(dart.core), top-level)]', | 57 expect('[Class(s(String) in s(dart.core), top-level)]', |
49 cm2.typeArguments[0].typeArguments); | 58 cm2.typeArguments[0].typeArguments); |
50 expect('[Class(s(String) in s(dart.core), top-level)]', | 59 expect('[Class(s(String) in s(dart.core), top-level)]', |
51 cm3.typeArguments[0].typeArguments); | 60 cm3.typeArguments[0].typeArguments); |
52 expect('[Class(s(String) in s(dart.core), top-level)]', | 61 expect('[Class(s(String) in s(dart.core), top-level)]', |
53 cm3.typeArguments[1].typeArguments); | 62 cm3.typeArguments[1].typeArguments); |
54 | 63 |
55 var cm4 = reflect(new Bar<Bar<List, Set>, String>()).type; | 64 var cm4 = reflect(new Bar<Bar<List, Set>, String>()).type; |
56 | 65 |
57 expect('[Class(s(Bar) in s(lib), top-level),' | 66 expect( |
58 ' Class(s(String) in s(dart.core), top-level)]', | 67 '[Class(s(Bar) in s(lib), top-level),' |
59 cm4.typeArguments); | 68 ' Class(s(String) in s(dart.core), top-level)]', |
60 expect('[Class(s(List) in s(dart.core), top-level), ' | 69 cm4.typeArguments); |
61 'Class(s(Set) in s(dart.core), top-level)]', | 70 expect( |
62 cm4.typeArguments[0].typeArguments); | 71 '[Class(s(List) in s(dart.core), top-level), ' |
| 72 'Class(s(Set) in s(dart.core), top-level)]', |
| 73 cm4.typeArguments[0].typeArguments); |
63 } | 74 } |
OLD | NEW |