From f15f930053a829d366e55e2dee8c454f20f66dcd Mon Sep 17 00:00:00 2001 From: David Peter Date: Tue, 1 Jul 2025 15:11:10 +0200 Subject: [PATCH] [ty] Fix panic for attribute expressions with empty value --- .../resources/corpus/88_regression_issue_738.py | 1 + crates/ty_python_semantic/src/types/infer.rs | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 crates/ty_python_semantic/resources/corpus/88_regression_issue_738.py diff --git a/crates/ty_python_semantic/resources/corpus/88_regression_issue_738.py b/crates/ty_python_semantic/resources/corpus/88_regression_issue_738.py new file mode 100644 index 0000000000..0e13bbf172 --- /dev/null +++ b/crates/ty_python_semantic/resources/corpus/88_regression_issue_738.py @@ -0,0 +1 @@ +[. diff --git a/crates/ty_python_semantic/src/types/infer.rs b/crates/ty_python_semantic/src/types/infer.rs index 1635458fb5..a7da6b42e7 100644 --- a/crates/ty_python_semantic/src/types/infer.rs +++ b/crates/ty_python_semantic/src/types/infer.rs @@ -5675,6 +5675,13 @@ impl<'db, 'ast> TypeInferenceBuilder<'db, 'ast> { }; (place, None) } else { + if expr_ref + .as_name_expr() + .is_some_and(|name| name.is_invalid()) + { + return (Place::Unbound, None); + } + let use_id = expr_ref.scoped_use_id(db, scope); let place = place_from_bindings(db, use_def.bindings_at_use(use_id)); (place, Some(use_id))