Introduce ResolutionFacade to be used by plugin code instead of resolve session
Do not expose ResolveSessionForBodies where possible Define API of ResolutionFacade, similar to what ResolveSessionForBodies has JetElement#getLazyResolveSession returns ResolutionFacade Call sites to be updated later
This commit is contained in:
+22
-2
@@ -35,11 +35,14 @@ import org.jetbrains.jet.lang.psi.JetCodeFragment
|
|||||||
import org.jetbrains.jet.utils.keysToMap
|
import org.jetbrains.jet.utils.keysToMap
|
||||||
import com.intellij.openapi.roots.ProjectRootModificationTracker
|
import com.intellij.openapi.roots.ProjectRootModificationTracker
|
||||||
import org.jetbrains.jet.plugin.util.ProjectRootsUtil
|
import org.jetbrains.jet.plugin.util.ProjectRootsUtil
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||||
|
import org.jetbrains.jet.lang.psi.JetDeclaration
|
||||||
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
|
|
||||||
private val LOG = Logger.getInstance(javaClass<KotlinCacheService>())
|
private val LOG = Logger.getInstance(javaClass<KotlinCacheService>())
|
||||||
|
|
||||||
public fun JetElement.getLazyResolveSession(): ResolveSessionForBodies {
|
public fun JetElement.getLazyResolveSession(): ResolutionFacade {
|
||||||
return KotlinCacheService.getInstance(getProject()).getLazyResolveSession(this)
|
return KotlinCacheService.getInstance(getProject()).getAnalysisFacade(listOf(this))
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun JetElement.getAnalysisResults(vararg extraFiles: JetFile): AnalyzeExhaust {
|
public fun JetElement.getAnalysisResults(vararg extraFiles: JetFile): AnalyzeExhaust {
|
||||||
@@ -61,6 +64,23 @@ public class KotlinCacheService(val project: Project) {
|
|||||||
public fun getInstance(project: Project): KotlinCacheService = ServiceManager.getService(project, javaClass<KotlinCacheService>())!!
|
public fun getInstance(project: Project): KotlinCacheService = ServiceManager.getService(project, javaClass<KotlinCacheService>())!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public fun getResolutionFacade(elements: List<JetElement>): ResolutionFacade {
|
||||||
|
val cache = getCacheToAnalyzeFiles(elements.map { it.getContainingJetFile() })
|
||||||
|
return object : ResolutionFacade {
|
||||||
|
override fun resolveToElement(element: JetElement): BindingContext {
|
||||||
|
return cache.getLazyResolveSession(element).resolveToElement(element)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getModuleDescriptorForElement(element: JetElement): ModuleDescriptor {
|
||||||
|
return cache.getLazyResolveSession(element).getModuleDescriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun resolveToDescriptor(declaration: JetDeclaration): DeclarationDescriptor {
|
||||||
|
return cache.getLazyResolveSession(declaration).resolveToDescriptor(declaration)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun globalResolveSessionProvider(
|
fun globalResolveSessionProvider(
|
||||||
platform: TargetPlatform,
|
platform: TargetPlatform,
|
||||||
dependencies: Collection<Any>,
|
dependencies: Collection<Any>,
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2014 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.plugin.caches.resolve
|
||||||
|
|
||||||
|
import org.jetbrains.jet.lang.psi.JetElement
|
||||||
|
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||||
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
|
import org.jetbrains.jet.lang.psi.JetDeclaration
|
||||||
|
|
||||||
|
public trait ResolutionFacade {
|
||||||
|
|
||||||
|
public fun resolveToElement(element: JetElement): BindingContext
|
||||||
|
|
||||||
|
public fun resolveToDescriptor(declaration: JetDeclaration): DeclarationDescriptor
|
||||||
|
|
||||||
|
public fun getModuleDescriptorForElement(element: JetElement): ModuleDescriptor
|
||||||
|
}
|
||||||
@@ -20,7 +20,6 @@ import com.intellij.psi.PsiElement;
|
|||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
|
||||||
import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper;
|
import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper;
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -35,8 +34,8 @@ import org.jetbrains.jet.lang.resolve.calls.callUtil.getCalleeExpressionIfAny
|
|||||||
import java.util.LinkedHashSet
|
import java.util.LinkedHashSet
|
||||||
import org.jetbrains.jet.lang.resolve.ImportPath
|
import org.jetbrains.jet.lang.resolve.ImportPath
|
||||||
import org.jetbrains.jet.lang.psi.psiUtil.getQualifiedElement
|
import org.jetbrains.jet.lang.psi.psiUtil.getQualifiedElement
|
||||||
import org.jetbrains.jet.lang.types.JetType
|
|
||||||
import org.jetbrains.jet.lang.resolve.descriptorUtil.getImportableDescriptor
|
import org.jetbrains.jet.lang.resolve.descriptorUtil.getImportableDescriptor
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
|
||||||
public object ShortenReferences {
|
public object ShortenReferences {
|
||||||
public fun process(element: JetElement) {
|
public fun process(element: JetElement) {
|
||||||
@@ -154,7 +153,7 @@ public object ShortenReferences {
|
|||||||
val elementFilter: (PsiElement) -> FilterResult,
|
val elementFilter: (PsiElement) -> FilterResult,
|
||||||
val resolveMap: Map<JetReferenceExpression, BindingContext>,
|
val resolveMap: Map<JetReferenceExpression, BindingContext>,
|
||||||
val importInserter: ImportInserter) : JetVisitorVoid() {
|
val importInserter: ImportInserter) : JetVisitorVoid() {
|
||||||
protected val resolveSession: ResolveSessionForBodies
|
protected val resolveSession: ResolutionFacade
|
||||||
get() = file.getLazyResolveSession()
|
get() = file.getLazyResolveSession()
|
||||||
|
|
||||||
protected val elementsToShorten: MutableSet<T> = LinkedHashSet()
|
protected val elementsToShorten: MutableSet<T> = LinkedHashSet()
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ public class RemoveExplicitTypeArguments : JetSelfTargetingIntention<JetTypeArgu
|
|||||||
if (callExpression.getTypeArguments().isEmpty()) return false
|
if (callExpression.getTypeArguments().isEmpty()) return false
|
||||||
|
|
||||||
val resolveSession = callExpression.getLazyResolveSession()
|
val resolveSession = callExpression.getLazyResolveSession()
|
||||||
val injector = InjectorForMacros(callExpression.getProject(), resolveSession.getModuleDescriptor())
|
val injector = InjectorForMacros(callExpression.getProject(), resolveSession.getModuleDescriptorForElement(callExpression))
|
||||||
|
|
||||||
val scope = context[BindingContext.RESOLUTION_SCOPE, callExpression]
|
val scope = context[BindingContext.RESOLUTION_SCOPE, callExpression]
|
||||||
val originalCall = callExpression.getResolvedCall(context)
|
val originalCall = callExpression.getResolvedCall(context)
|
||||||
|
|||||||
+2
-1
@@ -19,6 +19,7 @@ package org.jetbrains.jet.plugin.project;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.psi.JetElement;
|
import org.jetbrains.jet.lang.psi.JetElement;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
|
|
||||||
public final class AnalyzerFacadeWithCache {
|
public final class AnalyzerFacadeWithCache {
|
||||||
@@ -28,7 +29,7 @@ public final class AnalyzerFacadeWithCache {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static BindingContext getContextForElement(@NotNull JetElement jetElement) {
|
public static BindingContext getContextForElement(@NotNull JetElement jetElement) {
|
||||||
ResolveSessionForBodies resolveSessionForBodies = ResolvePackage.getLazyResolveSession(jetElement);
|
ResolutionFacade resolveSessionForBodies = ResolvePackage.getLazyResolveSession(jetElement);
|
||||||
return resolveSessionForBodies.resolveToElement(jetElement);
|
return resolveSessionForBodies.resolveToElement(jetElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.caches
|
package org.jetbrains.jet.plugin.caches
|
||||||
|
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.jet.lang.descriptors.*
|
import org.jetbrains.jet.lang.descriptors.*
|
||||||
import org.jetbrains.jet.plugin.stubindex.*
|
import org.jetbrains.jet.plugin.stubindex.*
|
||||||
@@ -35,14 +34,16 @@ import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.LookupMode
|
|||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue
|
||||||
import org.jetbrains.jet.lang.resolve.calls.smartcasts.DataFlowInfo
|
import org.jetbrains.jet.lang.resolve.calls.smartcasts.DataFlowInfo
|
||||||
import com.intellij.psi.stubs.StringStubIndexExtension
|
import com.intellij.psi.stubs.StringStubIndexExtension
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
import org.jetbrains.jet.plugin.util.extensionsUtils.isExtensionCallable
|
import org.jetbrains.jet.plugin.util.extensionsUtils.isExtensionCallable
|
||||||
|
|
||||||
public class KotlinIndicesHelper(private val project: Project,
|
public class KotlinIndicesHelper(
|
||||||
private val resolveSession: ResolveSessionForBodies,
|
private val project: Project,
|
||||||
private val scope: GlobalSearchScope,
|
private val resolveSession: ResolutionFacade,
|
||||||
private val visibilityFilter: (DeclarationDescriptor) -> Boolean) {
|
private val scope: GlobalSearchScope,
|
||||||
private val moduleDescriptor = resolveSession.getModuleDescriptor()
|
private val moduleDescriptor: ModuleDescriptor,
|
||||||
|
private val visibilityFilter: (DeclarationDescriptor) -> Boolean
|
||||||
|
) {
|
||||||
public fun getTopLevelObjects(nameFilter: (String) -> Boolean): Collection<ClassDescriptor> {
|
public fun getTopLevelObjects(nameFilter: (String) -> Boolean): Collection<ClassDescriptor> {
|
||||||
val allObjectNames = JetTopLevelObjectShortNameIndex.getInstance().getAllKeys(project).stream() +
|
val allObjectNames = JetTopLevelObjectShortNameIndex.getInstance().getAllKeys(project).stream() +
|
||||||
JetFromJavaDescriptorHelper.getPossiblePackageDeclarationsNames(project, scope).stream()
|
JetFromJavaDescriptorHelper.getPossiblePackageDeclarationsNames(project, scope).stream()
|
||||||
|
|||||||
@@ -27,13 +27,16 @@ import org.jetbrains.jet.lang.resolve.name.FqName
|
|||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
||||||
import org.jetbrains.jet.plugin.caches.JetFromJavaDescriptorHelper
|
import org.jetbrains.jet.plugin.caches.JetFromJavaDescriptorHelper
|
||||||
import org.jetbrains.jet.plugin.project.ProjectStructureUtil
|
import org.jetbrains.jet.plugin.project.ProjectStructureUtil
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import org.jetbrains.jet.plugin.caches.KotlinIndicesHelper
|
import org.jetbrains.jet.plugin.caches.KotlinIndicesHelper
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
import org.jetbrains.jet.lang.psi.JetElement
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||||
|
|
||||||
class AllClassesCompletion(val parameters: CompletionParameters,
|
class AllClassesCompletion(val parameters: CompletionParameters,
|
||||||
val resolveSession: ResolveSessionForBodies,
|
val resolveSession: ResolutionFacade,
|
||||||
|
val moduleDescriptor: ModuleDescriptor,
|
||||||
val scope: GlobalSearchScope,
|
val scope: GlobalSearchScope,
|
||||||
val prefixMatcher: PrefixMatcher,
|
val prefixMatcher: PrefixMatcher,
|
||||||
val kindFilter: (ClassKind) -> Boolean,
|
val kindFilter: (ClassKind) -> Boolean,
|
||||||
@@ -42,7 +45,7 @@ class AllClassesCompletion(val parameters: CompletionParameters,
|
|||||||
val builtIns = KotlinBuiltIns.getInstance().getNonPhysicalClasses().filter { kindFilter(it.getKind()) && prefixMatcher.prefixMatches(it.getName().asString()) }
|
val builtIns = KotlinBuiltIns.getInstance().getNonPhysicalClasses().filter { kindFilter(it.getKind()) && prefixMatcher.prefixMatches(it.getName().asString()) }
|
||||||
result.addDescriptorElements(builtIns, suppressAutoInsertion = true)
|
result.addDescriptorElements(builtIns, suppressAutoInsertion = true)
|
||||||
|
|
||||||
val helper = KotlinIndicesHelper(scope.getProject(), resolveSession, scope, visibilityFilter)
|
val helper = KotlinIndicesHelper(scope.getProject(), resolveSession, scope, moduleDescriptor, visibilityFilter)
|
||||||
result.addDescriptorElements(helper.getClassDescriptors({ prefixMatcher.prefixMatches(it) }, kindFilter),
|
result.addDescriptorElements(helper.getClassDescriptors({ prefixMatcher.prefixMatches(it) }, kindFilter),
|
||||||
suppressAutoInsertion = true)
|
suppressAutoInsertion = true)
|
||||||
|
|
||||||
@@ -79,7 +82,7 @@ class AllClassesCompletion(val parameters: CompletionParameters,
|
|||||||
if (kindFilter(JetFromJavaDescriptorHelper.getCompiledClassKind(aClass))) {
|
if (kindFilter(JetFromJavaDescriptorHelper.getCompiledClassKind(aClass))) {
|
||||||
val qualifiedName = aClass.getQualifiedName()
|
val qualifiedName = aClass.getQualifiedName()
|
||||||
if (qualifiedName != null) {
|
if (qualifiedName != null) {
|
||||||
val descriptors = ResolveSessionUtils.getClassDescriptorsByFqName(resolveSession.getModuleDescriptor(), FqName(qualifiedName)).filter(visibilityFilter)
|
val descriptors = ResolveSessionUtils.getClassDescriptorsByFqName(moduleDescriptor, FqName(qualifiedName)).filter(visibilityFilter)
|
||||||
collector.addDescriptorElements(descriptors, suppressAutoInsertion = true)
|
collector.addDescriptorElements(descriptors, suppressAutoInsertion = true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ import org.jetbrains.jet.plugin.caches.resolve.*
|
|||||||
import org.jetbrains.jet.plugin.codeInsight.ReferenceVariantsHelper
|
import org.jetbrains.jet.plugin.codeInsight.ReferenceVariantsHelper
|
||||||
import org.jetbrains.jet.plugin.completion.smart.SmartCompletion
|
import org.jetbrains.jet.plugin.completion.smart.SmartCompletion
|
||||||
import org.jetbrains.jet.plugin.references.JetSimpleNameReference
|
import org.jetbrains.jet.plugin.references.JetSimpleNameReference
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import org.jetbrains.jet.plugin.caches.KotlinIndicesHelper
|
import org.jetbrains.jet.plugin.caches.KotlinIndicesHelper
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.search.DelegatingGlobalSearchScope
|
import com.intellij.psi.search.DelegatingGlobalSearchScope
|
||||||
@@ -51,7 +50,9 @@ abstract class CompletionSessionBase(protected val configuration: CompletionSess
|
|||||||
resultSet: CompletionResultSet) {
|
resultSet: CompletionResultSet) {
|
||||||
protected val position: PsiElement = parameters.getPosition()
|
protected val position: PsiElement = parameters.getPosition()
|
||||||
protected val jetReference: JetSimpleNameReference? = position.getParent()?.getReferences()?.filterIsInstance(javaClass<JetSimpleNameReference>())?.firstOrNull()
|
protected val jetReference: JetSimpleNameReference? = position.getParent()?.getReferences()?.filterIsInstance(javaClass<JetSimpleNameReference>())?.firstOrNull()
|
||||||
protected val resolveSession: ResolveSessionForBodies = (position.getContainingFile() as JetFile).getLazyResolveSession()
|
private val file = position.getContainingFile() as JetFile
|
||||||
|
protected val resolveSession: ResolutionFacade = file.getLazyResolveSession()
|
||||||
|
protected val moduleDescriptor: ModuleDescriptor = resolveSession.getModuleDescriptorForElement(file)
|
||||||
protected val bindingContext: BindingContext? = jetReference?.let { resolveSession.resolveToElement(it.expression) }
|
protected val bindingContext: BindingContext? = jetReference?.let { resolveSession.resolveToElement(it.expression) }
|
||||||
protected val inDescriptor: DeclarationDescriptor? = jetReference?.let { bindingContext!!.get(BindingContext.RESOLUTION_SCOPE, it.expression)?.getContainingDeclaration() }
|
protected val inDescriptor: DeclarationDescriptor? = jetReference?.let { bindingContext!!.get(BindingContext.RESOLUTION_SCOPE, it.expression)?.getContainingDeclaration() }
|
||||||
|
|
||||||
@@ -90,7 +91,8 @@ abstract class CompletionSessionBase(protected val configuration: CompletionSess
|
|||||||
override fun contains(file: VirtualFile) = super.contains(file) && file != parameters.getOriginalFile().getVirtualFile()
|
override fun contains(file: VirtualFile) = super.contains(file) && file != parameters.getOriginalFile().getVirtualFile()
|
||||||
}
|
}
|
||||||
|
|
||||||
protected val indicesHelper: KotlinIndicesHelper = KotlinIndicesHelper(project, resolveSession, searchScope) { isVisibleDescriptor(it) }
|
protected val indicesHelper: KotlinIndicesHelper
|
||||||
|
= KotlinIndicesHelper(project, resolveSession, searchScope, moduleDescriptor) { isVisibleDescriptor(it) }
|
||||||
|
|
||||||
protected fun isVisibleDescriptor(descriptor: DeclarationDescriptor): Boolean {
|
protected fun isVisibleDescriptor(descriptor: DeclarationDescriptor): Boolean {
|
||||||
if (configuration.completeNonAccessibleDeclarations) return true
|
if (configuration.completeNonAccessibleDeclarations) return true
|
||||||
@@ -138,7 +140,10 @@ abstract class CompletionSessionBase(protected val configuration: CompletionSess
|
|||||||
= indicesHelper.getCallableExtensions({ prefixMatcher.prefixMatches(it) }, jetReference!!.expression)
|
= indicesHelper.getCallableExtensions({ prefixMatcher.prefixMatches(it) }, jetReference!!.expression)
|
||||||
|
|
||||||
protected fun addAllClasses(kindFilter: (ClassKind) -> Boolean) {
|
protected fun addAllClasses(kindFilter: (ClassKind) -> Boolean) {
|
||||||
AllClassesCompletion(parameters, resolveSession, searchScope, prefixMatcher, kindFilter, { isVisibleDescriptor(it) }).collect(collector)
|
AllClassesCompletion(
|
||||||
|
parameters, resolveSession, moduleDescriptor,
|
||||||
|
searchScope, prefixMatcher, kindFilter, { isVisibleDescriptor(it) }
|
||||||
|
).collect(collector)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,13 +19,17 @@ package org.jetbrains.jet.plugin.completion
|
|||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores information about resolved descriptor and position of that descriptor.
|
* Stores information about resolved descriptor and position of that descriptor.
|
||||||
* Position will be used for sorting
|
* Position will be used for sorting
|
||||||
*/
|
*/
|
||||||
public class DeclarationDescriptorLookupObject(public val descriptor: DeclarationDescriptor, private val analyzer: KotlinCodeAnalyzer, public val psiElement: PsiElement?) {
|
public class DeclarationDescriptorLookupObject(
|
||||||
|
public val descriptor: DeclarationDescriptor,
|
||||||
|
private val analyzer: ResolutionFacade,
|
||||||
|
public val psiElement: PsiElement?
|
||||||
|
) {
|
||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return super.toString() + " " + descriptor
|
return super.toString() + " " + descriptor
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,11 +65,9 @@ import org.jetbrains.jet.lang.resolve.bindingContextUtil.getTargetFunctionDescri
|
|||||||
import org.jetbrains.jet.plugin.completion.smart.toList
|
import org.jetbrains.jet.plugin.completion.smart.toList
|
||||||
import org.jetbrains.jet.lang.descriptors.PropertyGetterDescriptor
|
import org.jetbrains.jet.lang.descriptors.PropertyGetterDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor
|
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import org.jetbrains.jet.lang.descriptors.VariableDescriptor
|
import org.jetbrains.jet.lang.descriptors.VariableDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.calls.results.ResolutionStatus
|
import org.jetbrains.jet.lang.resolve.calls.results.ResolutionStatus
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.Qualifier
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.QualifierReceiver
|
|
||||||
|
|
||||||
enum class Tail {
|
enum class Tail {
|
||||||
COMMA
|
COMMA
|
||||||
@@ -89,7 +87,7 @@ class PositionalArgumentExpectedInfo(type: JetType, name: String?, tail: Tail?,
|
|||||||
= function.hashCode()
|
= function.hashCode()
|
||||||
}
|
}
|
||||||
|
|
||||||
class ExpectedInfos(val bindingContext: BindingContext, val resolveSession: ResolveSessionForBodies) {
|
class ExpectedInfos(val bindingContext: BindingContext, val resolveSession: ResolutionFacade) {
|
||||||
public fun calculate(expressionWithType: JetExpression): Collection<ExpectedInfo>? {
|
public fun calculate(expressionWithType: JetExpression): Collection<ExpectedInfo>? {
|
||||||
return calculateForArgument(expressionWithType)
|
return calculateForArgument(expressionWithType)
|
||||||
?: calculateForFunctionLiteralArgument(expressionWithType)
|
?: calculateForFunctionLiteralArgument(expressionWithType)
|
||||||
@@ -174,7 +172,10 @@ class ExpectedInfos(val bindingContext: BindingContext, val resolveSession: Reso
|
|||||||
CheckValueArgumentsMode.ENABLED,
|
CheckValueArgumentsMode.ENABLED,
|
||||||
CompositeExtension(listOf()),
|
CompositeExtension(listOf()),
|
||||||
false).replaceCollectAllCandidates(true)
|
false).replaceCollectAllCandidates(true)
|
||||||
val callResolver = InjectorForMacros(callElement.getProject(), resolveSession.getModuleDescriptor()).getCallResolver()!!
|
val callResolver = InjectorForMacros(
|
||||||
|
callElement.getProject(),
|
||||||
|
resolveSession.getModuleDescriptorForElement(callElement)
|
||||||
|
).getCallResolver()
|
||||||
val results: OverloadResolutionResults<FunctionDescriptor> = callResolver.resolveFunctionCall(callResolutionContext)
|
val results: OverloadResolutionResults<FunctionDescriptor> = callResolver.resolveFunctionCall(callResolutionContext)
|
||||||
|
|
||||||
val expectedInfos = HashSet<ExpectedInfo>()
|
val expectedInfos = HashSet<ExpectedInfo>()
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.jet.lang.descriptors.*
|
import org.jetbrains.jet.lang.descriptors.*
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils
|
import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer
|
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
||||||
import org.jetbrains.jet.plugin.JetDescriptorIconProvider
|
import org.jetbrains.jet.plugin.JetDescriptorIconProvider
|
||||||
import org.jetbrains.jet.plugin.completion.handlers.*
|
import org.jetbrains.jet.plugin.completion.handlers.*
|
||||||
@@ -36,9 +35,10 @@ import com.intellij.codeInsight.completion.JavaPsiClassReferenceElement
|
|||||||
import com.intellij.codeInsight.lookup.LookupElementDecorator
|
import com.intellij.codeInsight.lookup.LookupElementDecorator
|
||||||
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
||||||
import org.jetbrains.jet.lang.types.JetType
|
import org.jetbrains.jet.lang.types.JetType
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
|
||||||
public open class LookupElementFactory protected() {
|
public open class LookupElementFactory protected() {
|
||||||
public open fun createLookupElement(analyzer: KotlinCodeAnalyzer, descriptor: DeclarationDescriptor): LookupElement {
|
public open fun createLookupElement(analyzer: ResolutionFacade, descriptor: DeclarationDescriptor): LookupElement {
|
||||||
val _descriptor = if (descriptor is CallableMemberDescriptor)
|
val _descriptor = if (descriptor is CallableMemberDescriptor)
|
||||||
DescriptorUtils.unwrapFakeOverride(descriptor)
|
DescriptorUtils.unwrapFakeOverride(descriptor)
|
||||||
else
|
else
|
||||||
@@ -51,7 +51,7 @@ public open class LookupElementFactory protected() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createLookupElement(
|
private fun createLookupElement(
|
||||||
analyzer: KotlinCodeAnalyzer,
|
analyzer: ResolutionFacade,
|
||||||
descriptor: DeclarationDescriptor,
|
descriptor: DeclarationDescriptor,
|
||||||
declaration: PsiElement?
|
declaration: PsiElement?
|
||||||
): LookupElement {
|
): LookupElement {
|
||||||
@@ -149,7 +149,7 @@ public open class LookupElementFactory protected() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class BoldImmediateLookupElementFactory(private val receiverTypes: Collection<JetType>) : LookupElementFactory() {
|
public class BoldImmediateLookupElementFactory(private val receiverTypes: Collection<JetType>) : LookupElementFactory() {
|
||||||
override fun createLookupElement(analyzer: KotlinCodeAnalyzer, descriptor: DeclarationDescriptor): LookupElement {
|
override fun createLookupElement(analyzer: ResolutionFacade, descriptor: DeclarationDescriptor): LookupElement {
|
||||||
val element = super.createLookupElement(analyzer, descriptor)
|
val element = super.createLookupElement(analyzer, descriptor)
|
||||||
|
|
||||||
if (descriptor !is CallableMemberDescriptor) return element
|
if (descriptor !is CallableMemberDescriptor) return element
|
||||||
|
|||||||
@@ -23,18 +23,18 @@ import com.intellij.codeInsight.lookup.LookupElementPresentation
|
|||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
||||||
import org.jetbrains.jet.plugin.completion.handlers.*
|
import org.jetbrains.jet.plugin.completion.handlers.*
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import com.intellij.codeInsight.completion.PrefixMatcher
|
import com.intellij.codeInsight.completion.PrefixMatcher
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import com.intellij.codeInsight.completion.CompletionResultSet
|
import com.intellij.codeInsight.completion.CompletionResultSet
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.codeInsight.completion.CompletionParameters
|
import com.intellij.codeInsight.completion.CompletionParameters
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
|
||||||
class LookupElementsCollector(
|
class LookupElementsCollector(
|
||||||
private val prefixMatcher: PrefixMatcher,
|
private val prefixMatcher: PrefixMatcher,
|
||||||
private val completionParameters: CompletionParameters,
|
private val completionParameters: CompletionParameters,
|
||||||
private val resolveSession: ResolveSessionForBodies,
|
private val resolveSession: ResolutionFacade,
|
||||||
private val boldImmediateLookupElementFactory: LookupElementFactory
|
private val boldImmediateLookupElementFactory: LookupElementFactory
|
||||||
) {
|
) {
|
||||||
private val elements = ArrayList<LookupElement>()
|
private val elements = ArrayList<LookupElement>()
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import org.jetbrains.jet.lang.descriptors.*
|
|||||||
import org.jetbrains.jet.lang.resolve.*
|
import org.jetbrains.jet.lang.resolve.*
|
||||||
import org.jetbrains.jet.lang.psi.*
|
import org.jetbrains.jet.lang.psi.*
|
||||||
import org.jetbrains.jet.lexer.JetTokens
|
import org.jetbrains.jet.lexer.JetTokens
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import org.jetbrains.jet.lang.types.*
|
import org.jetbrains.jet.lang.types.*
|
||||||
import com.intellij.codeInsight.lookup.*
|
import com.intellij.codeInsight.lookup.*
|
||||||
import com.intellij.codeInsight.completion.*
|
import com.intellij.codeInsight.completion.*
|
||||||
@@ -34,9 +33,10 @@ import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
|||||||
import org.jetbrains.jet.renderer.DescriptorRenderer
|
import org.jetbrains.jet.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.jet.lang.psi.psiUtil.getReceiverExpression
|
import org.jetbrains.jet.lang.psi.psiUtil.getReceiverExpression
|
||||||
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
|
||||||
class SmartCompletion(val expression: JetSimpleNameExpression,
|
class SmartCompletion(val expression: JetSimpleNameExpression,
|
||||||
val resolveSession: ResolveSessionForBodies,
|
val resolveSession: ResolutionFacade,
|
||||||
val visibilityFilter: (DeclarationDescriptor) -> Boolean,
|
val visibilityFilter: (DeclarationDescriptor) -> Boolean,
|
||||||
val originalFile: JetFile,
|
val originalFile: JetFile,
|
||||||
val boldImmediateLookupElementFactory: LookupElementFactory) {
|
val boldImmediateLookupElementFactory: LookupElementFactory) {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import com.intellij.codeInsight.lookup.LookupElementDecorator
|
|||||||
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer
|
import org.jetbrains.jet.renderer.DescriptorRenderer
|
||||||
import com.intellij.codeInsight.completion.InsertionContext
|
import com.intellij.codeInsight.completion.InsertionContext
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||||
import org.jetbrains.jet.lang.psi.JetExpression
|
import org.jetbrains.jet.lang.psi.JetExpression
|
||||||
import org.jetbrains.jet.plugin.completion.ExpectedInfo
|
import org.jetbrains.jet.plugin.completion.ExpectedInfo
|
||||||
@@ -33,10 +32,11 @@ import org.jetbrains.jet.plugin.util.makeNotNullable
|
|||||||
import org.jetbrains.jet.plugin.completion.qualifiedNameForSourceCode
|
import org.jetbrains.jet.plugin.completion.qualifiedNameForSourceCode
|
||||||
import org.jetbrains.jet.lang.resolve.descriptorUtil.isExtension
|
import org.jetbrains.jet.lang.resolve.descriptorUtil.isExtension
|
||||||
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
import org.jetbrains.jet.plugin.completion.LookupElementFactory
|
import org.jetbrains.jet.plugin.completion.LookupElementFactory
|
||||||
|
|
||||||
// adds java static members, enum members and members from class object
|
// adds java static members, enum members and members from class object
|
||||||
class StaticMembers(val bindingContext: BindingContext, val resolveSession: ResolveSessionForBodies) {
|
class StaticMembers(val bindingContext: BindingContext, val resolveSession: ResolutionFacade) {
|
||||||
public fun addToCollection(collection: MutableCollection<LookupElement>,
|
public fun addToCollection(collection: MutableCollection<LookupElement>,
|
||||||
expectedInfos: Collection<ExpectedInfo>,
|
expectedInfos: Collection<ExpectedInfo>,
|
||||||
context: JetExpression,
|
context: JetExpression,
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ import org.jetbrains.jet.plugin.codeInsight.ImplementMethodsHandler
|
|||||||
import com.intellij.codeInsight.lookup.LookupElementDecorator
|
import com.intellij.codeInsight.lookup.LookupElementDecorator
|
||||||
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
||||||
import com.intellij.codeInsight.completion.InsertionContext
|
import com.intellij.codeInsight.completion.InsertionContext
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import org.jetbrains.jet.plugin.completion.handlers.KotlinFunctionInsertHandler
|
import org.jetbrains.jet.plugin.completion.handlers.KotlinFunctionInsertHandler
|
||||||
import org.jetbrains.jet.plugin.completion.*
|
import org.jetbrains.jet.plugin.completion.*
|
||||||
import org.jetbrains.jet.plugin.completion.handlers.CaretPosition
|
import org.jetbrains.jet.plugin.completion.handlers.CaretPosition
|
||||||
@@ -39,8 +38,9 @@ import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
|||||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||||
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor
|
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.java.descriptor.SamConstructorDescriptor
|
import org.jetbrains.jet.lang.resolve.java.descriptor.SamConstructorDescriptor
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
|
||||||
class TypeInstantiationItems(val resolveSession: ResolveSessionForBodies, val bindingContext: BindingContext, val visibilityFilter: (DeclarationDescriptor) -> Boolean) {
|
class TypeInstantiationItems(val resolveSession: ResolutionFacade, val bindingContext: BindingContext, val visibilityFilter: (DeclarationDescriptor) -> Boolean) {
|
||||||
public fun addToCollection(collection: MutableCollection<LookupElement>, expectedInfos: Collection<ExpectedInfo>) {
|
public fun addToCollection(collection: MutableCollection<LookupElement>, expectedInfos: Collection<ExpectedInfo>) {
|
||||||
val expectedInfosGrouped: Map<JetType, List<ExpectedInfo>> = expectedInfos.groupBy { it.type.makeNotNullable() }
|
val expectedInfosGrouped: Map<JetType, List<ExpectedInfo>> = expectedInfos.groupBy { it.type.makeNotNullable() }
|
||||||
for ((jetType, infos) in expectedInfosGrouped) {
|
for ((jetType, infos) in expectedInfosGrouped) {
|
||||||
|
|||||||
@@ -32,13 +32,13 @@ import com.intellij.codeInsight.lookup.LookupElementPresentation
|
|||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
import org.jetbrains.jet.plugin.completion.*
|
import org.jetbrains.jet.plugin.completion.*
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies
|
|
||||||
import org.jetbrains.jet.plugin.completion.handlers.WithTailInsertHandler
|
import org.jetbrains.jet.plugin.completion.handlers.WithTailInsertHandler
|
||||||
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor
|
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor
|
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor
|
||||||
import com.intellij.openapi.util.Key
|
import com.intellij.openapi.util.Key
|
||||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor
|
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade
|
||||||
|
|
||||||
class ArtificialElementInsertHandler(
|
class ArtificialElementInsertHandler(
|
||||||
val textBeforeCaret: String, val textAfterCaret: String, val shortenRefs: Boolean) : InsertHandler<LookupElement>{
|
val textBeforeCaret: String, val textAfterCaret: String, val shortenRefs: Boolean) : InsertHandler<LookupElement>{
|
||||||
@@ -188,7 +188,7 @@ fun functionType(function: FunctionDescriptor): JetType? {
|
|||||||
|
|
||||||
fun LookupElementFactory.createLookupElement(
|
fun LookupElementFactory.createLookupElement(
|
||||||
descriptor: DeclarationDescriptor,
|
descriptor: DeclarationDescriptor,
|
||||||
resolveSession: ResolveSessionForBodies,
|
resolveSession: ResolutionFacade,
|
||||||
bindingContext: BindingContext
|
bindingContext: BindingContext
|
||||||
): LookupElement {
|
): LookupElement {
|
||||||
var element = createLookupElement(resolveSession, descriptor)
|
var element = createLookupElement(resolveSession, descriptor)
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.debugger;
|
package org.jetbrains.jet.plugin.debugger;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
|
||||||
import com.google.common.collect.Collections2;
|
|
||||||
import com.intellij.debugger.NoDataException;
|
import com.intellij.debugger.NoDataException;
|
||||||
import com.intellij.debugger.PositionManager;
|
import com.intellij.debugger.PositionManager;
|
||||||
import com.intellij.debugger.SourcePosition;
|
import com.intellij.debugger.SourcePosition;
|
||||||
@@ -45,7 +43,10 @@ import org.jetbrains.jet.codegen.AsmUtil;
|
|||||||
import org.jetbrains.jet.codegen.ClassBuilderFactories;
|
import org.jetbrains.jet.codegen.ClassBuilderFactories;
|
||||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||||
import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.callUtil.CallUtilPackage;
|
import org.jetbrains.jet.lang.resolve.calls.callUtil.CallUtilPackage;
|
||||||
@@ -58,9 +59,9 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
import org.jetbrains.jet.lang.types.lang.InlineStrategy;
|
import org.jetbrains.jet.lang.types.lang.InlineStrategy;
|
||||||
import org.jetbrains.jet.lang.types.lang.InlineUtil;
|
import org.jetbrains.jet.lang.types.lang.InlineUtil;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.IdeaModuleInfo;
|
import org.jetbrains.jet.plugin.caches.resolve.IdeaModuleInfo;
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils;
|
import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
|
||||||
import org.jetbrains.jet.plugin.util.DebuggerUtils;
|
import org.jetbrains.jet.plugin.util.DebuggerUtils;
|
||||||
import org.jetbrains.org.objectweb.asm.Type;
|
import org.jetbrains.org.objectweb.asm.Type;
|
||||||
|
|
||||||
@@ -302,10 +303,10 @@ public class JetPositionManager implements PositionManager {
|
|||||||
|
|
||||||
private static JetTypeMapper createTypeMapperForLibraryFile(@Nullable PsiElement notPositionedElement, @NotNull JetFile file) {
|
private static JetTypeMapper createTypeMapperForLibraryFile(@Nullable PsiElement notPositionedElement, @NotNull JetFile file) {
|
||||||
JetElement element = getElementToCreateTypeMapperForLibraryFile(notPositionedElement);
|
JetElement element = getElementToCreateTypeMapperForLibraryFile(notPositionedElement);
|
||||||
ResolveSessionForBodies resolveSession = ResolvePackage.getLazyResolveSession(element);
|
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession(element);
|
||||||
|
|
||||||
GenerationState state = new GenerationState(file.getProject(), ClassBuilderFactories.THROW_EXCEPTION,
|
GenerationState state = new GenerationState(file.getProject(), ClassBuilderFactories.THROW_EXCEPTION,
|
||||||
resolveSession.getModuleDescriptor(),
|
resolveSession.getModuleDescriptorForElement(element),
|
||||||
resolveSession.resolveToElement(element),
|
resolveSession.resolveToElement(element),
|
||||||
Collections.singletonList(file)
|
Collections.singletonList(file)
|
||||||
);
|
);
|
||||||
|
|||||||
+1
-5
@@ -22,21 +22,17 @@ import org.jetbrains.jet.lang.psi.JetElement
|
|||||||
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
|
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer
|
import org.jetbrains.jet.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
import org.jetbrains.jet.plugin.caches.resolve.getLazyResolveSession
|
||||||
import com.intellij.psi.PsiElement
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
import com.intellij.openapi.roots.libraries.LibraryUtil
|
import com.intellij.openapi.roots.libraries.LibraryUtil
|
||||||
import com.intellij.openapi.module.impl.scopes.LibraryScope
|
import com.intellij.openapi.module.impl.scopes.LibraryScope
|
||||||
import com.intellij.openapi.roots.LibraryOrderEntry
|
import com.intellij.openapi.roots.LibraryOrderEntry
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
|
||||||
import org.jetbrains.jet.lang.psi.JetDeclaration
|
import org.jetbrains.jet.lang.psi.JetDeclaration
|
||||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor
|
import org.jetbrains.jet.lang.descriptors.CallableDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedCallableMemberDescriptor
|
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedCallableMemberDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor
|
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
|
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
|
||||||
import com.intellij.openapi.module.impl.scopes.JdkScope
|
import com.intellij.openapi.module.impl.scopes.JdkScope
|
||||||
import com.intellij.openapi.roots.JdkOrderEntry
|
import com.intellij.openapi.roots.JdkOrderEntry
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiUtil
|
import org.jetbrains.jet.lang.psi.JetPsiUtil
|
||||||
@@ -68,7 +64,7 @@ fun findPackagePartInternalNameForLibraryFile(elementAt: JetElement): String? {
|
|||||||
if (descriptor !is CallableDescriptor) return null
|
if (descriptor !is CallableDescriptor) return null
|
||||||
|
|
||||||
val packageFqName = topLevelDeclaration.getContainingJetFile().getPackageFqName()
|
val packageFqName = topLevelDeclaration.getContainingJetFile().getPackageFqName()
|
||||||
val packageDescriptor = resolveSession.getModuleDescriptor().getPackage(packageFqName)
|
val packageDescriptor = resolveSession.getModuleDescriptorForElement(topLevelDeclaration).getPackage(packageFqName)
|
||||||
if (packageDescriptor == null) {
|
if (packageDescriptor == null) {
|
||||||
reportError(topLevelDeclaration, descriptor)
|
reportError(topLevelDeclaration, descriptor)
|
||||||
return null
|
return null
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ import org.jetbrains.jet.lang.resolve.calls.smartcasts.DataFlowInfo;
|
|||||||
import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter;
|
import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents;
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents;
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
|
||||||
import org.jetbrains.jet.plugin.util.extensionsUtils.ExtensionsUtilsPackage;
|
import org.jetbrains.jet.plugin.util.extensionsUtils.ExtensionsUtilsPackage;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -64,7 +64,7 @@ public abstract class BaseJetVariableMacro extends Macro {
|
|||||||
JetExpression contextExpression = findContextExpression(psiFile, context.getStartOffset());
|
JetExpression contextExpression = findContextExpression(psiFile, context.getStartOffset());
|
||||||
if (contextExpression == null) return null;
|
if (contextExpression == null) return null;
|
||||||
|
|
||||||
ResolveSessionForBodies resolveSession = ResolvePackage.getLazyResolveSession((JetFile) psiFile);
|
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession((JetFile) psiFile);
|
||||||
|
|
||||||
BindingContext bindingContext = resolveSession.resolveToElement(contextExpression);
|
BindingContext bindingContext = resolveSession.resolveToElement(contextExpression);
|
||||||
JetScope scope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, contextExpression);
|
JetScope scope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, contextExpression);
|
||||||
@@ -73,7 +73,7 @@ public abstract class BaseJetVariableMacro extends Macro {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ExpressionTypingComponents components =
|
ExpressionTypingComponents components =
|
||||||
new InjectorForMacros(project, resolveSession.getModuleDescriptor()).getExpressionTypingComponents();
|
new InjectorForMacros(project, resolveSession.getModuleDescriptorForElement(contextExpression)).getExpressionTypingComponents();
|
||||||
|
|
||||||
DataFlowInfo dataFlowInfo = getDataFlowInfo(bindingContext, contextExpression);
|
DataFlowInfo dataFlowInfo = getDataFlowInfo(bindingContext, contextExpression);
|
||||||
|
|
||||||
|
|||||||
+7
-8
@@ -47,9 +47,9 @@ import org.jetbrains.jet.lang.types.JetType;
|
|||||||
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.ReferenceVariantsHelper;
|
import org.jetbrains.jet.plugin.codeInsight.ReferenceVariantsHelper;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -58,7 +58,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWithTabActionSupport<
|
public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWithTabActionSupport<
|
||||||
JetValueArgumentList,
|
JetValueArgumentList,
|
||||||
Pair<? extends FunctionDescriptor, ResolveSessionForBodies>,
|
Pair<? extends FunctionDescriptor, ResolutionFacade>,
|
||||||
JetValueArgument>
|
JetValueArgument>
|
||||||
{
|
{
|
||||||
public final static Color GREEN_BACKGROUND = new JBColor(new Color(231, 254, 234), Gray._100);
|
public final static Color GREEN_BACKGROUND = new JBColor(new Color(231, 254, 234), Gray._100);
|
||||||
@@ -112,7 +112,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public Object[] getParametersForDocumentation(Pair<? extends FunctionDescriptor, ResolveSessionForBodies> p, ParameterInfoContext context) {
|
public Object[] getParametersForDocumentation(Pair<? extends FunctionDescriptor, ResolutionFacade> p, ParameterInfoContext context) {
|
||||||
return ArrayUtil.EMPTY_OBJECT_ARRAY; //todo: ?
|
return ArrayUtil.EMPTY_OBJECT_ARRAY; //todo: ?
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateUI(Pair<? extends FunctionDescriptor, ResolveSessionForBodies> itemToShow, ParameterInfoUIContext context) {
|
public void updateUI(Pair<? extends FunctionDescriptor, ResolutionFacade> itemToShow, ParameterInfoUIContext context) {
|
||||||
//todo: when we will have ability to pass Array as vararg, implement such feature here too?
|
//todo: when we will have ability to pass Array as vararg, implement such feature here too?
|
||||||
if (context == null || context.getParameterOwner() == null || !context.getParameterOwner().isValid()) {
|
if (context == null || context.getParameterOwner() == null || !context.getParameterOwner().isValid()) {
|
||||||
context.setUIComponentEnabled(false);
|
context.setUIComponentEnabled(false);
|
||||||
@@ -216,7 +216,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith
|
|||||||
JetValueArgumentList argumentList = (JetValueArgumentList) parameterOwner;
|
JetValueArgumentList argumentList = (JetValueArgumentList) parameterOwner;
|
||||||
|
|
||||||
FunctionDescriptor functionDescriptor = itemToShow.first;
|
FunctionDescriptor functionDescriptor = itemToShow.first;
|
||||||
ResolveSessionForBodies resolveSession = itemToShow.second;
|
ResolutionFacade resolveSession = itemToShow.second;
|
||||||
|
|
||||||
List<ValueParameterDescriptor> valueParameters = functionDescriptor.getValueParameters();
|
List<ValueParameterDescriptor> valueParameters = functionDescriptor.getValueParameters();
|
||||||
List<JetValueArgument> valueArguments = argumentList.getArguments();
|
List<JetValueArgument> valueArguments = argumentList.getArguments();
|
||||||
@@ -382,8 +382,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResolveSessionForBodies resolveSession =
|
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession(callNameExpression.getContainingJetFile());
|
||||||
ResolvePackage.getLazyResolveSession(callNameExpression.getContainingJetFile());
|
|
||||||
BindingContext bindingContext = resolveSession.resolveToElement(callNameExpression);
|
BindingContext bindingContext = resolveSession.resolveToElement(callNameExpression);
|
||||||
|
|
||||||
JetScope scope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, callNameExpression);
|
JetScope scope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, callNameExpression);
|
||||||
@@ -412,7 +411,7 @@ public class JetFunctionParameterInfoHandler implements ParameterInfoHandlerWith
|
|||||||
Collection<DeclarationDescriptor> variants = new ReferenceVariantsHelper(bindingContext, visibilityFilter).getReferenceVariants(
|
Collection<DeclarationDescriptor> variants = new ReferenceVariantsHelper(bindingContext, visibilityFilter).getReferenceVariants(
|
||||||
callNameExpression, new DescriptorKindFilter(DescriptorKindFilter.FUNCTIONS_MASK | DescriptorKindFilter.CLASSIFIERS_MASK, Collections.<DescriptorKindExclude>emptyList()), nameFilter);
|
callNameExpression, new DescriptorKindFilter(DescriptorKindFilter.FUNCTIONS_MASK | DescriptorKindFilter.CLASSIFIERS_MASK, Collections.<DescriptorKindExclude>emptyList()), nameFilter);
|
||||||
|
|
||||||
Collection<Pair<? extends DeclarationDescriptor, ResolveSessionForBodies>> itemsToShow = new ArrayList<Pair<? extends DeclarationDescriptor, ResolveSessionForBodies>>();
|
Collection<Pair<? extends DeclarationDescriptor, ResolutionFacade>> itemsToShow = new ArrayList<Pair<? extends DeclarationDescriptor, ResolutionFacade>>();
|
||||||
for (DeclarationDescriptor variant : variants) {
|
for (DeclarationDescriptor variant : variants) {
|
||||||
if (variant instanceof FunctionDescriptor) {
|
if (variant instanceof FunctionDescriptor) {
|
||||||
//todo: renamed functions?
|
//todo: renamed functions?
|
||||||
|
|||||||
@@ -138,7 +138,8 @@ public class AutoImportFix(element: JetSimpleNameExpression) : JetHintAction<Jet
|
|||||||
|
|
||||||
val result = ArrayList<PrioritizedFqName>()
|
val result = ArrayList<PrioritizedFqName>()
|
||||||
|
|
||||||
val indicesHelper = KotlinIndicesHelper(file.getProject(), resolveSession, searchScope, ::isVisible)
|
val moduleDescriptor = resolveSession.getModuleDescriptorForElement(element)
|
||||||
|
val indicesHelper = KotlinIndicesHelper(file.getProject(), resolveSession, searchScope, moduleDescriptor, ::isVisible)
|
||||||
|
|
||||||
if (!element.isImportDirectiveExpression() && !JetPsiUtil.isSelectorInQualified(element)) {
|
if (!element.isImportDirectiveExpression() && !JetPsiUtil.isSelectorInQualified(element)) {
|
||||||
result.addAll(getClassNames(referenceName, file, searchScope))
|
result.addAll(getClassNames(referenceName, file, searchScope))
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ import org.jetbrains.jet.lang.psi.JetCallableDeclaration;
|
|||||||
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.plugin.JetBundle;
|
import org.jetbrains.jet.plugin.JetBundle;
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ public class MakeOverriddenMemberOpenFix extends JetIntentionAction<JetDeclarati
|
|||||||
overriddenNonOverridableMembers.clear();
|
overriddenNonOverridableMembers.clear();
|
||||||
containingDeclarationsNames.clear();
|
containingDeclarationsNames.clear();
|
||||||
|
|
||||||
ResolveSessionForBodies resolveSession = ResolvePackage.getLazyResolveSession((JetFile) file);
|
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession((JetFile) file);
|
||||||
DeclarationDescriptor descriptor = resolveSession.resolveToDescriptor(element);
|
DeclarationDescriptor descriptor = resolveSession.resolveToDescriptor(element);
|
||||||
if (!(descriptor instanceof CallableMemberDescriptor)) return false;
|
if (!(descriptor instanceof CallableMemberDescriptor)) return false;
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -697,11 +697,12 @@ fun ExtractionData.performAnalysis(): AnalysisResult {
|
|||||||
|
|
||||||
val modifiedVarDescriptorsForControlFlow = HashMap(modifiedVarDescriptorsWithExpressions)
|
val modifiedVarDescriptorsForControlFlow = HashMap(modifiedVarDescriptorsWithExpressions)
|
||||||
modifiedVarDescriptorsForControlFlow.keySet().retainAll(localInstructions.getVarDescriptorsAccessedAfterwards(bindingContext))
|
modifiedVarDescriptorsForControlFlow.keySet().retainAll(localInstructions.getVarDescriptorsAccessedAfterwards(bindingContext))
|
||||||
|
val moduleDescriptor = originalFile.getLazyResolveSession().getModuleDescriptorForElement(originalFile)
|
||||||
val (controlFlow, controlFlowMessage) =
|
val (controlFlow, controlFlowMessage) =
|
||||||
analyzeControlFlow(
|
analyzeControlFlow(
|
||||||
localInstructions,
|
localInstructions,
|
||||||
pseudocode,
|
pseudocode,
|
||||||
originalFile.getLazyResolveSession().getModuleDescriptor(),
|
moduleDescriptor,
|
||||||
bindingContext,
|
bindingContext,
|
||||||
modifiedVarDescriptorsForControlFlow,
|
modifiedVarDescriptorsForControlFlow,
|
||||||
options,
|
options,
|
||||||
|
|||||||
@@ -59,10 +59,10 @@ import org.jetbrains.jet.lang.types.ErrorUtils;
|
|||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
import org.jetbrains.jet.plugin.JetLanguage;
|
import org.jetbrains.jet.plugin.JetLanguage;
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.ShortenReferences;
|
import org.jetbrains.jet.plugin.codeInsight.ShortenReferences;
|
||||||
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
|
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
|
||||||
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers;
|
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -261,7 +261,7 @@ public class KotlinInlineValHandler extends InlineActionHandler {
|
|||||||
JetFile containingFile = inlinedExpressions.get(0).getContainingJetFile();
|
JetFile containingFile = inlinedExpressions.get(0).getContainingJetFile();
|
||||||
List<JetFunctionLiteralExpression> functionsToAddParameters = Lists.newArrayList();
|
List<JetFunctionLiteralExpression> functionsToAddParameters = Lists.newArrayList();
|
||||||
|
|
||||||
ResolveSessionForBodies resolveSessionForBodies = ResolvePackage.getLazyResolveSession(containingFile);
|
ResolutionFacade resolveSessionForBodies = ResolvePackage.getLazyResolveSession(containingFile);
|
||||||
for (JetExpression inlinedExpression : inlinedExpressions) {
|
for (JetExpression inlinedExpression : inlinedExpressions) {
|
||||||
JetFunctionLiteralExpression functionLiteralExpression = getFunctionLiteralExpression(inlinedExpression);
|
JetFunctionLiteralExpression functionLiteralExpression = getFunctionLiteralExpression(inlinedExpression);
|
||||||
assert functionLiteralExpression != null : "can't find function literal expression for " + inlinedExpression.getText();
|
assert functionLiteralExpression != null : "can't find function literal expression for " + inlinedExpression.getText();
|
||||||
@@ -301,7 +301,7 @@ public class KotlinInlineValHandler extends InlineActionHandler {
|
|||||||
|
|
||||||
private static boolean needToAddParameterTypes(
|
private static boolean needToAddParameterTypes(
|
||||||
@NotNull JetFunctionLiteralExpression functionLiteralExpression,
|
@NotNull JetFunctionLiteralExpression functionLiteralExpression,
|
||||||
@NotNull ResolveSessionForBodies resolveSessionForBodies
|
@NotNull ResolutionFacade resolveSessionForBodies
|
||||||
) {
|
) {
|
||||||
JetFunctionLiteral functionLiteral = functionLiteralExpression.getFunctionLiteral();
|
JetFunctionLiteral functionLiteral = functionLiteralExpression.getFunctionLiteral();
|
||||||
BindingContext context = resolveSessionForBodies.resolveToElement(functionLiteralExpression);
|
BindingContext context = resolveSessionForBodies.resolveToElement(functionLiteralExpression);
|
||||||
@@ -322,7 +322,7 @@ public class KotlinInlineValHandler extends InlineActionHandler {
|
|||||||
JetFile containingFile = inlinedExpressions.get(0).getContainingJetFile();
|
JetFile containingFile = inlinedExpressions.get(0).getContainingJetFile();
|
||||||
List<JetCallExpression> callsToAddArguments = Lists.newArrayList();
|
List<JetCallExpression> callsToAddArguments = Lists.newArrayList();
|
||||||
|
|
||||||
ResolveSessionForBodies resolveSessionForBodies = ResolvePackage.getLazyResolveSession(containingFile);
|
ResolutionFacade resolveSessionForBodies = ResolvePackage.getLazyResolveSession(containingFile);
|
||||||
for (JetExpression inlinedExpression : inlinedExpressions) {
|
for (JetExpression inlinedExpression : inlinedExpressions) {
|
||||||
BindingContext context = resolveSessionForBodies.resolveToElement(inlinedExpression);
|
BindingContext context = resolveSessionForBodies.resolveToElement(inlinedExpression);
|
||||||
Call call = CallUtilPackage.getCallWithAssert(inlinedExpression, context);
|
Call call = CallUtilPackage.getCallWithAssert(inlinedExpression, context);
|
||||||
|
|||||||
+6
-5
@@ -35,6 +35,7 @@ import kotlin.KotlinPackage;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.analyzer.AnalyzerPackage;
|
import org.jetbrains.jet.analyzer.AnalyzerPackage;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.psi.psiUtil.PsiUtilPackage;
|
import org.jetbrains.jet.lang.psi.psiUtil.PsiUtilPackage;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
@@ -48,10 +49,10 @@ import org.jetbrains.jet.lang.types.TypeUtils;
|
|||||||
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils;
|
import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.ShortenReferences;
|
import org.jetbrains.jet.plugin.codeInsight.ShortenReferences;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
|
||||||
import org.jetbrains.jet.plugin.refactoring.JetNameSuggester;
|
import org.jetbrains.jet.plugin.refactoring.JetNameSuggester;
|
||||||
import org.jetbrains.jet.plugin.refactoring.JetNameValidatorImpl;
|
import org.jetbrains.jet.plugin.refactoring.JetNameValidatorImpl;
|
||||||
import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle;
|
import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle;
|
||||||
@@ -62,7 +63,6 @@ import org.jetbrains.jet.plugin.util.psi.patternMatching.JetPsiRange;
|
|||||||
import org.jetbrains.jet.plugin.util.psi.patternMatching.JetPsiUnifier;
|
import org.jetbrains.jet.plugin.util.psi.patternMatching.JetPsiUnifier;
|
||||||
import org.jetbrains.jet.plugin.util.psi.patternMatching.PatternMatchingPackage;
|
import org.jetbrains.jet.plugin.util.psi.patternMatching.PatternMatchingPackage;
|
||||||
import org.jetbrains.jet.plugin.util.psiModificationUtil.PsiModificationUtilPackage;
|
import org.jetbrains.jet.plugin.util.psiModificationUtil.PsiModificationUtilPackage;
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -123,9 +123,10 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ResolveSessionForBodies resolveSession =
|
|
||||||
ResolvePackage.getLazyResolveSession(expression);
|
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession(expression);
|
||||||
final BindingContext bindingContext = resolveSession.resolveToElement(expression);
|
final BindingContext bindingContext = resolveSession.resolveToElement(expression);
|
||||||
|
ModuleDescriptor moduleDescriptorForElement = resolveSession.getModuleDescriptorForElement(expression);
|
||||||
final JetType expressionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression); //can be null or error type
|
final JetType expressionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression); //can be null or error type
|
||||||
JetScope scope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, expression);
|
JetScope scope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, expression);
|
||||||
if (scope != null) {
|
if (scope != null) {
|
||||||
@@ -133,7 +134,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
|||||||
|
|
||||||
ObservableBindingTrace bindingTrace = new ObservableBindingTrace(new BindingTraceContext());
|
ObservableBindingTrace bindingTrace = new ObservableBindingTrace(new BindingTraceContext());
|
||||||
JetType typeNoExpectedType = AnalyzerPackage.computeTypeInfoInContext(
|
JetType typeNoExpectedType = AnalyzerPackage.computeTypeInfoInContext(
|
||||||
expression, scope, bindingTrace, dataFlowInfo, TypeUtils.NO_EXPECTED_TYPE, resolveSession.getModuleDescriptor()
|
expression, scope, bindingTrace, dataFlowInfo, TypeUtils.NO_EXPECTED_TYPE, moduleDescriptorForElement
|
||||||
).getType();
|
).getType();
|
||||||
if (expressionType != null && typeNoExpectedType != null && !JetTypeChecker.DEFAULT.equalTypes(expressionType,
|
if (expressionType != null && typeNoExpectedType != null && !JetTypeChecker.DEFAULT.equalTypes(expressionType,
|
||||||
typeNoExpectedType)) {
|
typeNoExpectedType)) {
|
||||||
|
|||||||
@@ -35,10 +35,10 @@ import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.plugin.MainFunctionDetector;
|
import org.jetbrains.jet.plugin.MainFunctionDetector;
|
||||||
import org.jetbrains.jet.plugin.util.ProjectRootsUtil;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
import org.jetbrains.jet.plugin.project.ProjectStructureUtil;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
import org.jetbrains.jet.plugin.util.ProjectRootsUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ public class JetRunConfigurationProducer extends RuntimeConfigurationProducer im
|
|||||||
if (!(psiFile instanceof JetFile && ProjectRootsUtil.isInProjectOrLibSource(psiFile))) return null;
|
if (!(psiFile instanceof JetFile && ProjectRootsUtil.isInProjectOrLibSource(psiFile))) return null;
|
||||||
|
|
||||||
JetFile jetFile = (JetFile) psiFile;
|
JetFile jetFile = (JetFile) psiFile;
|
||||||
final ResolveSessionForBodies session = ResolvePackage.getLazyResolveSession(jetFile);
|
final ResolutionFacade session = ResolvePackage.getLazyResolveSession(jetFile);
|
||||||
MainFunctionDetector mainFunctionDetector = new MainFunctionDetector(
|
MainFunctionDetector mainFunctionDetector = new MainFunctionDetector(
|
||||||
new NotNullFunction<JetNamedFunction, FunctionDescriptor>() {
|
new NotNullFunction<JetNamedFunction, FunctionDescriptor>() {
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.psi.JetFile;
|
|||||||
import org.jetbrains.jet.lang.psi.JetValueArgumentList;
|
import org.jetbrains.jet.lang.psi.JetValueArgumentList;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
|
|
||||||
public abstract class AbstractFunctionParameterInfoTest extends LightCodeInsightFixtureTestCase {
|
public abstract class AbstractFunctionParameterInfoTest extends LightCodeInsightFixtureTestCase {
|
||||||
@Override
|
@Override
|
||||||
@@ -64,7 +64,7 @@ public abstract class AbstractFunctionParameterInfoTest extends LightCodeInsight
|
|||||||
|
|
||||||
for (Object item : mockCreateParameterInfoContext.getItemsToShow()) {
|
for (Object item : mockCreateParameterInfoContext.getItemsToShow()) {
|
||||||
//noinspection unchecked
|
//noinspection unchecked
|
||||||
parameterInfoHandler.updateUI((Pair<? extends FunctionDescriptor, ResolveSessionForBodies>)item, parameterInfoUIContext);
|
parameterInfoHandler.updateUI((Pair<? extends FunctionDescriptor, ResolutionFacade>)item, parameterInfoUIContext);
|
||||||
}
|
}
|
||||||
assertEquals(expectedResultText, parameterInfoUIContext.getResultText());
|
assertEquals(expectedResultText, parameterInfoUIContext.getResultText());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ import org.jetbrains.jet.lang.psi.JetFile;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor;
|
import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor;
|
||||||
import org.jetbrains.jet.plugin.KotlinCodeInsightTestCase;
|
import org.jetbrains.jet.plugin.KotlinCodeInsightTestCase;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheService;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolutionFacade;
|
||||||
import org.jetbrains.jet.plugin.project.ResolveSessionForBodies;
|
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
@@ -64,9 +64,9 @@ public abstract class AbstractLazyResolveByStubTest extends KotlinCodeInsightTes
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void performTest(@NotNull String path, boolean checkPrimaryConstructors, boolean checkPropertyAccessors) {
|
private void performTest(@NotNull String path, boolean checkPrimaryConstructors, boolean checkPropertyAccessors) {
|
||||||
ResolveSessionForBodies resolveSession =
|
JetFile file = (JetFile) getFile();
|
||||||
KotlinCacheService.OBJECT$.getInstance(getFile().getProject()).getLazyResolveSession((JetFile) getFile());
|
ResolutionFacade resolveSession = ResolvePackage.getLazyResolveSession(file);
|
||||||
ModuleDescriptor module = resolveSession.getModuleDescriptor();
|
ModuleDescriptor module = resolveSession.getModuleDescriptorForElement(file);
|
||||||
PackageViewDescriptor packageViewDescriptor = module.getPackage(new FqName("test"));
|
PackageViewDescriptor packageViewDescriptor = module.getPackage(new FqName("test"));
|
||||||
Assert.assertNotNull(packageViewDescriptor);
|
Assert.assertNotNull(packageViewDescriptor);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user