Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(132)

Side by Side Diff: test/codegen/lib/mirrors/generic_superclass_test.dart

Issue 2265533002: Add mirrors tests (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'package:expect/expect.dart';
6 import 'dart:mirrors';
7
8
9 class A<T> {}
10 class B extends A<U>{}
11 class C extends A<C> {}
12 class D<T> extends A<T> {}
13 class E<X,Y> extends G<H<Y>> {}
14 class F<X> implements A<X> {}
15 class FF<X,Y> implements G<H<Y>> {}
16 class G<T> {}
17 class H<T> {}
18 class U {}
19 class R {}
20
21 void testOriginals() {
22 ClassMirror a = reflectClass(A);
23 ClassMirror b = reflectClass(B);
24 ClassMirror c = reflectClass(C);
25 ClassMirror d = reflectClass(D);
26 ClassMirror e = reflectClass(E);
27 ClassMirror f = reflectClass(F);
28 ClassMirror ff = reflectClass(FF);
29 ClassMirror superA = a.superclass;
30 ClassMirror superB = b.superclass;
31 ClassMirror superC = c.superclass;
32 ClassMirror superD = d.superclass;
33 ClassMirror superE = e.superclass;
34 ClassMirror superInterfaceF = f.superinterfaces[0];
35 ClassMirror superInterfaceFF = ff.superinterfaces[0];
36
37 TypeVariableMirror aT = a.typeVariables[0];
38 TypeVariableMirror dT = d.typeVariables[0];
39 TypeVariableMirror eX = e.typeVariables[0];
40 TypeVariableMirror eY = e.typeVariables[1];
41 TypeVariableMirror fX = f.typeVariables[0];
42 TypeVariableMirror feX = ff.typeVariables[0];
43 TypeVariableMirror feY = ff.typeVariables[1];
44
45 Expect.isTrue(superA.isOriginalDeclaration);
46 Expect.isFalse(superB.isOriginalDeclaration);
47 Expect.isFalse(superC.isOriginalDeclaration);
48 Expect.isFalse(superD.isOriginalDeclaration);
49 Expect.isFalse(superE.isOriginalDeclaration);
50 Expect.isFalse(superInterfaceF.isOriginalDeclaration);
51 Expect.isFalse(superInterfaceFF.isOriginalDeclaration);
52
53 Expect.equals(reflectClass(Object), superA);
54 Expect.equals(reflect(new A<U>()).type, superB);
55 Expect.equals(reflect(new A<C>()).type, superC); /// 01: ok
56 Expect.equals(reflect(new U()).type, superB.typeArguments[0]);
57 Expect.equals(reflect(new C()).type, superC.typeArguments[0]); /// 01: ok
58 Expect.equals(dT, superD.typeArguments[0]);
59 Expect.equals(eY, superE.typeArguments[0].typeArguments[0]);
60 Expect.equals(feY, superInterfaceFF.typeArguments[0].typeArguments[0]);
61 Expect.equals(fX, superInterfaceF.typeArguments[0]);
62 }
63
64 void testInstances() {
65 ClassMirror a = reflect(new A<U>()).type;
66 ClassMirror b = reflect(new B()).type;
67 ClassMirror c = reflect(new C()).type;
68 ClassMirror d = reflect(new D<U>()).type;
69 ClassMirror e = reflect(new E<U,R>()).type;
70 ClassMirror e0 = reflect(new E<U,H<R>>()).type;
71 ClassMirror ff = reflect(new FF<U,R>()).type;
72 ClassMirror f = reflect(new F<U>()).type;
73 ClassMirror u = reflect(new U()).type;
74 ClassMirror r = reflect(new R()).type;
75 ClassMirror hr = reflect(new H<R>()).type;
76
77 ClassMirror superA = a.superclass;
78 ClassMirror superB = b.superclass;
79 ClassMirror superC = c.superclass;
80 ClassMirror superD = d.superclass;
81 ClassMirror superE = e.superclass;
82 ClassMirror superE0 = e0.superclass;
83 ClassMirror superInterfaceF = f.superinterfaces[0];
84 ClassMirror superInterfaceFF = ff.superinterfaces[0];
85
86 Expect.isTrue(superA.isOriginalDeclaration);
87 Expect.isFalse(superB.isOriginalDeclaration);
88 Expect.isFalse(superC.isOriginalDeclaration);
89 Expect.isFalse(superD.isOriginalDeclaration);
90 Expect.isFalse(superE.isOriginalDeclaration);
91 Expect.isFalse(superE0.isOriginalDeclaration);
92 Expect.isFalse(superInterfaceF.isOriginalDeclaration);
93 Expect.isFalse(superInterfaceFF.isOriginalDeclaration);
94
95 Expect.equals(reflectClass(Object), superA);
96 Expect.equals(reflect(new A<U>()).type, superB);
97 Expect.equals(reflect(new A<C>()).type, superC); /// 01: ok
98 Expect.equals(reflect(new A<U>()).type, superD);
99 Expect.equals(reflect(new G<H<R>>()).type, superE);
100 Expect.equals(reflect(new G<H<H<R>>>()).type, superE0);
101 Expect.equals(reflect(new G<H<R>>()).type, superInterfaceFF);
102 Expect.equals(u, superB.typeArguments[0]);
103 Expect.equals(reflect(new C()).type, superC.typeArguments[0]); /// 01: ok
104 Expect.equals(u, superD.typeArguments[0]);
105 Expect.equals(r, superE.typeArguments[0].typeArguments[0]);
106 Expect.equals(hr, superE0.typeArguments[0].typeArguments[0]);
107 Expect.equals(r, superInterfaceFF.typeArguments[0].typeArguments[0]);
108 Expect.equals(u, superInterfaceF.typeArguments[0]);
109 }
110
111 void testObject() {
112 ClassMirror object = reflectClass(Object);
113 Expect.equals(null, object.superclass);
114 }
115
116 main() {
117 testOriginals();
118 testInstances();
119 testObject();
120 }
OLDNEW
« no previous file with comments | « test/codegen/lib/mirrors/generic_mixin_test.dart ('k') | test/codegen/lib/mirrors/generic_type_mirror_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698