Skip to content

Commit 60b1f9b

Browse files
committed
fix(no_invalid_regexp): call inside super case
1 parent 2e88770 commit 60b1f9b

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/rules/no_invalid_regexp.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use super::{Context, LintRule};
55
use crate::js_regex::*;
66
use crate::Program;
77
use crate::ProgramRef;
8-
use deno_ast::swc::ast::Expr;
98
use deno_ast::swc::ast::ExprOrSpread;
9+
use deno_ast::swc::ast::{Callee, Expr};
1010
use deno_ast::swc::visit::Visit;
1111
use deno_ast::swc::visit::{noop_visit_type, VisitWith};
1212
use deno_ast::SourceRange;
@@ -126,8 +126,12 @@ impl<'c, 'view> Visit for NoInvalidRegexpVisitor<'c, 'view> {
126126
}
127127

128128
fn visit_call_expr(&mut self, call_expr: &deno_ast::swc::ast::CallExpr) {
129-
if let deno_ast::swc::ast::Callee::Expr(expr) = &call_expr.callee {
130-
self.handle_call_or_new_expr(expr, &call_expr.args, call_expr.range());
129+
match &call_expr.callee {
130+
Callee::Super(_) => call_expr.args.visit_children_with(self),
131+
Callee::Expr(expr) => {
132+
self.handle_call_or_new_expr(expr, &call_expr.args, call_expr.range());
133+
}
134+
_ => {}
131135
}
132136
}
133137

@@ -217,6 +221,12 @@ let re = new RegExp('foo', x);",
217221
new function () {
218222
return /+/;
219223
};": [{ line: 3, col: 9, message: MESSAGE, hint: HINT }],
224+
r"
225+
class C extends RegExp {
226+
constructor() {
227+
super(/+/);
228+
}
229+
}": [{ line: 4, col: 10, message: MESSAGE, hint: HINT }],
220230
}
221231
}
222232
}

0 commit comments

Comments
 (0)