mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-22401: Infinite loop fixed for cases when element can't be resolved
* PyQualifiedName::removeLastElement() does not change instance , it just creates new instance leaving former unchanged. So, currentName was always "initialName - 1 component"
This commit is contained in:
@@ -27,7 +27,7 @@ import com.jetbrains.python.psi.types.TypeEvalContext
|
||||
*/
|
||||
fun QualifiedName.toElement(module: Module, context: TypeEvalContext): PsiElement? {
|
||||
val facade = PyPsiFacadeImpl.getInstance(module.project)
|
||||
var currentName = this
|
||||
var currentName = QualifiedName.fromComponents(this.components)
|
||||
|
||||
|
||||
var element: PsiElement? = null
|
||||
@@ -40,8 +40,8 @@ fun QualifiedName.toElement(module: Module, context: TypeEvalContext): PsiElemen
|
||||
if (element != null) {
|
||||
break
|
||||
}
|
||||
lastElement = this.lastComponent!!
|
||||
currentName = this.removeLastComponent()
|
||||
lastElement = currentName.lastComponent!!
|
||||
currentName = currentName.removeLastComponent()
|
||||
}
|
||||
|
||||
if (lastElement != null && element is PyClass) {
|
||||
|
||||
Reference in New Issue
Block a user