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,