diff --git a/tests/baselines/reference/quotedConstructors.errors.txt b/tests/baselines/reference/quotedConstructors.errors.txt new file mode 100644 index 0000000000000..609bff8fdfc7a --- /dev/null +++ b/tests/baselines/reference/quotedConstructors.errors.txt @@ -0,0 +1,30 @@ +tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts(2,5): error TS96000: Quoted constructors have previously been interpreted as methods, which is incorrect. In TypeScript 3.6, they will be correctly parsed as constructors. In the meantime, consider using 'constructor()' to write a constructor, or '["constructor"]()' to write a method. +tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts(6,5): error TS96000: Quoted constructors have previously been interpreted as methods, which is incorrect. In TypeScript 3.6, they will be correctly parsed as constructors. In the meantime, consider using 'constructor()' to write a constructor, or '["constructor"]()' to write a method. +tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts(14,5): error TS96000: Quoted constructors have previously been interpreted as methods, which is incorrect. In TypeScript 3.6, they will be correctly parsed as constructors. In the meantime, consider using 'constructor()' to write a constructor, or '["constructor"]()' to write a method. + + +==== tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts (3 errors) ==== + class C { + "constructor"() {} // Error in 3.5 + ~~~~~~~~~~~~~ +!!! error TS96000: Quoted constructors have previously been interpreted as methods, which is incorrect. In TypeScript 3.6, they will be correctly parsed as constructors. In the meantime, consider using 'constructor()' to write a constructor, or '["constructor"]()' to write a method. + } + + class D { + 'constructor'() {} // Error in 3.5 + ~~~~~~~~~~~~~ +!!! error TS96000: Quoted constructors have previously been interpreted as methods, which is incorrect. In TypeScript 3.6, they will be correctly parsed as constructors. In the meantime, consider using 'constructor()' to write a constructor, or '["constructor"]()' to write a method. + } + + class E { + ['constructor']() {} + } + + new class { + "constructor"() {} // Error in 3.5 + ~~~~~~~~~~~~~ +!!! error TS96000: Quoted constructors have previously been interpreted as methods, which is incorrect. In TypeScript 3.6, they will be correctly parsed as constructors. In the meantime, consider using 'constructor()' to write a constructor, or '["constructor"]()' to write a method. + }; + + var o = { "constructor"() {} }; + \ No newline at end of file diff --git a/tests/baselines/reference/quotedConstructors.js b/tests/baselines/reference/quotedConstructors.js new file mode 100644 index 0000000000000..c9a662e6af526 --- /dev/null +++ b/tests/baselines/reference/quotedConstructors.js @@ -0,0 +1,46 @@ +//// [quotedConstructors.ts] +class C { + "constructor"() {} // Error in 3.5 +} + +class D { + 'constructor'() {} // Error in 3.5 +} + +class E { + ['constructor']() {} +} + +new class { + "constructor"() {} // Error in 3.5 +}; + +var o = { "constructor"() {} }; + + +//// [quotedConstructors.js] +var C = /** @class */ (function () { + function C() { + } + C.prototype["constructor"] = function () { }; // Error in 3.5 + return C; +}()); +var D = /** @class */ (function () { + function D() { + } + D.prototype['constructor'] = function () { }; // Error in 3.5 + return D; +}()); +var E = /** @class */ (function () { + function E() { + } + E.prototype['constructor'] = function () { }; + return E; +}()); +new /** @class */ (function () { + function class_1() { + } + class_1.prototype["constructor"] = function () { }; // Error in 3.5 + return class_1; +}()); +var o = { "constructor": function () { } }; diff --git a/tests/baselines/reference/quotedConstructors.symbols b/tests/baselines/reference/quotedConstructors.symbols new file mode 100644 index 0000000000000..be68e48484754 --- /dev/null +++ b/tests/baselines/reference/quotedConstructors.symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts === +class C { +>C : Symbol(C, Decl(quotedConstructors.ts, 0, 0)) + + "constructor"() {} // Error in 3.5 +>"constructor" : Symbol(C["constructor"], Decl(quotedConstructors.ts, 0, 9)) +} + +class D { +>D : Symbol(D, Decl(quotedConstructors.ts, 2, 1)) + + 'constructor'() {} // Error in 3.5 +>'constructor' : Symbol(D['constructor'], Decl(quotedConstructors.ts, 4, 9)) +} + +class E { +>E : Symbol(E, Decl(quotedConstructors.ts, 6, 1)) + + ['constructor']() {} +>['constructor'] : Symbol(E['constructor'], Decl(quotedConstructors.ts, 8, 9)) +>'constructor' : Symbol(E['constructor'], Decl(quotedConstructors.ts, 8, 9)) +} + +new class { + "constructor"() {} // Error in 3.5 +>"constructor" : Symbol((Anonymous class)["constructor"], Decl(quotedConstructors.ts, 12, 11)) + +}; + +var o = { "constructor"() {} }; +>o : Symbol(o, Decl(quotedConstructors.ts, 16, 3)) +>"constructor" : Symbol("constructor", Decl(quotedConstructors.ts, 16, 9)) + diff --git a/tests/baselines/reference/quotedConstructors.types b/tests/baselines/reference/quotedConstructors.types new file mode 100644 index 0000000000000..907a2152a80ac --- /dev/null +++ b/tests/baselines/reference/quotedConstructors.types @@ -0,0 +1,37 @@ +=== tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts === +class C { +>C : C + + "constructor"() {} // Error in 3.5 +>"constructor" : () => void +} + +class D { +>D : D + + 'constructor'() {} // Error in 3.5 +>'constructor' : () => void +} + +class E { +>E : E + + ['constructor']() {} +>['constructor'] : () => void +>'constructor' : "constructor" +} + +new class { +>new class { "constructor"() {} // Error in 3.5} : (Anonymous class) +>class { "constructor"() {} // Error in 3.5} : typeof (Anonymous class) + + "constructor"() {} // Error in 3.5 +>"constructor" : () => void + +}; + +var o = { "constructor"() {} }; +>o : { "constructor"(): void; } +>{ "constructor"() {} } : { "constructor"(): void; } +>"constructor" : () => void +