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

Side by Side Diff: test/codegen/lib/mirrors/immutable_collections_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 library test.immutable_collections;
6
7 import 'dart:mirrors';
8 import 'package:expect/expect.dart';
9
10 someException(e) => e is Exception || e is Error;
11
12 checkList(Iterable l, String reason) {
13 Expect.throws(() => l[0] = 'value', someException, reason);
14 Expect.throws(() => l.add('value'), someException, reason);
15 Expect.throws(() => l.clear(), someException, reason);
16 }
17
18 checkMap(Map m, String reason) {
19 Expect.throws(() => m[#key] = 'value', someException, reason);
20 checkList(m.keys, '$reason keys');
21 checkList(m.values, '$reason values');
22 }
23
24 checkVariable(VariableMirror vm) {
25 checkList(vm.metadata, 'VariableMirror.metadata');
26 }
27
28 checkTypeVariable(TypeVariableMirror tvm) {
29 checkList(tvm.metadata, 'TypeVariableMirror.metadata');
30 }
31
32 checkParameter(ParameterMirror pm) {
33 checkList(pm.metadata, 'ParameterMirror.metadata');
34 }
35
36 checkMethod(MethodMirror mm) {
37 checkList(mm.parameters, 'MethodMirror.parameters');
38 checkList(mm.metadata, 'MethodMirror.metadata');
39
40 mm.parameters.forEach(checkParameter);
41 }
42
43 checkClass(ClassMirror cm) {
44 checkMap(cm.declarations, 'ClassMirror.declarations');
45 checkMap(cm.instanceMembers, 'ClassMirror.instanceMembers');
46 checkMap(cm.staticMembers, 'ClassMirror.staticMembers');
47 checkList(cm.metadata, 'ClassMirror.metadata');
48 checkList(cm.superinterfaces, 'ClassMirror.superinterfaces');
49 checkList(cm.typeArguments, 'ClassMirror.typeArguments');
50 checkList(cm.typeVariables, 'ClassMirror.typeVariables');
51
52 cm.declarations.values.forEach(checkDeclaration);
53 cm.instanceMembers.values.forEach(checkDeclaration);
54 cm.staticMembers.values.forEach(checkDeclaration);
55 cm.typeVariables.forEach(checkTypeVariable);
56 }
57
58 checkType(TypeMirror tm) {
59 checkList(tm.metadata, 'TypeMirror.metadata');
60 }
61
62 checkDeclaration(DeclarationMirror dm) {
63 if (dm is MethodMirror) checkMethod(dm);
64 if (dm is ClassMirror) checkClass(dm);
65 if (dm is TypeMirror) checkType(dm);
66 if (dm is VariableMirror) checkVariable(dm);
67 if (dm is TypeVariableMirror) checkTypeVariable(dm);
68 }
69
70 checkLibrary(LibraryMirror lm) {
71 checkMap(lm.declarations, 'LibraryMirror.declarations');
72 checkList(lm.metadata, 'LibraryMirror.metadata');
73
74 lm.declarations.values.forEach(checkDeclaration);
75 }
76
77 main() {
78 currentMirrorSystem().libraries.values.forEach(checkLibrary);
79 checkType(currentMirrorSystem().voidType);
80 checkType(currentMirrorSystem().dynamicType);
81 }
OLDNEW
« no previous file with comments | « test/codegen/lib/mirrors/hot_set_field_test.dart ('k') | test/codegen/lib/mirrors/inference_and_no_such_method_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698