diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/coroutine/coroutineUtil.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/coroutine/coroutineUtil.kt index 15408c8dd47..231ef0c5363 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/coroutine/coroutineUtil.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/coroutine/coroutineUtil.kt @@ -40,6 +40,7 @@ fun SimpleFunctionDescriptor.createCoroutineSuspensionFunctionView(): SimpleFunc setOriginal(newOriginal) setValueParameters(valueParameters.subList(0, valueParameters.size - 1)) setSignatureChange() + setPreserveSourceElement() putUserData(SUSPENSION_POINT_KEY, true) }.build()!! } diff --git a/idea/testData/resolve/references/CoroutineSuspensionPoint.kt b/idea/testData/resolve/references/CoroutineSuspensionPoint.kt new file mode 100644 index 00000000000..d91db7bd5b2 --- /dev/null +++ b/idea/testData/resolve/references/CoroutineSuspensionPoint.kt @@ -0,0 +1,16 @@ +class Controller { + suspend fun suspendHere(x: Continuation) { + } +} + +fun builder(coroutine c: Controller.() -> Continuation) { + +} + +fun foo() { + builder { + suspendHere() + } +} + +// REF: (in Controller).suspendHere(Continuation) diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java index 3d7a325d64f..e93ed360b8c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java @@ -107,6 +107,12 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest doTest(fileName); } + @TestMetadata("CoroutineSuspensionPoint.kt") + public void testCoroutineSuspensionPoint() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/resolve/references/CoroutineSuspensionPoint.kt"); + doTest(fileName); + } + @TestMetadata("CtrlClickResolve.kt") public void testCtrlClickResolve() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/resolve/references/CtrlClickResolve.kt");