Rewrite Java resolve to use static class scope instead of synthesized packages
#KT-4149 Fixed #KT-4839 Fixed
This commit is contained in:
@@ -24,14 +24,10 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
||||
import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper;
|
||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||
|
||||
import java.util.HashSet;
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import java.util.ArrayList
|
||||
import org.jetbrains.jet.lang.psi.psiUtil.getParentByType
|
||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPropertyDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyPackageFragmentForJavaClass
|
||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaMethodDescriptor
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiDocumentManager
|
||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
||||
@@ -245,19 +241,9 @@ public object ShortenReferences {
|
||||
refExpression: JetReferenceExpression,
|
||||
bindingContext: BindingContext
|
||||
): PsiElement {
|
||||
val receiverExpression = qualifiedExpression.getReceiverExpression()
|
||||
val target = bindingContext[BindingContext.REFERENCE_TARGET, refExpression]
|
||||
if (target != null) {
|
||||
if ((target is JavaPropertyDescriptor || target is JavaMethodDescriptor) && receiverExpression is JetDotQualifiedExpression) {
|
||||
val containingDescriptor = target.getContainingDeclaration()
|
||||
if (containingDescriptor is LazyPackageFragmentForJavaClass) {
|
||||
return shortenIfPossibleByDescriptor(receiverExpression, containingDescriptor.getCorrespondingClass(), bindingContext)
|
||||
}
|
||||
}
|
||||
|
||||
return shortenIfPossibleByDescriptor(qualifiedExpression, target, bindingContext)
|
||||
}
|
||||
return qualifiedExpression
|
||||
if (target == null) return qualifiedExpression
|
||||
return shortenIfPossibleByDescriptor(qualifiedExpression, target, bindingContext)
|
||||
}
|
||||
|
||||
private fun instantiatedClass(calleeExpression: JetReferenceExpression): ClassDescriptor? {
|
||||
|
||||
@@ -18,16 +18,9 @@ package org.jetbrains.jet.plugin.completion.smart
|
||||
|
||||
import com.intellij.codeInsight.lookup.LookupElement
|
||||
import org.jetbrains.jet.lang.types.TypeUtils
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.*
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorWithVisibility
|
||||
import org.jetbrains.jet.lang.descriptors.Visibilities
|
||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.ClassKind
|
||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
||||
import com.intellij.codeInsight.lookup.LookupElementDecorator
|
||||
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
||||
import org.jetbrains.jet.renderer.DescriptorRenderer
|
||||
@@ -95,12 +88,7 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso
|
||||
collection.addLookupElements(expectedInfos, classifier, { createLookupElement(descriptor, classDescriptor) })
|
||||
}
|
||||
|
||||
if (classDescriptor is JavaClassDescriptor) {
|
||||
val pseudoPackage = classDescriptor.getCorrespondingPackageFragment()
|
||||
if (pseudoPackage != null) {
|
||||
pseudoPackage.getMemberScope().getAllDescriptors().forEach(::processMember)
|
||||
}
|
||||
}
|
||||
classDescriptor.getStaticScope().getAllDescriptors().forEach(::processMember)
|
||||
|
||||
val classObject = classDescriptor.getClassObjectDescriptor()
|
||||
if (classObject != null) {
|
||||
|
||||
Reference in New Issue
Block a user