Index: frog/tests/leg_only/naming_test.dart |
=================================================================== |
--- frog/tests/leg_only/naming_test.dart (revision 8644) |
+++ frog/tests/leg_only/naming_test.dart (working copy) |
@@ -1,526 +0,0 @@ |
-// Copyright (c) 2012, 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. |
- |
-// TODO(ahe): This is a copy of |
-// ../../../../tests/language/src/NamingTest.dart and should be |
-// deleted when the one TODO below is addressed. |
- |
-class A { |
- A() { NamingTest.count++; } |
- foo(a, b) { |
- Expect.equals(1, a); |
- Expect.equals(2, b); |
- } |
-} |
- |
-class MyException { |
- MyException() {} |
-} |
- |
-class debugger { |
- static final int __PROTO__ = 5; |
- |
- int x; |
- |
- factory debugger.F() { |
- return new debugger(1); |
- } |
- debugger(x) : this.x = x + 1 { } |
- debugger.C(x) : this.x = x + 2 { } |
- debugger.C$C(x) : this.x = x + 3 { } |
- debugger.C$I(x) : this.x = x + 4 { } |
-} |
- |
-class debugger$C { |
- int x; |
- |
- factory debugger$C.F() { |
- return new debugger$C(1); |
- } |
- debugger$C(x) : this.x = x + 5 { } |
- debugger$C.C(x) : this.x = x + 6 { } |
- debugger$C.C$C(x) : this.x = x + 7 { } |
- debugger$C.C$I(x) : this.x = x + 8 { } |
-} |
- |
-class debugger$C$C { |
- int x; |
- |
- factory debugger$C$C.F() { |
- return new debugger$C$C(1); |
- } |
- debugger$C$C(x) : this.x = x + 9 { } |
- debugger$C$C.C(x) : this.x = x + 10 { } |
- debugger$C$C.C$C(x) : this.x = x + 11 { } |
- debugger$C$C.C$I(x) : this.x = x + 12 { } |
-} |
- |
-class with extends debugger$C { |
- int y; |
- |
- factory with.F() { |
- return new with(1, 2); |
- } |
- with(x, y) : super(x), this.y = y + 1 { } |
- with.I(x, y) : super.C(x), this.y = y + 2 { } |
- with.C(x, y) : super.C$C(x), this.y = y + 3 { } |
- with.I$C(x, y) : super.C$I(x), this.y = y + 4 { } |
- with.C$C(x, y) : super(x), this.y = y + 5 { } |
- with.C$C$C(x, y) : super.C(x), this.y = y + 6 { } |
- with.$C$I(x, y) : super.C$C(x), this.y = y + 7 { } |
- with.$$I$C(x, y) : super.C$I(x), this.y = y + 8 { } |
- with.$(x, y) : super(x), this.y = y + 9 { } |
- with.$$(x, y) : super.C(x), this.y = y + 10 { } |
-} |
- |
-class with$I extends debugger$C { |
- int y; |
- |
- factory with$I.F() { |
- return new with$I(1, 2); |
- } |
- with$I(x, y) : super(x), this.y = y + 11 { } |
- with$I.I(x, y) : super.C(x), this.y = y + 12 { } |
- with$I.C(x, y) : super.C$C(x), this.y = y + 13 { } |
- with$I.I$C(x, y) : super.C$I(x), this.y = y + 14 { } |
- with$I.C$C(x, y) : super(x), this.y = y + 15 { } |
- with$I.C$C$C(x, y) : super.C(x), this.y = y + 16 { } |
- with$I.$C$I(x, y) : super.C$C(x), this.y = y + 17 { } |
- with$I.$$I$C(x, y) : super.C$I(x), this.y = y + 18 { } |
- with$I.$(x, y) : super(x), this.y = y + 19 { } |
- with$I.$$(x, y) : super.C(x), this.y = y + 20 { } |
-} |
- |
-class with$C extends debugger$C$C { |
- int y; |
- |
- factory with$C.F() { |
- return new with$C(1, 2); |
- } |
- with$C(x, y) : super(x), this.y = y + 21 { } |
- with$C.I(x, y) : super.C(x), this.y = y + 22 { } |
- with$C.C(x, y) : super.C$C(x), this.y = y + 23 { } |
- with$C.I$C(x, y) : super.C$I(x), this.y = y + 24 { } |
- with$C.C$C(x, y) : super(x), this.y = y + 25 { } |
- with$C.C$C$C(x, y) : super.C(x), this.y = y + 26 { } |
- with$C.$C$I(x, y) : super.C$C(x), this.y = y + 27 { } |
- with$C.$$I$C(x, y) : super.C$I(x), this.y = y + 28 { } |
- with$C.$(x, y) : super(x), this.y = y + 29 { } |
- with$C.$$(x, y) : super.C(x), this.y = y + 30 { } |
-} |
- |
-class with$I$C extends debugger$C$C { |
- int y; |
- |
- factory with$I$C.F() { |
- return new with$I$C(1, 2); |
- } |
- with$I$C(x, y) : super(x), this.y = y + 31 { } |
- with$I$C.I(x, y) : super.C(x), this.y = y + 32 { } |
- with$I$C.C(x, y) : super.C$C(x), this.y = y + 33 { } |
- with$I$C.I$C(x, y) : super.C$I(x), this.y = y + 34 { } |
- with$I$C.C$C(x, y) : super(x), this.y = y + 35 { } |
- with$I$C.C$C$C(x, y) : super.C(x), this.y = y + 36 { } |
- with$I$C.$C$I(x, y) : super.C$C(x), this.y = y + 37 { } |
- with$I$C.$$I$C(x, y) : super.C$I(x), this.y = y + 38 { } |
- with$I$C.$(x, y) : super(x), this.y = y + 39 { } |
- with$I$C.$$(x, y) : super.C(x), this.y = y + 40 { } |
-} |
- |
-class Tata { |
- var prototype; |
- |
- Tata() : this.prototype = 0 {} |
- |
- __PROTO__$() { return 12; } |
-} |
- |
-class Toto extends Tata { |
- var __PROTO__; |
- |
- Toto() : super(), this.__PROTO__ = 0 { } |
- |
- prototype$() { return 10; } |
- |
- titi() { |
- Expect.equals(0, prototype); |
- Expect.equals(0, __PROTO__); |
- prototype = 3; |
- __PROTO__ = 5; |
- Expect.equals(3, prototype); |
- Expect.equals(5, __PROTO__); |
- Expect.equals(10, prototype$()); |
- Expect.equals(12, __PROTO__$()); |
- Expect.equals(12, this.__PROTO__$()); |
- Expect.equals(10, this.prototype$()); |
- Expect.equals(12, __PROTO__$()); |
- } |
-} |
- |
-class Bug4082360 { |
- int x_; |
- Bug4082360() {} |
- |
- int get x() { return x_; } |
- void set x(int value) { x_ = value; } |
- |
- void indirectSet(int value) { x = value; } |
- |
- static void test() { |
- var bug = new Bug4082360(); |
- bug.indirectSet(42); |
- Expect.equals(42, bug.x_); |
- Expect.equals(42, bug.x); |
- } |
-} |
- |
-class Hoisting { |
- var f_; |
- Hoisting.negate(var x) { |
- f_ = () { return x; }; |
- } |
- |
- operator negate() { |
- var x = 3; |
- return () { return x + 1; }; |
- } |
- |
- operator[] (x) { |
- return () { return x + 3; }; |
- } |
- |
- static void test() { |
- var h = new Hoisting.negate(1); |
- Expect.equals(1, (h.f_)()); |
- var f = -h; |
- Expect.equals(4, f()); |
- // TODO(floitsch): Investigate why this fails: |
- // Expect.equals(4, h.negate()()); |
- Expect.equals(7, h[4]()); |
- } |
-} |
- |
-// It is not possible to make sure that the backend uses the hardcoded names |
-// we are testing against. This test might therefore become rapidly out of date |
-class NamingTest { |
- static int count; |
- |
- static testExceptionNaming() { |
- // Exceptions use a hardcoded "e" as exception name. If the namer works |
- // correctly then it will be renamed in case of clashes. |
- var e = 3; |
- var caught = false; |
- try { |
- throw new MyException(); |
- } catch (var exc) { |
- try { |
- throw new MyException(); |
- } catch (var exc2) { |
- exc = 9; |
- } |
- Expect.equals(9, exc); |
- caught = true; |
- } |
- Expect.equals(true, caught); |
- Expect.equals(3, e); |
- } |
- |
- static testTmpNaming() { |
- Expect.equals(0, count); |
- var tmp$0 = 1; |
- var tmp$1 = 2; |
- new A().foo(tmp$0, tmp$1++); |
- Expect.equals(1, count); |
- Expect.equals(3, tmp$1); |
- } |
- |
- static testScopeNaming() { |
- // Alias scopes use a hardcoded "dartc_scp$<depth>" as names. |
- var dartc_scp$1 = 5; |
- var foo = 8; |
- var f = () { |
- var dartc_scp$1 = 15; |
- return foo + dartc_scp$1; |
- }; |
- Expect.equals(5, dartc_scp$1); |
- Expect.equals(23, f()); |
- } |
- |
- static testGlobalMangling() { |
- var x; |
- x = new debugger(0); |
- Expect.equals(1, x.x); |
- x = new debugger.C(0); |
- Expect.equals(2, x.x); |
- x = new debugger.C$C(0); |
- Expect.equals(3, x.x); |
- x = new debugger.C$I(0); |
- Expect.equals(4, x.x); |
- x = new debugger$C(0); |
- Expect.equals(5, x.x); |
- x = new debugger$C.C(0); |
- Expect.equals(6, x.x); |
- x = new debugger$C.C$C(0); |
- Expect.equals(7, x.x); |
- x = new debugger$C.C$I(0); |
- Expect.equals(8, x.x); |
- x = new debugger$C$C(0); |
- Expect.equals(9, x.x); |
- x = new debugger$C$C.C(0); |
- Expect.equals(10, x.x); |
- x = new debugger$C$C.C$C(0); |
- Expect.equals(11, x.x); |
- x = new debugger$C$C.C$I(0); |
- Expect.equals(12, x.x); |
- x = new with(0, 0); |
- Expect.equals(5, x.x); |
- Expect.equals(1, x.y); |
- x = new with.I(0, 0); |
- Expect.equals(6, x.x); |
- Expect.equals(2, x.y); |
- x = new with.C(0, 0); |
- Expect.equals(7, x.x); |
- Expect.equals(3, x.y); |
- x = new with.I$C(0, 0); |
- Expect.equals(8, x.x); |
- Expect.equals(4, x.y); |
- x = new with.C$C(0, 0); |
- Expect.equals(5, x.x); |
- Expect.equals(5, x.y); |
- x = new with.C$C$C(0, 0); |
- Expect.equals(6, x.x); |
- Expect.equals(6, x.y); |
- x = new with.$C$I(0, 0); |
- Expect.equals(7, x.x); |
- Expect.equals(7, x.y); |
- x = new with.$$I$C(0, 0); |
- Expect.equals(8, x.x); |
- Expect.equals(8, x.y); |
- x = new with.$(0, 0); |
- Expect.equals(5, x.x); |
- Expect.equals(9, x.y); |
- x = new with.$$(0, 0); |
- Expect.equals(6, x.x); |
- Expect.equals(10, x.y); |
- x = new with$I(0, 0); |
- Expect.equals(5, x.x); |
- Expect.equals(11, x.y); |
- x = new with$I.I(0, 0); |
- Expect.equals(6, x.x); |
- Expect.equals(12, x.y); |
- x = new with$I.C(0, 0); |
- Expect.equals(7, x.x); |
- Expect.equals(13, x.y); |
- x = new with$I.I$C(0, 0); |
- Expect.equals(8, x.x); |
- Expect.equals(14, x.y); |
- x = new with$I.C$C(0, 0); |
- Expect.equals(5, x.x); |
- Expect.equals(15, x.y); |
- x = new with$I.C$C$C(0, 0); |
- Expect.equals(6, x.x); |
- Expect.equals(16, x.y); |
- x = new with$I.$C$I(0, 0); |
- Expect.equals(7, x.x); |
- Expect.equals(17, x.y); |
- x = new with$I.$$I$C(0, 0); |
- Expect.equals(8, x.x); |
- Expect.equals(18, x.y); |
- x = new with$I.$(0, 0); |
- Expect.equals(5, x.x); |
- Expect.equals(19, x.y); |
- x = new with$I.$$(0, 0); |
- Expect.equals(6, x.x); |
- Expect.equals(20, x.y); |
- x = new with$C(0, 0); |
- Expect.equals(9, x.x); |
- Expect.equals(21, x.y); |
- x = new with$C.I(0, 0); |
- Expect.equals(10, x.x); |
- Expect.equals(22, x.y); |
- x = new with$C.C(0, 0); |
- Expect.equals(11, x.x); |
- Expect.equals(23, x.y); |
- x = new with$C.I$C(0, 0); |
- Expect.equals(12, x.x); |
- Expect.equals(24, x.y); |
- x = new with$C.C$C(0, 0); |
- Expect.equals(9, x.x); |
- Expect.equals(25, x.y); |
- x = new with$C.C$C$C(0, 0); |
- Expect.equals(10, x.x); |
- Expect.equals(26, x.y); |
- x = new with$C.$C$I(0, 0); |
- Expect.equals(11, x.x); |
- Expect.equals(27, x.y); |
- x = new with$C.$$I$C(0, 0); |
- Expect.equals(12, x.x); |
- Expect.equals(28, x.y); |
- x = new with$C.$(0, 0); |
- Expect.equals(9, x.x); |
- Expect.equals(29, x.y); |
- x = new with$C.$$(0, 0); |
- Expect.equals(10, x.x); |
- Expect.equals(30, x.y); |
- x = new with$I$C(0, 0); |
- Expect.equals(9, x.x); |
- Expect.equals(31, x.y); |
- x = new with$I$C.I(0, 0); |
- Expect.equals(10, x.x); |
- Expect.equals(32, x.y); |
- x = new with$I$C.C(0, 0); |
- Expect.equals(11, x.x); |
- Expect.equals(33, x.y); |
- x = new with$I$C.I$C(0, 0); |
- Expect.equals(12, x.x); |
- Expect.equals(34, x.y); |
- x = new with$I$C.C$C(0, 0); |
- Expect.equals(9, x.x); |
- Expect.equals(35, x.y); |
- x = new with$I$C.C$C$C(0, 0); |
- Expect.equals(10, x.x); |
- Expect.equals(36, x.y); |
- x = new with$I$C.$C$I(0, 0); |
- Expect.equals(11, x.x); |
- Expect.equals(37, x.y); |
- x = new with$I$C.$$I$C(0, 0); |
- Expect.equals(12, x.x); |
- Expect.equals(38, x.y); |
- x = new with$I$C.$(0, 0); |
- Expect.equals(9, x.x); |
- Expect.equals(39, x.y); |
- x = new with$I$C.$$(0, 0); |
- Expect.equals(10, x.x); |
- Expect.equals(40, x.y); |
- var wasCaught = false; |
- try { |
- throw new with(0, 0); |
- } catch(with e) { |
- wasCaught = true; |
- Expect.equals(5, e.x); |
- } |
- Expect.equals(true, wasCaught); |
- } |
- |
- static void testMemberMangling() { |
- Expect.equals(5, debugger.__PROTO__); |
- new Toto().titi(); |
- } |
- |
- static void testFactoryMangling() { |
- var o = new debugger.F(); |
- Expect.equals(2, o.x); |
- o = new debugger$C.F(); |
- Expect.equals(6, o.x); |
- o = new debugger$C$C.F(); |
- Expect.equals(10, o.x); |
- o = new with.F(); |
- Expect.equals(6, o.x); |
- Expect.equals(3, o.y); |
- o = new with$I.F(); |
- Expect.equals(6, o.x); |
- Expect.equals(13, o.y); |
- o = new with$C.F(); |
- Expect.equals(10, o.x); |
- Expect.equals(23, o.y); |
- o = new with$I$C.F(); |
- Expect.equals(10, o.x); |
- Expect.equals(33, o.y); |
- } |
- |
- static testFunctionParameters() { |
- a(with) { |
- return with; |
- } |
- |
- b(eval) { |
- return eval; |
- } |
- |
- c(arguments) { |
- return arguments; |
- } |
- |
- Expect.equals(10, a(10)); |
- Expect.equals(10, b(10)); |
- Expect.equals(10, c(10)); |
- } |
- |
- static testPseudoTokens() { |
- var EOS = 400; |
- var ILLEGAL = 99; |
- Expect.equals(499, EOS + ILLEGAL); |
- } |
- |
- static testDollar() { |
- Expect.equals(123, $(123).wrapped); |
- var x = new Object(), y = new Object(); |
- Expect.identical(x, $(x).wrapped); |
- Expect.identical(y, $(x).$add(y)); |
- Expect.identical(x, $(x).$negate()); |
- Expect.equals(123, $(x) + x); |
- Expect.equals(444, -$(x)); |
- } |
- |
- static void testMain() { |
- count = 0; |
- testExceptionNaming(); |
- testTmpNaming(); |
- testScopeNaming(); |
- testGlobalMangling(); |
- testMemberMangling(); |
- testFactoryMangling(); |
- testFunctionParameters(); |
- Bug4082360.test(); |
- Hoisting.test(); |
- testPseudoTokens(); |
- testDollar(); |
- } |
-} |
- |
-// Test that the generated JS names don't conflict with "$" |
-class DartQuery { |
- Object wrapped; |
- DartQuery(this.wrapped); |
- |
- $add(Object other) => other; |
- $negate() => wrapped; |
- |
- operator +(Object other) => 123; |
- operator negate() => 444; |
-} |
- |
-$add(Object first, Object second) => second; |
-DartQuery $(Object obj) => new DartQuery(obj); |
- |
-// Ensure we don't have false positive. named constructor and methods |
-// are in different namespaces, therefore it is ok to have a method |
-// called foo and a named constructor CLASS.foo |
-class Naming1Test { |
- Naming1Test.foo() { } |
- foo() { } |
- |
- static void main(args) { |
- var a = new Naming1Test.foo(); |
- a.foo(); |
- } |
-} |
- |
-// Ensure we don't have false positive. |
-class Naming2Test { |
- Naming2Test() { } |
- int get foo() { return 1; } |
- set foo(x) { } |
- |
- static void main(args) { |
- var a = new Naming2Test(); |
- Expect.throws(() => a.foo(2), (e) => e is ObjectNotClosureException); |
- } |
-} |
- |
-main() { |
- NamingTest.testMain(); |
- Naming1Test.main(null); |
- Naming2Test.main(null); |
-} |