From 634b1a956844b2ef2fca393593e52e0b443f70b7 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 22 Apr 2015 19:00:39 +0300 Subject: [PATCH] Add workaround for KT-7544 Inlining lambdas into objects or non-inlineable lambdas does not work well. Should be reverted after issue will be fixed --- .../src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt | 4 ++-- .../kotlin/idea/quickfix/JetWholeProjectModalAction.kt | 10 +++++----- .../org/jetbrains/kotlin/idea/quickfix/quickfixUtil.kt | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt index 85e9efb99ca..c88d5d03c30 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/jetPsiUtil.kt @@ -516,7 +516,7 @@ public fun PsiElement.getElementTextWithContext(): String { // Calls `block` on each descendant of T type // Note, that calls happen in order of DFS-exit, so deeper nodes are applied earlier inline fun forEachDescendantOfTypeVisitor( - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) block: (T) -> Unit + noinline block: (T) -> Unit ): JetVisitorVoid = object : JetTreeVisitorVoid() { override fun visitJetElement(element: JetElement) { @@ -529,5 +529,5 @@ inline fun forEachDescendantOfTypeVisitor( inline fun flatMapDescendantsOfTypeVisitor( accumulator: MutableCollection, - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) map: (T) -> Collection + noinline map: (T) -> Collection ): JetVisitorVoid = forEachDescendantOfTypeVisitor { accumulator.addAll(map(it)) } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/JetWholeProjectModalAction.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/JetWholeProjectModalAction.kt index feb7f2bc304..9bb81ffe73f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/JetWholeProjectModalAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/JetWholeProjectModalAction.kt @@ -128,8 +128,8 @@ class JetWholeProjectForEachElementOfTypeFix private ( companion object { inline fun createByPredicate( - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) predicate: (E) -> Boolean, - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) taskProcessor: (E) -> Unit, + noinline predicate: (E) -> Boolean, + noinline taskProcessor: (E) -> Unit, modalTitle: String, name: String, familyName: String @@ -142,8 +142,8 @@ class JetWholeProjectForEachElementOfTypeFix private ( ) inline fun createByTaskFactory( - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) taskFactory: (E) -> D?, - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) taskProcessor: (D) -> Unit, + noinline taskFactory: (E) -> D?, + noinline taskProcessor: (D) -> Unit, modalTitle: String, name: String, familyName: String @@ -156,7 +156,7 @@ class JetWholeProjectForEachElementOfTypeFix private ( ) inline fun createForMultiTask( - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) tasksFactory: (E) -> Collection, + noinline tasksFactory: (E) -> Collection, noinline tasksProcessor: (Collection) -> Unit, modalTitle: String, name: String, diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/quickfixUtil.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/quickfixUtil.kt index 9a288114901..22bc14af899 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/quickfixUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/quickfixUtil.kt @@ -28,8 +28,8 @@ inline fun Diagnostic.createIntentionForFirstParentOfTy ) = getPsiElement().getNonStrictParentOfType()?.let(factory) -inline fun createIntentionFactory( - inlineOptions(InlineOption.ONLY_LOCAL_RETURN) factory: (Diagnostic) -> IntentionAction? +fun createIntentionFactory( + factory: (Diagnostic) -> IntentionAction? ) = object : JetSingleIntentionActionFactory() { override fun createAction(diagnostic: Diagnostic) = factory(diagnostic) }