@@ -279,8 +279,11 @@ export class Collector {
279279 }
280280 return symbolOrDeclaration . symbolMetadata as SymbolMetadata ;
281281 } else {
282- // Fetching the SignatureMetadata always constructs the DeclarationMetadata
283- return this . fetchSignatureMetadata ( symbolOrDeclaration ) . declarationMetadata ! ;
282+ if ( symbolOrDeclaration . declarationMetadata === undefined ) {
283+ // Fetching the SymbolMetadata always constructs the DeclarationMetadata
284+ this . _fetchSymbolMetadata ( symbolOrDeclaration . astSymbol ) ;
285+ }
286+ return symbolOrDeclaration . declarationMetadata as DeclarationMetadata ;
284287 }
285288 }
286289
@@ -591,8 +594,7 @@ export class Collector {
591594
592595 for ( const astDeclaration of astSymbol . astDeclarations ) {
593596 // We know we solved this above
594- const signatureMetadata : SignatureMetadata = astDeclaration . signatureMetadata as SignatureMetadata ;
595- const declarationMetadata : DeclarationMetadata = signatureMetadata . declarationMetadata ! ;
597+ const declarationMetadata : DeclarationMetadata = astDeclaration . declarationMetadata as DeclarationMetadata ;
596598
597599 const effectiveReleaseTag : ReleaseTag = declarationMetadata . effectiveReleaseTag ;
598600
@@ -668,7 +670,7 @@ export class Collector {
668670 + ' to another declaration' ) ;
669671 }
670672
671- if ( mainMetadata . declarationMetadata || ancillaryMetadata . declarationMetadata ) {
673+ if ( mainAstDeclaration . declarationMetadata || ancillaryAstDeclaration . declarationMetadata ) {
672674 throw new InternalError ( 'Invalid call to _addAncillaryDeclaration() because the declaration metadata'
673675 + ' has already been constructed' ) ;
674676 }
@@ -814,13 +816,11 @@ export class Collector {
814816 declarationMetadata . tsdocComment = parserContext . docComment ;
815817 }
816818
817- signatureMetadata . declarationMetadata = declarationMetadata ;
819+ astDeclaration . declarationMetadata = declarationMetadata ;
818820
819821 // Lastly, share the result with any ancillary declarations
820822 for ( const ancillaryDeclaration of signatureMetadata . ancillaryDeclarations ) {
821- const ancillarySignatureMetadata : InternalSignatureMetadata
822- = ancillaryDeclaration . signatureMetadata as InternalSignatureMetadata ;
823- ancillarySignatureMetadata . declarationMetadata = declarationMetadata ;
823+ ancillaryDeclaration . declarationMetadata = declarationMetadata ;
824824 }
825825 }
826826
0 commit comments