Binding trace filtering: do not calculate diagnostics if no one is going to query them

This commit is contained in:
Dmitry Jemerov
2016-09-26 12:48:46 +02:00
parent b365e547c4
commit d8b0c7aaec
24 changed files with 230 additions and 89 deletions
@@ -16,8 +16,21 @@
package org.jetbrains.kotlin.resolve.lazy
enum class BodyResolveMode {
FULL,
PARTIAL,
PARTIAL_FOR_COMPLETION
import org.jetbrains.kotlin.resolve.BindingTraceFilter
open class BodyResolveMode {
open val bindingTraceFilter: BindingTraceFilter = BindingTraceFilter.ACCEPT_ALL
companion object {
@JvmField val FULL = BodyResolveMode()
@JvmField val PARTIAL = object : BodyResolveMode() {
override val bindingTraceFilter: BindingTraceFilter
get() = BindingTraceFilter.NO_DIAGNOSTICS
}
@JvmField val PARTIAL_WITH_DIAGNOSTICS = BodyResolveMode()
@JvmField val PARTIAL_FOR_COMPLETION = BodyResolveMode()
}
}