diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt
index 6961c83dab5..04f8d58fa37 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/util/callUtil.kt
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.utils.sure
import org.jetbrains.kotlin.psi.psiUtil.getTextWithLocation
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
+import org.jetbrains.kotlin.resolve.InlineDescriptorUtils
import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext
// resolved call
@@ -183,9 +184,6 @@ public fun JetExpression.getFunctionResolvedCallWithAssert(context: BindingConte
public fun JetFunctionLiteral.isInlined(bindingContext: BindingContext): Boolean {
val parent = this.getParent()
assert(parent is JetFunctionLiteralExpression) { "parent of JetFunctionLiteral is " + parent }
- val resolvedCall = (parent as JetFunctionLiteralExpression).getParentResolvedCall(bindingContext, true)
- if (resolvedCall == null) return false
- val callable = resolvedCall.getResultingDescriptor()
- return callable is SimpleFunctionDescriptor && callable.getInlineStrategy().isInline()
+ return InlineDescriptorUtils.isInlineLambda(parent as JetFunctionLiteralExpression, bindingContext, false)
}
\ No newline at end of file
diff --git a/idea/testData/checker/infos/CapturedInInlinedClosure.kt b/idea/testData/checker/infos/CapturedInInlinedClosure.kt
index accd50524fd..a8a075f5258 100644
--- a/idea/testData/checker/infos/CapturedInInlinedClosure.kt
+++ b/idea/testData/checker/infos/CapturedInInlinedClosure.kt
@@ -88,4 +88,15 @@ fun objectExpression() {
val u3 = ""
object : Throwable(run { u3 }) {
}
-}
\ No newline at end of file
+}
+
+inline fun withNoInlineParam(noinline task1: () -> Unit, task2: () -> Unit) {
+ task1()
+ task2()
+}
+
+fun usage(param1: Int, param2: Int) {
+ withNoInlineParam({ println(param1) }, { println(param2) })
+}
+
+fun println(a: Any) {}
\ No newline at end of file
diff --git a/idea/testData/codeInsight/lineMarker/recursiveCall/inInlinedLambda.kt b/idea/testData/codeInsight/lineMarker/recursiveCall/inInlinedLambda.kt
index 58d28bac284..71276acd43b 100644
--- a/idea/testData/codeInsight/lineMarker/recursiveCall/inInlinedLambda.kt
+++ b/idea/testData/codeInsight/lineMarker/recursiveCall/inInlinedLambda.kt
@@ -2,4 +2,13 @@ fun f(a: Int) {
run {
f(a - 1)
}
-}
\ No newline at end of file
+}
+
+fun ff(a: Int) {
+ run1 {
+ ff(a - 1)
+ }
+}
+
+inline fun run1(noinline f: () -> T): T { }
+
diff --git a/idea/testData/exitPoints/inlineWithNoInlineParam.kt b/idea/testData/exitPoints/inlineWithNoInlineParam.kt
new file mode 100644
index 00000000000..9f48b5ea9c7
--- /dev/null
+++ b/idea/testData/exitPoints/inlineWithNoInlineParam.kt
@@ -0,0 +1,12 @@
+fun f(a: Int): Int {
+ if (a < 5) {
+ run1(fun (): Int {
+ return 1
+ })
+ }
+ return 2
+}
+
+inline public fun run1(noinline f: () -> T): T { }
+
+//HIGHLIGHTED: return 1
diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java
index e25cdf18cb3..e1c03fd92ea 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java
@@ -60,6 +60,12 @@ public class HighlightExitPointsTestGenerated extends AbstractHighlightExitPoint
doTest(fileName);
}
+ @TestMetadata("inlineWithNoInlineParam.kt")
+ public void testInlineWithNoInlineParam() throws Exception {
+ String fileName = JetTestUtils.navigationMetadata("idea/testData/exitPoints/inlineWithNoInlineParam.kt");
+ doTest(fileName);
+ }
+
@TestMetadata("localFunction1.kt")
public void testLocalFunction1() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/exitPoints/localFunction1.kt");