Allow slice rewrite in trace when in IDE

This commit is contained in:
Valentin Kipyatkov
2017-06-01 20:06:57 +03:00
parent 61d9a6b9cd
commit 8fabb6945e
10 changed files with 42 additions and 26 deletions
@@ -159,7 +159,7 @@ private object KotlinResolveDataProvider {
}
val resolveSession = componentProvider.get<ResolveSession>()
val trace = DelegatingBindingTrace(resolveSession.bindingContext, "Trace for resolution of " + analyzableElement)
val trace = DelegatingBindingTrace(resolveSession.bindingContext, "Trace for resolution of " + analyzableElement, allowSliceRewrite = true)
val targetPlatform = TargetPlatformDetector.getPlatform(analyzableElement.containingKtFile)
@@ -344,7 +344,7 @@ class ResolveElementCache(
}
}
val controlFlowTrace = DelegatingBindingTrace(trace.bindingContext, "Element control flow resolve", resolveElement)
val controlFlowTrace = DelegatingBindingTrace(trace.bindingContext, "Element control flow resolve", resolveElement, allowSliceRewrite = true)
ControlFlowInformationProvider(resolveElement, controlFlowTrace, resolveElement.languageVersionSettings).checkDeclaration()
controlFlowTrace.addOwnDataTo(trace, null, false)
@@ -595,7 +595,7 @@ class ResolveElementCache(
// All additional resolve should be done to separate trace
private fun createDelegatingTrace(resolveElement: KtElement, filter: BindingTraceFilter): BindingTrace {
return resolveSession.storageManager.createSafeTrace(
DelegatingBindingTrace(resolveSession.bindingContext, "trace to resolve element", resolveElement, filter))
DelegatingBindingTrace(resolveSession.bindingContext, "trace to resolve element", resolveElement, filter, allowSliceRewrite = true))
}
private class BodyResolveContextForLazy(