From 7045898ffacb34743c036ca94c7f791f62087335 Mon Sep 17 00:00:00 2001 From: Matthew Mckee Date: Wed, 29 Oct 2025 18:39:36 +0000 Subject: [PATCH] [ty] Dont provide goto definition for definitions which are not reexported in builtins (#21127) --- crates/ty_ide/src/goto_definition.rs | 17 +++++++++++++++++ .../ty_python_semantic/src/types/ide_support.rs | 1 + 2 files changed, 18 insertions(+) diff --git a/crates/ty_ide/src/goto_definition.rs b/crates/ty_ide/src/goto_definition.rs index 6dc9e203b6..fc0fc28fb9 100644 --- a/crates/ty_ide/src/goto_definition.rs +++ b/crates/ty_ide/src/goto_definition.rs @@ -1592,6 +1592,23 @@ a = Test() "); } + /// Regression test for . + /// We must ensure we respect re-import convention for stub files for + /// imports in builtins.pyi. + #[test] + fn goto_definition_unimported_symbol_imported_in_builtins() { + let test = CursorTest::builder() + .source( + "main.py", + " +TracebackType +", + ) + .build(); + + assert_snapshot!(test.goto_definition(), @"No goto target found"); + } + impl CursorTest { fn goto_definition(&self) -> String { let Some(targets) = goto_definition(&self.db, self.cursor.file, self.cursor.offset) diff --git a/crates/ty_python_semantic/src/types/ide_support.rs b/crates/ty_python_semantic/src/types/ide_support.rs index 9dad158369..02a9330299 100644 --- a/crates/ty_python_semantic/src/types/ide_support.rs +++ b/crates/ty_python_semantic/src/types/ide_support.rs @@ -615,6 +615,7 @@ pub fn definitions_for_name<'db>( }; find_symbol_in_scope(db, builtins_scope, name_str) .into_iter() + .filter(|def| def.is_reexported(db)) .flat_map(|def| { resolve_definition( db,