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

Side by Side Diff: dart/tests/lib/mirrors/mixin_members_test.dart

Issue 23226002: Implement ClassMirror.superinterfaces. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address comments Created 7 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 | Annotate | Revision Log
« no previous file with comments | « dart/tests/lib/mirrors/hierarchy_test.dart ('k') | dart/tests/lib/mirrors/mixin_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 mixin_members_test;
6
7 // TODO(ahe): Don't add mirrors used, the test doesn't work without it.
8 @MirrorsUsed(targets: 'mixin_members_test', override: '*')
5 import "dart:mirrors"; 9 import "dart:mirrors";
6 10
7 import "package:expect/expect.dart"; 11 import "package:expect/expect.dart";
8 12
13 import 'stringify.dart';
14
9 class Fooer { 15 class Fooer {
10 foo1(); 16 foo1();
11 } 17 }
12 18
13 class S implements Fooer { 19 class S implements Fooer {
14 foo1() {} 20 foo1() {}
15 foo2() {} 21 foo2() {}
16 } 22 }
17 23
18 class M1 { 24 class M1 {
19 bar1() {} 25 bar1() {}
20 bar2() {} 26 bar2() {}
21 } 27 }
22 28
23 class M2 { 29 class M2 {
24 baz1() {} 30 baz1() {}
25 baz2() {} 31 baz2() {}
26 } 32 }
27 33
28 class C extends S with M1, M2 {} 34 class C extends S with M1, M2 {}
29 35
30 main() { 36 main() {
31 ClassMirror cm = reflectClass(C); 37 ClassMirror cm = reflectClass(C);
32 Classmirror sM1M2 = cm.superclass; 38 ClassMirror sM1M2 = cm.superclass;
33 Classmirror sM1 = sM1M2.superclass; 39 ClassMirror sM1 = sM1M2.superclass;
34 ClassMirror s = sM1.superclass; 40 ClassMirror s = sM1.superclass;
35 Expect.equals(0, cm.members.length); 41 expect('{}', cm.members);
36 Expect.setEquals(sM1M2.members.keys, 42 expect('[s(baz1), s(baz2)]',
37 [const Symbol("baz1"), const Symbol("baz2")]); 43 // TODO(ahe): Shouldn't have to sort.
38 Expect.setEquals(sM1M2.superinterfaces.map((e) => e.simpleName), 44 sort(sM1M2.members.keys),
39 [const Symbol("M2")]); 45 '(S with M1, M2).members');
40 Expect.setEquals(sM1.members.keys, 46 expect('[s(M2)]', simpleNames(sM1M2.superinterfaces),
41 [const Symbol("bar1"), const Symbol("bar2")]); 47 '(S with M1, M2).superinterfaces');
42 Expect.setEquals(sM1.superinterfaces.map((e) => e.simpleName), 48 expect('[s(bar1), s(bar2)]',
43 [const Symbol("M1")]); 49 // TODO(ahe): Shouldn't have to sort.
44 Expect.setEquals(s.members.keys.toSet(), 50 sort(sM1.members.keys), '(S with M1).members');
45 [const Symbol("foo1"), const Symbol("foo2")]); 51 expect('[s(M1)]', simpleNames(sM1.superinterfaces),
46 Expect.setEquals(s.superinterfaces.map((e) => e.simpleName), 52 '(S with M1).superinterfaces');
47 [const Symbol("Fooer")]); 53 expect('[s(foo1), s(foo2)]',
48 Expect.equals(true, reflectClass(S) == s); 54 // TODO(ahe): Shouldn't have to sort.
55 sort(s.members.keys), 's.members');
56 expect('[s(Fooer)]', simpleNames(s.superinterfaces), 's.superinterfaces');
57 Expect.equals(s, reflectClass(S));
49 } 58 }
OLDNEW
« no previous file with comments | « dart/tests/lib/mirrors/hierarchy_test.dart ('k') | dart/tests/lib/mirrors/mixin_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698