@@ -955,6 +955,9 @@ function resolveSpreadObject(
955955 scopeManager : Scope . ScopeManager ,
956956) : SpreadResolution {
957957 let node : Expression | FunctionDeclaration = argument ;
958+ if ( node . type === 'Identifier' && isUndefinedIdentifier ( node ) ) {
959+ return { kind : 'empty' } ;
960+ }
958961 if ( node . type === 'Identifier' ) {
959962 const value = findVariableValue ( node , scopeManager ) ;
960963 if ( ! value ) {
@@ -1125,14 +1128,31 @@ export function getMetaDocsProperty(
11251128 . filter ( ( node ) => node . type === 'Property' )
11261129 . find ( ( p ) => getKeyName ( p ) === 'docs' ) ;
11271130
1131+ const docsResolution = docsNode
1132+ ? resolveSpreadObject ( docsNode . value as Expression , scopeManager )
1133+ : undefined ;
1134+ const docsObjectNode =
1135+ docsResolution ?. kind === 'object' ? docsResolution . node : undefined ;
1136+
11281137 const metaPropertyNode = evaluateObjectProperties (
1129- docsNode ?. value ,
1138+ docsObjectNode ,
11301139 scopeManager ,
11311140 )
11321141 . filter ( ( node ) => node . type === 'Property' )
11331142 . find ( ( p ) => getKeyName ( p ) === propertyName ) ;
11341143
1135- return { docsNode, metaNode, metaPropertyNode } ;
1144+ const docsMayHaveUnknownProperties = Boolean (
1145+ docsNode &&
1146+ ( docsResolution ?. kind === 'unknown' ||
1147+ hasUnresolvedObjectSpread ( docsObjectNode , scopeManager ) ) ,
1148+ ) ;
1149+
1150+ return {
1151+ docsNode,
1152+ docsMayHaveUnknownProperties,
1153+ metaNode,
1154+ metaPropertyNode,
1155+ } ;
11361156}
11371157
11381158/**
0 commit comments