@@ -101,6 +101,16 @@ module.exports = {
101101 } )
102102 }
103103
104+ /**
105+ * @param {CallExpression } node
106+ */
107+ function reportWrappedIdentifiers ( node ) {
108+ const nodes = node . arguments . filter ( ( node ) => node . type === 'Identifier' )
109+ for ( const node of nodes ) {
110+ reportIfRefWrapped ( node )
111+ }
112+ }
113+
104114 const programNode = context . getSourceCode ( ) . ast
105115
106116 const callVisitor = {
@@ -117,35 +127,27 @@ module.exports = {
117127
118128 // verify setup context
119129 const setupContext = setupContexts . get ( info ? info . node : programNode )
120- if ( setupContext ) {
121- const { contextReferenceIds, emitReferenceIds } = setupContext
130+ if ( ! setupContext ) {
131+ return
132+ }
133+
134+ const { contextReferenceIds, emitReferenceIds } = setupContext
135+ if (
136+ node . callee . type === 'Identifier' &&
137+ emitReferenceIds . has ( node . callee )
138+ ) {
139+ // verify setup(props,{emit}) {emit()}
140+ reportWrappedIdentifiers ( node )
141+ } else {
142+ const emit = getCalleeMemberNode ( node )
122143 if (
123- node . callee . type === 'Identifier' &&
124- emitReferenceIds . has ( node . callee )
144+ emit &&
145+ emit . name === 'emit' &&
146+ emit . member . object . type === 'Identifier' &&
147+ contextReferenceIds . has ( emit . member . object )
125148 ) {
126- // verify setup(props,{emit}) {emit()}
127- const nodes = node . arguments . filter (
128- ( node ) => node . type === 'Identifier'
129- )
130- for ( const node of nodes ) {
131- reportIfRefWrapped ( node )
132- }
133- } else {
134- const emit = getCalleeMemberNode ( node )
135- if (
136- emit &&
137- emit . name === 'emit' &&
138- emit . member . object . type === 'Identifier' &&
139- contextReferenceIds . has ( emit . member . object )
140- ) {
141- // verify setup(props,context) {context.emit()}
142- const nodes = node . arguments . filter (
143- ( node ) => node . type === 'Identifier'
144- )
145- for ( const node of nodes ) {
146- reportIfRefWrapped ( node )
147- }
148- }
149+ // verify setup(props,context) {context.emit()}
150+ reportWrappedIdentifiers ( node )
149151 }
150152 }
151153 }
@@ -285,6 +287,7 @@ module.exports = {
285287 // cannot check
286288 return
287289 }
290+
288291 const contextReferenceIds = new Set ( )
289292 const emitReferenceIds = new Set ( )
290293 if ( contextParam . type === 'ObjectPattern' ) {
0 commit comments