Skip to content

Commit 3a2d005

Browse files
committed
add test not fixed by change
1 parent 46c61b3 commit 3a2d005

5 files changed

+114
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
tests/cases/compiler/classVarianceResolveCircularity.ts(5,5): error TS7022: 'Value' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
2+
3+
4+
==== tests/cases/compiler/classVarianceResolveCircularity.ts (1 errors) ====
5+
// Issue #52813
6+
7+
class Bar<T> {
8+
num!: number; // Swap to remove error
9+
Value = callme(this).num;
10+
~~~~~
11+
!!! error TS7022: 'Value' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
12+
Field: number = callme(this).num;
13+
}
14+
declare function callme(x: Bar<any>): Bar<any>;
15+
declare function callme(x: object): string;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//// [classVarianceResolveCircularity.ts]
2+
// Issue #52813
3+
4+
class Bar<T> {
5+
num!: number; // Swap to remove error
6+
Value = callme(this).num;
7+
Field: number = callme(this).num;
8+
}
9+
declare function callme(x: Bar<any>): Bar<any>;
10+
declare function callme(x: object): string;
11+
12+
//// [classVarianceResolveCircularity.js]
13+
"use strict";
14+
// Issue #52813
15+
var Bar = /** @class */ (function () {
16+
function Bar() {
17+
this.Value = callme(this).num;
18+
this.Field = callme(this).num;
19+
}
20+
return Bar;
21+
}());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
=== tests/cases/compiler/classVarianceResolveCircularity.ts ===
2+
// Issue #52813
3+
4+
class Bar<T> {
5+
>Bar : Symbol(Bar, Decl(classVarianceResolveCircularity.ts, 0, 0))
6+
>T : Symbol(T, Decl(classVarianceResolveCircularity.ts, 2, 10))
7+
8+
num!: number; // Swap to remove error
9+
>num : Symbol(Bar.num, Decl(classVarianceResolveCircularity.ts, 2, 14))
10+
11+
Value = callme(this).num;
12+
>Value : Symbol(Bar.Value, Decl(classVarianceResolveCircularity.ts, 3, 17))
13+
>callme(this).num : Symbol(Bar.num, Decl(classVarianceResolveCircularity.ts, 2, 14))
14+
>callme : Symbol(callme, Decl(classVarianceResolveCircularity.ts, 6, 1), Decl(classVarianceResolveCircularity.ts, 7, 47))
15+
>this : Symbol(Bar, Decl(classVarianceResolveCircularity.ts, 0, 0))
16+
>num : Symbol(Bar.num, Decl(classVarianceResolveCircularity.ts, 2, 14))
17+
18+
Field: number = callme(this).num;
19+
>Field : Symbol(Bar.Field, Decl(classVarianceResolveCircularity.ts, 4, 29))
20+
>callme(this).num : Symbol(Bar.num, Decl(classVarianceResolveCircularity.ts, 2, 14))
21+
>callme : Symbol(callme, Decl(classVarianceResolveCircularity.ts, 6, 1), Decl(classVarianceResolveCircularity.ts, 7, 47))
22+
>this : Symbol(Bar, Decl(classVarianceResolveCircularity.ts, 0, 0))
23+
>num : Symbol(Bar.num, Decl(classVarianceResolveCircularity.ts, 2, 14))
24+
}
25+
declare function callme(x: Bar<any>): Bar<any>;
26+
>callme : Symbol(callme, Decl(classVarianceResolveCircularity.ts, 6, 1), Decl(classVarianceResolveCircularity.ts, 7, 47))
27+
>x : Symbol(x, Decl(classVarianceResolveCircularity.ts, 7, 24))
28+
>Bar : Symbol(Bar, Decl(classVarianceResolveCircularity.ts, 0, 0))
29+
>Bar : Symbol(Bar, Decl(classVarianceResolveCircularity.ts, 0, 0))
30+
31+
declare function callme(x: object): string;
32+
>callme : Symbol(callme, Decl(classVarianceResolveCircularity.ts, 6, 1), Decl(classVarianceResolveCircularity.ts, 7, 47))
33+
>x : Symbol(x, Decl(classVarianceResolveCircularity.ts, 8, 24))
34+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
=== tests/cases/compiler/classVarianceResolveCircularity.ts ===
2+
// Issue #52813
3+
4+
class Bar<T> {
5+
>Bar : Bar<T>
6+
7+
num!: number; // Swap to remove error
8+
>num : number
9+
10+
Value = callme(this).num;
11+
>Value : any
12+
>callme(this).num : number
13+
>callme(this) : Bar<any>
14+
>callme : { (x: Bar<any>): Bar<any>; (x: object): string; }
15+
>this : this
16+
>num : number
17+
18+
Field: number = callme(this).num;
19+
>Field : number
20+
>callme(this).num : number
21+
>callme(this) : Bar<any>
22+
>callme : { (x: Bar<any>): Bar<any>; (x: object): string; }
23+
>this : this
24+
>num : number
25+
}
26+
declare function callme(x: Bar<any>): Bar<any>;
27+
>callme : { (x: Bar<any>): Bar<any>; (x: object): string; }
28+
>x : Bar<any>
29+
30+
declare function callme(x: object): string;
31+
>callme : { (x: Bar<any>): Bar<any>; (x: object): string; }
32+
>x : object
33+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// @strict: true
2+
3+
// Issue #52813
4+
5+
class Bar<T> {
6+
num!: number; // Swap to remove error
7+
Value = callme(this).num;
8+
Field: number = callme(this).num;
9+
}
10+
declare function callme(x: Bar<any>): Bar<any>;
11+
declare function callme(x: object): string;

0 commit comments

Comments
 (0)