Index: test/codegen/lib/mirrors/class_mirror_type_variables_expect.dart |
diff --git a/test/codegen/lib/mirrors/class_mirror_type_variables_expect.dart b/test/codegen/lib/mirrors/class_mirror_type_variables_expect.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..00c51249663dd855494471f75d2b7dfe321db8fd |
--- /dev/null |
+++ b/test/codegen/lib/mirrors/class_mirror_type_variables_expect.dart |
@@ -0,0 +1,131 @@ |
+// 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. |
+ |
+// Test expectations for 'class_mirror_type_variables_data.dart'. |
+ |
+library class_mirror_type_variables_expect; |
+ |
+import "dart:mirrors"; |
+ |
+import "package:expect/expect.dart"; |
+ |
+ |
+/// The interface of [Env] is shared between the runtime and the source mirrors |
+/// test. |
+abstract class Env { |
+ ClassMirror getA(); |
+ ClassMirror getB(); |
+ ClassMirror getC(); |
+ ClassMirror getD(); |
+ ClassMirror getE(); |
+ ClassMirror getF(); |
+ ClassMirror getNoTypeParams(); |
+ ClassMirror getObject(); |
+ ClassMirror getString(); |
+ ClassMirror getHelperOfString(); |
+} |
+ |
+void test(Env env) { |
+ testNoTypeParams(env); |
+ testA(env); |
+ testBAndC(env); |
+ testD(env); |
+ testE(env); |
+ testF(env); |
+} |
+ |
+testNoTypeParams(Env env) { |
+ ClassMirror cm = env.getNoTypeParams(); |
+ Expect.equals(cm.typeVariables.length, 0); |
+} |
+ |
+void testA(Env env) { |
+ ClassMirror a = env.getA(); |
+ Expect.equals(2, a.typeVariables.length); |
+ |
+ TypeVariableMirror aT = a.typeVariables[0]; |
+ TypeVariableMirror aS = a.typeVariables[1]; |
+ ClassMirror aTBound = aT.upperBound; |
+ ClassMirror aSBound = aS.upperBound; |
+ |
+ Expect.isTrue(aTBound.isOriginalDeclaration); |
+ Expect.isTrue(aSBound.isOriginalDeclaration); |
+ |
+ Expect.equals(env.getObject(), aTBound); |
+ Expect.equals(env.getString(), aSBound); |
+} |
+ |
+void testBAndC(Env env) { |
+ ClassMirror b = env.getB(); |
+ ClassMirror c = env.getC(); |
+ |
+ Expect.equals(1, b.typeVariables.length); |
+ Expect.equals(1, c.typeVariables.length); |
+ |
+ TypeVariableMirror bZ = b.typeVariables[0]; |
+ TypeVariableMirror cZ = c.typeVariables[0]; |
+ ClassMirror bZBound = bZ.upperBound; |
+ ClassMirror cZBound = cZ.upperBound; |
+ |
+ Expect.isFalse(bZBound.isOriginalDeclaration); |
+ Expect.isFalse(cZBound.isOriginalDeclaration); |
+ |
+ Expect.notEquals(bZBound, cZBound); |
+ Expect.equals(b, bZBound.originalDeclaration); |
+ Expect.equals(b, cZBound.originalDeclaration); |
+ |
+ TypeMirror bZBoundTypeArgument = bZBound.typeArguments.single; |
+ TypeMirror cZBoundTypeArgument = cZBound.typeArguments.single; |
+ TypeVariableMirror bZBoundTypeVariable = bZBound.typeVariables.single; |
+ TypeVariableMirror cZBoundTypeVariable = cZBound.typeVariables.single; |
+ |
+ Expect.equals(b, bZ.owner); |
+ Expect.equals(c, cZ.owner); |
+ Expect.equals(b, bZBoundTypeVariable.owner); |
+ Expect.equals(b, cZBoundTypeVariable.owner); |
+ Expect.equals(b, bZBoundTypeArgument.owner); |
+ Expect.equals(c, cZBoundTypeArgument.owner); |
+ |
+ Expect.notEquals(bZ, cZ); |
+ Expect.equals(bZ, bZBoundTypeArgument); |
+ Expect.equals(cZ, cZBoundTypeArgument); |
+ Expect.equals(bZ, bZBoundTypeVariable); |
+ Expect.equals(bZ, cZBoundTypeVariable); |
+} |
+ |
+testD(Env env) { |
+ ClassMirror cm = env.getD(); |
+ Expect.equals(3, cm.typeVariables.length); |
+ var values = cm.typeVariables; |
+ values.forEach((e) { |
+ Expect.equals(true, e is TypeVariableMirror); |
+ }); |
+ Expect.equals(#R, values.elementAt(0).simpleName); |
+ Expect.equals(#S, values.elementAt(1).simpleName); |
+ Expect.equals(#T, values.elementAt(2).simpleName); |
+} |
+ |
+void testE(Env env) { |
+ ClassMirror e = env.getE(); |
+ TypeVariableMirror eR = e.typeVariables.single; |
+ ClassMirror mapRAndHelperOfString = eR.upperBound; |
+ |
+ Expect.isFalse(mapRAndHelperOfString.isOriginalDeclaration); |
+ Expect.equals(eR, mapRAndHelperOfString.typeArguments.first); |
+ Expect.equals(env.getHelperOfString(), |
+ mapRAndHelperOfString.typeArguments.last); |
+} |
+ |
+void testF(Env env) { |
+ ClassMirror f = env.getF(); |
+ TypeVariableMirror fZ = f.typeVariables[0]; |
+ ClassMirror fZBound = fZ.upperBound; |
+ ClassMirror fZBoundTypeArgument = fZBound.typeArguments.single; |
+ |
+ Expect.equals(1, f.typeVariables.length); |
+ Expect.isFalse(fZBound.isOriginalDeclaration); |
+ Expect.isFalse(fZBoundTypeArgument.isOriginalDeclaration); |
+ Expect.equals(f, fZBoundTypeArgument.originalDeclaration); |
+ Expect.equals(fZ, fZBoundTypeArgument.typeArguments.single); |
+} |