From eeadf2a556dab3b9785520013ac7d369d2a6586a Mon Sep 17 00:00:00 2001 From: Aria Desires Date: Wed, 26 Nov 2025 19:29:07 -0500 Subject: [PATCH] regression test --- .../mdtest/import/nonstandard_conventions.md | 43 +++++++++++++++++++ crates/ty_python_semantic/src/types.rs | 5 ++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/crates/ty_python_semantic/resources/mdtest/import/nonstandard_conventions.md b/crates/ty_python_semantic/resources/mdtest/import/nonstandard_conventions.md index 3af8ec3a34..43a9ed2e51 100644 --- a/crates/ty_python_semantic/resources/mdtest/import/nonstandard_conventions.md +++ b/crates/ty_python_semantic/resources/mdtest/import/nonstandard_conventions.md @@ -880,6 +880,49 @@ from mypackage import funcmod x = funcmod(1) ``` +## A Tale of Two Modules + +`from typing import TYPE_CHECKING` has side-effects??? + +### In Stub + +`mypackage/__init__.py`: + +```py +from .conflicted.b import x +``` + +`mypackage/conflicted/__init__.py`: + +`mypackage/conflicted/other1/__init__.py`: + +```py +x: int = 1 +``` + +`mypackage/conflicted/b/__init__.py`: + +```py +x: int = 1 +``` + +`mypackage/conflicted/b/c/__init__.py`: + +```py +y: int = 2 +``` + +`main.py`: + +```py +from typing import TYPE_CHECKING +from mypackage.conflicted.other1 import x as x1 +import mypackage.conflicted.b.c + +# error: [possibly-missing-attribute] +reveal_type(mypackage.conflicted.b.c.y) # revealed: Unknown +``` + ## Re-export Nameclash Problems In Functions `from` imports in an `__init__.py` at file scope should be visible to functions defined in the file: diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index 17eaacb52f..ce9e0488d6 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -13317,7 +13317,8 @@ impl<'db> ModuleLiteralType<'db> { let place_and_qualifiers = self .module(db) .file(db) - .map(|file| { + .map(|file| imported_symbol(db, file, name, None)) + /*.map(|file| { imported_symbol(db, file, name, None).map_type(|ty| { if let Some(importing) = self.importing_file(db) && let Type::ModuleLiteral(module) = ty @@ -13327,7 +13328,7 @@ impl<'db> ModuleLiteralType<'db> { ty } }) - }) + })*/ .unwrap_or_default(); if !place_and_qualifiers.is_undefined() {