Skip to content

Commit 57705fc

Browse files
committed
Add regression test
1 parent dacc851 commit 57705fc

4 files changed

Lines changed: 69 additions & 0 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//// [circularContextualReturnType.ts]
2+
// Repro from #17711
3+
4+
Object.freeze({
5+
foo() {
6+
return Object.freeze('a');
7+
},
8+
});
9+
10+
11+
//// [circularContextualReturnType.js]
12+
"use strict";
13+
// Repro from #17711
14+
Object.freeze({
15+
foo: function () {
16+
return Object.freeze('a');
17+
}
18+
});
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
=== tests/cases/compiler/circularContextualReturnType.ts ===
2+
// Repro from #17711
3+
4+
Object.freeze({
5+
>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
6+
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
7+
>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
8+
9+
foo() {
10+
>foo : Symbol(foo, Decl(circularContextualReturnType.ts, 2, 15))
11+
12+
return Object.freeze('a');
13+
>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
14+
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
15+
>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
16+
17+
},
18+
});
19+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
=== tests/cases/compiler/circularContextualReturnType.ts ===
2+
// Repro from #17711
3+
4+
Object.freeze({
5+
>Object.freeze({ foo() { return Object.freeze('a'); },}) : Readonly<{ foo(): string; }>
6+
>Object.freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
7+
>Object : ObjectConstructor
8+
>freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
9+
>{ foo() { return Object.freeze('a'); },} : { foo(): string; }
10+
11+
foo() {
12+
>foo : () => string
13+
14+
return Object.freeze('a');
15+
>Object.freeze('a') : string
16+
>Object.freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
17+
>Object : ObjectConstructor
18+
>freeze : { <T>(a: T[]): ReadonlyArray<T>; <T extends Function>(f: T): T; <T>(o: T): Readonly<T>; }
19+
>'a' : "a"
20+
21+
},
22+
});
23+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// @strict: true
2+
3+
// Repro from #17711
4+
5+
Object.freeze({
6+
foo() {
7+
return Object.freeze('a');
8+
},
9+
});

0 commit comments

Comments
 (0)