mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
fix(40756): disable truncation for inferred type (#40764)
This commit is contained in:
@@ -2528,7 +2528,7 @@ namespace ts {
|
||||
const checker = program.getTypeChecker();
|
||||
let typeIsAccessible = true;
|
||||
const notAccessible = () => { typeIsAccessible = false; };
|
||||
const res = checker.typeToTypeNode(type, enclosingScope, /*flags*/ undefined, {
|
||||
const res = checker.typeToTypeNode(type, enclosingScope, NodeBuilderFlags.NoTruncation, {
|
||||
trackSymbol: (symbol, declaration, meaning) => {
|
||||
typeIsAccessible = typeIsAccessible && checker.isSymbolAccessible(symbol, declaration, meaning, /*shouldComputeAliasToMarkVisible*/ false).accessibility === SymbolAccessibility.Accessible;
|
||||
},
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
////function foo(param) {
|
||||
//// const a: {
|
||||
//// 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;
|
||||
//// }
|
||||
//// } = param;
|
||||
////}
|
||||
|
||||
verify.codeFix({
|
||||
description: "Infer parameter types from usage",
|
||||
index: 0,
|
||||
newFileContent:
|
||||
`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; }; }) {
|
||||
const a: {
|
||||
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;
|
||||
}
|
||||
} = param;
|
||||
}`,
|
||||
});
|
||||
Reference in New Issue
Block a user