Skip to content

Commit 470f122

Browse files
committed
Skip signatures for all mapped types
Mapped and reverse mapped types never have call or construct signatures, whether or not their members have been resolved, so the flags alone are enough to answer the question.
1 parent 7852ab1 commit 470f122

1 file changed

Lines changed: 1 addition & 8 deletions

File tree

‎tsc/internal/checker/checker.go‎

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19429,7 +19429,7 @@ func (c *Checker) getSignaturesOfType(t *Type, kind SignatureKind) []*Signature
1942919429
}
1943019430

1943119431
func (c *Checker) getSignaturesOfStructuredType(t *Type, kind SignatureKind) []*Signature {
19432-
if t.flags&TypeFlagsStructuredType == 0 || isUnresolvedMappedType(t) {
19432+
if t.flags&TypeFlagsStructuredType == 0 || t.objectFlags&(ObjectFlagsMapped|ObjectFlagsReverseMapped) != 0 {
1943319433
return nil
1943419434
}
1943519435
resolved := c.resolveStructuredTypeMembers(t)
@@ -19557,13 +19557,6 @@ func (c *Checker) resolveStructuredTypeMembers(t *Type) *StructuredType {
1955719557
return t.AsStructuredType()
1955819558
}
1955919559

19560-
// Reports whether t is a mapped type whose members resolveMappedTypeMembers hasn't yet resolved.
19561-
// Mapped types never have signatures, so those needn't be resolved to be known.
19562-
func isUnresolvedMappedType(t *Type) bool {
19563-
return t.flags&TypeFlagsObject != 0 &&
19564-
t.objectFlags&(ObjectFlagsReference|ObjectFlagsClassOrInterface|ObjectFlagsReverseMapped|ObjectFlagsAnonymous|ObjectFlagsMapped|ObjectFlagsMembersResolved) == ObjectFlagsMapped
19565-
}
19566-
1956719560
func (c *Checker) resolveObjectTypeMembers(t *Type) {
1956819561
var mapper *TypeMapper
1956919562
var typeParameters []*Type

0 commit comments

Comments
 (0)