mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
Ignore diagnostics in ShadowedDeclarationsFilter
During code completion, ShadowedDeclarationsFilter resolves many synthetic calls (sometimes >1000 for certain projects/scenarios). By ignoring diagnostics we can avoid running call checkers during this process (pending a sibling change in the compiler). Relates to KT-44276 and github.com/JetBrains/kotlin/pull/4027
This commit is contained in:
committed by
Nikita Bobko
parent
e2109c3f8f
commit
958b0ff24a
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.idea.resolve.getDataFlowValueFactory
|
||||
import org.jetbrains.kotlin.idea.resolve.getLanguageVersionSettings
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.BindingTraceFilter.Companion.NO_DIAGNOSTICS
|
||||
import org.jetbrains.kotlin.resolve.DelegatingBindingTrace
|
||||
import org.jetbrains.kotlin.resolve.DescriptorEquivalenceForOverrides
|
||||
import org.jetbrains.kotlin.resolve.bindingContextUtil.getDataFlowInfoBefore
|
||||
@@ -103,7 +104,10 @@ class ShadowedDeclarationsFilter(
|
||||
|
||||
val dummyArgumentExpressions = dummyExpressionFactory.createDummyExpressions(parameters.size)
|
||||
|
||||
val bindingTrace = DelegatingBindingTrace(bindingContext, "Temporary trace for filtering shadowed declarations")
|
||||
val bindingTrace = DelegatingBindingTrace(
|
||||
bindingContext, "Temporary trace for filtering shadowed declarations",
|
||||
filter = NO_DIAGNOSTICS
|
||||
)
|
||||
for ((expression, parameter) in dummyArgumentExpressions.zip(parameters)) {
|
||||
bindingTrace.recordType(expression, parameter.varargElementType ?: parameter.type)
|
||||
bindingTrace.record(BindingContext.PROCESSED, expression, true)
|
||||
|
||||
Reference in New Issue
Block a user