@@ -126,35 +126,34 @@ fn resolve_global_binding<'a, 'b: 'a>(
126126
127127impl Rule for NoObjCalls {
128128 fn run < ' a > ( & self , node : & AstNode < ' a > , ctx : & LintContext < ' a > ) {
129- let ( callee, span) = match node. kind ( ) {
130- AstKind :: NewExpression ( expr) => ( & expr. callee , expr. span ) ,
131- AstKind :: CallExpression ( expr) => ( & expr. callee , expr. span ) ,
132- _ => return ,
133- } ;
134-
135- match callee {
136- Expression :: Identifier ( ident) => {
137- // handle new Math(), Math(), etc
138- if let Some ( top_level_reference) =
139- resolve_global_binding ( ident, node. scope_id ( ) , ctx)
140- && is_global_obj ( top_level_reference)
141- {
142- ctx. diagnostic ( no_obj_calls_diagnostic ( ident. name . as_str ( ) , span) ) ;
143- }
144- }
129+ match node. kind ( ) {
130+ AstKind :: NewExpression ( expr) => check_callee ( & expr. callee , expr. span , node, ctx) ,
131+ AstKind :: CallExpression ( expr) => check_callee ( & expr. callee , expr. span , node, ctx) ,
132+ _ => { }
133+ }
134+ }
135+ }
145136
146- match_member_expression ! ( Expression ) => {
147- // handle new globalThis.Math(), globalThis.Math(), etc
148- if let Some ( global_member) = global_this_member ( callee. to_member_expression ( ) )
149- && is_global_obj ( global_member)
150- {
151- ctx. diagnostic ( no_obj_calls_diagnostic ( global_member, span) ) ;
152- }
137+ fn check_callee < ' a > ( callee : & ' a Expression , span : Span , node : & AstNode < ' a > , ctx : & LintContext < ' a > ) {
138+ match callee {
139+ Expression :: Identifier ( ident) => {
140+ // handle new Math(), Math(), etc
141+ if let Some ( top_level_reference) = resolve_global_binding ( ident, node. scope_id ( ) , ctx)
142+ && is_global_obj ( top_level_reference)
143+ {
144+ ctx. diagnostic ( no_obj_calls_diagnostic ( ident. name . as_str ( ) , span) ) ;
153145 }
154- _ => {
155- // noop
146+ }
147+
148+ match_member_expression ! ( Expression ) => {
149+ // handle new globalThis.Math(), globalThis.Math(), etc
150+ if let Some ( global_member) = global_this_member ( callee. to_member_expression ( ) )
151+ && is_global_obj ( global_member)
152+ {
153+ ctx. diagnostic ( no_obj_calls_diagnostic ( global_member, span) ) ;
156154 }
157155 }
156+ _ => { }
158157 }
159158}
160159
0 commit comments