diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/assignment.kts b/analysis/low-level-api-fir/testdata/inBlockModification/assignment.kts
new file mode 100644
index 00000000000..4c920c5cf94
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/assignment.kts
@@ -0,0 +1,27 @@
+class Builder {
+ var version: String = ""
+
+ fun execute() {
+ println(version)
+ }
+}
+
+fun build(action: Builder.() -> Unit) = Builder().apply(action)
+
+build {
+ version = "123"
+ class A {
+ fun doo() {
+
+ }
+ }
+
+ execute()
+}
+
+val builder = build {
+ version = "321"
+}
+
+builder.execute()
+builder.version = ""
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/assignment.txt b/analysis/low-level-api-fir/testdata/inBlockModification/assignment.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/assignment.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/contractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/contractScript.kts
new file mode 100644
index 00000000000..f006569a592
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/contractScript.kts
@@ -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/contractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/contractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/contractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireContractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/entireContractScript.kts
new file mode 100644
index 00000000000..79cff317223
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireContractScript.kts
@@ -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/entireContractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireContractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireContractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBodyScript.kts
new file mode 100644
index 00000000000..75145b0a21d
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBodyScript.kts
@@ -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/entireFunctionBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBodyScript.kts
new file mode 100644
index 00000000000..23cf10645ab
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBodyScript.kts
@@ -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/entireGetterBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializerScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializerScript.kts
new file mode 100644
index 00000000000..6d361e1543f
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializerScript.kts
@@ -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/entireInitializerScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializerScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireInitializerScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBodyScript.kts
new file mode 100644
index 00000000000..9c3e025e698
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBodyScript.kts
@@ -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/entireSetterBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/extensionWithDefaultParametersScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/extensionWithDefaultParametersScript.kts
new file mode 100644
index 00000000000..d13fb851d50
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/extensionWithDefaultParametersScript.kts
@@ -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/extensionWithDefaultParametersScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/extensionWithDefaultParametersScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/extensionWithDefaultParametersScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParametersScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParametersScript.kts
new file mode 100644
index 00000000000..52b17c002a9
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParametersScript.kts
@@ -0,0 +1,5 @@
+fun testFun(param1: Int, param2: String = "str", param3: List = myList()) {
+ 42
+}
+
+fun myList(): List
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParametersScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParametersScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParametersScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideContractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/insideContractScript.kts
new file mode 100644
index 00000000000..8bdd2bd00da
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideContractScript.kts
@@ -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/insideContractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/insideContractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideContractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameterScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameterScript.kts
new file mode 100644
index 00000000000..f2dc1b1cbb0
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameterScript.kts
@@ -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/insideDefaultParameterScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameterScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameterScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideStatement.kts b/analysis/low-level-api-fir/testdata/inBlockModification/insideStatement.kts
new file mode 100644
index 00000000000..0840dc54319
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideStatement.kts
@@ -0,0 +1,26 @@
+class Builder {
+ var version: String = ""
+
+ fun execute() {
+ println(version)
+ }
+}
+
+fun build(action: Builder.() -> Unit) = Builder().apply(action)
+
+build {
+ version = "123"
+ class A {
+ fun doo() {
+
+ }
+ }
+
+ execute()
+}
+
+val builder = build {
+ version = "321"
+}
+
+builder.execute()
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/insideStatement.txt b/analysis/low-level-api-fir/testdata/inBlockModification/insideStatement.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/insideStatement.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithContractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithContractScript.kts
new file mode 100644
index 00000000000..65a38d0bf84
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithContractScript.kts
@@ -0,0 +1,13 @@
+import kotlin.contracts.contract
+
+class A {
+ fun x() {
+ contract {
+ req
+ }
+
+ val a = doSmth("str")
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithContractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithContractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithContractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithErrorContractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithErrorContractScript.kts
new file mode 100644
index 00000000000..529040fd69e
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithErrorContractScript.kts
@@ -0,0 +1,10 @@
+import kotlin.contracts.*
+
+class A {
+ fun passLambdaValue(l: ContractBuilder.() -> Unit) {
+ contract(l)
+ 42
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithErrorContractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithErrorContractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithErrorContractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithFakeContractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithFakeContractScript.kts
new file mode 100644
index 00000000000..6bbd1003218
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithFakeContractScript.kts
@@ -0,0 +1,11 @@
+class A {
+ fun x() {
+ contract {
+ req
+ }
+
+ val a = doSmth("str")
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithFakeContractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithFakeContractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithFakeContractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithTypeScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithTypeScript.kts
new file mode 100644
index 00000000000..fe2341c5615
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithTypeScript.kts
@@ -0,0 +1,7 @@
+class A {
+ fun x(): Int {
+ return doSmth("str")
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithTypeScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithTypeScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithTypeScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeScript.kts
new file mode 100644
index 00000000000..df79570d5b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeScript.kts
@@ -0,0 +1,7 @@
+class A {
+ fun x() {
+ val a = doSmth("str")
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeWithoutNameScript.kts
new file mode 100644
index 00000000000..c068320456d
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeWithoutNameScript.kts
@@ -0,0 +1,7 @@
+class A {
+ fun () {
+ val a = doSmth("str")
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..938aef70e9f
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithTypeWithoutBodyScript.kts
@@ -0,0 +1,5 @@
+class A {
+ fun x(): Int = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithTypeWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithTypeWithoutNameScript.kts
new file mode 100644
index 00000000000..ea9559a289a
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithTypeWithoutNameScript.kts
@@ -0,0 +1,5 @@
+class A {
+ fun (): Int = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithTypeWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithTypeWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithTypeWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithoutTypeWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithoutTypeWithoutNameScript.kts
new file mode 100644
index 00000000000..a575addf125
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithoutTypeWithoutNameScript.kts
@@ -0,0 +1,5 @@
+class A {
+ fun () = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithoutTypeWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithoutTypeWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithoutTypeWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..95fbd05d836
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutTypeWithoutBodyScript.kts
@@ -0,0 +1,5 @@
+class A {
+ fun x() = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractScript.kts
new file mode 100644
index 00000000000..a6584aac6d7
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractScript.kts
@@ -0,0 +1,14 @@
+import kotlin.contracts.contract
+
+class A {
+ var x: Int
+ get() {
+ contract {
+ req
+ }
+
+ fun doSmth(i: String) = 4
+ return doSmth("str")
+ }
+ set(value) = Unit
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractWithoutNameScript.kts
new file mode 100644
index 00000000000..d52958bf2a5
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractWithoutNameScript.kts
@@ -0,0 +1,14 @@
+import kotlin.contracts.contract
+
+class A {
+ var : Int
+ get() {
+ contract {
+ req
+ }
+
+ fun doSmth(i: String) = 4
+ return doSmth("str")
+ }
+ set(value) = Unit
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithBodyScript.kts
new file mode 100644
index 00000000000..299357523cd
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithBodyScript.kts
@@ -0,0 +1,7 @@
+class A {
+ val x: Int
+ get() {
+ fun doSmth(i: String) = 4
+ return doSmth("str")
+ }
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..9557f8dac4b
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyScript.kts
@@ -0,0 +1,5 @@
+class A {
+ val x: Int get() = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyWithoutNameScript.kts
new file mode 100644
index 00000000000..749e5c9f3e5
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyWithoutNameScript.kts
@@ -0,0 +1,5 @@
+class A {
+ val : Int get() = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithBodyScript.kts
new file mode 100644
index 00000000000..f9b984ff414
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithBodyScript.kts
@@ -0,0 +1,8 @@
+class A {
+ val x
+ get() {
+ return doSmth("str")
+ }
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..3155925cc01
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithoutBodyScript.kts
@@ -0,0 +1,5 @@
+class A {
+ val x get() = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateScript.kts
new file mode 100644
index 00000000000..f009c2d1f49
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateScript.kts
@@ -0,0 +1,6 @@
+class A {
+ val x: Int by lazy {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+ }
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateWithoutNameScript.kts
new file mode 100644
index 00000000000..c6822e2369b
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateWithoutNameScript.kts
@@ -0,0 +1,6 @@
+class A {
+ val : Int by lazy {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+ }
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInErrorDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInErrorDelegateScript.kts
new file mode 100644
index 00000000000..b9548e3b259
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInErrorDelegateScript.kts
@@ -0,0 +1,3 @@
+class A {
+ val x: Int by ErrorDelegate()
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInErrorDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInErrorDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInErrorDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerScript.kts
new file mode 100644
index 00000000000..c88a8e595c0
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerScript.kts
@@ -0,0 +1,6 @@
+class A {
+ val x: Int = run {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+ }
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerWithoutNameScript.kts
new file mode 100644
index 00000000000..57440c0d39d
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerWithoutNameScript.kts
@@ -0,0 +1,6 @@
+class A {
+ val : Int = run {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+ }
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInDelegateScript.kts
new file mode 100644
index 00000000000..d70ee0e185c
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInDelegateScript.kts
@@ -0,0 +1,6 @@
+class A {
+ val x by lazy {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+ }
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInErrorDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInErrorDelegateScript.kts
new file mode 100644
index 00000000000..61f0721bea7
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInErrorDelegateScript.kts
@@ -0,0 +1,3 @@
+class A {
+ val x by ErrorDelegate()
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInErrorDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInErrorDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInErrorDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInInitializerScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInInitializerScript.kts
new file mode 100644
index 00000000000..3f6eef1a76e
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInInitializerScript.kts
@@ -0,0 +1,5 @@
+class A {
+ val x = run {
+ doSmth("str")
+ }
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInInitializerScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInInitializerScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInInitializerScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyScript.kts
new file mode 100644
index 00000000000..1bd6bec0507
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyScript.kts
@@ -0,0 +1,8 @@
+class A {
+ var x: Int = 1
+ set(value) {
+ doSmth(value)
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyWithoutNameScript.kts
new file mode 100644
index 00000000000..fd503873e63
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyWithoutNameScript.kts
@@ -0,0 +1,8 @@
+class A {
+ var : Int = 1
+ set(value) {
+ doSmth(value)
+ }
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..e12c0d3a541
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyScript.kts
@@ -0,0 +1,6 @@
+class A {
+ var x: Int = 1
+ set(value) = doSmth(value)
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyWithoutNameScript.kts
new file mode 100644
index 00000000000..8c10585e4f7
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyWithoutNameScript.kts
@@ -0,0 +1,6 @@
+class A {
+ var : Int = 1
+ set(value) = doSmth(value)
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithBodyScript.kts
new file mode 100644
index 00000000000..85a42132986
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithBodyScript.kts
@@ -0,0 +1,9 @@
+class A {
+ var x
+ get() = 1
+ set(value) {
+ doSmth(value)
+ }
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..43c9bb5e6d4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithoutBodyScript.kts
@@ -0,0 +1,7 @@
+class A {
+ var x
+ get() = 1
+ set(value) = doSmth(value)
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/rawContractScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/rawContractScript.kts
new file mode 100644
index 00000000000..89356f731c6
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/rawContractScript.kts
@@ -0,0 +1,9 @@
+fun foo(arg: Any?, num: Int?, block: () -> Unit) contract [
+ returns() implies (arg is String),
+ returns() implies (num != null),
+ callsInPlace(block, InvocationKind.EXACTLY_ONCE)
+] {
+ require(arg is String)
+ require(num != null)
+ block()
+}
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/rawContractScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/rawContractScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/rawContractScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/statement.kts b/analysis/low-level-api-fir/testdata/inBlockModification/statement.kts
new file mode 100644
index 00000000000..6c84e29e115
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/statement.kts
@@ -0,0 +1,26 @@
+class Builder {
+ var version: String = ""
+
+ fun execute() {
+ println(version)
+ }
+}
+
+fun build(action: Builder.() -> Unit) = Builder().apply(action)
+
+build {
+ version = "123"
+ class A {
+ fun doo() {
+
+ }
+ }
+
+ execute()
+}
+
+val builder = build {
+ version = "321"
+}
+
+builder.execute()
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/statement.txt b/analysis/low-level-api-fir/testdata/inBlockModification/statement.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/statement.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/statement2.kts b/analysis/low-level-api-fir/testdata/inBlockModification/statement2.kts
new file mode 100644
index 00000000000..613de59a4de
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/statement2.kts
@@ -0,0 +1,26 @@
+class Builder {
+ var version: String = ""
+
+ fun execute() {
+ println(version)
+ }
+}
+
+fun build(action: Builder.() -> Unit) = Builder().apply(action)
+
+build {
+ version = "123"
+ class A {
+ fun doo() {
+
+ }
+ }
+
+ execute()
+}
+
+val builder = build {
+ version = "321"
+}
+
+builder.execute()
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/statement2.txt b/analysis/low-level-api-fir/testdata/inBlockModification/statement2.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/statement2.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithBodyWithoutTypeWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithBodyWithoutTypeWithoutNameScript.kts
new file mode 100644
index 00000000000..fe9f613364f
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithBodyWithoutTypeWithoutNameScript.kts
@@ -0,0 +1,5 @@
+fun () {
+ val a = doSmth("str")
+}
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithBodyWithoutTypeWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithBodyWithoutTypeWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithBodyWithoutTypeWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithBodyScript.kts
new file mode 100644
index 00000000000..c507e5df4ba
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithBodyScript.kts
@@ -0,0 +1,5 @@
+fun foo(): Int {
+ return doSmth("str")
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..53127829281
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithoutBodyScript.kts
@@ -0,0 +1,3 @@
+fun foo(): Int = doSmth("str")
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithTypeWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithTypeWithoutNameScript.kts
new file mode 100644
index 00000000000..b99d9540722
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithTypeWithoutNameScript.kts
@@ -0,0 +1,3 @@
+fun (): Int = doSmth("str")
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithTypeWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithTypeWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithTypeWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.kts
new file mode 100644
index 00000000000..035b6d214ed
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.kts
@@ -0,0 +1,3 @@
+fun () = doSmth("str")
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithBodyScript.kts
new file mode 100644
index 00000000000..9746798294e
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithBodyScript.kts
@@ -0,0 +1,5 @@
+fun foo() {
+ doSmth("str")
+}
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..59b1cfe13c9
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithoutBodyScript.kts
@@ -0,0 +1,3 @@
+fun foo() = doSmth("str")
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyScript.kts
new file mode 100644
index 00000000000..3fe79be3ae3
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyScript.kts
@@ -0,0 +1,5 @@
+ val x: Int
+ get() {
+ fun doSmth(i: String) = 4
+ return doSmth("str")
+ }
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyWithoutNameScript.kts
new file mode 100644
index 00000000000..174c0a795de
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyWithoutNameScript.kts
@@ -0,0 +1,5 @@
+ val : Int
+ get() {
+ fun doSmth(i: String) = 4
+ return doSmth("str")
+ }
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..872486b3a0d
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyScript.kts
@@ -0,0 +1,3 @@
+val x: Int get() = doSmth("str")
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyWithoutNameScript.kts
new file mode 100644
index 00000000000..60815041053
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyWithoutNameScript.kts
@@ -0,0 +1,3 @@
+val : Int get() = doSmth("str")
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithBodyScript.kts
new file mode 100644
index 00000000000..664bc6cfd8c
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithBodyScript.kts
@@ -0,0 +1,6 @@
+ val x
+ get() {
+ return doSmth("str")
+ }
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..01df16084f7
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithoutBodyScript.kts
@@ -0,0 +1,3 @@
+val x get() = doSmth("str")
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateScript.kts
new file mode 100644
index 00000000000..5ada7299850
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateScript.kts
@@ -0,0 +1,4 @@
+val x: Int by lazy {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateWithoutNameScript.kts
new file mode 100644
index 00000000000..30423238a30
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateWithoutNameScript.kts
@@ -0,0 +1,4 @@
+val : Int by lazy {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInErrorDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInErrorDelegateScript.kts
new file mode 100644
index 00000000000..86c09ca6f5b
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInErrorDelegateScript.kts
@@ -0,0 +1 @@
+val x: Int by ErrorDelegate()
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInErrorDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInErrorDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInErrorDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerScript.kts
new file mode 100644
index 00000000000..0b8bd2ff23d
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerScript.kts
@@ -0,0 +1,3 @@
+val x: Int = doSmth("str")
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerWithoutNameScript.kts
new file mode 100644
index 00000000000..27ae734ce2a
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerWithoutNameScript.kts
@@ -0,0 +1,3 @@
+val : Int = doSmth("str")
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInDelegateScript.kts
new file mode 100644
index 00000000000..74fb2ee24c4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInDelegateScript.kts
@@ -0,0 +1,4 @@
+val x by lazy {
+ fun doSmth(i: String) = 4
+ doSmth("str")
+}
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInErrorDelegateScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInErrorDelegateScript.kts
new file mode 100644
index 00000000000..a95c5ce585c
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInErrorDelegateScript.kts
@@ -0,0 +1 @@
+val x by ErrorDelegate()
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInErrorDelegateScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInErrorDelegateScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInErrorDelegateScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInInititalzerScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInInititalzerScript.kts
new file mode 100644
index 00000000000..d20e35d143f
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInInititalzerScript.kts
@@ -0,0 +1,3 @@
+val x = doSmth("str")
+
+fun doSmth(i: String) = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInInititalzerScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInInititalzerScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInInititalzerScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyScript.kts
new file mode 100644
index 00000000000..d0c85b03b20
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyScript.kts
@@ -0,0 +1,6 @@
+var x: Int = 1
+ set(value) {
+ doSmth(value)
+ }
+
+fun doSmth(i: String): Unit = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyWithoutNameScript.kts
new file mode 100644
index 00000000000..96f828595be
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyWithoutNameScript.kts
@@ -0,0 +1,6 @@
+var : Int = 1
+ set(value) {
+ doSmth(value)
+ }
+
+fun doSmth(i: String): Unit = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..05de403cd71
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyScript.kts
@@ -0,0 +1,4 @@
+var x: Int = 1
+ set(value) = doSmth(value)
+
+fun doSmth(i: String): Unit = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyWithoutNameScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyWithoutNameScript.kts
new file mode 100644
index 00000000000..03e417717ea
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyWithoutNameScript.kts
@@ -0,0 +1,4 @@
+var : Int = 1
+ set(value) = doSmth(value)
+
+fun doSmth(i: String): Unit = 4
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyWithoutNameScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyWithoutNameScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyWithoutNameScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithBodyScript.kts
new file mode 100644
index 00000000000..ba747671394
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithBodyScript.kts
@@ -0,0 +1,7 @@
+val x
+ get() = 1
+ set(value) {
+ doSmth(value)
+ }
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithBodyScript.txt
@@ -0,0 +1 @@
+IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithoutBodyScript.kts b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithoutBodyScript.kts
new file mode 100644
index 00000000000..650619f8b50
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithoutBodyScript.kts
@@ -0,0 +1,5 @@
+val x
+ get() = 1
+ set(value) = doSmth(value)
+
+fun doSmth(i: String) = 4
diff --git a/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithoutBodyScript.txt b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithoutBodyScript.txt
new file mode 100644
index 00000000000..f0b4ea084b4
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithoutBodyScript.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/AbstractInBlockModificationTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/AbstractInBlockModificationTest.kt
index 4093bfcddba..9c1d5e195a6 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/AbstractInBlockModificationTest.kt
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/AbstractInBlockModificationTest.kt
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.lazyResolveRenderer
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolveWithCaches
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirOutOfContentRootTestConfigurator
+import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
@@ -82,5 +83,9 @@ abstract class AbstractSourceInBlockModificationTest : AbstractInBlockModificati
}
abstract class AbstractOutOfContentRootInBlockModificationTest : AbstractInBlockModificationTest() {
- override val configurator = AnalysisApiFirOutOfContentRootTestConfigurator
-}
\ No newline at end of file
+ override val configurator get() = AnalysisApiFirOutOfContentRootTestConfigurator
+}
+
+abstract class AbstractScriptInBlockModificationTest : AbstractInBlockModificationTest() {
+ override val configurator get() = AnalysisApiFirScriptTestConfigurator
+}
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 63be6ea0c04..f412c369544 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
@@ -21,7 +21,7 @@ import java.util.regex.Pattern;
public class OutOfContentRootInBlockModificationTestGenerated extends AbstractOutOfContentRootInBlockModificationTest {
@Test
public void testAllFilesPresentInInBlockModification() throws Exception {
- KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/inBlockModification"), Pattern.compile("^(.+)\\.kt$"), null, true);
+ KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/inBlockModification"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
}
@Test
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/ScriptInBlockModificationTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/ScriptInBlockModificationTestGenerated.java
new file mode 100644
index 00000000000..a579cdccef9
--- /dev/null
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/ScriptInBlockModificationTestGenerated.java
@@ -0,0 +1,464 @@
+/*
+ * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure;
+
+import com.intellij.testFramework.TestDataPath;
+import org.jetbrains.kotlin.test.util.KtTestUtil;
+import org.jetbrains.kotlin.test.TestMetadata;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+
+import java.io.File;
+import java.util.regex.Pattern;
+
+/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
+@SuppressWarnings("all")
+@TestMetadata("analysis/low-level-api-fir/testdata/inBlockModification")
+@TestDataPath("$PROJECT_ROOT")
+public class ScriptInBlockModificationTestGenerated extends AbstractScriptInBlockModificationTest {
+ @Test
+ public void testAllFilesPresentInInBlockModification() throws Exception {
+ KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/inBlockModification"), Pattern.compile("^(.+)\\.(kts)$"), null, true);
+ }
+
+ @Test
+ @TestMetadata("assignment.kts")
+ public void testAssignment() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/assignment.kts");
+ }
+
+ @Test
+ @TestMetadata("contractScript.kts")
+ public void testContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/contractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("entireContractScript.kts")
+ public void testEntireContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireContractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("entireFunctionBodyScript.kts")
+ public void testEntireFunctionBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireFunctionBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("entireGetterBodyScript.kts")
+ public void testEntireGetterBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireGetterBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("entireInitializerScript.kts")
+ public void testEntireInitializerScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireInitializerScript.kts");
+ }
+
+ @Test
+ @TestMetadata("entireSetterBodyScript.kts")
+ public void testEntireSetterBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/entireSetterBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("extensionWithDefaultParametersScript.kts")
+ public void testExtensionWithDefaultParametersScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/extensionWithDefaultParametersScript.kts");
+ }
+
+ @Test
+ @TestMetadata("functionWithDefaultParametersScript.kts")
+ public void testFunctionWithDefaultParametersScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/functionWithDefaultParametersScript.kts");
+ }
+
+ @Test
+ @TestMetadata("insideContractScript.kts")
+ public void testInsideContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/insideContractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("insideDefaultParameterScript.kts")
+ public void testInsideDefaultParameterScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/insideDefaultParameterScript.kts");
+ }
+
+ @Test
+ @TestMetadata("insideStatement.kts")
+ public void testInsideStatement() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/insideStatement.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithBodyWithContractScript.kts")
+ public void testMemberFunWithBodyWithContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithContractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithBodyWithErrorContractScript.kts")
+ public void testMemberFunWithBodyWithErrorContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithErrorContractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithBodyWithFakeContractScript.kts")
+ public void testMemberFunWithBodyWithFakeContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithFakeContractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithBodyWithTypeScript.kts")
+ public void testMemberFunWithBodyWithTypeScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithTypeScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithBodyWithoutTypeScript.kts")
+ public void testMemberFunWithBodyWithoutTypeScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithBodyWithoutTypeWithoutNameScript.kts")
+ public void testMemberFunWithBodyWithoutTypeWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithBodyWithoutTypeWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithTypeWithoutBodyScript.kts")
+ public void testMemberFunWithTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithoutBodyWithTypeWithoutNameScript.kts")
+ public void testMemberFunWithoutBodyWithTypeWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithTypeWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithoutBodyWithoutTypeWithoutNameScript.kts")
+ public void testMemberFunWithoutBodyWithoutTypeWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutBodyWithoutTypeWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberFunWithoutTypeWithoutBodyScript.kts")
+ public void testMemberFunWithoutTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberFunWithoutTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberGetterWithBodyWithContractScript.kts")
+ public void testMemberGetterWithBodyWithContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberGetterWithBodyWithContractWithoutNameScript.kts")
+ public void testMemberGetterWithBodyWithContractWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithBodyWithContractWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberGetterWithTypeWithBodyScript.kts")
+ public void testMemberGetterWithTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberGetterWithTypeWithoutBodyScript.kts")
+ public void testMemberGetterWithTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberGetterWithTypeWithoutBodyWithoutNameScript.kts")
+ public void testMemberGetterWithTypeWithoutBodyWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithTypeWithoutBodyWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberGetterWithoutTypeWithBodyScript.kts")
+ public void testMemberGetterWithoutTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberGetterWithoutTypeWithoutBodyScript.kts")
+ public void testMemberGetterWithoutTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberGetterWithoutTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithTypeInDelegateScript.kts")
+ public void testMemberPropertyWithTypeInDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithTypeInDelegateWithoutNameScript.kts")
+ public void testMemberPropertyWithTypeInDelegateWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInDelegateWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithTypeInErrorDelegateScript.kts")
+ public void testMemberPropertyWithTypeInErrorDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInErrorDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithTypeInInitializerScript.kts")
+ public void testMemberPropertyWithTypeInInitializerScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithTypeInInitializerWithoutNameScript.kts")
+ public void testMemberPropertyWithTypeInInitializerWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithTypeInInitializerWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithoutTypeInDelegateScript.kts")
+ public void testMemberPropertyWithoutTypeInDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithoutTypeInErrorDelegateScript.kts")
+ public void testMemberPropertyWithoutTypeInErrorDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInErrorDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberPropertyWithoutTypeInInitializerScript.kts")
+ public void testMemberPropertyWithoutTypeInInitializerScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberPropertyWithoutTypeInInitializerScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberSetterWithTypeWithBodyScript.kts")
+ public void testMemberSetterWithTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberSetterWithTypeWithBodyWithoutNameScript.kts")
+ public void testMemberSetterWithTypeWithBodyWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithBodyWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberSetterWithTypeWithoutBodyScript.kts")
+ public void testMemberSetterWithTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberSetterWithTypeWithoutBodyWithoutNameScript.kts")
+ public void testMemberSetterWithTypeWithoutBodyWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithTypeWithoutBodyWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberSetterWithoutTypeWithBodyScript.kts")
+ public void testMemberSetterWithoutTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("memberSetterWithoutTypeWithoutBodyScript.kts")
+ public void testMemberSetterWithoutTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/memberSetterWithoutTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("rawContractScript.kts")
+ public void testRawContractScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/rawContractScript.kts");
+ }
+
+ @Test
+ @TestMetadata("statement.kts")
+ public void testStatement() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/statement.kts");
+ }
+
+ @Test
+ @TestMetadata("statement2.kts")
+ public void testStatement2() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/statement2.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelFunctionWithBodyWithoutTypeWithoutNameScript.kts")
+ public void testTopLevelFunctionWithBodyWithoutTypeWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithBodyWithoutTypeWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelFunctionWithTypeWithBodyScript.kts")
+ public void testTopLevelFunctionWithTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelFunctionWithTypeWithoutBodyScript.kts")
+ public void testTopLevelFunctionWithTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelFunctionWithoutBodyWithTypeWithoutNameScript.kts")
+ public void testTopLevelFunctionWithoutBodyWithTypeWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithTypeWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.kts")
+ public void testTopLevelFunctionWithoutBodyWithoutTypeWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutBodyWithoutTypeWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelFunctionWithoutTypeWithBodyScript.kts")
+ public void testTopLevelFunctionWithoutTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelFunctionWithoutTypeWithoutBodyScript.kts")
+ public void testTopLevelFunctionWithoutTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelFunctionWithoutTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelGetterWithTypeWithBodyScript.kts")
+ public void testTopLevelGetterWithTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelGetterWithTypeWithBodyWithoutNameScript.kts")
+ public void testTopLevelGetterWithTypeWithBodyWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithBodyWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelGetterWithTypeWithoutBodyScript.kts")
+ public void testTopLevelGetterWithTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelGetterWithTypeWithoutBodyWithoutNameScript.kts")
+ public void testTopLevelGetterWithTypeWithoutBodyWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithTypeWithoutBodyWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelGetterWithoutTypeWithBodyScript.kts")
+ public void testTopLevelGetterWithoutTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelGetterWithoutTypeWithoutBodyScript.kts")
+ public void testTopLevelGetterWithoutTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelGetterWithoutTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithTypeInDelegateScript.kts")
+ public void testTopLevelPropertyWithTypeInDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithTypeInDelegateWithoutNameScript.kts")
+ public void testTopLevelPropertyWithTypeInDelegateWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInDelegateWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithTypeInErrorDelegateScript.kts")
+ public void testTopLevelPropertyWithTypeInErrorDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInErrorDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithTypeInInititalzerScript.kts")
+ public void testTopLevelPropertyWithTypeInInititalzerScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithTypeInInititalzerWithoutNameScript.kts")
+ public void testTopLevelPropertyWithTypeInInititalzerWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithTypeInInititalzerWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithoutTypeInDelegateScript.kts")
+ public void testTopLevelPropertyWithoutTypeInDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithoutTypeInErrorDelegateScript.kts")
+ public void testTopLevelPropertyWithoutTypeInErrorDelegateScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInErrorDelegateScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelPropertyWithoutTypeInInititalzerScript.kts")
+ public void testTopLevelPropertyWithoutTypeInInititalzerScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelPropertyWithoutTypeInInititalzerScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelSetterWithTypeWithBodyScript.kts")
+ public void testTopLevelSetterWithTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelSetterWithTypeWithBodyWithoutNameScript.kts")
+ public void testTopLevelSetterWithTypeWithBodyWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithBodyWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelSetterWithTypeWithoutBodyScript.kts")
+ public void testTopLevelSetterWithTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelSetterWithTypeWithoutBodyWithoutNameScript.kts")
+ public void testTopLevelSetterWithTypeWithoutBodyWithoutNameScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithTypeWithoutBodyWithoutNameScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelSetterWithoutTypeWithBodyScript.kts")
+ public void testTopLevelSetterWithoutTypeWithBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithBodyScript.kts");
+ }
+
+ @Test
+ @TestMetadata("topLevelSetterWithoutTypeWithoutBodyScript.kts")
+ public void testTopLevelSetterWithoutTypeWithoutBodyScript() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/inBlockModification/topLevelSetterWithoutTypeWithoutBodyScript.kts");
+ }
+}
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 3ad2dfd22d2..f9f2db51208 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
@@ -21,7 +21,7 @@ import java.util.regex.Pattern;
public class SourceInBlockModificationTestGenerated extends AbstractSourceInBlockModificationTest {
@Test
public void testAllFilesPresentInInBlockModification() throws Exception {
- KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/inBlockModification"), Pattern.compile("^(.+)\\.kt$"), null, true);
+ KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/inBlockModification"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
}
@Test
diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt
index 6d21fc6a8cc..ff8d0e6b13f 100644
--- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt
+++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/firLowLevel.kt
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.AbstractOutOfContentRootFileStructureTest
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.AbstractOutOfContentRootInBlockModificationTest
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.AbstractScriptFileStructureTest
+import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.AbstractScriptInBlockModificationTest
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.AbstractSourceFileStructureTest
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.AbstractSourceInBlockModificationTest
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.AbstractErrorResistanceTest
@@ -64,11 +65,15 @@ internal fun TestGroupSuite.generateFirLowLevelApiTests() {
}
testClass {
- model("inBlockModification")
+ model("inBlockModification", pattern = TestGeneratorUtil.KT)
}
testClass {
- model("inBlockModification")
+ model("inBlockModification", pattern = TestGeneratorUtil.KT)
+ }
+
+ testClass {
+ model("inBlockModification", pattern = TestGeneratorUtil.KTS)
}
testClass {