Skip to content

Commit f4eea52

Browse files
committed
First fixes based on code review feedback
1 parent b0bc68f commit f4eea52

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

src/compiler/types.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -5032,8 +5032,6 @@ export interface TypeCheckerHost extends ModuleSpecifierResolutionHost {
50325032

50335033
export interface TypeChecker {
50345034

5035-
/** @internal */
5036-
fillMissingTypeArguments(typeArguments: readonly Type[], typeParameters: readonly TypeParameter[] | undefined, minTypeArgumentCount: number, isJavaScriptImplicitAny: boolean): Type[];
50375035
getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type;
50385036
getTypeOfSymbol(symbol: Symbol): Type;
50395037
getDeclaredTypeOfSymbol(symbol: Symbol): Type;
@@ -5397,6 +5395,7 @@ export interface TypeChecker {
53975395
/** @internal */ isTypeParameterPossiblyReferenced(tp: TypeParameter, node: Node): boolean;
53985396
/** @internal */ typeHasCallOrConstructSignatures(type: Type): boolean;
53995397
/** @internal */ getSymbolFlags(symbol: Symbol): SymbolFlags;
5398+
/** @internal */ fillMissingTypeArguments(typeArguments: readonly Type[], typeParameters: readonly TypeParameter[] | undefined, minTypeArgumentCount: number, isJavaScriptImplicitAny: boolean): Type[];
54005399
}
54015400

54025401
/** @internal */

src/services/codefixes/helpers.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -619,10 +619,9 @@ export function typeNodeToAutoImportableTypeNode(typeNode: TypeNode, importAdder
619619
return getSynthesizedDeepClone(typeNode);
620620
}
621621

622-
function endOfRequiredTypeParameters(checker: TypeChecker, type: GenericType, fullTypeArguments: readonly Type[]) : number {
623-
if (fullTypeArguments !== type.typeArguments!) {
624-
throw new Error('fullTypeArguments should be set')
625-
}
622+
function endOfRequiredTypeParameters(checker: TypeChecker, type: GenericType): number {
623+
Debug.assert(type.typeArguments);
624+
const fullTypeArguments = type.typeArguments;
626625
const target = type.target;
627626
next_cutoff: for (let cutoff = 0; cutoff < fullTypeArguments.length; cutoff++) {
628627
const typeArguments = fullTypeArguments.slice(0, cutoff);
@@ -635,7 +634,7 @@ function endOfRequiredTypeParameters(checker: TypeChecker, type: GenericType, fu
635634
}
636635
// If we make it all the way here, all the type arguments are required.
637636
return fullTypeArguments.length;
638-
}
637+
}
639638

640639
export function typeToMinimizedReferenceType(checker: TypeChecker, type: Type, contextNode: Node | undefined, flags?: NodeBuilderFlags, internalFlags?: InternalNodeBuilderFlags, tracker?: SymbolTracker): TypeNode | undefined {
641640
const typeNode = checker.typeToTypeNode(type, contextNode, flags, internalFlags, tracker);
@@ -645,9 +644,8 @@ export function typeToMinimizedReferenceType(checker: TypeChecker, type: Type, c
645644
if (isTypeReferenceNode(typeNode)) {
646645
const genericType = type as GenericType;
647646
if (genericType.typeArguments) {
648-
const cutoff = endOfRequiredTypeParameters(checker, genericType, genericType.typeArguments);
647+
const cutoff = endOfRequiredTypeParameters(checker, genericType);
649648
if (cutoff !== undefined && typeNode.typeArguments) {
650-
// Looks like the wrong way to do this. What APIs should I use here?
651649
(typeNode as any).typeArguments = typeNode.typeArguments.slice(0, cutoff);
652650
}
653651
}

0 commit comments

Comments
 (0)