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

Side by Side Diff: test/codegen/lib/mirrors/parameter_metadata_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.parameter_metadata_test;
6
7 import 'dart:mirrors';
8
9 import 'metadata_test.dart';
10
11 const m1 = 'm1';
12 const m2 = #m2;
13 const m3 = const CustomAnnotation(3);
14
15 class CustomAnnotation {
16 final value;
17 const CustomAnnotation(this.value);
18 toString() => 'CustomAnnotation($value)';
19 }
20
21 class B {
22 B.foo(int x) {}
23 factory B.bar(@m3 @m2 int z, x) {}
24
25 baz(@m1 final int x, @m2 int y, @m3 final int z) {}
26 qux(int x, [@m3 @m2 @m1 int y= 3 + 1]) {}
27 quux(int x, {String str: "foo"}) {}
28 corge({@m1 int x: 3 * 17, @m2 String str: "bar"}) {}
29
30 set x(@m2 final value) {}
31 }
32
33 main() {
34 ClassMirror cm = reflectClass(B);
35 MethodMirror mm;
36
37 mm = cm.declarations[#B.foo];
38 checkMetadata(mm.parameters[0], []);
39
40 mm = cm.declarations[#B.bar];
41 checkMetadata(mm.parameters[0], [m3, m2]);
42 checkMetadata(mm.parameters[1], []);
43
44 mm = cm.declarations[#baz];
45 checkMetadata(mm.parameters[0], [m1]);
46 checkMetadata(mm.parameters[1], [m2]);
47 checkMetadata(mm.parameters[2], [m3]);
48
49 mm = cm.declarations[#qux];
50 checkMetadata(mm.parameters[0], []);
51 checkMetadata(mm.parameters[1], [m3, m2, m1]);
52
53 mm = cm.declarations[#quux];
54 checkMetadata(mm.parameters[0], []);
55 checkMetadata(mm.parameters[1], []);
56
57 mm = cm.declarations[#corge];
58 checkMetadata(mm.parameters[0], [m1]);
59 checkMetadata(mm.parameters[1], [m2]);
60
61 mm = cm.declarations[const Symbol('x=')];
62 checkMetadata(mm.parameters[0], [m2]);
63 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698