@@ -38,8 +38,8 @@ module.exports = {
38
38
* @param {ASTNode } message The message AST node
39
39
* @returns {void }
40
40
*/
41
- function processMessageNode ( message ) {
42
- const staticValue = getStaticValue ( message , context . getScope ( ) ) ;
41
+ function processMessageNode ( message , scope ) {
42
+ const staticValue = getStaticValue ( message , scope ) ;
43
43
if (
44
44
( message . type === 'Literal' &&
45
45
typeof message . value === 'string' &&
@@ -69,6 +69,7 @@ module.exports = {
69
69
70
70
return {
71
71
Program ( ast ) {
72
+ const scope = sourceCode . getScope ( ast ) || context . getScope ( ) ; // TODO: just use sourceCode.getScope() when we drop support for ESLint < v9.0.0
72
73
contextIdentifiers = utils . getContextIdentifiers (
73
74
sourceCode . scopeManager ,
74
75
ast
@@ -93,9 +94,10 @@ module.exports = {
93
94
messagesObject . value . properties
94
95
. filter ( ( prop ) => prop . type === 'Property' )
95
96
. map ( ( prop ) => prop . value )
96
- . forEach ( processMessageNode ) ;
97
+ . forEach ( ( it ) => processMessageNode ( it , scope ) ) ;
97
98
} ,
98
99
CallExpression ( node ) {
100
+ const scope = sourceCode . getScope ( node ) || context . getScope ( ) ; // TODO: just use sourceCode.getScope() when we drop support for ESLint < v9.0.0
99
101
if (
100
102
node . callee . type === 'MemberExpression' &&
101
103
contextIdentifiers . has ( node . callee . object ) &&
@@ -107,7 +109,7 @@ module.exports = {
107
109
const suggest = reportInfo && reportInfo . suggest ;
108
110
109
111
if ( message ) {
110
- processMessageNode ( message ) ;
112
+ processMessageNode ( message , scope ) ;
111
113
}
112
114
113
115
if ( suggest && suggest . type === 'ArrayExpression' ) {
@@ -122,7 +124,7 @@ module.exports = {
122
124
prop . key . name === 'message'
123
125
)
124
126
. map ( ( prop ) => prop . value )
125
- . forEach ( processMessageNode ) ;
127
+ . forEach ( ( it ) => processMessageNode ( it , scope ) ) ;
126
128
}
127
129
}
128
130
} ,
0 commit comments