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

Unified Diff: test/codegen/lib/mirrors/initializing_formals_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 side-by-side diff with in-line comments
Download patch
Index: test/codegen/lib/mirrors/initializing_formals_test.dart
diff --git a/test/codegen/lib/mirrors/initializing_formals_test.dart b/test/codegen/lib/mirrors/initializing_formals_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..cbb08123efb448d9580384aec55935d6a79b8eaa
--- /dev/null
+++ b/test/codegen/lib/mirrors/initializing_formals_test.dart
@@ -0,0 +1,158 @@
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library test.initializing_formals;
+
+import 'dart:mirrors';
+import 'package:expect/expect.dart';
+
+class Class<T> {
+ int intField;
+ bool boolField;
+ String stringField;
+ T tField;
+ dynamic _privateField;
+
+ Class.nongeneric(this.intField);
+ Class.named({this.boolField});
+ Class.optPos([this.stringField = 'default']);
+ Class.generic(this.tField);
+ Class.private(this._privateField);
+
+ Class.explicitType(num this.intField);
+ Class.withVar(var this.intField);
+ Class.withDynamic(dynamic this.intField);
+}
+
+class Constant {
+ final num value;
+ const Constant(this.value);
+ const Constant.marked(final this.value);
+}
+
+main() {
+ MethodMirror mm;
+ ParameterMirror pm;
+
+ mm = reflectClass(Class).declarations[#Class.nongeneric];
+ pm = mm.parameters.single;
+ Expect.equals(#intField, pm.simpleName);
+ Expect.equals(reflectClass(int), pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Class).declarations[#Class.named];
+ pm = mm.parameters.single;
+ Expect.equals(#boolField, pm.simpleName);
+ Expect.equals(reflectClass(bool), pm.type);
+ Expect.isTrue(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isTrue(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Class).declarations[#Class.optPos];
+ pm = mm.parameters.single;
+ Expect.equals(#stringField, pm.simpleName);
+ Expect.equals(reflectClass(String), pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isTrue(pm.isOptional); /// 01: ok
+ Expect.isTrue(pm.hasDefaultValue); /// 01: ok
+ Expect.equals('default', pm.defaultValue.reflectee); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Class).declarations[#Class.generic];
+ pm = mm.parameters.single;
+ Expect.equals(#tField, pm.simpleName);
+ Expect.equals(reflectClass(Class).typeVariables.single, pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Class).declarations[#Class.private];
+ pm = mm.parameters.single;
+ Expect.equals(#_privateField, pm.simpleName); /// 03: ok
+ Expect.equals(currentMirrorSystem().dynamicType, pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isTrue(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Class).declarations[#Class.explicitType];
+ pm = mm.parameters.single;
+ Expect.equals(#intField, pm.simpleName);
+ Expect.equals(reflectClass(num), pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Class).declarations[#Class.withVar];
+ pm = mm.parameters.single;
+ Expect.equals(#intField, pm.simpleName);
+ Expect.equals(reflectClass(int), pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Class).declarations[#Class.withDynamic];
+ pm = mm.parameters.single;
+ Expect.equals(#intField, pm.simpleName);
+ Expect.equals(currentMirrorSystem().dynamicType, pm.type); // N.B.
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Constant).declarations[#Constant];
+ pm = mm.parameters.single;
+ Expect.equals(#value, pm.simpleName);
+ Expect.equals(reflectClass(num), pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isFalse(pm.isFinal); // N.B. /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+
+ mm = reflectClass(Constant).declarations[#Constant.marked];
+ pm = mm.parameters.single;
+ Expect.equals(#value, pm.simpleName);
+ Expect.equals(reflectClass(num), pm.type);
+ Expect.isFalse(pm.isNamed); /// 01: ok
+ Expect.isTrue(pm.isFinal); // N.B. /// 01: ok
+ Expect.isFalse(pm.isOptional); /// 01: ok
+ Expect.isFalse(pm.hasDefaultValue); /// 01: ok
+ Expect.isFalse(pm.isPrivate);
+ Expect.isFalse(pm.isStatic);
+ Expect.isFalse(pm.isTopLevel);
+}
« no previous file with comments | « test/codegen/lib/mirrors/inherited_metadata_test.dart ('k') | test/codegen/lib/mirrors/instance_members_easier_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698