diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireContract.kt b/analysis/low-level-api-fir/testdata/inBlockModification/entireContract.kt new file mode 100644 index 00000000000..79cff317223 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireContract.kt @@ -0,0 +1,9 @@ +import kotlin.contracts.InvocationKind + +inline fun foo(block: () -> Unit) { + kotlin.contracts.contract { + callsInPlace(block, InvocationKind.EXACTLY_ONCE) + } + + block() +} diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireContract.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireContract.txt new file mode 100644 index 00000000000..f0b4ea084b4 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireContract.txt @@ -0,0 +1 @@ +IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.kt b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.kt new file mode 100644 index 00000000000..75145b0a21d --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.kt @@ -0,0 +1,3 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtBlockExpression + +fun doo() {} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.txt new file mode 100644 index 00000000000..13fd252d3c2 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.txt @@ -0,0 +1,6 @@ +BEFORE MODIFICATION: +public final [ResolvedTo(BODY_RESOLVE)] fun doo(): R|kotlin/Unit| { +} + +AFTER MODIFICATION: +public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun doo(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.kt b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.kt new file mode 100644 index 00000000000..23cf10645ab --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtBlockExpression + +val i: Int + get() {} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.txt new file mode 100644 index 00000000000..23da416dddf --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.txt @@ -0,0 +1,8 @@ +BEFORE MODIFICATION: +public final [ResolvedTo(BODY_RESOLVE)] val i: R|kotlin/Int| + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| { + } + +AFTER MODIFICATION: +public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val i: R|kotlin/Int| + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] get(): R|kotlin/Int| { LAZY_BLOCK } diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.kt b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.kt new file mode 100644 index 00000000000..6d361e1543f --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.kt @@ -0,0 +1,3 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtConstantExpression + +val i: Int = 42 \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.txt new file mode 100644 index 00000000000..4559817b1d1 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.txt @@ -0,0 +1,7 @@ +BEFORE MODIFICATION: +public final [ResolvedTo(BODY_RESOLVE)] val i: R|kotlin/Int| = Int(42) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + +AFTER MODIFICATION: +public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val i: R|kotlin/Int| = LAZY_EXPRESSION + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.kt b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.kt new file mode 100644 index 00000000000..9c3e025e698 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.kt @@ -0,0 +1,4 @@ +// LOOK_UP_FOR_ELEMENT_OF_TYPE: org.jetbrains.kotlin.psi.KtBlockExpression + +var i: Int = 4 + set(value) {} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.txt new file mode 100644 index 00000000000..d608f4cf463 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.txt @@ -0,0 +1,10 @@ +BEFORE MODIFICATION: +public final [ResolvedTo(BODY_RESOLVE)] var i: R|kotlin/Int| = Int(4) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] value: R|kotlin/Int|): R|kotlin/Unit| { + } + +AFTER MODIFICATION: +public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] var i: R|kotlin/Int| = Int(4) + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] set([ResolvedTo(BODY_RESOLVE)] value: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideContract.kt b/analysis/low-level-api-fir/testdata/inBlockModification/insideContract.kt new file mode 100644 index 00000000000..8bdd2bd00da --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideContract.kt @@ -0,0 +1,9 @@ +import kotlin.contracts.InvocationKind + +inline fun foo(block: () -> Unit) { + kotlin.contracts.contract { + callsInPlace(block, InvocationKind.EXACTLY_ONCE) + } + + block() +} diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideContract.txt b/analysis/low-level-api-fir/testdata/inBlockModification/insideContract.txt new file mode 100644 index 00000000000..f0b4ea084b4 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideContract.txt @@ -0,0 +1 @@ +IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.kt b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.kt new file mode 100644 index 00000000000..f2dc1b1cbb0 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.kt @@ -0,0 +1,7 @@ +class MyProducer { + fun produce(): Int = 4 +} + +fun MyProducer.testFun(param1: Int = produce()) { + 42 +} diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.txt b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.txt new file mode 100644 index 00000000000..f0b4ea084b4 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.txt @@ -0,0 +1 @@ +IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/OutOfContentRootInBlockModificationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/OutOfContentRootInBlockModificationTestGenerated.java index fec486eb50f..63be6ea0c04 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/OutOfContentRootInBlockModificationTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/OutOfContentRootInBlockModificationTestGenerated.java @@ -30,6 +30,36 @@ public class OutOfContentRootInBlockModificationTestGenerated extends AbstractOu runTest("analysis/low-level-api-fir/testdata/inBlockModification/contract.kt"); } + @Test + @TestMetadata("entireContract.kt") + public void testEntireContract() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireContract.kt"); + } + + @Test + @TestMetadata("entireFunctionBody.kt") + public void testEntireFunctionBody() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.kt"); + } + + @Test + @TestMetadata("entireGetterBody.kt") + public void testEntireGetterBody() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.kt"); + } + + @Test + @TestMetadata("entireInitializer.kt") + public void testEntireInitializer() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.kt"); + } + + @Test + @TestMetadata("entireSetterBody.kt") + public void testEntireSetterBody() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.kt"); + } + @Test @TestMetadata("extensionWithDefaultParameters.kt") public void testExtensionWithDefaultParameters() throws Exception { @@ -42,6 +72,18 @@ public class OutOfContentRootInBlockModificationTestGenerated extends AbstractOu runTest("analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParameters.kt"); } + @Test + @TestMetadata("insideContract.kt") + public void testInsideContract() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/insideContract.kt"); + } + + @Test + @TestMetadata("insideDefaultParameter.kt") + public void testInsideDefaultParameter() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.kt"); + } + @Test @TestMetadata("memberFunWithBodyWithContract.kt") public void testMemberFunWithBodyWithContract() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/SourceInBlockModificationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/SourceInBlockModificationTestGenerated.java index ba494a07eb9..3ad2dfd22d2 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/SourceInBlockModificationTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/SourceInBlockModificationTestGenerated.java @@ -30,6 +30,36 @@ public class SourceInBlockModificationTestGenerated extends AbstractSourceInBloc runTest("analysis/low-level-api-fir/testdata/inBlockModification/contract.kt"); } + @Test + @TestMetadata("entireContract.kt") + public void testEntireContract() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireContract.kt"); + } + + @Test + @TestMetadata("entireFunctionBody.kt") + public void testEntireFunctionBody() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBody.kt"); + } + + @Test + @TestMetadata("entireGetterBody.kt") + public void testEntireGetterBody() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBody.kt"); + } + + @Test + @TestMetadata("entireInitializer.kt") + public void testEntireInitializer() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireInitializer.kt"); + } + + @Test + @TestMetadata("entireSetterBody.kt") + public void testEntireSetterBody() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBody.kt"); + } + @Test @TestMetadata("extensionWithDefaultParameters.kt") public void testExtensionWithDefaultParameters() throws Exception { @@ -42,6 +72,18 @@ public class SourceInBlockModificationTestGenerated extends AbstractSourceInBloc runTest("analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParameters.kt"); } + @Test + @TestMetadata("insideContract.kt") + public void testInsideContract() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/insideContract.kt"); + } + + @Test + @TestMetadata("insideDefaultParameter.kt") + public void testInsideDefaultParameter() throws Exception { + runTest("analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameter.kt"); + } + @Test @TestMetadata("memberFunWithBodyWithContract.kt") public void testMemberFunWithBodyWithContract() throws Exception {