From 59c6bd184db7df76d282accb8999db3355ad984e Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Tue, 31 Jan 2012 18:55:49 +0400 Subject: [PATCH] =?UTF-8?q?Proper=20alt=20class=20->=20sources=20navigatio?= =?UTF-8?q?n=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lang/resolve/java/JavaDescriptorResolver.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 23a064cef4e..cf6428169eb 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -7,6 +7,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; +import com.intellij.psi.impl.compiled.ClsClassImpl; import com.intellij.psi.search.DelegatingGlobalSearchScope; import com.intellij.psi.search.GlobalSearchScope; import jet.typeinfo.TypeInfoVariance; @@ -647,9 +648,16 @@ public class JavaDescriptorResolver { } public PsiClass findClass(String qualifiedName) { + PsiClass original = javaFacade.findClass(qualifiedName, javaSearchScope); PsiClass altClass = altClassFinder.findClass(qualifiedName); - if (altClass != null) return altClass; - return javaFacade.findClass(qualifiedName, javaSearchScope); + if (altClass != null) { + if (altClass instanceof ClsClassImpl) { + altClass.putUserData(ClsClassImpl.DELEGATE_KEY, original); + } + + return altClass; + } + return original; } /*package*/ PsiPackage findPackage(String qualifiedName) { -- GitLab