Add regression test

This commit is contained in:
Anders Hejlsberg 2017-08-14 09:08:11 +02:00
parent dacc851434
commit 57705fc4e0
4 changed files with 69 additions and 0 deletions

View file

@ -0,0 +1,18 @@
//// [circularContextualReturnType.ts]
// Repro from #17711
Object.freeze({
foo() {
return Object.freeze('a');
},
});
//// [circularContextualReturnType.js]
"use strict";
// Repro from #17711
Object.freeze({
foo: function () {
return Object.freeze('a');
}
});

View file

@ -0,0 +1,19 @@
=== tests/cases/compiler/circularContextualReturnType.ts ===
// Repro from #17711
Object.freeze({
>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
foo() {
>foo : Symbol(foo, Decl(circularContextualReturnType.ts, 2, 15))
return Object.freeze('a');
>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
},
});

View file

@ -0,0 +1,23 @@
=== tests/cases/compiler/circularContextualReturnType.ts ===
// Repro from #17711
Object.freeze({
>Object.freeze({ foo() { return Object.freeze('a'); },}) : Readonly<{ foo(): string; }>
>Object.freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
>Object : ObjectConstructor
>freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
>{ foo() { return Object.freeze('a'); },} : { foo(): string; }
foo() {
>foo : () => string
return Object.freeze('a');
>Object.freeze('a') : string
>Object.freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
>Object : ObjectConstructor
>freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
>'a' : "a"
},
});

View file

@ -0,0 +1,9 @@
// @strict: true
// Repro from #17711
Object.freeze({
foo() {
return Object.freeze('a');
},
});