mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Fix transferring stub package marker to resolved subdirs (PY-31739, PY-31740)
They're often converted to `__init__.py` and vice versa.
This commit is contained in:
@@ -54,7 +54,7 @@ fun findStubPackage(dir: PsiDirectory,
|
||||
|
||||
// see comment about case sensitivity in com.jetbrains.python.psi.resolve.ResolveImportUtil.resolveInDirectory
|
||||
if (stubPackage?.name == stubPackageName && (!checkForPackage || PyUtil.isPackage(stubPackage, dir))) {
|
||||
stubPackage.putUserData(STUB_PACKAGE_KEY, true)
|
||||
doTransferStubPackageMarker(stubPackage)
|
||||
return stubPackage
|
||||
}
|
||||
}
|
||||
@@ -74,10 +74,15 @@ fun transferStubPackageMarker(dir: PsiDirectory, resolvedSubmodule: PsiFile): Ps
|
||||
* Puts special mark to dir resolved in stub package.
|
||||
*/
|
||||
fun transferStubPackageMarker(dir: PsiDirectory, resolvedSubdir: PsiDirectory): PsiDirectory {
|
||||
if (dir.getUserData(STUB_PACKAGE_KEY) == true) resolvedSubdir.putUserData(STUB_PACKAGE_KEY, true)
|
||||
if (dir.getUserData(STUB_PACKAGE_KEY) == true) doTransferStubPackageMarker(resolvedSubdir)
|
||||
return resolvedSubdir
|
||||
}
|
||||
|
||||
private fun doTransferStubPackageMarker(resolvedSubdir: PsiDirectory) {
|
||||
resolvedSubdir.putUserData(STUB_PACKAGE_KEY, true)
|
||||
PyUtil.turnDirIntoInit(resolvedSubdir)?.putUserData(STUB_PACKAGE_KEY, true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters resolved elements according to their import priority in sys.path and
|
||||
* [PEP 561](https://www.python.org/dev/peps/pep-0561/#type-checker-module-resolution-order) rules.
|
||||
|
||||
Reference in New Issue
Block a user