Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 // This tests uses the multi-test "ok" feature: | 5 // This tests uses the multi-test "ok" feature: |
| 6 // none: Desired behaviour, passing on the VM. | 6 // none: Desired behaviour, passing on the VM. |
| 7 // 01: Trimmed version for dart2js. | 7 // 01: Trimmed version for dart2js. |
| 8 // | 8 // |
| 9 // TODO(rmacnak,ahe): Remove multi-test when VM and dart2js are on par. | 9 // TODO(rmacnak,ahe): Remove multi-test when VM and dart2js are on par. |
| 10 | 10 |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 41 // TODO(6490): Currently only supported by the VM. | 41 // TODO(6490): Currently only supported by the VM. |
| 42 foo(int a, S b) => b; | 42 foo(int a, S b) => b; |
| 43 bar(S a, T b, num c) {} | 43 bar(S a, T b, num c) {} |
| 44 } | 44 } |
| 45 | 45 |
| 46 main() { | 46 main() { |
| 47 ClassMirror cm = reflectClass(B); | 47 ClassMirror cm = reflectClass(B); |
| 48 Map<Symbol, MethodMirror> constructors = cm.constructors; | 48 Map<Symbol, MethodMirror> constructors = cm.constructors; |
| 49 | 49 |
| 50 List<Symbol> constructorKeys = [ | 50 List<Symbol> constructorKeys = [ |
| 51 const Symbol('B'), const Symbol('B.bar'), const Symbol('B.baz'), | 51 #B, #B.bar, #B.baz, |
|
Michael Lippautz (Google)
2013/09/20 21:11:16
fits on one line?
| |
| 52 const Symbol('B.foo'), const Symbol('B.quux'), const Symbol('B.qux'), | 52 #B.foo, #B.quux, #B.qux, |
| 53 const Symbol('B.corge')]; | 53 #B.corge]; |
| 54 Expect.setEquals(constructorKeys, constructors.keys); | 54 Expect.setEquals(constructorKeys, constructors.keys); |
| 55 | 55 |
| 56 MethodMirror unnamedConstructor = constructors[const Symbol('B')]; | 56 MethodMirror unnamedConstructor = constructors[#B]; |
| 57 expect('Method(s(B) in s(B), constructor)', unnamedConstructor); | 57 expect('Method(s(B) in s(B), constructor)', unnamedConstructor); |
| 58 expect('[]', unnamedConstructor.parameters); | 58 expect('[]', unnamedConstructor.parameters); |
| 59 expect('Class(s(B) in s(test.parameter_test), top-level)', | 59 expect('Class(s(B) in s(test.parameter_test), top-level)', |
| 60 unnamedConstructor.returnType); | 60 unnamedConstructor.returnType); |
| 61 | 61 |
| 62 MethodMirror fooConstructor = constructors[const Symbol('B.foo')]; | 62 MethodMirror fooConstructor = constructors[#B.foo]; |
| 63 expect('Method(s(B.foo) in s(B), constructor)', fooConstructor); | 63 expect('Method(s(B.foo) in s(B), constructor)', fooConstructor); |
| 64 expect('[Parameter(s(x) in s(B.foo),' | 64 expect('[Parameter(s(x) in s(B.foo),' |
| 65 ' type = Class(s(int) in s(dart.core), top-level))]', | 65 ' type = Class(s(int) in s(dart.core), top-level))]', |
| 66 fooConstructor.parameters); | 66 fooConstructor.parameters); |
| 67 expect('Class(s(B) in s(test.parameter_test), top-level)', | 67 expect('Class(s(B) in s(test.parameter_test), top-level)', |
| 68 fooConstructor.returnType); | 68 fooConstructor.returnType); |
| 69 | 69 |
| 70 MethodMirror barConstructor = constructors[const Symbol('B.bar')]; | 70 MethodMirror barConstructor = constructors[#B.bar]; |
| 71 expect('Method(s(B.bar) in s(B), constructor)', barConstructor); | 71 expect('Method(s(B.bar) in s(B), constructor)', barConstructor); |
| 72 expect('[Parameter(s(z) in s(B.bar),' | 72 expect('[Parameter(s(z) in s(B.bar),' |
| 73 ' type = Class(s(int) in s(dart.core), top-level)), ' | 73 ' type = Class(s(int) in s(dart.core), top-level)), ' |
| 74 'Parameter(s(x) in s(B.bar),' | 74 'Parameter(s(x) in s(B.bar),' |
| 75 ' type = Type(s(dynamic), top-level))]', | 75 ' type = Type(s(dynamic), top-level))]', |
| 76 barConstructor.parameters); | 76 barConstructor.parameters); |
| 77 expect('Class(s(B) in s(test.parameter_test), top-level)', | 77 expect('Class(s(B) in s(test.parameter_test), top-level)', |
| 78 barConstructor.returnType); | 78 barConstructor.returnType); |
| 79 | 79 |
| 80 // dart2js stops testing here. | 80 // dart2js stops testing here. |
| 81 return; /// 01: ok | 81 return; /// 01: ok |
| 82 | 82 |
| 83 MethodMirror bazConstructor = constructors[const Symbol('B.baz')]; | 83 MethodMirror bazConstructor = constructors[#B.baz]; |
| 84 expect('Method(s(B.baz) in s(B), constructor)', bazConstructor); | 84 expect('Method(s(B.baz) in s(B), constructor)', bazConstructor); |
| 85 expect('[Parameter(s(x) in s(B.baz), final,' | 85 expect('[Parameter(s(x) in s(B.baz), final,' |
| 86 ' type = Class(s(int) in s(dart.core), top-level)), ' | 86 ' type = Class(s(int) in s(dart.core), top-level)), ' |
| 87 'Parameter(s(y) in s(B.baz),' | 87 'Parameter(s(y) in s(B.baz),' |
| 88 ' type = Class(s(int) in s(dart.core), top-level)), ' | 88 ' type = Class(s(int) in s(dart.core), top-level)), ' |
| 89 'Parameter(s(z) in s(B.baz), final,' | 89 'Parameter(s(z) in s(B.baz), final,' |
| 90 ' type = Class(s(int) in s(dart.core), top-level))]', | 90 ' type = Class(s(int) in s(dart.core), top-level))]', |
| 91 bazConstructor.parameters); | 91 bazConstructor.parameters); |
| 92 expect('Class(s(B) in s(test.parameter_test), top-level)', | 92 expect('Class(s(B) in s(test.parameter_test), top-level)', |
| 93 bazConstructor.returnType); | 93 bazConstructor.returnType); |
| 94 | 94 |
| 95 MethodMirror quxConstructor = constructors[const Symbol('B.qux')]; | 95 MethodMirror quxConstructor = constructors[#B.qux]; |
| 96 expect('Method(s(B.qux) in s(B), constructor)', quxConstructor); | 96 expect('Method(s(B.qux) in s(B), constructor)', quxConstructor); |
| 97 expect('[Parameter(s(x) in s(B.qux),' | 97 expect('[Parameter(s(x) in s(B.qux),' |
| 98 ' type = Class(s(int) in s(dart.core), top-level)), ' | 98 ' type = Class(s(int) in s(dart.core), top-level)), ' |
| 99 'Parameter(s(y) in s(B.qux), optional,' | 99 'Parameter(s(y) in s(B.qux), optional,' |
| 100 ' value = Instance(value = 4),' | 100 ' value = Instance(value = 4),' |
| 101 ' type = Class(s(int) in s(dart.core), top-level))]', | 101 ' type = Class(s(int) in s(dart.core), top-level))]', |
| 102 quxConstructor.parameters); | 102 quxConstructor.parameters); |
| 103 expect('Class(s(B) in s(test.parameter_test), top-level)', | 103 expect('Class(s(B) in s(test.parameter_test), top-level)', |
| 104 quxConstructor.returnType); | 104 quxConstructor.returnType); |
| 105 | 105 |
| 106 MethodMirror quuxConstructor = constructors[const Symbol('B.quux')]; | 106 MethodMirror quuxConstructor = constructors[#B.quux]; |
| 107 expect('Method(s(B.quux) in s(B), constructor)', quuxConstructor); | 107 expect('Method(s(B.quux) in s(B), constructor)', quuxConstructor); |
| 108 expect('[Parameter(s(x) in s(B.quux),' | 108 expect('[Parameter(s(x) in s(B.quux),' |
| 109 ' type = Class(s(int) in s(dart.core), top-level)), ' | 109 ' type = Class(s(int) in s(dart.core), top-level)), ' |
| 110 'Parameter(s(str) in s(B.quux), optional, named,' | 110 'Parameter(s(str) in s(B.quux), optional, named,' |
| 111 ' value = Instance(value = foo),' | 111 ' value = Instance(value = foo),' |
| 112 ' type = Class(s(String) in s(dart.core), top-level))]', | 112 ' type = Class(s(String) in s(dart.core), top-level))]', |
| 113 quuxConstructor.parameters); | 113 quuxConstructor.parameters); |
| 114 expect('Class(s(B) in s(test.parameter_test), top-level)', | 114 expect('Class(s(B) in s(test.parameter_test), top-level)', |
| 115 quuxConstructor.returnType); | 115 quuxConstructor.returnType); |
| 116 | 116 |
| 117 MethodMirror corgeConstructor = constructors[const Symbol('B.corge')]; | 117 MethodMirror corgeConstructor = constructors[#B.corge]; |
| 118 expect('Method(s(B.corge) in s(B), constructor)', corgeConstructor); | 118 expect('Method(s(B.corge) in s(B), constructor)', corgeConstructor); |
| 119 expect('[Parameter(s(x) in s(B.corge), optional, named,' | 119 expect('[Parameter(s(x) in s(B.corge), optional, named,' |
| 120 ' value = Instance(value = 51),' | 120 ' value = Instance(value = 51),' |
| 121 ' type = Class(s(int) in s(dart.core), top-level)), ' | 121 ' type = Class(s(int) in s(dart.core), top-level)), ' |
| 122 'Parameter(s(str) in s(B.corge), optional, named,' | 122 'Parameter(s(str) in s(B.corge), optional, named,' |
| 123 ' value = Instance(value = bar),' | 123 ' value = Instance(value = bar),' |
| 124 ' type = Class(s(String) in s(dart.core), top-level))]', | 124 ' type = Class(s(String) in s(dart.core), top-level))]', |
| 125 corgeConstructor.parameters); | 125 corgeConstructor.parameters); |
| 126 expect('Class(s(B) in s(test.parameter_test), top-level)', | 126 expect('Class(s(B) in s(test.parameter_test), top-level)', |
| 127 corgeConstructor.returnType); | 127 corgeConstructor.returnType); |
| 128 | 128 |
| 129 MethodMirror xGetter = cm.getters[const Symbol('x')]; | 129 MethodMirror xGetter = cm.getters[#x]; |
| 130 expect('Method(s(x) in s(B), getter)', xGetter); | 130 expect('Method(s(x) in s(B), getter)', xGetter); |
| 131 expect('[]', xGetter.parameters); | 131 expect('[]', xGetter.parameters); |
| 132 | 132 |
| 133 MethodMirror xSetter = cm.setters[const Symbol('x=')]; | 133 MethodMirror xSetter = cm.setters[const Symbol('x=')]; |
| 134 expect('Method(s(x=) in s(B), setter)', xSetter); | 134 expect('Method(s(x=) in s(B), setter)', xSetter); |
| 135 expect('[Parameter(s(value) in s(x=), final,' | 135 expect('[Parameter(s(value) in s(x=), final,' |
| 136 ' type = Type(s(dynamic), top-level))]', | 136 ' type = Type(s(dynamic), top-level))]', |
| 137 xSetter.parameters); | 137 xSetter.parameters); |
| 138 | 138 |
| 139 MethodMirror grault = cm.members[const Symbol("grault")]; | 139 MethodMirror grault = cm.members[#grault]; |
| 140 expect('Method(s(grault) in s(B))', grault); | 140 expect('Method(s(grault) in s(B))', grault); |
| 141 expect('[Parameter(s(x) in s(grault), optional,' | 141 expect('[Parameter(s(x) in s(grault), optional,' |
| 142 ' type = Class(s(int) in s(dart.core), top-level))]', | 142 ' type = Class(s(int) in s(dart.core), top-level))]', |
| 143 grault.parameters); | 143 grault.parameters); |
| 144 expect('Instance(value = <null>)', grault.parameters[0].defaultValue); | 144 expect('Instance(value = <null>)', grault.parameters[0].defaultValue); |
| 145 | 145 |
| 146 MethodMirror garply = cm.members[const Symbol("garply")]; | 146 MethodMirror garply = cm.members[#garply]; |
| 147 expect('Method(s(garply) in s(B))', garply); | 147 expect('Method(s(garply) in s(B))', garply); |
| 148 expect('[Parameter(s(y) in s(garply), optional, named,' | 148 expect('[Parameter(s(y) in s(garply), optional, named,' |
| 149 ' type = Class(s(int) in s(dart.core), top-level))]', | 149 ' type = Class(s(int) in s(dart.core), top-level))]', |
| 150 garply.parameters); | 150 garply.parameters); |
| 151 expect('Instance(value = <null>)', garply.parameters[0].defaultValue); | 151 expect('Instance(value = <null>)', garply.parameters[0].defaultValue); |
| 152 | 152 |
| 153 MethodMirror waldo = cm.members[const Symbol("waldo")]; | 153 MethodMirror waldo = cm.members[#waldo]; |
| 154 expect('Method(s(waldo) in s(B))', waldo); | 154 expect('Method(s(waldo) in s(B))', waldo); |
| 155 expect('[Parameter(s(z) in s(waldo),' | 155 expect('[Parameter(s(z) in s(waldo),' |
| 156 ' type = Class(s(int) in s(dart.core), top-level))]', | 156 ' type = Class(s(int) in s(dart.core), top-level))]', |
| 157 waldo.parameters); | 157 waldo.parameters); |
| 158 expect('<null>', waldo.parameters[0].defaultValue); | 158 expect('<null>', waldo.parameters[0].defaultValue); |
| 159 | 159 |
| 160 cm = reflectClass(C); | 160 cm = reflectClass(C); |
| 161 | 161 |
| 162 MethodMirror fooInC = cm.members[const Symbol("foo")]; | 162 MethodMirror fooInC = cm.members[#foo]; |
| 163 expect('Method(s(foo) in s(C))', fooInC); | 163 expect('Method(s(foo) in s(C))', fooInC); |
| 164 expect('[Parameter(s(a) in s(foo),' | 164 expect('[Parameter(s(a) in s(foo),' |
| 165 ' type = Class(s(int) in s(dart.core), top-level)), ' | 165 ' type = Class(s(int) in s(dart.core), top-level)), ' |
| 166 'Parameter(s(b) in s(foo),' | 166 'Parameter(s(b) in s(foo),' |
| 167 ' type = TypeVariable(s(S) in s(C),' | 167 ' type = TypeVariable(s(S) in s(C),' |
| 168 ' upperBound = Class(s(int) in s(dart.core), top-level)))]', | 168 ' upperBound = Class(s(int) in s(dart.core), top-level)))]', |
| 169 fooInC.parameters); | 169 fooInC.parameters); |
| 170 | 170 |
| 171 MethodMirror barInC = cm.members[const Symbol("bar")]; | 171 MethodMirror barInC = cm.members[#bar]; |
| 172 expect('Method(s(bar) in s(C))', barInC); | 172 expect('Method(s(bar) in s(C))', barInC); |
| 173 expect('[Parameter(s(a) in s(bar),' | 173 expect('[Parameter(s(a) in s(bar),' |
| 174 ' type = TypeVariable(s(S) in s(C),' | 174 ' type = TypeVariable(s(S) in s(C),' |
| 175 ' upperBound = Class(s(int) in s(dart.core), top-level))), ' | 175 ' upperBound = Class(s(int) in s(dart.core), top-level))), ' |
| 176 'Parameter(s(b) in s(bar),' | 176 'Parameter(s(b) in s(bar),' |
| 177 ' type = TypeVariable(s(T) in s(C),' | 177 ' type = TypeVariable(s(T) in s(C),' |
| 178 ' upperBound = Class(s(Object) in s(dart.core), top-level))), ' | 178 ' upperBound = Class(s(Object) in s(dart.core), top-level))), ' |
| 179 'Parameter(s(c) in s(bar),' | 179 'Parameter(s(c) in s(bar),' |
| 180 ' type = Class(s(num) in s(dart.core), top-level))]', | 180 ' type = Class(s(num) in s(dart.core), top-level))]', |
| 181 barInC.parameters); | 181 barInC.parameters); |
| 182 } | 182 } |
| OLD | NEW |