diff --git a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/collections/KotlinCollectionSupportProvider.kt b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/collections/KotlinCollectionSupportProvider.kt index ea137be1c42..b1ab1263983 100644 --- a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/collections/KotlinCollectionSupportProvider.kt +++ b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/collections/KotlinCollectionSupportProvider.kt @@ -18,11 +18,9 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.dsl.KotlinStatementFact import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder class KotlinCollectionSupportProvider : LibrarySupportProvider { - private companion object { - val builder: StreamChainBuilder = KotlinCollectionChainBuilder() - val support: LibrarySupport = KotlinCollectionLibrarySupport() - val dsl = DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory())) - } + private val builder: StreamChainBuilder = KotlinCollectionChainBuilder() + private val support: LibrarySupport by lazy { KotlinCollectionLibrarySupport() } + private val dsl by lazy { DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory())) } override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id diff --git a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/JavaStandardLibrarySupportProvider.kt b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/JavaStandardLibrarySupportProvider.kt index 92a3b563668..7fc2bf620da 100644 --- a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/JavaStandardLibrarySupportProvider.kt +++ b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/JavaStandardLibrarySupportProvider.kt @@ -23,16 +23,12 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.dsl.KotlinStatementFact import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder class JavaStandardLibrarySupportProvider : LibrarySupportProvider { - private companion object { - val builder: TerminatedChainBuilder by lazy { - TerminatedChainBuilder( - KotlinChainTransformerImpl(JavaStreamChainTypeExtractor()), - StandardLibraryCallChecker(PackageBasedCallChecker("java.util.stream")) - ) - } - val support: StandardLibrarySupport by lazy { StandardLibrarySupport() } - val dsl: DslImpl by lazy { DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) } - } + private val builder: TerminatedChainBuilder = TerminatedChainBuilder( + KotlinChainTransformerImpl(JavaStreamChainTypeExtractor()), + StandardLibraryCallChecker(PackageBasedCallChecker("java.util.stream")) + ) + private val support: StandardLibrarySupport by lazy { StandardLibrarySupport() } + private val dsl: DslImpl by lazy { DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) } override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id diff --git a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/StreamExLibrarySupportProvider.kt b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/StreamExLibrarySupportProvider.kt index b0498e8b4fb..45bbdd3bb04 100644 --- a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/StreamExLibrarySupportProvider.kt +++ b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/java/StreamExLibrarySupportProvider.kt @@ -23,15 +23,14 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.dsl.KotlinStatementFact import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpressionBuilder class StreamExLibrarySupportProvider : LibrarySupportProvider { - private companion object { - val streamChainBuilder = TerminatedChainBuilder( + private val streamChainBuilder = + TerminatedChainBuilder( KotlinChainTransformerImpl(JavaStreamChainTypeExtractor()), StreamExCallChecker(PackageBasedCallChecker("one.util.streamex")) ) - val support = StreamExLibrarySupport() - val dsl = DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) - val expressionBuilder = KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl)) - } + + private val support by lazy { StreamExLibrarySupport() } + private val dsl by lazy { DslImpl(KotlinStatementFactory(JavaPeekCallFactory())) } override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id @@ -39,5 +38,6 @@ class StreamExLibrarySupportProvider : LibrarySupportProvider { override fun getLibrarySupport(): LibrarySupport = support - override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = expressionBuilder + override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = + KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl)) } \ No newline at end of file diff --git a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/sequence/KotlinSequenceSupportProvider.kt b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/sequence/KotlinSequenceSupportProvider.kt index 9a26471d839..e69ddd82795 100644 --- a/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/sequence/KotlinSequenceSupportProvider.kt +++ b/idea/jvm-debugger/jvm-debugger-sequence/src/org/jetbrains/kotlin/idea/debugger/sequence/lib/sequence/KotlinSequenceSupportProvider.kt @@ -24,20 +24,18 @@ import org.jetbrains.kotlin.idea.debugger.sequence.trace.impl.KotlinTraceExpress class KotlinSequenceSupportProvider : LibrarySupportProvider { override fun getLanguageId(): String = KotlinLanguage.INSTANCE.id - private companion object { - val builder: StreamChainBuilder = TerminatedChainBuilder( - KotlinChainTransformerImpl(SequenceTypeExtractor()), - SequenceCallCheckerWithNameHeuristics(SequenceCallChecker()) - ) - val support = KotlinSequencesSupport() - val dsl = DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory())) - val expressionBuilder = KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl)) - } + private val builder: StreamChainBuilder = TerminatedChainBuilder( + KotlinChainTransformerImpl(SequenceTypeExtractor()), + SequenceCallCheckerWithNameHeuristics(SequenceCallChecker()) + ) + private val support: LibrarySupport by lazy { KotlinSequencesSupport() } + private val dsl: DslImpl by lazy { DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory())) } override fun getChainBuilder(): StreamChainBuilder = builder override fun getLibrarySupport(): LibrarySupport = support - override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = expressionBuilder + override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = + KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl)) } \ No newline at end of file