Skip to content

Commit 73f5f02

Browse files
authored
fix(40756): disable truncation for inferred type (microsoft#40764)
1 parent 8e86b24 commit 73f5f02

File tree

2 files changed

+103
-1
lines changed

2 files changed

+103
-1
lines changed

src/services/utilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2528,7 +2528,7 @@ namespace ts {
25282528
const checker = program.getTypeChecker();
25292529
let typeIsAccessible = true;
25302530
const notAccessible = () => { typeIsAccessible = false; };
2531-
const res = checker.typeToTypeNode(type, enclosingScope, /*flags*/ undefined, {
2531+
const res = checker.typeToTypeNode(type, enclosingScope, NodeBuilderFlags.NoTruncation, {
25322532
trackSymbol: (symbol, declaration, meaning) => {
25332533
typeIsAccessible = typeIsAccessible && checker.isSymbolAccessible(symbol, declaration, meaning, /*shouldComputeAliasToMarkVisible*/ false).accessibility === SymbolAccessibility.Accessible;
25342534
},
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
////function foo(param) {
4+
//// const a: {
5+
//// a: {
6+
//// a_1: string;
7+
//// a_2: {
8+
//// a_2_1: string;
9+
//// }
10+
//// };
11+
//// b: {
12+
//// b_1: string;
13+
//// b_2: string;
14+
//// b_3: string;
15+
//// };
16+
//// c: {
17+
//// c_1: string;
18+
//// c_2: string;
19+
//// c_3: string;
20+
//// c_4: {
21+
//// c_4_1: {
22+
//// c_4_1_1: {
23+
//// c_4_1_1_1: {
24+
//// c_4_1_1_1_1: string;
25+
//// c_4_1_1_1_2: string;
26+
//// c_4_1_1_1_3: string;
27+
//// }
28+
//// }
29+
//// }
30+
//// }
31+
//// };
32+
//// d: {
33+
//// d_1: {
34+
//// d_1_1: {
35+
//// d_1_1_1: string;
36+
//// }
37+
//// d_1_2: {
38+
//// d_1_2_1: string;
39+
//// }
40+
//// d_1_3: {
41+
//// d_1_3_1: string;
42+
//// d_1_3_2: string;
43+
//// }
44+
//// }
45+
//// d_2: string;
46+
//// d_3: string;
47+
//// }
48+
//// } = param;
49+
////}
50+
51+
verify.codeFix({
52+
description: "Infer parameter types from usage",
53+
index: 0,
54+
newFileContent:
55+
`function foo(param: { a: { a_1: string; a_2: { a_2_1: string; }; }; b: { b_1: string; b_2: string; b_3: string; }; c: { c_1: string; c_2: string; c_3: string; c_4: { c_4_1: { c_4_1_1: { c_4_1_1_1: { c_4_1_1_1_1: string; c_4_1_1_1_2: string; c_4_1_1_1_3: string; }; }; }; }; }; d: { d_1: { d_1_1: { d_1_1_1: string; }; d_1_2: { d_1_2_1: string; }; d_1_3: { d_1_3_1: string; d_1_3_2: string; }; }; d_2: string; d_3: string; }; }) {
56+
const a: {
57+
a: {
58+
a_1: string;
59+
a_2: {
60+
a_2_1: string;
61+
}
62+
};
63+
b: {
64+
b_1: string;
65+
b_2: string;
66+
b_3: string;
67+
};
68+
c: {
69+
c_1: string;
70+
c_2: string;
71+
c_3: string;
72+
c_4: {
73+
c_4_1: {
74+
c_4_1_1: {
75+
c_4_1_1_1: {
76+
c_4_1_1_1_1: string;
77+
c_4_1_1_1_2: string;
78+
c_4_1_1_1_3: string;
79+
}
80+
}
81+
}
82+
}
83+
};
84+
d: {
85+
d_1: {
86+
d_1_1: {
87+
d_1_1_1: string;
88+
}
89+
d_1_2: {
90+
d_1_2_1: string;
91+
}
92+
d_1_3: {
93+
d_1_3_1: string;
94+
d_1_3_2: string;
95+
}
96+
}
97+
d_2: string;
98+
d_3: string;
99+
}
100+
} = param;
101+
}`,
102+
});

0 commit comments

Comments
 (0)