KT-37486 Don't store instances from stream debugger plugin in companions

This commit is contained in:
Vitaliy.Bibaev
2020-04-21 12:41:25 +03:00
committed by Yan Zhulanow
parent 0c71c681e5
commit 20793a65f4
4 changed files with 24 additions and 32 deletions
@@ -18,11 +18,9 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.dsl.KotlinStatementFact
import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder
class KotlinCollectionSupportProvider : LibrarySupportProvider { class KotlinCollectionSupportProvider : LibrarySupportProvider {
private companion object { private val builder: StreamChainBuilder = KotlinCollectionChainBuilder()
val builder: StreamChainBuilder = KotlinCollectionChainBuilder() private val support: LibrarySupport by lazy { KotlinCollectionLibrarySupport() }
val support: LibrarySupport = KotlinCollectionLibrarySupport() private val dsl by lazy { DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory())) }
val dsl = DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory()))
}
override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id
@@ -23,16 +23,12 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.dsl.KotlinStatementFact
import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder
class JavaStandardLibrarySupportProvider : LibrarySupportProvider { class JavaStandardLibrarySupportProvider : LibrarySupportProvider {
private companion object { private val builder: TerminatedChainBuilder = TerminatedChainBuilder(
val builder: TerminatedChainBuilder by lazy { KotlinChainTransformerImpl(JavaStreamChainTypeExtractor()),
TerminatedChainBuilder( StandardLibraryCallChecker(PackageBasedCallChecker("java.util.stream"))
KotlinChainTransformerImpl(JavaStreamChainTypeExtractor()), )
StandardLibraryCallChecker(PackageBasedCallChecker("java.util.stream")) private val support: StandardLibrarySupport by lazy { StandardLibrarySupport() }
) private val dsl: DslImpl by lazy { DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) }
}
val support: StandardLibrarySupport by lazy { StandardLibrarySupport() }
val dsl: DslImpl by lazy { DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) }
}
override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id
@@ -23,15 +23,14 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.dsl.KotlinStatementFact
import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder
class StreamExLibrarySupportProvider : LibrarySupportProvider { class StreamExLibrarySupportProvider : LibrarySupportProvider {
private companion object { private val streamChainBuilder =
val streamChainBuilder = TerminatedChainBuilder( TerminatedChainBuilder(
KotlinChainTransformerImpl(JavaStreamChainTypeExtractor()), KotlinChainTransformerImpl(JavaStreamChainTypeExtractor()),
StreamExCallChecker(PackageBasedCallChecker("one.util.streamex")) StreamExCallChecker(PackageBasedCallChecker("one.util.streamex"))
) )
val support = StreamExLibrarySupport()
val dsl = DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) private val support by lazy { StreamExLibrarySupport() }
val expressionBuilder = KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl)) private val dsl by lazy { DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) }
}
override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id
@@ -39,5 +38,6 @@ class StreamExLibrarySupportProvider : LibrarySupportProvider {
override fun getLibrarySupport(): LibrarySupport = support override fun getLibrarySupport(): LibrarySupport = support
override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = expressionBuilder override fun getExpressionBuilder(project: Project): TraceExpressionBuilder =
KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl))
} }
@@ -24,20 +24,18 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpress
class KotlinSequenceSupportProvider : LibrarySupportProvider { class KotlinSequenceSupportProvider : LibrarySupportProvider {
override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id
private companion object { private val builder: StreamChainBuilder = TerminatedChainBuilder(
val builder: StreamChainBuilder = TerminatedChainBuilder( KotlinChainTransformerImpl(SequenceTypeExtractor()),
KotlinChainTransformerImpl(SequenceTypeExtractor()), SequenceCallCheckerWithNameHeuristics(SequenceCallChecker())
SequenceCallCheckerWithNameHeuristics(SequenceCallChecker()) )
) private val support: LibrarySupport by lazy { KotlinSequencesSupport() }
val support = KotlinSequencesSupport() private val dsl: DslImpl by lazy { DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory())) }
val dsl = DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory()))
val expressionBuilder = KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl))
}
override fun getChainBuilder(): StreamChainBuilder = builder override fun getChainBuilder(): StreamChainBuilder = builder
override fun getLibrarySupport(): LibrarySupport = support override fun getLibrarySupport(): LibrarySupport = support
override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = expressionBuilder override fun getExpressionBuilder(project: Project): TraceExpressionBuilder =
KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl))
} }