diff --git a/crates/ruff/src/checkers/ast/mod.rs b/crates/ruff/src/checkers/ast/mod.rs index 97301caeeef67f..4d5bb19a093536 100644 --- a/crates/ruff/src/checkers/ast/mod.rs +++ b/crates/ruff/src/checkers/ast/mod.rs @@ -4061,12 +4061,18 @@ where } Some(Callable::NewType) => { self.visit_expr(func); + if !args.is_empty() { + self.visit_non_type_definition(&args[0]); + } for expr in args.iter().skip(1) { self.visit_type_definition(expr); } } Some(Callable::TypeVar) => { self.visit_expr(func); + if !args.is_empty() { + self.visit_non_type_definition(&args[0]); + } for expr in args.iter().skip(1) { self.visit_type_definition(expr); } @@ -4089,6 +4095,9 @@ where self.visit_expr(func); // Ex) NamedTuple("a", [("a", int)]) + if !args.is_empty() { + self.visit_non_type_definition(&args[0]); + } if args.len() > 1 { match &args[1] { Expr::List(ast::ExprList { elts, .. }) @@ -4120,6 +4129,9 @@ where self.visit_expr(func); // Ex) TypedDict("a", {"a": int}) + if !args.is_empty() { + self.visit_non_type_definition(&args[0]); + } if args.len() > 1 { if let Expr::Dict(ast::ExprDict { keys,