Skip to content

Commit 03defb6

Browse files
committed
Add check_generic_arg early pass
1 parent 27411d6 commit 03defb6

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

compiler/rustc_ast/src/visit.rs

+12-5
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,7 @@ pub trait Visitor<'ast>: Sized {
200200
walk_generic_args(self, path_span, generic_args)
201201
}
202202
fn visit_generic_arg(&mut self, generic_arg: &'ast GenericArg) {
203-
match generic_arg {
204-
GenericArg::Lifetime(lt) => self.visit_lifetime(lt),
205-
GenericArg::Type(ty) => self.visit_ty(ty),
206-
GenericArg::Const(ct) => self.visit_anon_const(ct),
207-
}
203+
walk_generic_arg(self, generic_arg)
208204
}
209205
fn visit_assoc_ty_constraint(&mut self, constraint: &'ast AssocTyConstraint) {
210206
walk_assoc_ty_constraint(self, constraint)
@@ -486,6 +482,17 @@ where
486482
}
487483
}
488484

485+
pub fn walk_generic_arg<'a, V>(visitor: &mut V, generic_arg: &'a GenericArg)
486+
where
487+
V: Visitor<'a>,
488+
{
489+
match generic_arg {
490+
GenericArg::Lifetime(lt) => visitor.visit_lifetime(lt),
491+
GenericArg::Type(ty) => visitor.visit_ty(ty),
492+
GenericArg::Const(ct) => visitor.visit_anon_const(ct),
493+
}
494+
}
495+
489496
pub fn walk_assoc_ty_constraint<'a, V: Visitor<'a>>(
490497
visitor: &mut V,
491498
constraint: &'a AssocTyConstraint,

compiler/rustc_lint/src/early.rs

+5
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,11 @@ impl<'a, T: EarlyLintPass> ast_visit::Visitor<'a> for EarlyContextAndPass<'a, T>
195195
run_early_pass!(self, check_expr_post, e);
196196
}
197197

198+
fn visit_generic_arg(&mut self, arg: &'a ast::GenericArg) {
199+
run_early_pass!(self, check_generic_arg, arg);
200+
ast_visit::walk_generic_arg(self, arg);
201+
}
202+
198203
fn visit_generic_param(&mut self, param: &'a ast::GenericParam) {
199204
run_early_pass!(self, check_generic_param, param);
200205
ast_visit::walk_generic_param(self, param);

compiler/rustc_lint/src/passes.rs

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ macro_rules! late_lint_methods {
3333
fn check_expr(a: &$hir hir::Expr<$hir>);
3434
fn check_expr_post(a: &$hir hir::Expr<$hir>);
3535
fn check_ty(a: &$hir hir::Ty<$hir>);
36+
fn check_generic_arg(a: &$hir hir::GenericArg<$hir>);
3637
fn check_generic_param(a: &$hir hir::GenericParam<$hir>);
3738
fn check_generics(a: &$hir hir::Generics<$hir>);
3839
fn check_where_predicate(a: &$hir hir::WherePredicate<$hir>);
@@ -176,6 +177,7 @@ macro_rules! early_lint_methods {
176177
fn check_expr(a: &ast::Expr);
177178
fn check_expr_post(a: &ast::Expr);
178179
fn check_ty(a: &ast::Ty);
180+
fn check_generic_arg(a: &ast::GenericArg);
179181
fn check_generic_param(a: &ast::GenericParam);
180182
fn check_generics(a: &ast::Generics);
181183
fn check_where_predicate(a: &ast::WherePredicate);

0 commit comments

Comments
 (0)