Skip to content

Commit 4d598b0

Browse files
author
Armando Aguirre Sepulveda
committed
Elide truncated typenodes
1 parent 5f79e16 commit 4d598b0

12 files changed

+82
-29
lines changed

src/compiler/checker.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7072,7 +7072,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
70727072
if (!(context.flags & NodeBuilderFlags.NoTruncation)) {
70737073
return factory.createTypeReferenceNode(factory.createIdentifier("..."), /*typeArguments*/ undefined);
70747074
}
7075-
return factory.createKeywordTypeNode(SyntaxKind.AnyKeyword);
7075+
return addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, "elided");
70767076
}
70777077

70787078
function shouldUsePlaceholderForProperty(propertySymbol: Symbol, context: NodeBuilderContext) {
@@ -7231,7 +7231,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
72317231
function mapToTypeNodes(types: readonly Type[] | undefined, context: NodeBuilderContext, isBareList?: boolean): TypeNode[] | undefined {
72327232
if (some(types)) {
72337233
if (checkTruncationLength(context)) {
7234-
if (!isBareList) {
7234+
if (context.flags & NodeBuilderFlags.NoTruncation) {
7235+
return [addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, "elided")];
7236+
}
7237+
else if (!isBareList) {
72357238
return [factory.createTypeReferenceNode("...", /*typeArguments*/ undefined)];
72367239
}
72377240
else if (types.length > 2) {
@@ -7250,6 +7253,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
72507253
for (const type of types) {
72517254
i++;
72527255
if (checkTruncationLength(context) && (i + 2 < types.length - 1)) {
7256+
if (context.flags & NodeBuilderFlags.NoTruncation) {
7257+
return [addSyntheticLeadingComment(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), SyntaxKind.MultiLineCommentTrivia, "elided")];
7258+
}
72537259
result.push(factory.createTypeReferenceNode(`... ${types.length - i} more ...`, /*typeArguments*/ undefined));
72547260
const typeNode = typeToTypeNodeHelper(types[types.length - 1], context);
72557261
if (typeNode) {

src/services/codefixes/helpers.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,12 +217,12 @@ export function addNewNodeForMemberSymbol(
217217
const optional = !!(symbol.flags & SymbolFlags.Optional);
218218
const ambient = !!(enclosingDeclaration.flags & NodeFlags.Ambient) || isAmbient;
219219
const quotePreference = getQuotePreference(sourceFile, preferences);
220+
const flags = NodeBuilderFlags.NoTruncation
221+
| (quotePreference === QuotePreference.Single ? NodeBuilderFlags.UseSingleQuotesForStringLiteralType : NodeBuilderFlags.None);
220222

221223
switch (kind) {
222224
case SyntaxKind.PropertySignature:
223225
case SyntaxKind.PropertyDeclaration:
224-
let flags = NodeBuilderFlags.NoTruncation;
225-
flags |= quotePreference === QuotePreference.Single ? NodeBuilderFlags.UseSingleQuotesForStringLiteralType : 0;
226226
let typeNode = checker.typeToTypeNode(type, enclosingDeclaration, flags, InternalNodeBuilderFlags.AllowUnresolvedNames, getNoopSymbolTrackerWithResolver(context));
227227
if (importAdder) {
228228
const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);
@@ -242,7 +242,7 @@ export function addNewNodeForMemberSymbol(
242242
case SyntaxKind.GetAccessor:
243243
case SyntaxKind.SetAccessor: {
244244
Debug.assertIsDefined(declarations);
245-
let typeNode = checker.typeToTypeNode(type, enclosingDeclaration, /*flags*/ undefined, /*internalFlags*/ undefined, getNoopSymbolTrackerWithResolver(context));
245+
let typeNode = checker.typeToTypeNode(type, enclosingDeclaration, flags, /*internalFlags*/ undefined, getNoopSymbolTrackerWithResolver(context));
246246
const allAccessors = getAllAccessorDeclarations(declarations, declaration as AccessorDeclaration);
247247
const orderedAccessors = allAccessors.secondAccessor
248248
? [allAccessors.firstAccessor, allAccessors.secondAccessor]

tests/baselines/reference/classExpressionInClassStaticDeclarations.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ var C = /** @class */ (function () {
3939
declare class C {
4040
static D: {
4141
new (): {};
42-
D: any;
42+
D: /*elided*/ any;
4343
};
4444
}

tests/baselines/reference/commonJSImportNestedClassTypeReference.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function f(k) {
4141
//// [mod1.d.ts]
4242
export var K: {
4343
new (): {
44-
values(): any;
44+
values(): /*elided*/ any;
4545
};
4646
};
4747
//// [main.d.ts]

tests/baselines/reference/declFileTypeofFunction.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,6 @@ declare function b1(): typeof b1;
7070
declare function foo(): typeof foo;
7171
declare var foo1: typeof foo;
7272
declare var foo2: typeof foo;
73-
declare var foo3: () => any;
74-
declare var x: () => any;
73+
declare var foo3: () => /*elided*/ any;
74+
declare var x: () => /*elided*/ any;
7575
declare function foo5(x: number): (x: number) => number;

tests/baselines/reference/declarationEmitInferredTypeAlias4.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ function f() {
1616

1717
//// [declarationEmitInferredTypeAlias4.d.ts]
1818
declare function f<A>(): A[] | {
19-
x: A[] | any;
19+
x: A[] | /*elided*/ any;
2020
};

tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ void p3.result.three;
9696
//// [declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts]
9797
export type Key<U> = keyof U;
9898
export type Value<K extends Key<U>, U> = U[K];
99-
export declare const updateIfChanged: <T>(t: T) => (<K extends keyof T>(key: K) => (<K_1 extends keyof Value<K, T>>(key: K_1) => (<K_2 extends keyof Value<K_1, Value<K, T>>>(key: K_2) => (<K_3 extends keyof Value<K_2, Value<K_1, Value<K, T>>>>(key: K_3) => (<K_4 extends keyof Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>(key: K_4) => (<K_5 extends keyof Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>(key: K_5) => (<K_6 extends keyof Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>(key: K_6) => (<K_7 extends keyof Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>(key: K_7) => (<K_8 extends keyof Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>(key: K_8) => (<K_9 extends keyof Value<K_8, Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>>(key: K_9) => (<K_10 extends keyof Value<K_9, Value<K_8, Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>>>(key: K_10) => any & {
99+
export declare const updateIfChanged: <T>(t: T) => (<K extends keyof T>(key: K) => (<K_1 extends keyof Value<K, T>>(key: K_1) => (<K_2 extends keyof Value<K_1, Value<K, T>>>(key: K_2) => (<K_3 extends keyof Value<K_2, Value<K_1, Value<K, T>>>>(key: K_3) => (<K_4 extends keyof Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>(key: K_4) => (<K_5 extends keyof Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>(key: K_5) => (<K_6 extends keyof Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>(key: K_6) => (<K_7 extends keyof Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>(key: K_7) => (<K_8 extends keyof Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>(key: K_8) => (<K_9 extends keyof Value<K_8, Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>>(key: K_9) => (<K_10 extends keyof Value<K_9, Value<K_8, Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>>>(key: K_10) => /*elided*/ any & {
100100
map: (updater: (u: Value<K_10, Value<K_9, Value<K_8, Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>>>) => Value<K_10, Value<K_9, Value<K_8, Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>>>) => T;
101101
set: (newU: Value<K_10, Value<K_9, Value<K_8, Value<K_7, Value<K_6, Value<K_5, Value<K_4, Value<K_3, Value<K_2, Value<K_1, Value<K, T>>>>>>>>>>>) => T;
102102
}) & {
@@ -155,7 +155,7 @@ export declare const testRecFun: <T extends Object>(parent: T) => {
155155
result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8;
156156
deeper: <U_9 extends Object>(child: U_9) => {
157157
result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9;
158-
deeper: <U_10 extends Object>(child: U_10) => any;
158+
deeper: <U_10 extends Object>(child: U_10) => /*elided*/ any;
159159
};
160160
};
161161
};

tests/baselines/reference/emitClassExpressionInDeclarationFile.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,12 @@ export declare var simpleExample: {
107107
};
108108
export declare var circularReference: {
109109
new (): {
110-
tags(c: any): any;
110+
tags(c: /*elided*/ any): /*elided*/ any;
111111
};
112112
getTags(c: {
113-
tags(c: any): any;
113+
tags(c: /*elided*/ any): /*elided*/ any;
114114
}): {
115-
tags(c: any): any;
115+
tags(c: /*elided*/ /*elided*/ any): /*elided*/ /*elided*/ any;
116116
};
117117
};
118118
export declare class FooItem {

tests/baselines/reference/functionExpressionReturningItself.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ var x = function somefn() { return somefn; };
88

99

1010
//// [functionExpressionReturningItself.d.ts]
11-
declare var x: () => any;
11+
declare var x: () => /*elided*/ any;

tests/baselines/reference/noImplicitThisBigThis.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -100,18 +100,18 @@ function createObjNoCrash() {
100100

101101
//// [noImplicitThisBigThis.d.ts]
102102
declare function createObj(): {
103-
func1(): any;
104-
func2(): any;
105-
func3(): any;
103+
func1(): /*elided*/ any;
104+
func2(): /*elided*/ any;
105+
func3(): /*elided*/ any;
106106
};
107107
declare function createObjNoCrash(): {
108-
func1(): any;
109-
func2(): any;
110-
func3(): any;
111-
func4(): any;
112-
func5(): any;
113-
func6(): any;
114-
func7(): any;
115-
func8(): any;
116-
func9(): any;
108+
func1(): /*elided*/ any;
109+
func2(): /*elided*/ any;
110+
func3(): /*elided*/ any;
111+
func4(): /*elided*/ any;
112+
func5(): /*elided*/ any;
113+
func6(): /*elided*/ any;
114+
func7(): /*elided*/ any;
115+
func8(): /*elided*/ any;
116+
func9(): /*elided*/ any;
117117
};

tests/baselines/reference/varianceAnnotations.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,6 @@ declare let Anon: {
333333
};
334334
declare let OuterC: {
335335
new <out T>(): {
336-
foo(): any;
336+
foo(): /*elided*/ any;
337337
};
338338
};
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
//// type GeneratePrefixedNumbers<Limit extends number, Prefix extends string, Result extends number[] = []> =
4+
//// Result['length'] extends Limit ? `${Prefix}${Result[number]}` : GeneratePrefixedNumbers<Limit, Prefix, [...Result, Result['length']]>;
5+
////
6+
//// type PrefixedNumbersUpTo5 = GeneratePrefixedNumbers<5, 'name'>; // result = "name0" | "name1" | "name2" | "name3" | "name4"
7+
////
8+
//// interface A<T extends number, U extends string> {
9+
//// foo(bar: GeneratePrefixedNumbers<T, U>): GeneratePrefixedNumbers<T, U>;
10+
//// get bar(): GeneratePrefixedNumbers<T, U>;
11+
//// set bar(value: GeneratePrefixedNumbers<T, U>);
12+
//// baz<V extends GeneratePrefixedNumbers<T,U>>(value: V): V;
13+
//// }
14+
////
15+
//// class B implements A<999, 'ASuperLongStringASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueThatWeOnlyWeOnlyUsedToHitTheNoTruncation'> {
16+
//// }
17+
18+
verify.codeFix({
19+
description: "Implement interface 'A<999, 'ASuperLongStringASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueThatWeOnlyWeOnlyUsedToHitTheNoTruncation'>'",
20+
newFileContent:
21+
`type GeneratePrefixedNumbers<Limit extends number, Prefix extends string, Result extends number[] = []> =
22+
Result['length'] extends Limit ? \`\${Prefix}\${Result[number]}\` : GeneratePrefixedNumbers<Limit, Prefix, [...Result, Result['length']]>;
23+
24+
type PrefixedNumbersUpTo5 = GeneratePrefixedNumbers<5, 'name'>; // result = "name0" | "name1" | "name2" | "name3" | "name4"
25+
26+
interface A<T extends number, U extends string> {
27+
foo(bar: GeneratePrefixedNumbers<T, U>): GeneratePrefixedNumbers<T, U>;
28+
get bar(): GeneratePrefixedNumbers<T, U>;
29+
set bar(value: GeneratePrefixedNumbers<T, U>);
30+
baz<V extends GeneratePrefixedNumbers<T,U>>(value: V): V;
31+
}
32+
33+
class B implements A<999, 'ASuperLongStringASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueASuperLongStringThatWeOnlyWeOnlyUsedToHitTheNoTruncationIssueThatWeOnlyWeOnlyUsedToHitTheNoTruncation'> {
34+
foo(bar: /*elided*/ any): /*elided*/ any {
35+
throw new Error("Method not implemented.");
36+
}
37+
get bar(): /*elided*/ any {
38+
throw new Error("Method not implemented.");
39+
}
40+
set bar(value: /*elided*/ any) {
41+
throw new Error("Method not implemented.");
42+
}
43+
baz<V extends /*elided*/ any>(value: V): V {
44+
throw new Error("Method not implemented.");
45+
}
46+
}`,
47+
});

0 commit comments

Comments
 (0)