Basic implementation of partial body resolve
This commit is contained in:
@@ -53,6 +53,10 @@ public class KotlinCacheService(val project: Project) {
|
||||
return cache.getLazyResolveSession(element).resolveToElement(element)
|
||||
}
|
||||
|
||||
override fun analyzeWithPartialBodyResolve(element: JetElement): BindingContext {
|
||||
return cache.getLazyResolveSession(element).resolveToElementWithPartialBodyResolve(element)
|
||||
}
|
||||
|
||||
override fun findModuleDescriptor(element: JetElement): ModuleDescriptor {
|
||||
return cache.getLazyResolveSession(element).getModuleDescriptor()
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ public trait ResolutionFacade {
|
||||
|
||||
public fun analyze(element: JetElement): BindingContext
|
||||
|
||||
public fun analyzeWithPartialBodyResolve(element: JetElement): BindingContext
|
||||
|
||||
public fun analyzeFullyAndGetResult(elements: Collection<JetElement>): AnalysisResult
|
||||
|
||||
public fun resolveToDescriptor(declaration: JetDeclaration): DeclarationDescriptor
|
||||
|
||||
@@ -52,7 +52,7 @@ public class ResolveElementCache extends ElementResolver {
|
||||
manager.createWeaklyRetainedMemoizedFunction(new Function1<JetElement, BindingContext>() {
|
||||
@Override
|
||||
public BindingContext invoke(JetElement jetElement) {
|
||||
return elementAdditionalResolve(jetElement);
|
||||
return elementAdditionalResolve(jetElement, null);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+5
-1
@@ -54,7 +54,11 @@ public class ResolveSessionForBodies implements KotlinCodeAnalyzer {
|
||||
|
||||
@NotNull
|
||||
public BindingContext resolveToElement(JetElement element) {
|
||||
return resolveElementCache.resolveToElement(element);
|
||||
return resolveElementCache.resolveToElement(element, false);
|
||||
}
|
||||
|
||||
public BindingContext resolveToElementWithPartialBodyResolve(JetElement element) {
|
||||
return resolveElementCache.resolveToElement(element, true);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user