| Index: test/mjsunit/harmony/typesystem/class-declarations.js
|
| diff --git a/test/mjsunit/harmony/typesystem/class-declarations.js b/test/mjsunit/harmony/typesystem/class-declarations.js
|
| index c6815cdf3b406500921472ee42930ccfeb7c8289..8f12a8aa8ed18d2e5eb78e299e746eaafdbe9b7d 100644
|
| --- a/test/mjsunit/harmony/typesystem/class-declarations.js
|
| +++ b/test/mjsunit/harmony/typesystem/class-declarations.js
|
| @@ -51,9 +51,9 @@ load("test/mjsunit/harmony/typesystem/testgen.js");
|
| " '5': boolean = false" + "\n" +
|
| " 6: string[] = [...['six', 'six', 'and', 'six']]" + "\n" +
|
| // methods
|
| - " f () : number { return 42; }" + "\n" +
|
| - " f (a: number[]) : number { return a[0]; }" + "\n" +
|
| - " f (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
|
| + " f1 () : number { return 42; }" + "\n" +
|
| + " f2 (a: number[]) : number { return a[0]; }" + "\n" +
|
| + " f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
|
| // getters
|
| " get p () : number { return 42; }" + "\n" +
|
| " get 'q' () : number { return 42; }" + "\n" +
|
| @@ -82,9 +82,9 @@ load("test/mjsunit/harmony/typesystem/testgen.js");
|
| " static '5': boolean = false" + "\n" +
|
| " static 6: string[] = [...['six', 'six', 'and', 'six']]" + "\n" +
|
| // methods
|
| - " static f () : number { return 42; }" + "\n" +
|
| - " static f (a: number[]) : number { return a[0]; }" + "\n" +
|
| - " static f (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
|
| + " static f1 () : number { return 42; }" + "\n" +
|
| + " static f2 (a: number[]) : number { return a[0]; }" + "\n" +
|
| + " static f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
|
| // getters
|
| " static get p () : number { return 42; }" + "\n" +
|
| " static get 'q' () : number { return 42; }" + "\n" +
|
| @@ -103,3 +103,28 @@ load("test/mjsunit/harmony/typesystem/testgen.js");
|
| CheckInvalid("class C { [x: any] : any }");
|
| CheckInvalid("class C { static [x: number] }");
|
| })();
|
| +
|
| +(function TestClassMemberSignatures() {
|
| + CheckValid("class C {" + "\n" +
|
| + // constructor signatures
|
| + " constructor (x: number, y: boolean)" + "\n" +
|
| + " constructor (x: number, y: boolean) { this.x = x; this.y = y; }" + "\n" +
|
| + // method signatures
|
| + " f1 () : number" + "\n" +
|
| + " f1 () : number { return 42; }" + "\n" +
|
| + " f2 (a: number[]) : number" + "\n" +
|
| + " f2 (a: number[]) : number { return a[0]; }" + "\n" +
|
| + " f3 (a: number[], b: number) : number" + "\n" +
|
| + " f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
|
| + "}");
|
| + // Test all possible valid static members.
|
| + CheckValid("class C {" + "\n" +
|
| + // static method signatures
|
| + " static f1 () : number" + "\n" +
|
| + " static f1 () : number { return 42; }" + "\n" +
|
| + " static f2 (a: number[]) : number" + "\n" +
|
| + " static f2 (a: number[]) : number { return a[0]; }" + "\n" +
|
| + " static f3 (a: number[], b: number)" + "\n" +
|
| + " static f3 (a: number[], b: number) : number { return b || a[0]; }" + "\n" +
|
| + "}");
|
| +})();
|
|
|