diff --git a/idea/resources/messages/KotlinBundle.properties b/idea/resources/messages/KotlinBundle.properties
index f774e08cf36..34d1e36acc9 100644
--- a/idea/resources/messages/KotlinBundle.properties
+++ b/idea/resources/messages/KotlinBundle.properties
@@ -665,7 +665,7 @@ test.integration.message.text.create.test.in.the.same.source.root=Create test in
test.integration.message.text.kotlin.class=Kotlin class ''{0}'' already exists. Do you want to update it?
test.integration.title.no.test.roots.found=No Test Roots Found
-slicer.text.in=\ in {0}
+slicer.text.in=in
slicer.text.tracking.enclosing.lambda=\ (Tracking enclosing lambda)
slicer.text.tracking.lambda.calls=\ (Tracking lambda calls)
slicer.text.tracking.lambda.argument=\ (Tracking lambda parameter)
diff --git a/idea/src/org/jetbrains/kotlin/idea/slicer/KotlinSliceUsageCellRenderer.kt b/idea/src/org/jetbrains/kotlin/idea/slicer/KotlinSliceUsageCellRenderer.kt
index 123bb3b71c3..57a184f7034 100644
--- a/idea/src/org/jetbrains/kotlin/idea/slicer/KotlinSliceUsageCellRenderer.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/slicer/KotlinSliceUsageCellRenderer.kt
@@ -47,26 +47,36 @@ object KotlinSliceUsageCellRenderer : SliceUsageCellRendererBase() {
append(behaviour.slicePresentationPrefix, SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES)
}
+ containerSuffix(sliceUsage)?.let {
+ append(" ")
+ append(it, SimpleTextAttributes.GRAY_ATTRIBUTES)
+ }
+ }
+
+ fun containerSuffix(sliceUsage: SliceUsage): String? {
val declaration = sliceUsage.element?.parents?.firstOrNull {
it is KtClass ||
it is KtObjectDeclaration && !it.isObjectLiteral() ||
it is KtNamedFunction && !it.isLocal ||
it is KtProperty && !it.isLocal ||
it is KtConstructor<*>
- } as? KtDeclaration ?: return
+ } as? KtDeclaration ?: return null
- append(KotlinBundle.message("slicer.text.in", ""), SimpleTextAttributes.GRAY_ATTRIBUTES)
+ return buildString {
+ append(KotlinBundle.message("slicer.text.in", ""))
+ append(" ")
- val descriptor = declaration.unsafeResolveToDescriptor()
+ val descriptor = declaration.unsafeResolveToDescriptor()
- if (!descriptor.isExtension && descriptor !is ConstructorDescriptor && !descriptor.isCompanionObject()) {
- val containingClassifier = descriptor.containingDeclaration as? ClassifierDescriptor
- if (containingClassifier != null) {
- append(descriptorRenderer.render(containingClassifier), SimpleTextAttributes.GRAY_ATTRIBUTES)
- append(".", SimpleTextAttributes.GRAY_ATTRIBUTES)
+ if (!descriptor.isExtension && descriptor !is ConstructorDescriptor && !descriptor.isCompanionObject()) {
+ val containingClassifier = descriptor.containingDeclaration as? ClassifierDescriptor
+ if (containingClassifier != null) {
+ append(descriptorRenderer.render(containingClassifier))
+ append(".")
+ }
}
- }
- append(descriptorRenderer.render(descriptor), SimpleTextAttributes.GRAY_ATTRIBUTES)
+ append(descriptorRenderer.render(descriptor))
+ }
}
}
\ No newline at end of file
diff --git a/idea/testData/slicer/inflow/abstractFun.leafGroups.txt b/idea/testData/slicer/inflow/abstractFun.leafGroups.txt
index c27d13bd50f..e1f13ba86ad 100644
--- a/idea/testData/slicer/inflow/abstractFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/abstractFun.leafGroups.txt
@@ -1,8 +1,7 @@
-12 foo(1)
-4 fun foo(p: Int)
-12 foo(1)
-
-17 i.foo(2)
-4 fun foo(p: Int)
-17 i.foo(2)
+12 foo(1) (in C.f())
+4 fun foo(p: Int) (in I.foo(Int))
+12 foo(1) (in C.f())
+17 i.foo(2) (in f(I))
+4 fun foo(p: Int) (in I.foo(Int))
+17 i.foo(2) (in f(I))
diff --git a/idea/testData/slicer/inflow/abstractFun.nullnessGroups.txt b/idea/testData/slicer/inflow/abstractFun.nullnessGroups.txt
index 8f0046bd5c6..acdfac598e3 100644
--- a/idea/testData/slicer/inflow/abstractFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/abstractFun.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 fun foo(p: Int)
-4 fun foo(p: Int)
+4 fun foo(p: Int) (in I.foo(Int))
+4 fun foo(p: Int) (in I.foo(Int))
diff --git a/idea/testData/slicer/inflow/abstractFun.results.txt b/idea/testData/slicer/inflow/abstractFun.results.txt
index d2d4c3e8ad6..a8478705354 100644
--- a/idea/testData/slicer/inflow/abstractFun.results.txt
+++ b/idea/testData/slicer/inflow/abstractFun.results.txt
@@ -1,3 +1,3 @@
-4 fun foo(p: Int)
-12 foo(1)
-17 i.foo(2)
+4 fun foo(p: Int) (in I.foo(Int))
+12 foo(1) (in C.f())
+17 i.foo(2) (in f(I))
diff --git a/idea/testData/slicer/inflow/anonymousFunBodyExpression.leafGroups.txt b/idea/testData/slicer/inflow/anonymousFunBodyExpression.leafGroups.txt
index 86641a4fb6c..a98acf627a4 100644
--- a/idea/testData/slicer/inflow/anonymousFunBodyExpression.leafGroups.txt
+++ b/idea/testData/slicer/inflow/anonymousFunBodyExpression.leafGroups.txt
@@ -1,15 +1,14 @@
-4 return f(1)
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
+4 return f(1) (in foo((Int) -> Int))
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-8 [LAMBDA IN] val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int) = n)
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+8 [LAMBDA IN] val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int) = n) (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/anonymousFunBodyExpression.nullnessGroups.txt b/idea/testData/slicer/inflow/anonymousFunBodyExpression.nullnessGroups.txt
index 23c43517aa3..bc68214e977 100644
--- a/idea/testData/slicer/inflow/anonymousFunBodyExpression.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/anonymousFunBodyExpression.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
diff --git a/idea/testData/slicer/inflow/anonymousFunBodyExpression.results.txt b/idea/testData/slicer/inflow/anonymousFunBodyExpression.results.txt
index 1cb5b05c23d..c8a0f9ca061 100644
--- a/idea/testData/slicer/inflow/anonymousFunBodyExpression.results.txt
+++ b/idea/testData/slicer/inflow/anonymousFunBodyExpression.results.txt
@@ -1,13 +1,13 @@
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-8 [LAMBDA IN] val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int) = n)
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+8 [LAMBDA IN] val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int) = n) (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/anonymousFunReturnExpression.leafGroups.txt b/idea/testData/slicer/inflow/anonymousFunReturnExpression.leafGroups.txt
index 48be750ee4d..f5f3f5ba7da 100644
--- a/idea/testData/slicer/inflow/anonymousFunReturnExpression.leafGroups.txt
+++ b/idea/testData/slicer/inflow/anonymousFunReturnExpression.leafGroups.txt
@@ -1,15 +1,14 @@
-4 return f(1)
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
+4 return f(1) (in foo((Int) -> Int))
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-8 [LAMBDA IN] val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int): Int { return n })
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+8 [LAMBDA IN] val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int): Int { return n }) (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/anonymousFunReturnExpression.nullnessGroups.txt b/idea/testData/slicer/inflow/anonymousFunReturnExpression.nullnessGroups.txt
index 1638e6e88e7..3b3573bf4c1 100644
--- a/idea/testData/slicer/inflow/anonymousFunReturnExpression.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/anonymousFunReturnExpression.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
diff --git a/idea/testData/slicer/inflow/anonymousFunReturnExpression.results.txt b/idea/testData/slicer/inflow/anonymousFunReturnExpression.results.txt
index 7be6b76e835..6b3111149e7 100644
--- a/idea/testData/slicer/inflow/anonymousFunReturnExpression.results.txt
+++ b/idea/testData/slicer/inflow/anonymousFunReturnExpression.results.txt
@@ -1,13 +1,13 @@
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-8 [LAMBDA IN] val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int): Int { return n })
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+8 [LAMBDA IN] val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(fun(n: Int): Int { return n }) (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/anonymousFunctionParameter.leafGroups.txt b/idea/testData/slicer/inflow/anonymousFunctionParameter.leafGroups.txt
index 203793c7ba3..56ceb5b07e0 100644
--- a/idea/testData/slicer/inflow/anonymousFunctionParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/anonymousFunctionParameter.leafGroups.txt
@@ -1,8 +1,7 @@
-4 f(1)
-9 val v = value
-9 val v = value
-8 foo(fun(value: Int) {
-8 [LAMBDA CALLS ARGUMENT #0] foo(fun(value: Int) {
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) {
-4 f(1)
-
+4 f(1) (in foo((Int) -> Unit))
+9 val v = value (in test())
+9 val v = value (in test())
+8 foo(fun(value: Int) { (in test())
+8 [LAMBDA CALLS ARGUMENT #0] foo(fun(value: Int) { (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) { (in foo((Int) -> Unit))
+4 f(1) (in foo((Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/anonymousFunctionParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/anonymousFunctionParameter.nullnessGroups.txt
index 7ddd357b897..c5eeb8a9d4d 100644
--- a/idea/testData/slicer/inflow/anonymousFunctionParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/anonymousFunctionParameter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-9 val v = value
-9 val v = value
+9 val v = value (in test())
+9 val v = value (in test())
diff --git a/idea/testData/slicer/inflow/anonymousFunctionParameter.results.txt b/idea/testData/slicer/inflow/anonymousFunctionParameter.results.txt
index b0719353375..6df1965fc74 100644
--- a/idea/testData/slicer/inflow/anonymousFunctionParameter.results.txt
+++ b/idea/testData/slicer/inflow/anonymousFunctionParameter.results.txt
@@ -1,6 +1,6 @@
-9 val v = value
-9 val v = value
-8 foo(fun(value: Int) {
-8 [LAMBDA CALLS ARGUMENT #0] foo(fun(value: Int) {
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) {
-4 f(1)
+9 val v = value (in test())
+9 val v = value (in test())
+8 foo(fun(value: Int) { (in test())
+8 [LAMBDA CALLS ARGUMENT #0] foo(fun(value: Int) { (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) { (in foo((Int) -> Unit))
+4 f(1) (in foo((Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/cast.leafGroups.txt b/idea/testData/slicer/inflow/cast.leafGroups.txt
index f1bfddc1dd3..67e710bd4f1 100644
--- a/idea/testData/slicer/inflow/cast.leafGroups.txt
+++ b/idea/testData/slicer/inflow/cast.leafGroups.txt
@@ -1,6 +1,5 @@
-3 fun test(o: Any) {
-4 val x = o as String
-4 val x = o as String
-4 val x = o as String
-3 fun test(o: Any) {
-
+3 fun test(o: Any) { (in test(Any))
+4 val x = o as String (in test(Any))
+4 val x = o as String (in test(Any))
+4 val x = o as String (in test(Any))
+3 fun test(o: Any) { (in test(Any))
diff --git a/idea/testData/slicer/inflow/cast.nullnessGroups.txt b/idea/testData/slicer/inflow/cast.nullnessGroups.txt
index 36d8ed95749..e568ea0ea9d 100644
--- a/idea/testData/slicer/inflow/cast.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/cast.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-4 val x = o as String
-4 val x = o as String
-
+4 val x = o as String (in test(Any))
+4 val x = o as String (in test(Any))
diff --git a/idea/testData/slicer/inflow/cast.results.txt b/idea/testData/slicer/inflow/cast.results.txt
index 4ce165fe7e3..661fb04c4d7 100644
--- a/idea/testData/slicer/inflow/cast.results.txt
+++ b/idea/testData/slicer/inflow/cast.results.txt
@@ -1,4 +1,4 @@
-4 val x = o as String
-4 val x = o as String
-4 val x = o as String
-3 fun test(o: Any) {
+4 val x = o as String (in test(Any))
+4 val x = o as String (in test(Any))
+4 val x = o as String (in test(Any))
+3 fun test(o: Any) { (in test(Any))
diff --git a/idea/testData/slicer/inflow/compositeAssignments.leafGroups.txt b/idea/testData/slicer/inflow/compositeAssignments.leafGroups.txt
index 77a94ae1b4f..ebff30d4468 100644
--- a/idea/testData/slicer/inflow/compositeAssignments.leafGroups.txt
+++ b/idea/testData/slicer/inflow/compositeAssignments.leafGroups.txt
@@ -1,17 +1,17 @@
-7 --result
+7 --result (in assignmentWithSum(Int))
3 fun assignmentWithSum(n: Int): Int {
-8 return result
-4 var result = 0
-7 --result
+8 return result (in assignmentWithSum(Int))
+4 var result = 0 (in assignmentWithSum(Int))
+7 --result (in assignmentWithSum(Int))
-4 var result = 0
+4 var result = 0 (in assignmentWithSum(Int))
3 fun assignmentWithSum(n: Int): Int {
-8 return result
-4 var result = 0
-4 var result = 0
+8 return result (in assignmentWithSum(Int))
+4 var result = 0 (in assignmentWithSum(Int))
+4 var result = 0 (in assignmentWithSum(Int))
-5 result += n
+5 result += n (in assignmentWithSum(Int))
3 fun assignmentWithSum(n: Int): Int {
-8 return result
-4 var result = 0
-5 result += n
+8 return result (in assignmentWithSum(Int))
+4 var result = 0 (in assignmentWithSum(Int))
+5 result += n (in assignmentWithSum(Int))
diff --git a/idea/testData/slicer/inflow/compositeAssignments.results.txt b/idea/testData/slicer/inflow/compositeAssignments.results.txt
index 3869cb9728b..b3bd23d6a73 100644
--- a/idea/testData/slicer/inflow/compositeAssignments.results.txt
+++ b/idea/testData/slicer/inflow/compositeAssignments.results.txt
@@ -1,8 +1,8 @@
3 fun assignmentWithSum(n: Int): Int {
-8 return result
-4 var result = 0
-4 var result = 0
-5 result += n
-6 result++
-4 DUPLICATE: var result = 0
-7 --result
+8 return result (in assignmentWithSum(Int))
+4 var result = 0 (in assignmentWithSum(Int))
+4 var result = 0 (in assignmentWithSum(Int))
+5 result += n (in assignmentWithSum(Int))
+6 result++ (in assignmentWithSum(Int))
+4 DUPLICATE: var result = 0 (in assignmentWithSum(Int))
+7 --result (in assignmentWithSum(Int))
diff --git a/idea/testData/slicer/inflow/defaultGetterFieldInSetter.leafGroups.txt b/idea/testData/slicer/inflow/defaultGetterFieldInSetter.leafGroups.txt
index 02c1e9edfed..ee52c2aceb9 100644
--- a/idea/testData/slicer/inflow/defaultGetterFieldInSetter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/defaultGetterFieldInSetter.leafGroups.txt
@@ -1,13 +1,12 @@
-4 var foo: Int = 0
-10 val x = foo
-4 var foo: Int = 0
-4 var foo: Int = 0
-
-11 foo = 1
-10 val x = foo
-4 var foo: Int = 0
-6 field = if (b) value else 0
-6 field = if (b) value else 0
-5 set(value) {
-11 foo = 1
+4 var foo: Int = 0 (in A.foo: Int)
+10 val x = foo (in A.test())
+4 var foo: Int = 0 (in A)
+4 var foo: Int = 0 (in A.foo: Int)
+11 foo = 1 (in A.test())
+10 val x = foo (in A.test())
+4 var foo: Int = 0 (in A)
+6 field = if (b) value else 0 (in A.foo: Int)
+6 field = if (b) value else 0 (in A.foo: Int)
+5 set(value) { (in A.foo: Int)
+11 foo = 1 (in A.test())
diff --git a/idea/testData/slicer/inflow/defaultGetterFieldInSetter.nullnessGroups.txt b/idea/testData/slicer/inflow/defaultGetterFieldInSetter.nullnessGroups.txt
index 194af3317cb..a74699a0190 100644
--- a/idea/testData/slicer/inflow/defaultGetterFieldInSetter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/defaultGetterFieldInSetter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-10 val x = foo
-10 val x = foo
+10 val x = foo (in A.test())
+10 val x = foo (in A.test())
diff --git a/idea/testData/slicer/inflow/defaultGetterFieldInSetter.results.txt b/idea/testData/slicer/inflow/defaultGetterFieldInSetter.results.txt
index 2f668737f6e..31fbab97d61 100644
--- a/idea/testData/slicer/inflow/defaultGetterFieldInSetter.results.txt
+++ b/idea/testData/slicer/inflow/defaultGetterFieldInSetter.results.txt
@@ -1,8 +1,8 @@
-10 val x = foo
-4 var foo: Int = 0
-4 var foo: Int = 0
-6 field = if (b) value else 0
-6 field = if (b) value else 0
-5 set(value) {
-11 foo = 1
-6 field = if (b) value else 0
+10 val x = foo (in A.test())
+4 var foo: Int = 0 (in A)
+4 var foo: Int = 0 (in A.foo: Int)
+6 field = if (b) value else 0 (in A.foo: Int)
+6 field = if (b) value else 0 (in A.foo: Int)
+5 set(value) { (in A.foo: Int)
+11 foo = 1 (in A.test())
+6 field = if (b) value else 0 (in A.foo: Int)
diff --git a/idea/testData/slicer/inflow/delegateGetter.leafGroups.txt b/idea/testData/slicer/inflow/delegateGetter.leafGroups.txt
index 2e65fe12825..3d29dd4cd98 100644
--- a/idea/testData/slicer/inflow/delegateGetter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/delegateGetter.leafGroups.txt
@@ -1,7 +1,6 @@
-6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1
-12 val x = foo
-12 val x = foo
+6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1 (in D.getValue(Any?, KProperty<*>))
+12 val x = foo (in test())
+12 val x = foo (in test())
9 val foo: Int by D
-6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1
-6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1
-
+6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1 (in D)
+6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1 (in D.getValue(Any?, KProperty<*>))
diff --git a/idea/testData/slicer/inflow/delegateGetter.nullnessGroups.txt b/idea/testData/slicer/inflow/delegateGetter.nullnessGroups.txt
index d2294fea665..9804e41f1d1 100644
--- a/idea/testData/slicer/inflow/delegateGetter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/delegateGetter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-12 val x = foo
-12 val x = foo
+12 val x = foo (in test())
+12 val x = foo (in test())
diff --git a/idea/testData/slicer/inflow/delegateGetter.results.txt b/idea/testData/slicer/inflow/delegateGetter.results.txt
index 02eee372039..d88ed751a15 100644
--- a/idea/testData/slicer/inflow/delegateGetter.results.txt
+++ b/idea/testData/slicer/inflow/delegateGetter.results.txt
@@ -1,5 +1,5 @@
-12 val x = foo
-12 val x = foo
+12 val x = foo (in test())
+12 val x = foo (in test())
9 val foo: Int by D
-6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1
-6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1
+6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1 (in D)
+6 operator fun getValue(thisRef: Any?, property: KProperty<*>) = 1 (in D.getValue(Any?, KProperty<*>))
diff --git a/idea/testData/slicer/inflow/delegateToJavaGetter.leafGroups.txt b/idea/testData/slicer/inflow/delegateToJavaGetter.leafGroups.txt
index 090d4fe0372..0e6ac9a728c 100644
--- a/idea/testData/slicer/inflow/delegateToJavaGetter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/delegateToJavaGetter.leafGroups.txt
@@ -1,5 +1,5 @@
9 return 1;
-7 val x = foo
-7 val x = foo
+7 val x = foo (in test())
+7 val x = foo (in test())
4 val foo: Int by D.INSTANCE
9 return 1;
diff --git a/idea/testData/slicer/inflow/delegateToJavaGetter.nullnessGroups.txt b/idea/testData/slicer/inflow/delegateToJavaGetter.nullnessGroups.txt
index 142739bce11..b14ba93c49a 100644
--- a/idea/testData/slicer/inflow/delegateToJavaGetter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/delegateToJavaGetter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-7 val x = foo
-7 val x = foo
+7 val x = foo (in test())
+7 val x = foo (in test())
diff --git a/idea/testData/slicer/inflow/delegateToJavaGetter.results.txt b/idea/testData/slicer/inflow/delegateToJavaGetter.results.txt
index 1c258e4a6bb..5cb35a79afc 100644
--- a/idea/testData/slicer/inflow/delegateToJavaGetter.results.txt
+++ b/idea/testData/slicer/inflow/delegateToJavaGetter.results.txt
@@ -1,4 +1,4 @@
-7 val x = foo
-7 val x = foo
+7 val x = foo (in test())
+7 val x = foo (in test())
4 val foo: Int by D.INSTANCE
9 return 1;
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.leafGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.leafGroups.txt
index 407cb45efc6..aa6a42f1678 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.leafGroups.txt
@@ -1,11 +1,10 @@
-4 override fun foo() = 2
-9 val y = b.foo()
-9 val y = b.foo()
-4 override fun foo() = 2
-4 override fun foo() = 2
+4 override fun foo() = 2 (in B.foo())
+9 val y = b.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+4 override fun foo() = 2 (in B)
+4 override fun foo() = 2 (in B.foo())
11 return 4;
-9 val y = b.foo()
-9 val y = b.foo()
+9 val y = b.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
11 return 4;
-
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.nullnessGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.nullnessGroups.txt
index b71769875ed..8de1578f4b7 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-9 val y = b.foo()
-9 val y = b.foo()
+9 val y = b.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.results.txt b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.results.txt
index d1cde35dbd5..dc76795cbe8 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.results.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleClassFun.results.txt
@@ -1,5 +1,5 @@
-9 val y = b.foo()
-9 val y = b.foo()
-4 override fun foo() = 2
-4 override fun foo() = 2
+9 val y = b.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+4 override fun foo() = 2 (in B)
+4 override fun foo() = 2 (in B.foo())
11 return 4;
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.leafGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.leafGroups.txt
index 9aba49aa7ac..9cff8485bbc 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.leafGroups.txt
@@ -1,10 +1,10 @@
-4 override fun foo() = 3
-10 val z = c.foo()
-10 val z = c.foo()
-4 override fun foo() = 3
-4 override fun foo() = 3
+4 override fun foo() = 3 (in C.foo())
+10 val z = c.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+4 override fun foo() = 3 (in C)
+4 override fun foo() = 3 (in C.foo())
13 return 4;
-10 val z = c.foo()
-10 val z = c.foo()
+10 val z = c.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
13 return 4;
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.nullnessGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.nullnessGroups.txt
index 29011be65df..a24b4c114d9 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-10 val z = c.foo()
-10 val z = c.foo()
+10 val z = c.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.results.txt b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.results.txt
index 50a5bf26c4e..7fa8f07ed06 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.results.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKMiddleInterfaceFun.results.txt
@@ -1,5 +1,5 @@
-10 val z = c.foo()
-10 val z = c.foo()
-4 override fun foo() = 3
-4 override fun foo() = 3
+10 val z = c.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+4 override fun foo() = 3 (in C)
+4 override fun foo() = 3 (in C.foo())
13 return 4;
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.leafGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.leafGroups.txt
index 5ae3c41bcaf..1b3f6d32168 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.leafGroups.txt
@@ -1,15 +1,15 @@
-4 fun foo() = 1
-8 val x = a.foo()
-8 val x = a.foo()
-4 fun foo() = 1
-4 fun foo() = 1
+4 fun foo() = 1 (in A.foo())
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
+4 fun foo() = 1 (in A)
+4 fun foo() = 1 (in A.foo())
3 return 2;
-8 val x = a.foo()
-8 val x = a.foo()
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
3 return 2;
13 return 4;
-8 val x = a.foo()
-8 val x = a.foo()
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
13 return 4;
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.nullnessGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.nullnessGroups.txt
index 91e24f724b5..70cb91d4bc3 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-8 val x = a.foo()
-8 val x = a.foo()
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.results.txt b/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.results.txt
index f485b80aa22..b8b6db6b39a 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.results.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyJKRootInterfaceFun.results.txt
@@ -1,6 +1,6 @@
-8 val x = a.foo()
-8 val x = a.foo()
-4 fun foo() = 1
-4 fun foo() = 1
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
+4 fun foo() = 1 (in A)
+4 fun foo() = 1 (in A.foo())
3 return 2;
13 return 4;
diff --git a/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.leafGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.leafGroups.txt
index e5207d66585..c02a6cad00a 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.leafGroups.txt
@@ -1,12 +1,11 @@
-8 override fun foo() = 2
-21 val y = b.foo()
-21 val y = b.foo()
-8 override fun foo() = 2
-8 override fun foo() = 2
-
-16 override fun foo() = 4
-21 val y = b.foo()
-21 val y = b.foo()
-16 override fun foo() = 4
-16 override fun foo() = 4
+8 override fun foo() = 2 (in B.foo())
+21 val y = b.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
+8 override fun foo() = 2 (in B)
+8 override fun foo() = 2 (in B.foo())
+16 override fun foo() = 4 (in D.foo())
+21 val y = b.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
+16 override fun foo() = 4 (in D)
+16 override fun foo() = 4 (in D.foo())
diff --git a/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.nullnessGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.nullnessGroups.txt
index edaa10b75b9..6ce47a0f200 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-21 val y = b.foo()
-21 val y = b.foo()
+21 val y = b.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.results.txt b/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.results.txt
index 9b70369d62f..0343f6ce8db 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.results.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyMiddleClassFun.results.txt
@@ -1,6 +1,6 @@
-21 val y = b.foo()
-21 val y = b.foo()
-8 override fun foo() = 2
-8 override fun foo() = 2
-16 override fun foo() = 4
-16 override fun foo() = 4
+21 val y = b.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
+8 override fun foo() = 2 (in B)
+8 override fun foo() = 2 (in B.foo())
+16 override fun foo() = 4 (in D)
+16 override fun foo() = 4 (in D.foo())
diff --git a/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.leafGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.leafGroups.txt
index 30f9f5bdaab..f6e10d4eac2 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.leafGroups.txt
@@ -1,12 +1,11 @@
-12 override fun foo() = 3
-22 val z = c.foo()
-22 val z = c.foo()
-12 override fun foo() = 3
-12 override fun foo() = 3
-
-16 override fun foo() = 4
-22 val z = c.foo()
-22 val z = c.foo()
-16 override fun foo() = 4
-16 override fun foo() = 4
+12 override fun foo() = 3 (in C.foo())
+22 val z = c.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
+12 override fun foo() = 3 (in C)
+12 override fun foo() = 3 (in C.foo())
+16 override fun foo() = 4 (in D.foo())
+22 val z = c.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
+16 override fun foo() = 4 (in D)
+16 override fun foo() = 4 (in D.foo())
diff --git a/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.nullnessGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.nullnessGroups.txt
index 80a6e554090..38365deb18c 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-22 val z = c.foo()
-22 val z = c.foo()
+22 val z = c.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.results.txt b/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.results.txt
index 74d9098a95d..72de5345351 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.results.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyMiddleInterfaceFun.results.txt
@@ -1,6 +1,6 @@
-22 val z = c.foo()
-22 val z = c.foo()
-12 override fun foo() = 3
-12 override fun foo() = 3
-16 override fun foo() = 4
-16 override fun foo() = 4
+22 val z = c.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
+12 override fun foo() = 3 (in C)
+12 override fun foo() = 3 (in C.foo())
+16 override fun foo() = 4 (in D)
+16 override fun foo() = 4 (in D.foo())
diff --git a/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.leafGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.leafGroups.txt
index 34a3dd15af3..81b76d04421 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.leafGroups.txt
@@ -1,24 +1,23 @@
-4 fun foo() = 1
-20 val x = a.foo()
-20 val x = a.foo()
-4 fun foo() = 1
-4 fun foo() = 1
+4 fun foo() = 1 (in A.foo())
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+4 fun foo() = 1 (in A)
+4 fun foo() = 1 (in A.foo())
-8 override fun foo() = 2
-20 val x = a.foo()
-20 val x = a.foo()
-8 override fun foo() = 2
-8 override fun foo() = 2
+8 override fun foo() = 2 (in B.foo())
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+8 override fun foo() = 2 (in B)
+8 override fun foo() = 2 (in B.foo())
-12 override fun foo() = 3
-20 val x = a.foo()
-20 val x = a.foo()
-12 override fun foo() = 3
-12 override fun foo() = 3
-
-16 override fun foo() = 4
-20 val x = a.foo()
-20 val x = a.foo()
-16 override fun foo() = 4
-16 override fun foo() = 4
+12 override fun foo() = 3 (in C.foo())
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+12 override fun foo() = 3 (in C)
+12 override fun foo() = 3 (in C.foo())
+16 override fun foo() = 4 (in D.foo())
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+16 override fun foo() = 4 (in D)
+16 override fun foo() = 4 (in D.foo())
diff --git a/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.nullnessGroups.txt b/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.nullnessGroups.txt
index 3d1897a89b2..94a1813a1e6 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-20 val x = a.foo()
-20 val x = a.foo()
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.results.txt b/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.results.txt
index 6611cb67f93..3658e2afedd 100644
--- a/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.results.txt
+++ b/idea/testData/slicer/inflow/diamondHierarchyRootInterfaceFun.results.txt
@@ -1,10 +1,10 @@
-20 val x = a.foo()
-20 val x = a.foo()
-4 fun foo() = 1
-4 fun foo() = 1
-8 override fun foo() = 2
-8 override fun foo() = 2
-12 override fun foo() = 3
-12 override fun foo() = 3
-16 override fun foo() = 4
-16 override fun foo() = 4
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+4 fun foo() = 1 (in A)
+4 fun foo() = 1 (in A.foo())
+8 override fun foo() = 2 (in B)
+8 override fun foo() = 2 (in B.foo())
+12 override fun foo() = 3 (in C)
+12 override fun foo() = 3 (in C.foo())
+16 override fun foo() = 4 (in D)
+16 override fun foo() = 4 (in D.foo())
diff --git a/idea/testData/slicer/inflow/doubleLambdaResult.leafGroups.txt b/idea/testData/slicer/inflow/doubleLambdaResult.leafGroups.txt
index 64f6f9b9104..fa349b25201 100644
--- a/idea/testData/slicer/inflow/doubleLambdaResult.leafGroups.txt
+++ b/idea/testData/slicer/inflow/doubleLambdaResult.leafGroups.txt
@@ -1,22 +1,21 @@
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
3 fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-4 return f(a)(b)
-4 [LAMBDA IN] return f(a)(b)
-4 [LAMBDA IN] [LAMBDA IN] return f(a)(b)
-3 [LAMBDA IN] [LAMBDA IN] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-8 [LAMBDA IN] [LAMBDA IN] val x = foo(1, 2) { { it } }
-8 [LAMBDA IN] val x = foo(1, 2) { { it } }
-8 [LAMBDA IN] val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } }
-3 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-4 [LAMBDA CALLS ARGUMENT #0] return f(a)(b)
-4 return f(a)(b)
-3 fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-8 val x = foo(1, 2) { { it } }
-
+4 return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 [LAMBDA IN] return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 [LAMBDA IN] [LAMBDA IN] return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+3 [LAMBDA IN] [LAMBDA IN] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int { (in foo(Int, Int, (Int) -> (Int) -> Int))
+8 [LAMBDA IN] [LAMBDA IN] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA IN] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA IN] val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } } (in test())
+3 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int { (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 [LAMBDA CALLS ARGUMENT #0] return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+3 fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int { (in foo(Int, Int, (Int) -> (Int) -> Int))
+8 val x = foo(1, 2) { { it } } (in test())
diff --git a/idea/testData/slicer/inflow/doubleLambdaResult.nullnessGroups.txt b/idea/testData/slicer/inflow/doubleLambdaResult.nullnessGroups.txt
index 05968947054..0942b6ed7f5 100644
--- a/idea/testData/slicer/inflow/doubleLambdaResult.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/doubleLambdaResult.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
diff --git a/idea/testData/slicer/inflow/doubleLambdaResult.results.txt b/idea/testData/slicer/inflow/doubleLambdaResult.results.txt
index f878159826a..b7a591db73e 100644
--- a/idea/testData/slicer/inflow/doubleLambdaResult.results.txt
+++ b/idea/testData/slicer/inflow/doubleLambdaResult.results.txt
@@ -1,20 +1,20 @@
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
3 fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-4 return f(a)(b)
-4 [LAMBDA IN] return f(a)(b)
-4 [LAMBDA IN] [LAMBDA IN] return f(a)(b)
-3 [LAMBDA IN] [LAMBDA IN] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-8 [LAMBDA IN] [LAMBDA IN] val x = foo(1, 2) { { it } }
-8 [LAMBDA IN] val x = foo(1, 2) { { it } }
-8 [LAMBDA IN] val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } }
-3 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-4 [LAMBDA CALLS ARGUMENT #0] return f(a)(b)
-4 return f(a)(b)
-3 fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-8 val x = foo(1, 2) { { it } }
+4 return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 [LAMBDA IN] return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 [LAMBDA IN] [LAMBDA IN] return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+3 [LAMBDA IN] [LAMBDA IN] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int { (in foo(Int, Int, (Int) -> (Int) -> Int))
+8 [LAMBDA IN] [LAMBDA IN] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA IN] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA IN] val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] val x = foo(1, 2) { { it } } (in test())
+3 [LAMBDA CALLS] [LAMBDA CALLS ARGUMENT #0] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int { (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 [LAMBDA CALLS ARGUMENT #0] return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+3 fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int { (in foo(Int, Int, (Int) -> (Int) -> Int))
+8 val x = foo(1, 2) { { it } } (in test())
diff --git a/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.leafGroups.txt b/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.leafGroups.txt
index f96e6d5caa9..a219f561317 100644
--- a/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.leafGroups.txt
@@ -1,18 +1,17 @@
-5 f("", 1)
-16 val v = it
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo {
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-5 f("", 1)
+5 f("", 1) (in foo(String.(Int) -> Unit))
+16 val v = it (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+5 f("", 1) (in foo(String.(Int) -> Unit))
-7 "".f(2)
-16 val v = it
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo {
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-7 "".f(2)
-
-10 f(3)
-16 val v = it
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo {
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-10 f(3)
+7 "".f(2) (in foo(String.(Int) -> Unit))
+16 val v = it (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+7 "".f(2) (in foo(String.(Int) -> Unit))
+10 f(3) (in foo(String.(Int) -> Unit))
+16 val v = it (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+10 f(3) (in foo(String.(Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.nullnessGroups.txt
index b9d6f1e6c3d..e3b44f0cfcb 100644
--- a/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-16 val v = it
-16 val v = it
-
+16 val v = it (in test())
+16 val v = it (in test())
diff --git a/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.results.txt b/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.results.txt
index bd997196ffe..7060c7a0298 100644
--- a/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.results.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaImplicitParameter.results.txt
@@ -1,6 +1,6 @@
-16 val v = it
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo {
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-5 f("", 1)
-7 "".f(2)
-10 f(3)
+16 val v = it (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+5 f("", 1) (in foo(String.(Int) -> Unit))
+7 "".f(2) (in foo(String.(Int) -> Unit))
+10 f(3) (in foo(String.(Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/extensionLambdaParameter.leafGroups.txt b/idea/testData/slicer/inflow/extensionLambdaParameter.leafGroups.txt
index cf7889b8c3e..e266fe18dd9 100644
--- a/idea/testData/slicer/inflow/extensionLambdaParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaParameter.leafGroups.txt
@@ -1,21 +1,20 @@
-5 f("", 1)
-16 val v = i
-15 foo { i ->
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i ->
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-5 f("", 1)
+5 f("", 1) (in foo(String.(Int) -> Unit))
+16 val v = i (in test())
+15 foo { i -> (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i -> (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+5 f("", 1) (in foo(String.(Int) -> Unit))
-7 "".f(2)
-16 val v = i
-15 foo { i ->
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i ->
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-7 "".f(2)
-
-10 f(3)
-16 val v = i
-15 foo { i ->
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i ->
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-10 f(3)
+7 "".f(2) (in foo(String.(Int) -> Unit))
+16 val v = i (in test())
+15 foo { i -> (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i -> (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+7 "".f(2) (in foo(String.(Int) -> Unit))
+10 f(3) (in foo(String.(Int) -> Unit))
+16 val v = i (in test())
+15 foo { i -> (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i -> (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+10 f(3) (in foo(String.(Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/extensionLambdaParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/extensionLambdaParameter.nullnessGroups.txt
index 2295e82c5c5..261a1600c7a 100644
--- a/idea/testData/slicer/inflow/extensionLambdaParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaParameter.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-16 val v = i
-16 val v = i
-
+16 val v = i (in test())
+16 val v = i (in test())
diff --git a/idea/testData/slicer/inflow/extensionLambdaParameter.results.txt b/idea/testData/slicer/inflow/extensionLambdaParameter.results.txt
index a06b283271d..94def597082 100644
--- a/idea/testData/slicer/inflow/extensionLambdaParameter.results.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaParameter.results.txt
@@ -1,7 +1,7 @@
-16 val v = i
-15 foo { i ->
-15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i ->
-4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) {
-5 f("", 1)
-7 "".f(2)
-10 f(3)
+16 val v = i (in test())
+15 foo { i -> (in test())
+15 [LAMBDA CALLS ARGUMENT #0 EXTENSION] foo { i -> (in test())
+4 [LAMBDA CALLS ARGUMENT #0 EXTENSION] fun foo(f: String.(Int) -> Unit) { (in foo(String.(Int) -> Unit))
+5 f("", 1) (in foo(String.(Int) -> Unit))
+7 "".f(2) (in foo(String.(Int) -> Unit))
+10 f(3) (in foo(String.(Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/extensionLambdaReceiver.leafGroups.txt b/idea/testData/slicer/inflow/extensionLambdaReceiver.leafGroups.txt
index ca3caa174f3..0e0b2c0614e 100644
--- a/idea/testData/slicer/inflow/extensionLambdaReceiver.leafGroups.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaReceiver.leafGroups.txt
@@ -1,9 +1,8 @@
-5 with("A") {
-6 val v = this
-6 val v = this
-5 [LAMBDA CALLS RECEIVER] with("A") {
-LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-5 with("A") {
-
+5 with("A") { (in foo())
+6 val v = this (in foo())
+6 val v = this (in foo())
+5 [LAMBDA CALLS RECEIVER] with("A") { (in foo())
+LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+5 with("A") { (in foo())
diff --git a/idea/testData/slicer/inflow/extensionLambdaReceiver.nullnessGroups.txt b/idea/testData/slicer/inflow/extensionLambdaReceiver.nullnessGroups.txt
index a27379352c3..efcc911298b 100644
--- a/idea/testData/slicer/inflow/extensionLambdaReceiver.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaReceiver.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-6 val v = this
-6 val v = this
-
+6 val v = this (in foo())
+6 val v = this (in foo())
diff --git a/idea/testData/slicer/inflow/extensionLambdaReceiver.results.txt b/idea/testData/slicer/inflow/extensionLambdaReceiver.results.txt
index 220ad91e7de..59062eb0382 100644
--- a/idea/testData/slicer/inflow/extensionLambdaReceiver.results.txt
+++ b/idea/testData/slicer/inflow/extensionLambdaReceiver.results.txt
@@ -1,7 +1,7 @@
-6 val v = this
-6 val v = this
-5 [LAMBDA CALLS RECEIVER] with("A") {
-LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-5 with("A") {
+6 val v = this (in foo())
+6 val v = this (in foo())
+5 [LAMBDA CALLS RECEIVER] with("A") { (in foo())
+LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+5 with("A") { (in foo())
diff --git a/idea/testData/slicer/inflow/funParamerer.leafGroups.txt b/idea/testData/slicer/inflow/funParamerer.leafGroups.txt
index 45f758b29e7..05805d05af2 100644
--- a/idea/testData/slicer/inflow/funParamerer.leafGroups.txt
+++ b/idea/testData/slicer/inflow/funParamerer.leafGroups.txt
@@ -1,8 +1,7 @@
3 FunParamererKt.foo(1);
-5 fun foo(n: Int, s: String = "???") {
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
3 FunParamererKt.foo(1);
-10 foo(1)
-5 fun foo(n: Int, s: String = "???") {
-10 foo(1)
-
+10 foo(1) (in test())
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
+10 foo(1) (in test())
diff --git a/idea/testData/slicer/inflow/funParamerer.nullnessGroups.txt b/idea/testData/slicer/inflow/funParamerer.nullnessGroups.txt
index 0ace9d1c663..eed2e6ef8c9 100644
--- a/idea/testData/slicer/inflow/funParamerer.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/funParamerer.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-5 fun foo(n: Int, s: String = "???") {
-5 fun foo(n: Int, s: String = "???") {
-
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/funParamerer.results.txt b/idea/testData/slicer/inflow/funParamerer.results.txt
index 13f0b124e55..eb627a5f807 100644
--- a/idea/testData/slicer/inflow/funParamerer.results.txt
+++ b/idea/testData/slicer/inflow/funParamerer.results.txt
@@ -1,8 +1,8 @@
-5 fun foo(n: Int, s: String = "???") {
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
3 FunParamererKt.foo(1);
4 FunParamererKt.foo(1, "2");
-10 foo(1)
-11 foo(1, "2")
-12 foo(1, s = "2")
-13 foo(n = 1, s = "2")
-14 foo(s = "2", n = 1)
+10 foo(1) (in test())
+11 foo(1, "2") (in test())
+12 foo(1, s = "2") (in test())
+13 foo(n = 1, s = "2") (in test())
+14 foo(s = "2", n = 1) (in test())
diff --git a/idea/testData/slicer/inflow/funParamererWithDefault.leafGroups.txt b/idea/testData/slicer/inflow/funParamererWithDefault.leafGroups.txt
index 786ed9c6d5c..171812ca688 100644
--- a/idea/testData/slicer/inflow/funParamererWithDefault.leafGroups.txt
+++ b/idea/testData/slicer/inflow/funParamererWithDefault.leafGroups.txt
@@ -1,12 +1,11 @@
4 FunParamererWithDefaultKt.foo(1, "2");
-5 fun foo(n: Int, s: String = "???") {
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
4 FunParamererWithDefaultKt.foo(1, "2");
-11 foo(1, "2")
-5 fun foo(n: Int, s: String = "???") {
-11 foo(1, "2")
-
-5 fun foo(n: Int, s: String = "???") {
-5 fun foo(n: Int, s: String = "???") {
-5 fun foo(n: Int, s: String = "???") {
+11 foo(1, "2") (in test())
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
+11 foo(1, "2") (in test())
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/funParamererWithDefault.nullnessGroups.txt b/idea/testData/slicer/inflow/funParamererWithDefault.nullnessGroups.txt
index adccf5a64f1..455150e6961 100644
--- a/idea/testData/slicer/inflow/funParamererWithDefault.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/funParamererWithDefault.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-5 fun foo(n: Int, s: String = "???") {
-5 fun foo(n: Int, s: String = "???") {
-
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/funParamererWithDefault.results.txt b/idea/testData/slicer/inflow/funParamererWithDefault.results.txt
index e3dbfe55867..8931ffcbd54 100644
--- a/idea/testData/slicer/inflow/funParamererWithDefault.results.txt
+++ b/idea/testData/slicer/inflow/funParamererWithDefault.results.txt
@@ -1,7 +1,7 @@
-5 fun foo(n: Int, s: String = "???") {
-5 fun foo(n: Int, s: String = "???") {
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
+5 fun foo(n: Int, s: String = "???") { (in foo(Int, String = ...))
4 FunParamererWithDefaultKt.foo(1, "2");
-11 foo(1, "2")
-12 foo(1, s = "2")
-13 foo(n = 1, s = "2")
-14 foo(s = "2", n = 1)
+11 foo(1, "2") (in test())
+12 foo(1, s = "2") (in test())
+13 foo(n = 1, s = "2") (in test())
+14 foo(s = "2", n = 1) (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRef.leafGroups.txt b/idea/testData/slicer/inflow/funResultViaCallableRef.leafGroups.txt
index 78f794f3de0..18c674a7979 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRef.leafGroups.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRef.leafGroups.txt
@@ -1,12 +1,11 @@
-8 fun bar(n: Int) = n
-9 val x = foo(::bar)
-9 val x = foo(::bar)
+8 fun bar(n: Int) = n (in test())
+9 val x = foo(::bar) (in test())
+9 val x = foo(::bar) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-9 [LAMBDA IN] val x = foo(::bar)
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+9 [LAMBDA IN] val x = foo(::bar) (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRef.nullnessGroups.txt b/idea/testData/slicer/inflow/funResultViaCallableRef.nullnessGroups.txt
index fc81d14c64b..3574b175c0c 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRef.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRef.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-9 val x = foo(::bar)
-9 val x = foo(::bar)
+9 val x = foo(::bar) (in test())
+9 val x = foo(::bar) (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRef.results.txt b/idea/testData/slicer/inflow/funResultViaCallableRef.results.txt
index 9a7c0d68e5e..ad1adfb1de5 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRef.results.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRef.results.txt
@@ -1,10 +1,10 @@
-9 val x = foo(::bar)
-9 val x = foo(::bar)
+9 val x = foo(::bar) (in test())
+9 val x = foo(::bar) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-9 [LAMBDA IN] val x = foo(::bar)
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+9 [LAMBDA IN] val x = foo(::bar) (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.leafGroups.txt b/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.leafGroups.txt
index 0501bacea4d..52c5baa3b78 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.leafGroups.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.leafGroups.txt
@@ -1,14 +1,13 @@
-8 fun bar(n: Int) = n
-10 val x = foo(f)
-10 val x = foo(f)
+8 fun bar(n: Int) = n (in test())
+10 val x = foo(f) (in test())
+10 val x = foo(f) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-10 [LAMBDA IN] val x = foo(f)
-9 [LAMBDA IN] val f = ::bar
-9 [LAMBDA IN] val f = ::bar
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+10 [LAMBDA IN] val x = foo(f) (in test())
+9 [LAMBDA IN] val f = ::bar (in test())
+9 [LAMBDA IN] val f = ::bar (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.nullnessGroups.txt b/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.nullnessGroups.txt
index 41b66205857..b5647a9aba7 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-10 val x = foo(f)
-10 val x = foo(f)
+10 val x = foo(f) (in test())
+10 val x = foo(f) (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.results.txt b/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.results.txt
index cdcb5f556c2..d6618751621 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.results.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRefWithAssignment.results.txt
@@ -1,12 +1,12 @@
-10 val x = foo(f)
-10 val x = foo(f)
+10 val x = foo(f) (in test())
+10 val x = foo(f) (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-10 [LAMBDA IN] val x = foo(f)
-9 [LAMBDA IN] val f = ::bar
-9 [LAMBDA IN] val f = ::bar
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+10 [LAMBDA IN] val x = foo(f) (in test())
+9 [LAMBDA IN] val f = ::bar (in test())
+9 [LAMBDA IN] val f = ::bar (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.leafGroups.txt b/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.leafGroups.txt
index 439052b0033..5112d81d6a0 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.leafGroups.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.leafGroups.txt
@@ -1,9 +1,8 @@
-5 val x = (::bar)(1)
-5 val x = (::bar)(1)
-5 val x = (::bar)(1)
-5 [LAMBDA IN] val x = (::bar)(1)
-4 fun bar(n: Int) = n
-4 fun bar(n: Int) = n
-4 fun bar(n: Int) = n
-5 val x = (::bar)(1)
-
+5 val x = (::bar)(1) (in test())
+5 val x = (::bar)(1) (in test())
+5 val x = (::bar)(1) (in test())
+5 [LAMBDA IN] val x = (::bar)(1) (in test())
+4 fun bar(n: Int) = n (in test())
+4 fun bar(n: Int) = n (in test())
+4 fun bar(n: Int) = n (in test())
+5 val x = (::bar)(1) (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.nullnessGroups.txt b/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.nullnessGroups.txt
index 8910ec7b060..6b80c1ddd7e 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-5 val x = (::bar)(1)
-5 val x = (::bar)(1)
+5 val x = (::bar)(1) (in test())
+5 val x = (::bar)(1) (in test())
diff --git a/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.results.txt b/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.results.txt
index 0ddad2022ee..372675d9fca 100644
--- a/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.results.txt
+++ b/idea/testData/slicer/inflow/funResultViaCallableRefWithDirectCall.results.txt
@@ -1,7 +1,7 @@
-5 val x = (::bar)(1)
-5 val x = (::bar)(1)
-5 [LAMBDA IN] val x = (::bar)(1)
-4 fun bar(n: Int) = n
-4 fun bar(n: Int) = n
-4 fun bar(n: Int) = n
-5 val x = (::bar)(1)
+5 val x = (::bar)(1) (in test())
+5 val x = (::bar)(1) (in test())
+5 [LAMBDA IN] val x = (::bar)(1) (in test())
+4 fun bar(n: Int) = n (in test())
+4 fun bar(n: Int) = n (in test())
+4 fun bar(n: Int) = n (in test())
+5 val x = (::bar)(1) (in test())
diff --git a/idea/testData/slicer/inflow/funWithExpressionBody.leafGroups.txt b/idea/testData/slicer/inflow/funWithExpressionBody.leafGroups.txt
index a9b007f1ff5..cf2536afc74 100644
--- a/idea/testData/slicer/inflow/funWithExpressionBody.leafGroups.txt
+++ b/idea/testData/slicer/inflow/funWithExpressionBody.leafGroups.txt
@@ -1,4 +1,3 @@
-3 fun foo(n: Int) = n + 1
+3 fun foo(n: Int) = n + 1 (in foo(Int))
3 fun foo(n: Int) = n + 1
-3 fun foo(n: Int) = n + 1
-
+3 fun foo(n: Int) = n + 1 (in foo(Int))
diff --git a/idea/testData/slicer/inflow/funWithExpressionBody.results.txt b/idea/testData/slicer/inflow/funWithExpressionBody.results.txt
index f1737af11fc..947cf84b8d1 100644
--- a/idea/testData/slicer/inflow/funWithExpressionBody.results.txt
+++ b/idea/testData/slicer/inflow/funWithExpressionBody.results.txt
@@ -1,2 +1,2 @@
3 fun foo(n: Int) = n + 1
-3 fun foo(n: Int) = n + 1
+3 fun foo(n: Int) = n + 1 (in foo(Int))
diff --git a/idea/testData/slicer/inflow/funWithReturnExpressions.leafGroups.txt b/idea/testData/slicer/inflow/funWithReturnExpressions.leafGroups.txt
index 693e710fc7c..f6163a22da9 100644
--- a/idea/testData/slicer/inflow/funWithReturnExpressions.leafGroups.txt
+++ b/idea/testData/slicer/inflow/funWithReturnExpressions.leafGroups.txt
@@ -1,9 +1,8 @@
-5 return -n
+5 return -n (in foo(Int))
3 fun foo(n: Int): Int {
-5 return -n
+5 return -n (in foo(Int))
-3 fun foo(n: Int): Int {
+3 fun foo(n: Int): Int { (in foo(Int))
3 fun foo(n: Int): Int {
-4 if (n > 0) return n
-3 fun foo(n: Int): Int {
-
+4 if (n > 0) return n (in foo(Int))
+3 fun foo(n: Int): Int { (in foo(Int))
diff --git a/idea/testData/slicer/inflow/funWithReturnExpressions.results.txt b/idea/testData/slicer/inflow/funWithReturnExpressions.results.txt
index 74c52386b4c..408f6354afb 100644
--- a/idea/testData/slicer/inflow/funWithReturnExpressions.results.txt
+++ b/idea/testData/slicer/inflow/funWithReturnExpressions.results.txt
@@ -1,4 +1,4 @@
3 fun foo(n: Int): Int {
-4 if (n > 0) return n
-3 fun foo(n: Int): Int {
-5 return -n
+4 if (n > 0) return n (in foo(Int))
+3 fun foo(n: Int): Int { (in foo(Int))
+5 return -n (in foo(Int))
diff --git a/idea/testData/slicer/inflow/getterAndSetterUsingField.leafGroups.txt b/idea/testData/slicer/inflow/getterAndSetterUsingField.leafGroups.txt
index ccea0c4374b..549c33f2742 100644
--- a/idea/testData/slicer/inflow/getterAndSetterUsingField.leafGroups.txt
+++ b/idea/testData/slicer/inflow/getterAndSetterUsingField.leafGroups.txt
@@ -1,23 +1,22 @@
-4 var foo: Int = -1
-11 val x = foo
-4 var foo: Int = -1
-4 var foo: Int = -1
+4 var foo: Int = -1 (in A.foo: Int)
+11 val x = foo (in A.test())
+4 var foo: Int = -1 (in A)
+4 var foo: Int = -1 (in A.foo: Int)
-7 field = if (b) value else 0
-11 val x = foo
-4 var foo: Int = -1
-5 get() = if (b) field else 0
-5 get() = if (b) field else 0
-7 field = if (b) value else 0
-7 field = if (b) value else 0
-
-12 foo = 1
-11 val x = foo
-4 var foo: Int = -1
-5 get() = if (b) field else 0
-5 get() = if (b) field else 0
-7 field = if (b) value else 0
-7 field = if (b) value else 0
-6 set(value) {
-12 foo = 1
+7 field = if (b) value else 0 (in A.foo: Int)
+11 val x = foo (in A.test())
+4 var foo: Int = -1 (in A)
+5 get() = if (b) field else 0 (in A.foo: Int)
+5 get() = if (b) field else 0 (in A.foo: Int)
+7 field = if (b) value else 0 (in A.foo: Int)
+7 field = if (b) value else 0 (in A.foo: Int)
+12 foo = 1 (in A.test())
+11 val x = foo (in A.test())
+4 var foo: Int = -1 (in A)
+5 get() = if (b) field else 0 (in A.foo: Int)
+5 get() = if (b) field else 0 (in A.foo: Int)
+7 field = if (b) value else 0 (in A.foo: Int)
+7 field = if (b) value else 0 (in A.foo: Int)
+6 set(value) { (in A.foo: Int)
+12 foo = 1 (in A.test())
diff --git a/idea/testData/slicer/inflow/getterAndSetterUsingField.nullnessGroups.txt b/idea/testData/slicer/inflow/getterAndSetterUsingField.nullnessGroups.txt
index 20caa224a23..94793893a4a 100644
--- a/idea/testData/slicer/inflow/getterAndSetterUsingField.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/getterAndSetterUsingField.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-11 val x = foo
-11 val x = foo
+11 val x = foo (in A.test())
+11 val x = foo (in A.test())
diff --git a/idea/testData/slicer/inflow/getterAndSetterUsingField.results.txt b/idea/testData/slicer/inflow/getterAndSetterUsingField.results.txt
index 5685e475f41..1b95a6de7d0 100644
--- a/idea/testData/slicer/inflow/getterAndSetterUsingField.results.txt
+++ b/idea/testData/slicer/inflow/getterAndSetterUsingField.results.txt
@@ -1,11 +1,11 @@
-11 val x = foo
-4 var foo: Int = -1
-4 var foo: Int = -1
-5 get() = if (b) field else 0
-5 get() = if (b) field else 0
-7 field = if (b) value else 0
-7 field = if (b) value else 0
-6 set(value) {
-12 foo = 1
-7 field = if (b) value else 0
-5 get() = if (b) field else 0
+11 val x = foo (in A.test())
+4 var foo: Int = -1 (in A)
+4 var foo: Int = -1 (in A.foo: Int)
+5 get() = if (b) field else 0 (in A.foo: Int)
+5 get() = if (b) field else 0 (in A.foo: Int)
+7 field = if (b) value else 0 (in A.foo: Int)
+7 field = if (b) value else 0 (in A.foo: Int)
+6 set(value) { (in A.foo: Int)
+12 foo = 1 (in A.test())
+7 field = if (b) value else 0 (in A.foo: Int)
+5 get() = if (b) field else 0 (in A.foo: Int)
diff --git a/idea/testData/slicer/inflow/getterExpressionBody.leafGroups.txt b/idea/testData/slicer/inflow/getterExpressionBody.leafGroups.txt
index 4b6b2771561..d12ee6d9832 100644
--- a/idea/testData/slicer/inflow/getterExpressionBody.leafGroups.txt
+++ b/idea/testData/slicer/inflow/getterExpressionBody.leafGroups.txt
@@ -1,6 +1,5 @@
-4 get() = 0
-7 val x = foo
-7 val x = foo
+4 get() = 0 (in foo: Int)
+7 val x = foo (in test())
+7 val x = foo (in test())
3 val foo: Int
-4 get() = 0
-
+4 get() = 0 (in foo: Int)
diff --git a/idea/testData/slicer/inflow/getterExpressionBody.nullnessGroups.txt b/idea/testData/slicer/inflow/getterExpressionBody.nullnessGroups.txt
index 142739bce11..b14ba93c49a 100644
--- a/idea/testData/slicer/inflow/getterExpressionBody.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/getterExpressionBody.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-7 val x = foo
-7 val x = foo
+7 val x = foo (in test())
+7 val x = foo (in test())
diff --git a/idea/testData/slicer/inflow/getterExpressionBody.results.txt b/idea/testData/slicer/inflow/getterExpressionBody.results.txt
index 30090a4b8f5..35ccc7dbb7d 100644
--- a/idea/testData/slicer/inflow/getterExpressionBody.results.txt
+++ b/idea/testData/slicer/inflow/getterExpressionBody.results.txt
@@ -1,4 +1,4 @@
-7 val x = foo
-7 val x = foo
+7 val x = foo (in test())
+7 val x = foo (in test())
3 val foo: Int
-4 get() = 0
+4 get() = 0 (in foo: Int)
diff --git a/idea/testData/slicer/inflow/getterReturnExpression.leafGroups.txt b/idea/testData/slicer/inflow/getterReturnExpression.leafGroups.txt
index 462676a98b7..218770a1e97 100644
--- a/idea/testData/slicer/inflow/getterReturnExpression.leafGroups.txt
+++ b/idea/testData/slicer/inflow/getterReturnExpression.leafGroups.txt
@@ -1,6 +1,5 @@
-5 return 0
-9 val x = foo
-9 val x = foo
+5 return 0 (in foo: Int)
+9 val x = foo (in test())
+9 val x = foo (in test())
3 val foo: Int
-5 return 0
-
+5 return 0 (in foo: Int)
diff --git a/idea/testData/slicer/inflow/getterReturnExpression.nullnessGroups.txt b/idea/testData/slicer/inflow/getterReturnExpression.nullnessGroups.txt
index 841a24d157e..6faa0f5c6e8 100644
--- a/idea/testData/slicer/inflow/getterReturnExpression.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/getterReturnExpression.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-9 val x = foo
-9 val x = foo
+9 val x = foo (in test())
+9 val x = foo (in test())
diff --git a/idea/testData/slicer/inflow/getterReturnExpression.results.txt b/idea/testData/slicer/inflow/getterReturnExpression.results.txt
index 6f4cd786678..7ba85ffbfd1 100644
--- a/idea/testData/slicer/inflow/getterReturnExpression.results.txt
+++ b/idea/testData/slicer/inflow/getterReturnExpression.results.txt
@@ -1,4 +1,4 @@
-9 val x = foo
-9 val x = foo
+9 val x = foo (in test())
+9 val x = foo (in test())
3 val foo: Int
-5 return 0
+5 return 0 (in foo: Int)
diff --git a/idea/testData/slicer/inflow/ifExpression.leafGroups.txt b/idea/testData/slicer/inflow/ifExpression.leafGroups.txt
index 7461694b02b..164913e9219 100644
--- a/idea/testData/slicer/inflow/ifExpression.leafGroups.txt
+++ b/idea/testData/slicer/inflow/ifExpression.leafGroups.txt
@@ -1,11 +1,10 @@
-3 fun test(m: Int, n: Int) {
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
-3 fun test(m: Int, n: Int) {
-
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
diff --git a/idea/testData/slicer/inflow/ifExpression.nullnessGroups.txt b/idea/testData/slicer/inflow/ifExpression.nullnessGroups.txt
index ffbb4d2f89e..8b9df9ed724 100644
--- a/idea/testData/slicer/inflow/ifExpression.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/ifExpression.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
diff --git a/idea/testData/slicer/inflow/ifExpression.results.txt b/idea/testData/slicer/inflow/ifExpression.results.txt
index 6e02fda5090..127bcc7442c 100644
--- a/idea/testData/slicer/inflow/ifExpression.results.txt
+++ b/idea/testData/slicer/inflow/ifExpression.results.txt
@@ -1,5 +1,5 @@
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
-3 fun test(m: Int, n: Int) {
-4 val x = if (m > 1) n else 1
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
diff --git a/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.leafGroups.txt b/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.leafGroups.txt
index 9eb412f1de6..f21061f4859 100644
--- a/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.leafGroups.txt
+++ b/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.leafGroups.txt
@@ -1,8 +1,7 @@
4 class C
-12 fun C.extensionFun() {}
-7 [LAMBDA CALLS RECEIVER] val c = C().apply {
-LIB (INLINE CALL apply) [LAMBDA CALLS RECEIVER] public inline fun T.apply(block: T.() -> Unit): T {
-LIB (INLINE CALL apply) public inline fun T.apply(block: T.() -> Unit): T {
-7 val c = C().apply {
+12 fun C.extensionFun() {} (in extensionFun() on C)
+7 [LAMBDA CALLS RECEIVER] val c = C().apply { (in foo())
+LIB (INLINE CALL apply) [LAMBDA CALLS RECEIVER] public inline fun T.apply(block: T.() -> Unit): T { (in apply(T.() -> Unit) on T)
+LIB (INLINE CALL apply) public inline fun T.apply(block: T.() -> Unit): T { (in apply(T.() -> Unit) on T)
+7 val c = C().apply { (in foo())
4 class C
-
diff --git a/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.nullnessGroups.txt b/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.nullnessGroups.txt
index f70a5275444..dc491cce4e0 100644
--- a/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.nullnessGroups.txt
@@ -1,8 +1,7 @@
[NotNull Values]
-7 val c = C().apply {
-12 fun C.extensionFun() {}
-7 [LAMBDA CALLS RECEIVER] val c = C().apply {
-LIB (INLINE CALL apply) [LAMBDA CALLS RECEIVER] public inline fun T.apply(block: T.() -> Unit): T {
-LIB (INLINE CALL apply) public inline fun T.apply(block: T.() -> Unit): T {
-7 val c = C().apply {
-
+7 val c = C().apply { (in foo())
+12 fun C.extensionFun() {} (in extensionFun() on C)
+7 [LAMBDA CALLS RECEIVER] val c = C().apply { (in foo())
+LIB (INLINE CALL apply) [LAMBDA CALLS RECEIVER] public inline fun T.apply(block: T.() -> Unit): T { (in apply(T.() -> Unit) on T)
+LIB (INLINE CALL apply) public inline fun T.apply(block: T.() -> Unit): T { (in apply(T.() -> Unit) on T)
+7 val c = C().apply { (in foo())
diff --git a/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.results.txt b/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.results.txt
index 55cfc2d7bbb..6e2652b8f20 100644
--- a/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.results.txt
+++ b/idea/testData/slicer/inflow/inlineExtensionImplicitReceiver.results.txt
@@ -1,6 +1,6 @@
-12 fun C.extensionFun() {}
-7 [LAMBDA CALLS RECEIVER] val c = C().apply {
-LIB (INLINE CALL apply) [LAMBDA CALLS RECEIVER] public inline fun T.apply(block: T.() -> Unit): T {
-LIB (INLINE CALL apply) public inline fun T.apply(block: T.() -> Unit): T {
-7 val c = C().apply {
+12 fun C.extensionFun() {} (in extensionFun() on C)
+7 [LAMBDA CALLS RECEIVER] val c = C().apply { (in foo())
+LIB (INLINE CALL apply) [LAMBDA CALLS RECEIVER] public inline fun T.apply(block: T.() -> Unit): T { (in apply(T.() -> Unit) on T)
+LIB (INLINE CALL apply) public inline fun T.apply(block: T.() -> Unit): T { (in apply(T.() -> Unit) on T)
+7 val c = C().apply { (in foo())
4 class C
diff --git a/idea/testData/slicer/inflow/inlineFunctionManyCalls.leafGroups.txt b/idea/testData/slicer/inflow/inlineFunctionManyCalls.leafGroups.txt
index 834abfd14e4..c859a4887a9 100644
--- a/idea/testData/slicer/inflow/inlineFunctionManyCalls.leafGroups.txt
+++ b/idea/testData/slicer/inflow/inlineFunctionManyCalls.leafGroups.txt
@@ -1,60 +1,59 @@
-36 "D".letNoInline {
-4 fun Any.extensionFun() {
-37 it.extensionFun()
-36 [LAMBDA CALLS ARGUMENT #0] "D".letNoInline {
-55 [LAMBDA CALLS ARGUMENT #0] fun T.letNoInline(block: (T) -> R): R {
-56 return block(this)
-55 fun T.letNoInline(block: (T) -> R): R {
-36 "D".letNoInline {
+36 "D".letNoInline { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+37 it.extensionFun() (in foo() on String)
+36 [LAMBDA CALLS ARGUMENT #0] "D".letNoInline { (in foo() on String)
+55 [LAMBDA CALLS ARGUMENT #0] fun T.letNoInline(block: (T) -> R): R { (in letNoInline((T) -> R) on T)
+56 return block(this) (in letNoInline((T) -> R) on T)
+55 fun T.letNoInline(block: (T) -> R): R { (in letNoInline((T) -> R) on T)
+36 "D".letNoInline { (in foo() on String)
-40 "C".letNoInline {
-4 fun Any.extensionFun() {
-37 it.extensionFun()
-36 [LAMBDA CALLS ARGUMENT #0] "D".letNoInline {
-55 [LAMBDA CALLS ARGUMENT #0] fun T.letNoInline(block: (T) -> R): R {
-56 return block(this)
-55 fun T.letNoInline(block: (T) -> R): R {
-40 "C".letNoInline {
+40 "C".letNoInline { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+37 it.extensionFun() (in foo() on String)
+36 [LAMBDA CALLS ARGUMENT #0] "D".letNoInline { (in foo() on String)
+55 [LAMBDA CALLS ARGUMENT #0] fun T.letNoInline(block: (T) -> R): R { (in letNoInline((T) -> R) on T)
+56 return block(this) (in letNoInline((T) -> R) on T)
+55 fun T.letNoInline(block: (T) -> R): R { (in letNoInline((T) -> R) on T)
+40 "C".letNoInline { (in foo() on String)
-28 "A".let {
-4 fun Any.extensionFun() {
-29 it.extensionFun()
-28 [LAMBDA CALLS ARGUMENT #0] "A".let {
-LIB (INLINE CALL let) [LAMBDA CALLS ARGUMENT #0] public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R {
-28 "A".let {
+28 "A".let { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+29 it.extensionFun() (in foo() on String)
+28 [LAMBDA CALLS ARGUMENT #0] "A".let { (in foo() on String)
+LIB (INLINE CALL let) [LAMBDA CALLS ARGUMENT #0] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+28 "A".let { (in foo() on String)
-20 withNoInline(1) {
-4 fun Any.extensionFun() {
-20 [LAMBDA CALLS RECEIVER] withNoInline(1) {
-50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R {
-51 val result = receiver.block()
-50 fun withNoInline(receiver: T, block: T.() -> R): R {
-20 withNoInline(1) {
+20 withNoInline(1) { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+20 [LAMBDA CALLS RECEIVER] withNoInline(1) { (in foo() on String)
+50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+51 val result = receiver.block() (in withNoInline(T, T.() -> R))
+50 fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+20 withNoInline(1) { (in foo() on String)
-8 with(123) {
-4 fun Any.extensionFun() {
-8 [LAMBDA CALLS RECEIVER] with(123) {
-45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R {
-46 (INLINE CALL with) val result = receiver.block()
-45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R {
-8 with(123) {
+8 with(123) { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+8 [LAMBDA CALLS RECEIVER] with(123) { (in foo() on String)
+45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+46 (INLINE CALL with) val result = receiver.block() (in with(T, T.() -> R))
+45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+8 with(123) { (in foo() on String)
-24 withNoInline(2) {
-4 fun Any.extensionFun() {
-20 [LAMBDA CALLS RECEIVER] withNoInline(1) {
-50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R {
-51 val result = receiver.block()
-50 fun withNoInline(receiver: T, block: T.() -> R): R {
-24 withNoInline(2) {
-
-12 with(456) {
-4 fun Any.extensionFun() {
-13 this.extensionFun()
-12 [LAMBDA CALLS RECEIVER] with(456) {
-45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R {
-46 (INLINE CALL with) val result = receiver.block()
-45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R {
-12 with(456) {
+24 withNoInline(2) { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+20 [LAMBDA CALLS RECEIVER] withNoInline(1) { (in foo() on String)
+50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+51 val result = receiver.block() (in withNoInline(T, T.() -> R))
+50 fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+24 withNoInline(2) { (in foo() on String)
+12 with(456) { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+13 this.extensionFun() (in foo() on String)
+12 [LAMBDA CALLS RECEIVER] with(456) { (in foo() on String)
+45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+46 (INLINE CALL with) val result = receiver.block() (in with(T, T.() -> R))
+45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+12 with(456) { (in foo() on String)
diff --git a/idea/testData/slicer/inflow/inlineFunctionManyCalls.nullnessGroups.txt b/idea/testData/slicer/inflow/inlineFunctionManyCalls.nullnessGroups.txt
index b0019448f72..018195420e0 100644
--- a/idea/testData/slicer/inflow/inlineFunctionManyCalls.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/inlineFunctionManyCalls.nullnessGroups.txt
@@ -1,30 +1,29 @@
[NotNull Values]
-8 with(123) {
-4 fun Any.extensionFun() {
-8 [LAMBDA CALLS RECEIVER] with(123) {
-45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R {
-46 (INLINE CALL with) val result = receiver.block()
-45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R {
-8 with(123) {
-13 this.extensionFun()
-4 fun Any.extensionFun() {
-13 this.extensionFun()
-20 withNoInline(1) {
-4 fun Any.extensionFun() {
-20 [LAMBDA CALLS RECEIVER] withNoInline(1) {
-50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R {
-51 val result = receiver.block()
-50 fun withNoInline(receiver: T, block: T.() -> R): R {
-20 withNoInline(1) {
-24 withNoInline(2) {
-4 fun Any.extensionFun() {
-20 [LAMBDA CALLS RECEIVER] withNoInline(1) {
-50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R {
-51 val result = receiver.block()
-50 fun withNoInline(receiver: T, block: T.() -> R): R {
-24 withNoInline(2) {
-29 it.extensionFun()
-4 fun Any.extensionFun() {
-29 it.extensionFun()
-37 it.extensionFun()
-
+8 with(123) { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+8 [LAMBDA CALLS RECEIVER] with(123) { (in foo() on String)
+45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+46 (INLINE CALL with) val result = receiver.block() (in with(T, T.() -> R))
+45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+8 with(123) { (in foo() on String)
+13 this.extensionFun() (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+13 this.extensionFun() (in foo() on String)
+20 withNoInline(1) { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+20 [LAMBDA CALLS RECEIVER] withNoInline(1) { (in foo() on String)
+50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+51 val result = receiver.block() (in withNoInline(T, T.() -> R))
+50 fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+20 withNoInline(1) { (in foo() on String)
+24 withNoInline(2) { (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+20 [LAMBDA CALLS RECEIVER] withNoInline(1) { (in foo() on String)
+50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+51 val result = receiver.block() (in withNoInline(T, T.() -> R))
+50 fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+24 withNoInline(2) { (in foo() on String)
+29 it.extensionFun() (in foo() on String)
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+29 it.extensionFun() (in foo() on String)
+37 it.extensionFun() (in foo() on String)
diff --git a/idea/testData/slicer/inflow/inlineFunctionManyCalls.results.txt b/idea/testData/slicer/inflow/inlineFunctionManyCalls.results.txt
index aabb51d35cc..4f75dea1ddb 100644
--- a/idea/testData/slicer/inflow/inlineFunctionManyCalls.results.txt
+++ b/idea/testData/slicer/inflow/inlineFunctionManyCalls.results.txt
@@ -1,31 +1,31 @@
-4 fun Any.extensionFun() {
-8 [LAMBDA CALLS RECEIVER] with(123) {
-45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R {
-46 (INLINE CALL with) val result = receiver.block()
-45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R {
-8 with(123) {
-13 this.extensionFun()
-12 [LAMBDA CALLS RECEIVER] with(456) {
-45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R {
-46 (INLINE CALL with) val result = receiver.block()
-45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R {
-12 with(456) {
-20 [LAMBDA CALLS RECEIVER] withNoInline(1) {
-50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R {
-51 val result = receiver.block()
-50 fun withNoInline(receiver: T, block: T.() -> R): R {
-20 withNoInline(1) {
-24 withNoInline(2) {
-29 it.extensionFun()
-28 [LAMBDA CALLS ARGUMENT #0] "A".let {
-LIB (INLINE CALL let) [LAMBDA CALLS ARGUMENT #0] public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R {
-28 "A".let {
-37 it.extensionFun()
-36 [LAMBDA CALLS ARGUMENT #0] "D".letNoInline {
-55 [LAMBDA CALLS ARGUMENT #0] fun T.letNoInline(block: (T) -> R): R {
-56 return block(this)
-55 fun T.letNoInline(block: (T) -> R): R {
-36 "D".letNoInline {
-40 "C".letNoInline {
+4 fun Any.extensionFun() { (in extensionFun() on Any)
+8 [LAMBDA CALLS RECEIVER] with(123) { (in foo() on String)
+45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+46 (INLINE CALL with) val result = receiver.block() (in with(T, T.() -> R))
+45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+8 with(123) { (in foo() on String)
+13 this.extensionFun() (in foo() on String)
+12 [LAMBDA CALLS RECEIVER] with(456) { (in foo() on String)
+45 (INLINE CALL with) [LAMBDA CALLS RECEIVER] inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+46 (INLINE CALL with) val result = receiver.block() (in with(T, T.() -> R))
+45 (INLINE CALL with) inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+12 with(456) { (in foo() on String)
+20 [LAMBDA CALLS RECEIVER] withNoInline(1) { (in foo() on String)
+50 [LAMBDA CALLS RECEIVER] fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+51 val result = receiver.block() (in withNoInline(T, T.() -> R))
+50 fun withNoInline(receiver: T, block: T.() -> R): R { (in withNoInline(T, T.() -> R))
+20 withNoInline(1) { (in foo() on String)
+24 withNoInline(2) { (in foo() on String)
+29 it.extensionFun() (in foo() on String)
+28 [LAMBDA CALLS ARGUMENT #0] "A".let { (in foo() on String)
+LIB (INLINE CALL let) [LAMBDA CALLS ARGUMENT #0] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+28 "A".let { (in foo() on String)
+37 it.extensionFun() (in foo() on String)
+36 [LAMBDA CALLS ARGUMENT #0] "D".letNoInline { (in foo() on String)
+55 [LAMBDA CALLS ARGUMENT #0] fun T.letNoInline(block: (T) -> R): R { (in letNoInline((T) -> R) on T)
+56 return block(this) (in letNoInline((T) -> R) on T)
+55 fun T.letNoInline(block: (T) -> R): R { (in letNoInline((T) -> R) on T)
+36 "D".letNoInline { (in foo() on String)
+40 "C".letNoInline { (in foo() on String)
diff --git a/idea/testData/slicer/inflow/lambdaImplicitParameter.leafGroups.txt b/idea/testData/slicer/inflow/lambdaImplicitParameter.leafGroups.txt
index 5cbea6bf2fe..a16f704ac55 100644
--- a/idea/testData/slicer/inflow/lambdaImplicitParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaImplicitParameter.leafGroups.txt
@@ -1,6 +1,5 @@
-4 f(1)
-9 val v = it
-8 [LAMBDA CALLS ARGUMENT #0] foo {
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) {
-4 f(1)
-
+4 f(1) (in foo((Int) -> Unit))
+9 val v = it (in test())
+8 [LAMBDA CALLS ARGUMENT #0] foo { (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) { (in foo((Int) -> Unit))
+4 f(1) (in foo((Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/lambdaImplicitParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/lambdaImplicitParameter.nullnessGroups.txt
index ee2f622c201..9ef6fed319b 100644
--- a/idea/testData/slicer/inflow/lambdaImplicitParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaImplicitParameter.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-9 val v = it
-9 val v = it
-
+9 val v = it (in test())
+9 val v = it (in test())
diff --git a/idea/testData/slicer/inflow/lambdaImplicitParameter.results.txt b/idea/testData/slicer/inflow/lambdaImplicitParameter.results.txt
index 4a221edec85..297bab6da25 100644
--- a/idea/testData/slicer/inflow/lambdaImplicitParameter.results.txt
+++ b/idea/testData/slicer/inflow/lambdaImplicitParameter.results.txt
@@ -1,4 +1,4 @@
-9 val v = it
-8 [LAMBDA CALLS ARGUMENT #0] foo {
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) {
-4 f(1)
+9 val v = it (in test())
+8 [LAMBDA CALLS ARGUMENT #0] foo { (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) { (in foo((Int) -> Unit))
+4 f(1) (in foo((Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/lambdaParameter.leafGroups.txt b/idea/testData/slicer/inflow/lambdaParameter.leafGroups.txt
index bcfb66420fa..5086bd0629a 100644
--- a/idea/testData/slicer/inflow/lambdaParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaParameter.leafGroups.txt
@@ -1,7 +1,6 @@
-4 f(1)
-9 val v = value
-8 foo { value ->
-8 [LAMBDA CALLS ARGUMENT #0] foo { value ->
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) {
-4 f(1)
-
+4 f(1) (in foo((Int) -> Unit))
+9 val v = value (in test())
+8 foo { value -> (in test())
+8 [LAMBDA CALLS ARGUMENT #0] foo { value -> (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) { (in foo((Int) -> Unit))
+4 f(1) (in foo((Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/lambdaParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/lambdaParameter.nullnessGroups.txt
index 5eb3a447c8d..c32ffd0cd51 100644
--- a/idea/testData/slicer/inflow/lambdaParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaParameter.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-9 val v = value
-9 val v = value
-
+9 val v = value (in test())
+9 val v = value (in test())
diff --git a/idea/testData/slicer/inflow/lambdaParameter.results.txt b/idea/testData/slicer/inflow/lambdaParameter.results.txt
index c723b611000..43ebe2b2e01 100644
--- a/idea/testData/slicer/inflow/lambdaParameter.results.txt
+++ b/idea/testData/slicer/inflow/lambdaParameter.results.txt
@@ -1,5 +1,5 @@
-9 val v = value
-8 foo { value ->
-8 [LAMBDA CALLS ARGUMENT #0] foo { value ->
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) {
-4 f(1)
+9 val v = value (in test())
+8 foo { value -> (in test())
+8 [LAMBDA CALLS ARGUMENT #0] foo { value -> (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Unit) { (in foo((Int) -> Unit))
+4 f(1) (in foo((Int) -> Unit))
diff --git a/idea/testData/slicer/inflow/lambdaResult.leafGroups.txt b/idea/testData/slicer/inflow/lambdaResult.leafGroups.txt
index b67a6270b0f..cd6dccb147f 100644
--- a/idea/testData/slicer/inflow/lambdaResult.leafGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResult.leafGroups.txt
@@ -1,14 +1,13 @@
-4 return f(1)
-8 val x = foo { it }
-8 val x = foo { it }
+4 return f(1) (in foo((Int) -> Int))
+8 val x = foo { it } (in test())
+8 val x = foo { it } (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-8 [LAMBDA IN] val x = foo { it }
-8 val x = foo { it }
-8 val x = foo { it }
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo { it }
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+8 [LAMBDA IN] val x = foo { it } (in test())
+8 val x = foo { it } (in test())
+8 val x = foo { it } (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo { it } (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/lambdaResult.nullnessGroups.txt b/idea/testData/slicer/inflow/lambdaResult.nullnessGroups.txt
index 3f515c99360..28380952d79 100644
--- a/idea/testData/slicer/inflow/lambdaResult.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResult.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-8 val x = foo { it }
-8 val x = foo { it }
+8 val x = foo { it } (in test())
+8 val x = foo { it } (in test())
diff --git a/idea/testData/slicer/inflow/lambdaResult.results.txt b/idea/testData/slicer/inflow/lambdaResult.results.txt
index 046eb0a9e72..154a0a9679f 100644
--- a/idea/testData/slicer/inflow/lambdaResult.results.txt
+++ b/idea/testData/slicer/inflow/lambdaResult.results.txt
@@ -1,12 +1,12 @@
-8 val x = foo { it }
-8 val x = foo { it }
+8 val x = foo { it } (in test())
+8 val x = foo { it } (in test())
3 fun foo(f: (Int) -> Int): Int {
-4 return f(1)
-4 [LAMBDA IN] return f(1)
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-8 [LAMBDA IN] val x = foo { it }
-8 val x = foo { it }
-8 val x = foo { it }
-8 [LAMBDA CALLS ARGUMENT #0] val x = foo { it }
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+4 return f(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] return f(1) (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+8 [LAMBDA IN] val x = foo { it } (in test())
+8 val x = foo { it } (in test())
+8 val x = foo { it } (in test())
+8 [LAMBDA CALLS ARGUMENT #0] val x = foo { it } (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/lambdaResultWithAssignments.leafGroups.txt b/idea/testData/slicer/inflow/lambdaResultWithAssignments.leafGroups.txt
index f44f1998b00..767fd5e14f9 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithAssignments.leafGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithAssignments.leafGroups.txt
@@ -1,18 +1,17 @@
-5 return x(1)
-9 val y = foo { it }
-9 val y = foo { it }
+5 return x(1) (in foo((Int) -> Int))
+9 val y = foo { it } (in test())
+9 val y = foo { it } (in test())
3 fun foo(f: (Int) -> Int): Int {
-5 return x(1)
-5 [LAMBDA IN] return x(1)
-4 [LAMBDA IN] val x = f
-4 [LAMBDA IN] val x = f
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-9 [LAMBDA IN] val y = foo { it }
-9 val y = foo { it }
-9 val y = foo { it }
-9 [LAMBDA CALLS ARGUMENT #0] val y = foo { it }
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 [LAMBDA CALLS ARGUMENT #0] val x = f
-4 [LAMBDA CALLS ARGUMENT #0] val x = f
-5 return x(1)
-
+5 return x(1) (in foo((Int) -> Int))
+5 [LAMBDA IN] return x(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] val x = f (in foo((Int) -> Int))
+4 [LAMBDA IN] val x = f (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+9 [LAMBDA IN] val y = foo { it } (in test())
+9 val y = foo { it } (in test())
+9 val y = foo { it } (in test())
+9 [LAMBDA CALLS ARGUMENT #0] val y = foo { it } (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 [LAMBDA CALLS ARGUMENT #0] val x = f (in foo((Int) -> Int))
+4 [LAMBDA CALLS ARGUMENT #0] val x = f (in foo((Int) -> Int))
+5 return x(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/lambdaResultWithAssignments.nullnessGroups.txt b/idea/testData/slicer/inflow/lambdaResultWithAssignments.nullnessGroups.txt
index 01e17527b94..3c6eec2fea5 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithAssignments.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithAssignments.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-9 val y = foo { it }
-9 val y = foo { it }
+9 val y = foo { it } (in test())
+9 val y = foo { it } (in test())
diff --git a/idea/testData/slicer/inflow/lambdaResultWithAssignments.results.txt b/idea/testData/slicer/inflow/lambdaResultWithAssignments.results.txt
index 97b168d2378..4e32eb2239d 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithAssignments.results.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithAssignments.results.txt
@@ -1,16 +1,16 @@
-9 val y = foo { it }
-9 val y = foo { it }
+9 val y = foo { it } (in test())
+9 val y = foo { it } (in test())
3 fun foo(f: (Int) -> Int): Int {
-5 return x(1)
-5 [LAMBDA IN] return x(1)
-4 [LAMBDA IN] val x = f
-4 [LAMBDA IN] val x = f
-3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int {
-9 [LAMBDA IN] val y = foo { it }
-9 val y = foo { it }
-9 val y = foo { it }
-9 [LAMBDA CALLS ARGUMENT #0] val y = foo { it }
-3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int {
-4 [LAMBDA CALLS ARGUMENT #0] val x = f
-4 [LAMBDA CALLS ARGUMENT #0] val x = f
-5 return x(1)
+5 return x(1) (in foo((Int) -> Int))
+5 [LAMBDA IN] return x(1) (in foo((Int) -> Int))
+4 [LAMBDA IN] val x = f (in foo((Int) -> Int))
+4 [LAMBDA IN] val x = f (in foo((Int) -> Int))
+3 [LAMBDA IN] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+9 [LAMBDA IN] val y = foo { it } (in test())
+9 val y = foo { it } (in test())
+9 val y = foo { it } (in test())
+9 [LAMBDA CALLS ARGUMENT #0] val y = foo { it } (in test())
+3 [LAMBDA CALLS ARGUMENT #0] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 [LAMBDA CALLS ARGUMENT #0] val x = f (in foo((Int) -> Int))
+4 [LAMBDA CALLS ARGUMENT #0] val x = f (in foo((Int) -> Int))
+5 return x(1) (in foo((Int) -> Int))
diff --git a/idea/testData/slicer/inflow/lambdaResultWithDirectCall.leafGroups.txt b/idea/testData/slicer/inflow/lambdaResultWithDirectCall.leafGroups.txt
index e5249b41796..8848d2633d7 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithDirectCall.leafGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithDirectCall.leafGroups.txt
@@ -1,7 +1,6 @@
-4 val x = { 1 }()
-4 val x = { 1 }()
-4 val x = { 1 }()
-4 [LAMBDA IN] val x = { 1 }()
-4 val x = { 1 }()
-4 val x = { 1 }()
-
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
+4 [LAMBDA IN] val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
diff --git a/idea/testData/slicer/inflow/lambdaResultWithDirectCall.nullnessGroups.txt b/idea/testData/slicer/inflow/lambdaResultWithDirectCall.nullnessGroups.txt
index cf4cf72dbda..6f288f0507c 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithDirectCall.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithDirectCall.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 val x = { 1 }()
-4 val x = { 1 }()
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
diff --git a/idea/testData/slicer/inflow/lambdaResultWithDirectCall.results.txt b/idea/testData/slicer/inflow/lambdaResultWithDirectCall.results.txt
index 175d038bc35..0b655473f31 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithDirectCall.results.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithDirectCall.results.txt
@@ -1,5 +1,5 @@
-4 val x = { 1 }()
-4 val x = { 1 }()
-4 [LAMBDA IN] val x = { 1 }()
-4 val x = { 1 }()
-4 val x = { 1 }()
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
+4 [LAMBDA IN] val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
diff --git a/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.leafGroups.txt b/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.leafGroups.txt
index d423c0c025d..97caa26cbe6 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.leafGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.leafGroups.txt
@@ -1,9 +1,8 @@
-4 val f = { 1 }
-5 val x = f()
-5 val x = f()
-5 [LAMBDA IN] val x = f()
-4 [LAMBDA IN] val f = { 1 }
-4 [LAMBDA IN] val f = { 1 }
-4 val f = { 1 }
-4 val f = { 1 }
-
+4 val f = { 1 } (in test())
+5 val x = f() (in test())
+5 val x = f() (in test())
+5 [LAMBDA IN] val x = f() (in test())
+4 [LAMBDA IN] val f = { 1 } (in test())
+4 [LAMBDA IN] val f = { 1 } (in test())
+4 val f = { 1 } (in test())
+4 val f = { 1 } (in test())
diff --git a/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.nullnessGroups.txt b/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.nullnessGroups.txt
index 617998f7071..6c58bad92cb 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-5 val x = f()
-5 val x = f()
+5 val x = f() (in test())
+5 val x = f() (in test())
diff --git a/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.results.txt b/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.results.txt
index 8faa41aa96e..92e5f85d9b2 100644
--- a/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.results.txt
+++ b/idea/testData/slicer/inflow/lambdaResultWithDirectCallViaAssignment.results.txt
@@ -1,7 +1,7 @@
-5 val x = f()
-5 val x = f()
-5 [LAMBDA IN] val x = f()
-4 [LAMBDA IN] val f = { 1 }
-4 [LAMBDA IN] val f = { 1 }
-4 val f = { 1 }
-4 val f = { 1 }
+5 val x = f() (in test())
+5 val x = f() (in test())
+5 [LAMBDA IN] val x = f() (in test())
+4 [LAMBDA IN] val f = { 1 } (in test())
+4 [LAMBDA IN] val f = { 1 } (in test())
+4 val f = { 1 } (in test())
+4 val f = { 1 } (in test())
diff --git a/idea/testData/slicer/inflow/localVal.leafGroups.txt b/idea/testData/slicer/inflow/localVal.leafGroups.txt
index b73b7e0a974..5c40616c185 100644
--- a/idea/testData/slicer/inflow/localVal.leafGroups.txt
+++ b/idea/testData/slicer/inflow/localVal.leafGroups.txt
@@ -1,5 +1,4 @@
-3 fun test(n: Int) {
-4 val x = n
-4 val x = n
-3 fun test(n: Int) {
-
+3 fun test(n: Int) { (in test(Int))
+4 val x = n (in test(Int))
+4 val x = n (in test(Int))
+3 fun test(n: Int) { (in test(Int))
diff --git a/idea/testData/slicer/inflow/localVal.nullnessGroups.txt b/idea/testData/slicer/inflow/localVal.nullnessGroups.txt
index 317d74197e7..0156efe16b2 100644
--- a/idea/testData/slicer/inflow/localVal.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/localVal.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 val x = n
-4 val x = n
+4 val x = n (in test(Int))
+4 val x = n (in test(Int))
diff --git a/idea/testData/slicer/inflow/localVal.results.txt b/idea/testData/slicer/inflow/localVal.results.txt
index 2dce24565b7..78be4674a96 100644
--- a/idea/testData/slicer/inflow/localVal.results.txt
+++ b/idea/testData/slicer/inflow/localVal.results.txt
@@ -1,3 +1,3 @@
-4 val x = n
-4 val x = n
-3 fun test(n: Int) {
+4 val x = n (in test(Int))
+4 val x = n (in test(Int))
+3 fun test(n: Int) { (in test(Int))
diff --git a/idea/testData/slicer/inflow/localVar.leafGroups.txt b/idea/testData/slicer/inflow/localVar.leafGroups.txt
index 3161578aec9..ce86daf12e7 100644
--- a/idea/testData/slicer/inflow/localVar.leafGroups.txt
+++ b/idea/testData/slicer/inflow/localVar.leafGroups.txt
@@ -1,9 +1,8 @@
-3 fun test(n: Int) {
-4 var x = n
-4 var x = n
-3 fun test(n: Int) {
-
-6 x = 0
-4 var x = n
-6 x = 0
+3 fun test(n: Int) { (in test(Int))
+4 var x = n (in test(Int))
+4 var x = n (in test(Int))
+3 fun test(n: Int) { (in test(Int))
+6 x = 0 (in test(Int))
+4 var x = n (in test(Int))
+6 x = 0 (in test(Int))
diff --git a/idea/testData/slicer/inflow/localVar.nullnessGroups.txt b/idea/testData/slicer/inflow/localVar.nullnessGroups.txt
index eedeaacafd9..62eb0cd3d4d 100644
--- a/idea/testData/slicer/inflow/localVar.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/localVar.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 var x = n
-4 var x = n
+4 var x = n (in test(Int))
+4 var x = n (in test(Int))
diff --git a/idea/testData/slicer/inflow/localVar.results.txt b/idea/testData/slicer/inflow/localVar.results.txt
index cd93cf5884f..6035a8f3273 100644
--- a/idea/testData/slicer/inflow/localVar.results.txt
+++ b/idea/testData/slicer/inflow/localVar.results.txt
@@ -1,4 +1,4 @@
-4 var x = n
-4 var x = n
-3 fun test(n: Int) {
-6 x = 0
+4 var x = n (in test(Int))
+4 var x = n (in test(Int))
+3 fun test(n: Int) { (in test(Int))
+6 x = 0 (in test(Int))
diff --git a/idea/testData/slicer/inflow/memberValWithInitializer.leafGroups.txt b/idea/testData/slicer/inflow/memberValWithInitializer.leafGroups.txt
index 4842215e6b3..ff3fe78aef5 100644
--- a/idea/testData/slicer/inflow/memberValWithInitializer.leafGroups.txt
+++ b/idea/testData/slicer/inflow/memberValWithInitializer.leafGroups.txt
@@ -1,4 +1,3 @@
-4 val x: Int = 1
-4 val x: Int = 1
-4 val x: Int = 1
-
+4 val x: Int = 1 (in A.x: Int)
+4 val x: Int = 1 (in A)
+4 val x: Int = 1 (in A.x: Int)
diff --git a/idea/testData/slicer/inflow/memberValWithInitializer.nullnessGroups.txt b/idea/testData/slicer/inflow/memberValWithInitializer.nullnessGroups.txt
index 97a1f3ea0ee..65c7691f6ff 100644
--- a/idea/testData/slicer/inflow/memberValWithInitializer.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/memberValWithInitializer.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 val x: Int = 1
-4 val x: Int = 1
+4 val x: Int = 1 (in A)
+4 val x: Int = 1 (in A)
diff --git a/idea/testData/slicer/inflow/memberValWithInitializer.results.txt b/idea/testData/slicer/inflow/memberValWithInitializer.results.txt
index 2a3db0d2579..2159189f312 100644
--- a/idea/testData/slicer/inflow/memberValWithInitializer.results.txt
+++ b/idea/testData/slicer/inflow/memberValWithInitializer.results.txt
@@ -1,2 +1,2 @@
-4 val x: Int = 1
-4 val x: Int = 1
+4 val x: Int = 1 (in A)
+4 val x: Int = 1 (in A.x: Int)
diff --git a/idea/testData/slicer/inflow/memberValWithSplitInitializer.leafGroups.txt b/idea/testData/slicer/inflow/memberValWithSplitInitializer.leafGroups.txt
index 04a87251bb6..5796746c27c 100644
--- a/idea/testData/slicer/inflow/memberValWithSplitInitializer.leafGroups.txt
+++ b/idea/testData/slicer/inflow/memberValWithSplitInitializer.leafGroups.txt
@@ -1,4 +1,3 @@
-7 x = 1
-4 val x: Int
-7 x = 1
-
+7 x = 1 (in A)
+4 val x: Int (in A)
+7 x = 1 (in A)
diff --git a/idea/testData/slicer/inflow/memberValWithSplitInitializer.nullnessGroups.txt b/idea/testData/slicer/inflow/memberValWithSplitInitializer.nullnessGroups.txt
index bfd2028d63f..0816722dc07 100644
--- a/idea/testData/slicer/inflow/memberValWithSplitInitializer.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/memberValWithSplitInitializer.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 val x: Int
-4 val x: Int
+4 val x: Int (in A)
+4 val x: Int (in A)
diff --git a/idea/testData/slicer/inflow/memberValWithSplitInitializer.results.txt b/idea/testData/slicer/inflow/memberValWithSplitInitializer.results.txt
index d479a4d425d..5e6f0ed2893 100644
--- a/idea/testData/slicer/inflow/memberValWithSplitInitializer.results.txt
+++ b/idea/testData/slicer/inflow/memberValWithSplitInitializer.results.txt
@@ -1,2 +1,2 @@
-4 val x: Int
-7 x = 1
+4 val x: Int (in A)
+7 x = 1 (in A)
diff --git a/idea/testData/slicer/inflow/memberVarWithInitializer.leafGroups.txt b/idea/testData/slicer/inflow/memberVarWithInitializer.leafGroups.txt
index 4b58ad03385..216d7631413 100644
--- a/idea/testData/slicer/inflow/memberVarWithInitializer.leafGroups.txt
+++ b/idea/testData/slicer/inflow/memberVarWithInitializer.leafGroups.txt
@@ -1,8 +1,7 @@
-4 var x: Int = 1
-4 var x: Int = 1
-4 var x: Int = 1
-
-9 x = 2
-4 var x: Int = 1
-9 x = 2
+4 var x: Int = 1 (in A.x: Int)
+4 var x: Int = 1 (in A)
+4 var x: Int = 1 (in A.x: Int)
+9 x = 2 (in A.test())
+4 var x: Int = 1 (in A)
+9 x = 2 (in A.test())
diff --git a/idea/testData/slicer/inflow/memberVarWithInitializer.nullnessGroups.txt b/idea/testData/slicer/inflow/memberVarWithInitializer.nullnessGroups.txt
index 3ca6c06eb06..9c54662d948 100644
--- a/idea/testData/slicer/inflow/memberVarWithInitializer.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/memberVarWithInitializer.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 var x: Int = 1
-4 var x: Int = 1
+4 var x: Int = 1 (in A)
+4 var x: Int = 1 (in A)
diff --git a/idea/testData/slicer/inflow/memberVarWithInitializer.results.txt b/idea/testData/slicer/inflow/memberVarWithInitializer.results.txt
index 00109f3bc0b..c703b322067 100644
--- a/idea/testData/slicer/inflow/memberVarWithInitializer.results.txt
+++ b/idea/testData/slicer/inflow/memberVarWithInitializer.results.txt
@@ -1,3 +1,3 @@
-4 var x: Int = 1
-4 var x: Int = 1
-9 x = 2
+4 var x: Int = 1 (in A)
+4 var x: Int = 1 (in A.x: Int)
+9 x = 2 (in A.test())
diff --git a/idea/testData/slicer/inflow/memberVarWithSplitInitializer.leafGroups.txt b/idea/testData/slicer/inflow/memberVarWithSplitInitializer.leafGroups.txt
index a0cc659b542..5d8334e3d9c 100644
--- a/idea/testData/slicer/inflow/memberVarWithSplitInitializer.leafGroups.txt
+++ b/idea/testData/slicer/inflow/memberVarWithSplitInitializer.leafGroups.txt
@@ -1,8 +1,7 @@
-7 x = 1
-4 var x: Int
-7 x = 1
-
-14 x = 2
-4 var x: Int
-14 x = 2
+7 x = 1 (in A)
+4 var x: Int (in A)
+7 x = 1 (in A)
+14 x = 2 (in A.test())
+4 var x: Int (in A)
+14 x = 2 (in A.test())
diff --git a/idea/testData/slicer/inflow/memberVarWithSplitInitializer.nullnessGroups.txt b/idea/testData/slicer/inflow/memberVarWithSplitInitializer.nullnessGroups.txt
index 93846fb0e63..21daad13184 100644
--- a/idea/testData/slicer/inflow/memberVarWithSplitInitializer.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/memberVarWithSplitInitializer.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 var x: Int
-4 var x: Int
+4 var x: Int (in A)
+4 var x: Int (in A)
diff --git a/idea/testData/slicer/inflow/memberVarWithSplitInitializer.results.txt b/idea/testData/slicer/inflow/memberVarWithSplitInitializer.results.txt
index 623b3cd1230..b256dc29f21 100644
--- a/idea/testData/slicer/inflow/memberVarWithSplitInitializer.results.txt
+++ b/idea/testData/slicer/inflow/memberVarWithSplitInitializer.results.txt
@@ -1,3 +1,3 @@
-4 var x: Int
-7 x = 1
-14 x = 2
+4 var x: Int (in A)
+7 x = 1 (in A)
+14 x = 2 (in A.test())
diff --git a/idea/testData/slicer/inflow/noFieldInGetter.leafGroups.txt b/idea/testData/slicer/inflow/noFieldInGetter.leafGroups.txt
index d741c4706ad..91e228440d2 100644
--- a/idea/testData/slicer/inflow/noFieldInGetter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/noFieldInGetter.leafGroups.txt
@@ -1,10 +1,9 @@
-4 var foo: Int = 0
-11 val x = foo
-4 var foo: Int = 0
-4 var foo: Int = 0
-
-5 get() = 1
-11 val x = foo
-4 var foo: Int = 0
-5 get() = 1
+4 var foo: Int = 0 (in A.foo: Int)
+11 val x = foo (in A.test())
+4 var foo: Int = 0 (in A)
+4 var foo: Int = 0 (in A.foo: Int)
+5 get() = 1 (in A.foo: Int)
+11 val x = foo (in A.test())
+4 var foo: Int = 0 (in A)
+5 get() = 1 (in A.foo: Int)
diff --git a/idea/testData/slicer/inflow/noFieldInGetter.nullnessGroups.txt b/idea/testData/slicer/inflow/noFieldInGetter.nullnessGroups.txt
index 20caa224a23..94793893a4a 100644
--- a/idea/testData/slicer/inflow/noFieldInGetter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/noFieldInGetter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-11 val x = foo
-11 val x = foo
+11 val x = foo (in A.test())
+11 val x = foo (in A.test())
diff --git a/idea/testData/slicer/inflow/noFieldInGetter.results.txt b/idea/testData/slicer/inflow/noFieldInGetter.results.txt
index e2f3ff1ad0d..d2bd58459e5 100644
--- a/idea/testData/slicer/inflow/noFieldInGetter.results.txt
+++ b/idea/testData/slicer/inflow/noFieldInGetter.results.txt
@@ -1,4 +1,4 @@
-11 val x = foo
-4 var foo: Int = 0
-4 var foo: Int = 0
-5 get() = 1
+11 val x = foo (in A.test())
+4 var foo: Int = 0 (in A)
+4 var foo: Int = 0 (in A.foo: Int)
+5 get() = 1 (in A.foo: Int)
diff --git a/idea/testData/slicer/inflow/nonLocalReturn.leafGroups.txt b/idea/testData/slicer/inflow/nonLocalReturn.leafGroups.txt
index 1a4bd07895e..c3a881c4ae4 100644
--- a/idea/testData/slicer/inflow/nonLocalReturn.leafGroups.txt
+++ b/idea/testData/slicer/inflow/nonLocalReturn.leafGroups.txt
@@ -1,22 +1,21 @@
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-5 [LAMBDA IN] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 [LAMBDA CALLS ARGUMENT #0] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-3 (INLINE CALL foo) [LAMBDA CALLS ARGUMENT #0] inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
+3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+5 [LAMBDA IN] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 [LAMBDA CALLS ARGUMENT #0] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+3 (INLINE CALL foo) [LAMBDA CALLS ARGUMENT #0] inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
diff --git a/idea/testData/slicer/inflow/nonLocalReturn.results.txt b/idea/testData/slicer/inflow/nonLocalReturn.results.txt
index 34d330161e2..0c711a2f786 100644
--- a/idea/testData/slicer/inflow/nonLocalReturn.results.txt
+++ b/idea/testData/slicer/inflow/nonLocalReturn.results.txt
@@ -1,17 +1,17 @@
5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-5 [LAMBDA IN] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 [LAMBDA CALLS ARGUMENT #0] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-3 (INLINE CALL foo) [LAMBDA CALLS ARGUMENT #0] inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a)
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
+3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) [LAMBDA IN] inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+5 [LAMBDA IN] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 [LAMBDA CALLS ARGUMENT #0] fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+3 (INLINE CALL foo) [LAMBDA CALLS ARGUMENT #0] inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+3 (INLINE CALL foo) inline fun foo(a: Int, f: (Int) -> Int) = f(a) (in foo(Int, (Int) -> Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
diff --git a/idea/testData/slicer/inflow/notNullAssertion.leafGroups.txt b/idea/testData/slicer/inflow/notNullAssertion.leafGroups.txt
index e657a597ff7..9848eedf103 100644
--- a/idea/testData/slicer/inflow/notNullAssertion.leafGroups.txt
+++ b/idea/testData/slicer/inflow/notNullAssertion.leafGroups.txt
@@ -1,6 +1,5 @@
-3 fun test(s: String?) {
-4 val x = s!!
-4 val x = s!!
-4 val x = s!!
-3 fun test(s: String?) {
-
+3 fun test(s: String?) { (in test(String?))
+4 val x = s!! (in test(String?))
+4 val x = s!! (in test(String?))
+4 val x = s!! (in test(String?))
+3 fun test(s: String?) { (in test(String?))
diff --git a/idea/testData/slicer/inflow/notNullAssertion.nullnessGroups.txt b/idea/testData/slicer/inflow/notNullAssertion.nullnessGroups.txt
index 6a3a2fae051..215da21bab3 100644
--- a/idea/testData/slicer/inflow/notNullAssertion.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/notNullAssertion.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 val x = s!!
-4 val x = s!!
+4 val x = s!! (in test(String?))
+4 val x = s!! (in test(String?))
diff --git a/idea/testData/slicer/inflow/notNullAssertion.results.txt b/idea/testData/slicer/inflow/notNullAssertion.results.txt
index 3add28a423b..3c5dd79a495 100644
--- a/idea/testData/slicer/inflow/notNullAssertion.results.txt
+++ b/idea/testData/slicer/inflow/notNullAssertion.results.txt
@@ -1,4 +1,4 @@
-4 val x = s!!
-4 val x = s!!
-4 val x = s!!
-3 fun test(s: String?) {
+4 val x = s!! (in test(String?))
+4 val x = s!! (in test(String?))
+4 val x = s!! (in test(String?))
+3 fun test(s: String?) { (in test(String?))
diff --git a/idea/testData/slicer/inflow/nullsAndNotNulls.leafGroups.txt b/idea/testData/slicer/inflow/nullsAndNotNulls.leafGroups.txt
index 9ec6507667d..f400c3c1ee6 100644
--- a/idea/testData/slicer/inflow/nullsAndNotNulls.leafGroups.txt
+++ b/idea/testData/slicer/inflow/nullsAndNotNulls.leafGroups.txt
@@ -1,17 +1,17 @@
-7 else -> null
-9 return s
-4 var s = when {
-4 var s = when {
-7 else -> null
+7 else -> null (in test(Int))
+9 return s (in test(Int))
+4 var s = when { (in test(Int))
+4 var s = when { (in test(Int))
+7 else -> null (in test(Int))
-6 n < 0 -> "-"
-9 return s
-4 var s = when {
-4 var s = when {
-6 n < 0 -> "-"
+6 n < 0 -> "-" (in test(Int))
+9 return s (in test(Int))
+4 var s = when { (in test(Int))
+4 var s = when { (in test(Int))
+6 n < 0 -> "-" (in test(Int))
-5 n > 0 -> "+"
-9 return s
-4 var s = when {
-4 var s = when {
-5 n > 0 -> "+"
+5 n > 0 -> "+" (in test(Int))
+9 return s (in test(Int))
+4 var s = when { (in test(Int))
+4 var s = when { (in test(Int))
+5 n > 0 -> "+" (in test(Int))
diff --git a/idea/testData/slicer/inflow/nullsAndNotNulls.nullnessGroups.txt b/idea/testData/slicer/inflow/nullsAndNotNulls.nullnessGroups.txt
index 83a482fd744..e168ec837ad 100644
--- a/idea/testData/slicer/inflow/nullsAndNotNulls.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/nullsAndNotNulls.nullnessGroups.txt
@@ -1,19 +1,18 @@
[Null Values]
-7 else -> null
-9 return s
-4 var s = when {
-4 var s = when {
-7 else -> null
+7 else -> null (in test(Int))
+9 return s (in test(Int))
+4 var s = when { (in test(Int))
+4 var s = when { (in test(Int))
+7 else -> null (in test(Int))
[NotNull Values]
-5 n > 0 -> "+"
-9 return s
-4 var s = when {
-4 var s = when {
-5 n > 0 -> "+"
-6 n < 0 -> "-"
-9 return s
-4 var s = when {
-4 var s = when {
-6 n < 0 -> "-"
-
+5 n > 0 -> "+" (in test(Int))
+9 return s (in test(Int))
+4 var s = when { (in test(Int))
+4 var s = when { (in test(Int))
+5 n > 0 -> "+" (in test(Int))
+6 n < 0 -> "-" (in test(Int))
+9 return s (in test(Int))
+4 var s = when { (in test(Int))
+4 var s = when { (in test(Int))
+6 n < 0 -> "-" (in test(Int))
diff --git a/idea/testData/slicer/inflow/nullsAndNotNulls.results.txt b/idea/testData/slicer/inflow/nullsAndNotNulls.results.txt
index 9a334b9d9e7..fc23543dadb 100644
--- a/idea/testData/slicer/inflow/nullsAndNotNulls.results.txt
+++ b/idea/testData/slicer/inflow/nullsAndNotNulls.results.txt
@@ -1,6 +1,6 @@
-9 return s
-4 var s = when {
-4 var s = when {
-5 n > 0 -> "+"
-6 n < 0 -> "-"
-7 else -> null
+9 return s (in test(Int))
+4 var s = when { (in test(Int))
+4 var s = when { (in test(Int))
+5 n > 0 -> "+" (in test(Int))
+6 n < 0 -> "-" (in test(Int))
+7 else -> null (in test(Int))
diff --git a/idea/testData/slicer/inflow/onFunctionReceiverType.leafGroups.txt b/idea/testData/slicer/inflow/onFunctionReceiverType.leafGroups.txt
index 06bdfcd36f5..995decfd2e8 100644
--- a/idea/testData/slicer/inflow/onFunctionReceiverType.leafGroups.txt
+++ b/idea/testData/slicer/inflow/onFunctionReceiverType.leafGroups.txt
@@ -1,25 +1,24 @@
-12 "".extensionFun()
-8 fun Any.extensionFun() {
-12 "".extensionFun()
+12 "".extensionFun() (in foo() on String)
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+12 "".extensionFun() (in foo() on String)
-24 "A".foo()
-8 fun Any.extensionFun() {
-11 fun String.foo() {
-24 "A".foo()
+24 "A".foo() (in main())
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+11 fun String.foo() { (in foo() on String)
+24 "A".foo() (in main())
3 KotlinUtil.extensionFun("x");
-8 fun Any.extensionFun() {
+8 fun Any.extensionFun() { (in extensionFun() on Any)
3 KotlinUtil.extensionFun("x");
-14 1.extensionFun()
-8 fun Any.extensionFun() {
-14 1.extensionFun()
-
-18 with(123) {
-8 fun Any.extensionFun() {
-18 [LAMBDA CALLS RECEIVER] with(123) {
-LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-18 with(123) {
+14 1.extensionFun() (in foo() on String)
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+14 1.extensionFun() (in foo() on String)
+18 with(123) { (in foo() on String)
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+18 [LAMBDA CALLS RECEIVER] with(123) { (in foo() on String)
+LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+18 with(123) { (in foo() on String)
diff --git a/idea/testData/slicer/inflow/onFunctionReceiverType.nullnessGroups.txt b/idea/testData/slicer/inflow/onFunctionReceiverType.nullnessGroups.txt
index 8b0a64b9f08..8dd740c1dac 100644
--- a/idea/testData/slicer/inflow/onFunctionReceiverType.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/onFunctionReceiverType.nullnessGroups.txt
@@ -1,24 +1,23 @@
[NotNull Values]
-12 "".extensionFun()
-8 fun Any.extensionFun() {
-12 "".extensionFun()
-14 1.extensionFun()
-8 fun Any.extensionFun() {
-14 1.extensionFun()
-18 with(123) {
-8 fun Any.extensionFun() {
-18 [LAMBDA CALLS RECEIVER] with(123) {
-LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-18 with(123) {
-24 "A".foo()
-8 fun Any.extensionFun() {
-11 fun String.foo() {
-24 "A".foo()
+12 "".extensionFun() (in foo() on String)
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+12 "".extensionFun() (in foo() on String)
+14 1.extensionFun() (in foo() on String)
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+14 1.extensionFun() (in foo() on String)
+18 with(123) { (in foo() on String)
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+18 [LAMBDA CALLS RECEIVER] with(123) { (in foo() on String)
+LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+18 with(123) { (in foo() on String)
+24 "A".foo() (in main())
+8 fun Any.extensionFun() { (in extensionFun() on Any)
+11 fun String.foo() { (in foo() on String)
+24 "A".foo() (in main())
[Other Values]
3 KotlinUtil.extensionFun("x");
-8 fun Any.extensionFun() {
+8 fun Any.extensionFun() { (in extensionFun() on Any)
3 KotlinUtil.extensionFun("x");
-
diff --git a/idea/testData/slicer/inflow/onFunctionReceiverType.results.txt b/idea/testData/slicer/inflow/onFunctionReceiverType.results.txt
index c27db30a17a..932a859591b 100644
--- a/idea/testData/slicer/inflow/onFunctionReceiverType.results.txt
+++ b/idea/testData/slicer/inflow/onFunctionReceiverType.results.txt
@@ -1,11 +1,11 @@
-8 fun Any.extensionFun() {
+8 fun Any.extensionFun() { (in extensionFun() on Any)
3 KotlinUtil.extensionFun("x");
-11 fun String.foo() {
-24 "A".foo()
-12 "".extensionFun()
-14 1.extensionFun()
-18 [LAMBDA CALLS RECEIVER] with(123) {
-LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-18 with(123) {
+11 fun String.foo() { (in foo() on String)
+24 "A".foo() (in main())
+12 "".extensionFun() (in foo() on String)
+14 1.extensionFun() (in foo() on String)
+18 [LAMBDA CALLS RECEIVER] with(123) { (in foo() on String)
+LIB (INLINE CALL with) [LAMBDA CALLS RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+18 with(123) { (in foo() on String)
diff --git a/idea/testData/slicer/inflow/onPropertyReceiverType.leafGroups.txt b/idea/testData/slicer/inflow/onPropertyReceiverType.leafGroups.txt
index a89ba8c7206..149b4b89c6e 100644
--- a/idea/testData/slicer/inflow/onPropertyReceiverType.leafGroups.txt
+++ b/idea/testData/slicer/inflow/onPropertyReceiverType.leafGroups.txt
@@ -1,8 +1,7 @@
-9 "b".property = 2
-3 var Any.property: Int
-9 "b".property = 2
-
-8 val v = "a".property
-3 var Any.property: Int
-8 val v = "a".property
+9 "b".property = 2 (in foo())
+3 var Any.property: Int (in property: Int on Any)
+9 "b".property = 2 (in foo())
+8 val v = "a".property (in foo())
+3 var Any.property: Int (in property: Int on Any)
+8 val v = "a".property (in foo())
diff --git a/idea/testData/slicer/inflow/onPropertyReceiverType.nullnessGroups.txt b/idea/testData/slicer/inflow/onPropertyReceiverType.nullnessGroups.txt
index 07179488696..984d505d40f 100644
--- a/idea/testData/slicer/inflow/onPropertyReceiverType.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/onPropertyReceiverType.nullnessGroups.txt
@@ -1,8 +1,7 @@
[NotNull Values]
-8 val v = "a".property
-3 var Any.property: Int
-8 val v = "a".property
-9 "b".property = 2
-3 var Any.property: Int
-9 "b".property = 2
-
+8 val v = "a".property (in foo())
+3 var Any.property: Int (in property: Int on Any)
+8 val v = "a".property (in foo())
+9 "b".property = 2 (in foo())
+3 var Any.property: Int (in property: Int on Any)
+9 "b".property = 2 (in foo())
diff --git a/idea/testData/slicer/inflow/onPropertyReceiverType.results.txt b/idea/testData/slicer/inflow/onPropertyReceiverType.results.txt
index 764b81645cd..573d684cdc5 100644
--- a/idea/testData/slicer/inflow/onPropertyReceiverType.results.txt
+++ b/idea/testData/slicer/inflow/onPropertyReceiverType.results.txt
@@ -1,3 +1,3 @@
-3 var Any.property: Int
-8 val v = "a".property
-9 "b".property = 2
+3 var Any.property: Int (in property: Int on Any)
+8 val v = "a".property (in foo())
+9 "b".property = 2 (in foo())
diff --git a/idea/testData/slicer/inflow/openFun.leafGroups.txt b/idea/testData/slicer/inflow/openFun.leafGroups.txt
index 8195b43666a..200a7478b08 100644
--- a/idea/testData/slicer/inflow/openFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/openFun.leafGroups.txt
@@ -1,5 +1,4 @@
-9 other?.bar(p + 1)
-13 println(p + 2)
-12 open fun bar(p: Int) {
-9 other?.bar(p + 1)
-
+9 other?.bar(p + 1) (in C.foo(Int))
+13 println(p + 2) (in C.bar(Int))
+12 open fun bar(p: Int) { (in C.bar(Int))
+9 other?.bar(p + 1) (in C.foo(Int))
diff --git a/idea/testData/slicer/inflow/openFun.nullnessGroups.txt b/idea/testData/slicer/inflow/openFun.nullnessGroups.txt
index ee4ca595127..f3cdae143df 100644
--- a/idea/testData/slicer/inflow/openFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/openFun.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-13 println(p + 2)
-13 println(p + 2)
-
+13 println(p + 2) (in C.bar(Int))
+13 println(p + 2) (in C.bar(Int))
diff --git a/idea/testData/slicer/inflow/openFun.results.txt b/idea/testData/slicer/inflow/openFun.results.txt
index d48191e1b03..b78e6e93a53 100644
--- a/idea/testData/slicer/inflow/openFun.results.txt
+++ b/idea/testData/slicer/inflow/openFun.results.txt
@@ -1,3 +1,3 @@
-13 println(p + 2)
-12 open fun bar(p: Int) {
-9 other?.bar(p + 1)
+13 println(p + 2) (in C.bar(Int))
+12 open fun bar(p: Int) { (in C.bar(Int))
+9 other?.bar(p + 1) (in C.foo(Int))
diff --git a/idea/testData/slicer/inflow/openFunInvokeOnParameter.leafGroups.txt b/idea/testData/slicer/inflow/openFunInvokeOnParameter.leafGroups.txt
index a328960b267..c93cb5da4dd 100644
--- a/idea/testData/slicer/inflow/openFunInvokeOnParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/openFunInvokeOnParameter.leafGroups.txt
@@ -1,8 +1,7 @@
-9 other?.bar(p + 1)
-12 open fun bar(p: Int) {
-9 other?.bar(p + 1)
-
-22 other?.bar(p + 3)
-12 open fun bar(p: Int) {
-22 other?.bar(p + 3)
+9 other?.bar(p + 1) (in C.foo(Int))
+12 open fun bar(p: Int) { (in C.bar(Int))
+9 other?.bar(p + 1) (in C.foo(Int))
+22 other?.bar(p + 3) (in D.foo(Int))
+12 open fun bar(p: Int) { (in C.bar(Int))
+22 other?.bar(p + 3) (in D.foo(Int))
diff --git a/idea/testData/slicer/inflow/openFunInvokeOnParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/openFunInvokeOnParameter.nullnessGroups.txt
index d7e6b417f1c..727f2aec35f 100644
--- a/idea/testData/slicer/inflow/openFunInvokeOnParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/openFunInvokeOnParameter.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-12 open fun bar(p: Int) {
-12 open fun bar(p: Int) {
-
+12 open fun bar(p: Int) { (in C.bar(Int))
+12 open fun bar(p: Int) { (in C.bar(Int))
diff --git a/idea/testData/slicer/inflow/openFunInvokeOnParameter.results.txt b/idea/testData/slicer/inflow/openFunInvokeOnParameter.results.txt
index 91deb3ca9f4..cf494ffc33f 100644
--- a/idea/testData/slicer/inflow/openFunInvokeOnParameter.results.txt
+++ b/idea/testData/slicer/inflow/openFunInvokeOnParameter.results.txt
@@ -1,3 +1,3 @@
-12 open fun bar(p: Int) {
-9 other?.bar(p + 1)
-22 other?.bar(p + 3)
+12 open fun bar(p: Int) { (in C.bar(Int))
+9 other?.bar(p + 1) (in C.foo(Int))
+22 other?.bar(p + 3) (in D.foo(Int))
diff --git a/idea/testData/slicer/inflow/overrideExtension1.leafGroups.txt b/idea/testData/slicer/inflow/overrideExtension1.leafGroups.txt
index 9dbb5c22904..01ecda98b23 100644
--- a/idea/testData/slicer/inflow/overrideExtension1.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overrideExtension1.leafGroups.txt
@@ -1,5 +1,4 @@
-9 1.extensionFun()
-5 val v = this
-4 open fun Int.extensionFun() {
-9 1.extensionFun()
-
+9 1.extensionFun() (in Base.baseF())
+5 val v = this (in extensionFun() on Int)
+4 open fun Int.extensionFun() { (in extensionFun() on Int)
+9 1.extensionFun() (in Base.baseF())
diff --git a/idea/testData/slicer/inflow/overrideExtension1.nullnessGroups.txt b/idea/testData/slicer/inflow/overrideExtension1.nullnessGroups.txt
index 3cfce4a620a..89b82868285 100644
--- a/idea/testData/slicer/inflow/overrideExtension1.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overrideExtension1.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-5 val v = this
-5 val v = this
-
+5 val v = this (in extensionFun() on Int)
+5 val v = this (in extensionFun() on Int)
diff --git a/idea/testData/slicer/inflow/overrideExtension1.results.txt b/idea/testData/slicer/inflow/overrideExtension1.results.txt
index 0eb6e87ee68..8ba41a316ad 100644
--- a/idea/testData/slicer/inflow/overrideExtension1.results.txt
+++ b/idea/testData/slicer/inflow/overrideExtension1.results.txt
@@ -1,3 +1,3 @@
-5 val v = this
-4 open fun Int.extensionFun() {
-9 1.extensionFun()
+5 val v = this (in extensionFun() on Int)
+4 open fun Int.extensionFun() { (in extensionFun() on Int)
+9 1.extensionFun() (in Base.baseF())
diff --git a/idea/testData/slicer/inflow/overrideExtension2.leafGroups.txt b/idea/testData/slicer/inflow/overrideExtension2.leafGroups.txt
index 47e6d291b2a..0edfe29cb36 100644
--- a/idea/testData/slicer/inflow/overrideExtension2.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overrideExtension2.leafGroups.txt
@@ -1,7 +1,7 @@
-9 1.extensionFun()
-4 open fun Int.extensionFun() {
-9 1.extensionFun()
+9 1.extensionFun() (in Base.baseF())
+4 open fun Int.extensionFun() { (in extensionFun() on Int)
+9 1.extensionFun() (in Base.baseF())
-18 2.extensionFun()
-4 open fun Int.extensionFun() {
-18 2.extensionFun()
+18 2.extensionFun() (in Derived.derivedF())
+4 open fun Int.extensionFun() { (in extensionFun() on Int)
+18 2.extensionFun() (in Derived.derivedF())
diff --git a/idea/testData/slicer/inflow/overrideExtension2.nullnessGroups.txt b/idea/testData/slicer/inflow/overrideExtension2.nullnessGroups.txt
index 24d72add4c0..6437e8e333f 100644
--- a/idea/testData/slicer/inflow/overrideExtension2.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overrideExtension2.nullnessGroups.txt
@@ -1,7 +1,7 @@
[NotNull Values]
-9 1.extensionFun()
-4 open fun Int.extensionFun() {
-9 1.extensionFun()
-18 2.extensionFun()
-4 open fun Int.extensionFun() {
-18 2.extensionFun()
+9 1.extensionFun() (in Base.baseF())
+4 open fun Int.extensionFun() { (in extensionFun() on Int)
+9 1.extensionFun() (in Base.baseF())
+18 2.extensionFun() (in Derived.derivedF())
+4 open fun Int.extensionFun() { (in extensionFun() on Int)
+18 2.extensionFun() (in Derived.derivedF())
diff --git a/idea/testData/slicer/inflow/overrideExtension2.results.txt b/idea/testData/slicer/inflow/overrideExtension2.results.txt
index 87da662e608..ed76e18f8c1 100644
--- a/idea/testData/slicer/inflow/overrideExtension2.results.txt
+++ b/idea/testData/slicer/inflow/overrideExtension2.results.txt
@@ -1,3 +1,3 @@
-4 open fun Int.extensionFun() {
-9 1.extensionFun()
-18 2.extensionFun()
+4 open fun Int.extensionFun() { (in extensionFun() on Int)
+9 1.extensionFun() (in Base.baseF())
+18 2.extensionFun() (in Derived.derivedF())
diff --git a/idea/testData/slicer/inflow/overrideFun.leafGroups.txt b/idea/testData/slicer/inflow/overrideFun.leafGroups.txt
index 43eb929df21..485e7fd8ff7 100644
--- a/idea/testData/slicer/inflow/overrideFun.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overrideFun.leafGroups.txt
@@ -1,16 +1,15 @@
-22 i.foo(3)
-9 val v = p
-8 override fun foo(p: Int) {
+22 i.foo(3) (in g(JavaInterface))
+9 val v = p (in C.foo(Int))
+8 override fun foo(p: Int) { (in C.foo(Int))
2 void foo(int p);
-22 i.foo(3)
+22 i.foo(3) (in g(JavaInterface))
-13 foo(1)
-9 val v = p
-8 override fun foo(p: Int) {
-13 foo(1)
-
-18 i.foo(2)
-9 val v = p
-8 override fun foo(p: Int) {
-18 i.foo(2)
+13 foo(1) (in C.f())
+9 val v = p (in C.foo(Int))
+8 override fun foo(p: Int) { (in C.foo(Int))
+13 foo(1) (in C.f())
+18 i.foo(2) (in f(I))
+9 val v = p (in C.foo(Int))
+8 override fun foo(p: Int) { (in C.foo(Int))
+18 i.foo(2) (in f(I))
diff --git a/idea/testData/slicer/inflow/overrideFun.nullnessGroups.txt b/idea/testData/slicer/inflow/overrideFun.nullnessGroups.txt
index 00f079584f5..371d3e7aa86 100644
--- a/idea/testData/slicer/inflow/overrideFun.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overrideFun.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-9 val v = p
-9 val v = p
-
+9 val v = p (in C.foo(Int))
+9 val v = p (in C.foo(Int))
diff --git a/idea/testData/slicer/inflow/overrideFun.results.txt b/idea/testData/slicer/inflow/overrideFun.results.txt
index e670a570517..64d6527d1d6 100644
--- a/idea/testData/slicer/inflow/overrideFun.results.txt
+++ b/idea/testData/slicer/inflow/overrideFun.results.txt
@@ -1,7 +1,7 @@
-9 val v = p
-8 override fun foo(p: Int) {
+9 val v = p (in C.foo(Int))
+8 override fun foo(p: Int) { (in C.foo(Int))
2 void foo(int p);
-13 foo(1)
-22 i.foo(3)
-13 foo(1)
-18 i.foo(2)
+13 foo(1) (in C.f())
+22 i.foo(3) (in g(JavaInterface))
+13 foo(1) (in C.f())
+18 i.foo(2) (in f(I))
diff --git a/idea/testData/slicer/inflow/overrideProperty.leafGroups.txt b/idea/testData/slicer/inflow/overrideProperty.leafGroups.txt
index 71ad7fd0000..e04f8bbca8f 100644
--- a/idea/testData/slicer/inflow/overrideProperty.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overrideProperty.leafGroups.txt
@@ -1,11 +1,11 @@
-8 override var prop: Int = 1
-13 val v = d.prop
-13 val v = d.prop
-8 override var prop: Int = 1
-8 override var prop: Int = 1
+8 override var prop: Int = 1 (in Derived.prop: Int)
+13 val v = d.prop (in foo(Base, Derived))
+13 val v = d.prop (in foo(Base, Derived))
+8 override var prop: Int = 1 (in Derived)
+8 override var prop: Int = 1 (in Derived.prop: Int)
-12 b.prop = 10
-13 val v = d.prop
-13 val v = d.prop
-8 override var prop: Int = 1
-12 b.prop = 10
+12 b.prop = 10 (in foo(Base, Derived))
+13 val v = d.prop (in foo(Base, Derived))
+13 val v = d.prop (in foo(Base, Derived))
+8 override var prop: Int = 1 (in Derived)
+12 b.prop = 10 (in foo(Base, Derived))
diff --git a/idea/testData/slicer/inflow/overrideProperty.nullnessGroups.txt b/idea/testData/slicer/inflow/overrideProperty.nullnessGroups.txt
index 9fb76243a49..840c90aa030 100644
--- a/idea/testData/slicer/inflow/overrideProperty.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overrideProperty.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-13 val v = d.prop
-13 val v = d.prop
+13 val v = d.prop (in foo(Base, Derived))
+13 val v = d.prop (in foo(Base, Derived))
diff --git a/idea/testData/slicer/inflow/overrideProperty.results.txt b/idea/testData/slicer/inflow/overrideProperty.results.txt
index 3c1e88d32e7..e7ea48f7dde 100644
--- a/idea/testData/slicer/inflow/overrideProperty.results.txt
+++ b/idea/testData/slicer/inflow/overrideProperty.results.txt
@@ -1,5 +1,5 @@
-13 val v = d.prop
-13 val v = d.prop
-8 override var prop: Int = 1
-8 override var prop: Int = 1
-12 b.prop = 10
+13 val v = d.prop (in foo(Base, Derived))
+13 val v = d.prop (in foo(Base, Derived))
+8 override var prop: Int = 1 (in Derived)
+8 override var prop: Int = 1 (in Derived.prop: Int)
+12 b.prop = 10 (in foo(Base, Derived))
diff --git a/idea/testData/slicer/inflow/overridingFunctionResult.leafGroups.txt b/idea/testData/slicer/inflow/overridingFunctionResult.leafGroups.txt
index 35020314510..ec5595b82aa 100644
--- a/idea/testData/slicer/inflow/overridingFunctionResult.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overridingFunctionResult.leafGroups.txt
@@ -1,17 +1,16 @@
-8 override fun foo() = 2
-17 val y = b.foo()
-17 val y = b.foo()
-8 override fun foo() = 2
-8 override fun foo() = 2
+8 override fun foo() = 2 (in B.foo())
+17 val y = b.foo() (in test(A, B, C))
+17 val y = b.foo() (in test(A, B, C))
+8 override fun foo() = 2 (in B)
+8 override fun foo() = 2 (in B.foo())
-12 override fun foo() = 3
-17 val y = b.foo()
-17 val y = b.foo()
-12 override fun foo() = 3
-12 override fun foo() = 3
+12 override fun foo() = 3 (in C.foo())
+17 val y = b.foo() (in test(A, B, C))
+17 val y = b.foo() (in test(A, B, C))
+12 override fun foo() = 3 (in C)
+12 override fun foo() = 3 (in C.foo())
3 return 5;
-17 val y = b.foo()
-17 val y = b.foo()
+17 val y = b.foo() (in test(A, B, C))
+17 val y = b.foo() (in test(A, B, C))
3 return 5;
-
diff --git a/idea/testData/slicer/inflow/overridingFunctionResult.nullnessGroups.txt b/idea/testData/slicer/inflow/overridingFunctionResult.nullnessGroups.txt
index b6ab3a27912..55a1f71430d 100644
--- a/idea/testData/slicer/inflow/overridingFunctionResult.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overridingFunctionResult.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-17 val y = b.foo()
-17 val y = b.foo()
+17 val y = b.foo() (in test(A, B, C))
+17 val y = b.foo() (in test(A, B, C))
diff --git a/idea/testData/slicer/inflow/overridingFunctionResult.results.txt b/idea/testData/slicer/inflow/overridingFunctionResult.results.txt
index 3739d4f7fec..b170f95b8fb 100644
--- a/idea/testData/slicer/inflow/overridingFunctionResult.results.txt
+++ b/idea/testData/slicer/inflow/overridingFunctionResult.results.txt
@@ -1,7 +1,7 @@
-17 val y = b.foo()
-17 val y = b.foo()
+17 val y = b.foo() (in test(A, B, C))
+17 val y = b.foo() (in test(A, B, C))
3 return 5;
-8 override fun foo() = 2
-8 override fun foo() = 2
-12 override fun foo() = 3
-12 override fun foo() = 3
+8 override fun foo() = 2 (in B)
+8 override fun foo() = 2 (in B.foo())
+12 override fun foo() = 3 (in C)
+12 override fun foo() = 3 (in C.foo())
diff --git a/idea/testData/slicer/inflow/overridingParameter.leafGroups.txt b/idea/testData/slicer/inflow/overridingParameter.leafGroups.txt
index 88a8b4b6555..d6b16529781 100644
--- a/idea/testData/slicer/inflow/overridingParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overridingParameter.leafGroups.txt
@@ -1,23 +1,22 @@
-9 class C : B(1) {
-15 val y = b.foo
-15 val y = b.foo
-7 open class B(override val foo: Int) : A()
-9 class C : B(1) {
+9 class C : B(1) { (in C)
+15 val y = b.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
+7 open class B(override val foo: Int) : A() (in B(Int))
+9 class C : B(1) { (in C)
-10 override val foo = 3
-15 val y = b.foo
-15 val y = b.foo
-10 override val foo = 3
-10 override val foo = 3
+10 override val foo = 3 (in C.foo: Int)
+15 val y = b.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
+10 override val foo = 3 (in C)
+10 override val foo = 3 (in C.foo: Int)
7 return 5;
-15 val y = b.foo
-15 val y = b.foo
+15 val y = b.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
7 return 5;
3 super(10);
-15 val y = b.foo
-15 val y = b.foo
-7 open class B(override val foo: Int) : A()
+15 val y = b.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
+7 open class B(override val foo: Int) : A() (in B(Int))
3 super(10);
-
diff --git a/idea/testData/slicer/inflow/overridingParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/overridingParameter.nullnessGroups.txt
index 4c2636dfb3f..1b3961a6349 100644
--- a/idea/testData/slicer/inflow/overridingParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overridingParameter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-15 val y = b.foo
-15 val y = b.foo
+15 val y = b.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
diff --git a/idea/testData/slicer/inflow/overridingParameter.results.txt b/idea/testData/slicer/inflow/overridingParameter.results.txt
index 3a5d9032bd0..9208582603b 100644
--- a/idea/testData/slicer/inflow/overridingParameter.results.txt
+++ b/idea/testData/slicer/inflow/overridingParameter.results.txt
@@ -1,8 +1,8 @@
-15 val y = b.foo
-15 val y = b.foo
-7 open class B(override val foo: Int) : A()
+15 val y = b.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
+7 open class B(override val foo: Int) : A() (in B(Int))
3 super(10);
-9 class C : B(1) {
+9 class C : B(1) { (in C)
7 return 5;
-10 override val foo = 3
-10 override val foo = 3
+10 override val foo = 3 (in C)
+10 override val foo = 3 (in C.foo: Int)
diff --git a/idea/testData/slicer/inflow/overridingPropertyGetterResult.leafGroups.txt b/idea/testData/slicer/inflow/overridingPropertyGetterResult.leafGroups.txt
index 01188c82ae4..33ab39e0ec1 100644
--- a/idea/testData/slicer/inflow/overridingPropertyGetterResult.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overridingPropertyGetterResult.leafGroups.txt
@@ -1,17 +1,16 @@
-10 get() = 2
-20 val y = b.foo
-20 val y = b.foo
-9 override val foo: Int
-10 get() = 2
+10 get() = 2 (in B.foo: Int)
+20 val y = b.foo (in test(A, B, C))
+20 val y = b.foo (in test(A, B, C))
+9 override val foo: Int (in B)
+10 get() = 2 (in B.foo: Int)
-15 get() = 3
-20 val y = b.foo
-20 val y = b.foo
-14 override val foo: Int
-15 get() = 3
+15 get() = 3 (in C.foo: Int)
+20 val y = b.foo (in test(A, B, C))
+20 val y = b.foo (in test(A, B, C))
+14 override val foo: Int (in C)
+15 get() = 3 (in C.foo: Int)
3 return 5;
-20 val y = b.foo
-20 val y = b.foo
+20 val y = b.foo (in test(A, B, C))
+20 val y = b.foo (in test(A, B, C))
3 return 5;
-
diff --git a/idea/testData/slicer/inflow/overridingPropertyGetterResult.nullnessGroups.txt b/idea/testData/slicer/inflow/overridingPropertyGetterResult.nullnessGroups.txt
index 893088d2aa8..4a09fdafcf4 100644
--- a/idea/testData/slicer/inflow/overridingPropertyGetterResult.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overridingPropertyGetterResult.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-20 val y = b.foo
-20 val y = b.foo
+20 val y = b.foo (in test(A, B, C))
+20 val y = b.foo (in test(A, B, C))
diff --git a/idea/testData/slicer/inflow/overridingPropertyGetterResult.results.txt b/idea/testData/slicer/inflow/overridingPropertyGetterResult.results.txt
index 56cfb35aca3..40b7b8036a0 100644
--- a/idea/testData/slicer/inflow/overridingPropertyGetterResult.results.txt
+++ b/idea/testData/slicer/inflow/overridingPropertyGetterResult.results.txt
@@ -1,7 +1,7 @@
-20 val y = b.foo
-20 val y = b.foo
+20 val y = b.foo (in test(A, B, C))
+20 val y = b.foo (in test(A, B, C))
3 return 5;
-9 override val foo: Int
-10 get() = 2
-14 override val foo: Int
-15 get() = 3
+9 override val foo: Int (in B)
+10 get() = 2 (in B.foo: Int)
+14 override val foo: Int (in C)
+15 get() = 3 (in C.foo: Int)
diff --git a/idea/testData/slicer/inflow/overridingPropertyResult.leafGroups.txt b/idea/testData/slicer/inflow/overridingPropertyResult.leafGroups.txt
index 0681ba65ca8..4b6a2035835 100644
--- a/idea/testData/slicer/inflow/overridingPropertyResult.leafGroups.txt
+++ b/idea/testData/slicer/inflow/overridingPropertyResult.leafGroups.txt
@@ -1,17 +1,16 @@
-8 override val foo = 2
-17 val y = b.foo
-17 val y = b.foo
-8 override val foo = 2
-8 override val foo = 2
+8 override val foo = 2 (in B.foo: Int)
+17 val y = b.foo (in test(A, B, C))
+17 val y = b.foo (in test(A, B, C))
+8 override val foo = 2 (in B)
+8 override val foo = 2 (in B.foo: Int)
-12 override val foo = 3
-17 val y = b.foo
-17 val y = b.foo
-12 override val foo = 3
-12 override val foo = 3
+12 override val foo = 3 (in C.foo: Int)
+17 val y = b.foo (in test(A, B, C))
+17 val y = b.foo (in test(A, B, C))
+12 override val foo = 3 (in C)
+12 override val foo = 3 (in C.foo: Int)
3 return 5;
-17 val y = b.foo
-17 val y = b.foo
+17 val y = b.foo (in test(A, B, C))
+17 val y = b.foo (in test(A, B, C))
3 return 5;
-
diff --git a/idea/testData/slicer/inflow/overridingPropertyResult.nullnessGroups.txt b/idea/testData/slicer/inflow/overridingPropertyResult.nullnessGroups.txt
index 074eced5db8..69c3fedf21f 100644
--- a/idea/testData/slicer/inflow/overridingPropertyResult.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/overridingPropertyResult.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-17 val y = b.foo
-17 val y = b.foo
+17 val y = b.foo (in test(A, B, C))
+17 val y = b.foo (in test(A, B, C))
diff --git a/idea/testData/slicer/inflow/overridingPropertyResult.results.txt b/idea/testData/slicer/inflow/overridingPropertyResult.results.txt
index df8d6a2152b..6617650b676 100644
--- a/idea/testData/slicer/inflow/overridingPropertyResult.results.txt
+++ b/idea/testData/slicer/inflow/overridingPropertyResult.results.txt
@@ -1,7 +1,7 @@
-17 val y = b.foo
-17 val y = b.foo
+17 val y = b.foo (in test(A, B, C))
+17 val y = b.foo (in test(A, B, C))
3 return 5;
-8 override val foo = 2
-8 override val foo = 2
-12 override val foo = 3
-12 override val foo = 3
+8 override val foo = 2 (in B)
+8 override val foo = 2 (in B.foo: Int)
+12 override val foo = 3 (in C)
+12 override val foo = 3 (in C.foo: Int)
diff --git a/idea/testData/slicer/inflow/primaryConstructorParameter.leafGroups.txt b/idea/testData/slicer/inflow/primaryConstructorParameter.leafGroups.txt
index 380b2bb4af2..c3b6b1f502d 100644
--- a/idea/testData/slicer/inflow/primaryConstructorParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/primaryConstructorParameter.leafGroups.txt
@@ -1,13 +1,12 @@
2 D(int n, String s) {
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
-6 class B1: A(1)
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-6 class B1: A(1)
+6 class B1: A(1) (in B1)
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
+6 class B1: A(1) (in B1)
11 new A(1);
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
11 new A(1);
-
diff --git a/idea/testData/slicer/inflow/primaryConstructorParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/primaryConstructorParameter.nullnessGroups.txt
index c9c3506df05..954332e140c 100644
--- a/idea/testData/slicer/inflow/primaryConstructorParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/primaryConstructorParameter.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/primaryConstructorParameter.results.txt b/idea/testData/slicer/inflow/primaryConstructorParameter.results.txt
index 3f122ab4b7e..fe3720a1f7f 100644
--- a/idea/testData/slicer/inflow/primaryConstructorParameter.results.txt
+++ b/idea/testData/slicer/inflow/primaryConstructorParameter.results.txt
@@ -1,17 +1,17 @@
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
7 super(n);
6 D(int n) {
-6 class B1: A(1)
-7 class B2: A(1, "2")
-8 class B3: A(1, s = "2")
+6 class B1: A(1) (in B1)
+7 class B2: A(1, "2") (in B2)
+8 class B3: A(1, s = "2") (in B3)
11 new A(1);
12 new A(1, "2");
-9 class B4: A(n = 1, s = "2")
-10 class B5: A(s = "2", n = 1)
-13 A(1)
-14 A(1, "2")
-15 A(1, s = "2")
-16 A(n = 1, s = "2")
-17 A(s = "2", n = 1)
+9 class B4: A(n = 1, s = "2") (in B4)
+10 class B5: A(s = "2", n = 1) (in B5)
+13 A(1) (in test())
+14 A(1, "2") (in test())
+15 A(1, s = "2") (in test())
+16 A(n = 1, s = "2") (in test())
+17 A(s = "2", n = 1) (in test())
diff --git a/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.leafGroups.txt b/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.leafGroups.txt
index a022f906729..e6e65eb01c3 100644
--- a/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.leafGroups.txt
+++ b/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.leafGroups.txt
@@ -1,17 +1,16 @@
-7 class B2: A(1, "2")
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-7 class B2: A(1, "2")
+7 class B2: A(1, "2") (in B2)
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
+7 class B2: A(1, "2") (in B2)
12 new A(1, "2");
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
12 new A(1, "2");
2 D(int n, String s) {
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.nullnessGroups.txt b/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.nullnessGroups.txt
index 25ce322b702..c46b918481f 100644
--- a/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.results.txt b/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.results.txt
index 8186f0bbfd9..3f444da7724 100644
--- a/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.results.txt
+++ b/idea/testData/slicer/inflow/primaryConstructorParameterWithDefault.results.txt
@@ -1,13 +1,13 @@
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
-4 open class A @JvmOverloads constructor(n: Int, s: String = "???")
-7 class B2: A(1, "2")
-8 class B3: A(1, s = "2")
+4 open class A @JvmOverloads constructor(n: Int, s: String = "???") (in A(Int, String = ...))
+7 class B2: A(1, "2") (in B2)
+8 class B3: A(1, s = "2") (in B3)
12 new A(1, "2");
-9 class B4: A(n = 1, s = "2")
-10 class B5: A(s = "2", n = 1)
-14 A(1, "2")
-15 A(1, s = "2")
-16 A(n = 1, s = "2")
-17 A(s = "2", n = 1)
+9 class B4: A(n = 1, s = "2") (in B4)
+10 class B5: A(s = "2", n = 1) (in B5)
+14 A(1, "2") (in test())
+15 A(1, s = "2") (in test())
+16 A(n = 1, s = "2") (in test())
+17 A(s = "2", n = 1) (in test())
diff --git a/idea/testData/slicer/inflow/propertyInInterface.leafGroups.txt b/idea/testData/slicer/inflow/propertyInInterface.leafGroups.txt
index c4a451fa46a..9e4a0beaabf 100644
--- a/idea/testData/slicer/inflow/propertyInInterface.leafGroups.txt
+++ b/idea/testData/slicer/inflow/propertyInInterface.leafGroups.txt
@@ -1,11 +1,11 @@
-8 override var prop: Int = 0
-13 val v = c.prop
-13 val v = c.prop
-8 override var prop: Int = 0
-8 override var prop: Int = 0
+8 override var prop: Int = 0 (in C.prop: Int)
+13 val v = c.prop (in foo(I, C))
+13 val v = c.prop (in foo(I, C))
+8 override var prop: Int = 0 (in C)
+8 override var prop: Int = 0 (in C.prop: Int)
-12 i.prop = 10
-13 val v = c.prop
-13 val v = c.prop
-8 override var prop: Int = 0
-12 i.prop = 10
+12 i.prop = 10 (in foo(I, C))
+13 val v = c.prop (in foo(I, C))
+13 val v = c.prop (in foo(I, C))
+8 override var prop: Int = 0 (in C)
+12 i.prop = 10 (in foo(I, C))
diff --git a/idea/testData/slicer/inflow/propertyInInterface.nullnessGroups.txt b/idea/testData/slicer/inflow/propertyInInterface.nullnessGroups.txt
index 6d866c04281..da6cd5c2688 100644
--- a/idea/testData/slicer/inflow/propertyInInterface.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/propertyInInterface.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-13 val v = c.prop
-13 val v = c.prop
+13 val v = c.prop (in foo(I, C))
+13 val v = c.prop (in foo(I, C))
diff --git a/idea/testData/slicer/inflow/propertyInInterface.results.txt b/idea/testData/slicer/inflow/propertyInInterface.results.txt
index 1f1df3a99f6..c48467587c4 100644
--- a/idea/testData/slicer/inflow/propertyInInterface.results.txt
+++ b/idea/testData/slicer/inflow/propertyInInterface.results.txt
@@ -1,5 +1,5 @@
-13 val v = c.prop
-13 val v = c.prop
-8 override var prop: Int = 0
-8 override var prop: Int = 0
-12 i.prop = 10
+13 val v = c.prop (in foo(I, C))
+13 val v = c.prop (in foo(I, C))
+8 override var prop: Int = 0 (in C)
+8 override var prop: Int = 0 (in C.prop: Int)
+12 i.prop = 10 (in foo(I, C))
diff --git a/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.leafGroups.txt b/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.leafGroups.txt
index 1e804b6d306..2e334ec150b 100644
--- a/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.leafGroups.txt
+++ b/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.leafGroups.txt
@@ -1,22 +1,21 @@
-13 val a = AClass("main: hello")
-15 val v = "Now my name is '${a.name}'"
-4 var name : String = name1
-4 var name : String = name1
-3 class AClass(name1: String){
-13 val a = AClass("main: hello")
+13 val a = AClass("main: hello") (in main(Array))
+15 val v = "Now my name is '${a.name}'" (in main(Array))
+4 var name : String = name1 (in AClass)
+4 var name : String = name1 (in AClass.name: String)
+3 class AClass(name1: String){ (in AClass(String))
+13 val a = AClass("main: hello") (in main(Array))
-14 a.name = "main: bye"
-15 val v = "Now my name is '${a.name}'"
-4 var name : String = name1
-14 a.name = "main: bye"
+14 a.name = "main: bye" (in main(Array))
+15 val v = "Now my name is '${a.name}'" (in main(Array))
+4 var name : String = name1 (in AClass)
+14 a.name = "main: bye" (in main(Array))
-6 name = "uses: bye"
-15 val v = "Now my name is '${a.name}'"
-4 var name : String = name1
-6 name = "uses: bye"
-
-7 this.name = "uses: after this"
-15 val v = "Now my name is '${a.name}'"
-4 var name : String = name1
-7 this.name = "uses: after this"
+6 name = "uses: bye" (in AClass.uses())
+15 val v = "Now my name is '${a.name}'" (in main(Array))
+4 var name : String = name1 (in AClass)
+6 name = "uses: bye" (in AClass.uses())
+7 this.name = "uses: after this" (in AClass.uses())
+15 val v = "Now my name is '${a.name}'" (in main(Array))
+4 var name : String = name1 (in AClass)
+7 this.name = "uses: after this" (in AClass.uses())
diff --git a/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.nullnessGroups.txt b/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.nullnessGroups.txt
index caecd13d4e0..604552c9bc9 100644
--- a/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-15 val v = "Now my name is '${a.name}'"
-15 val v = "Now my name is '${a.name}'"
-
+15 val v = "Now my name is '${a.name}'" (in main(Array))
+15 val v = "Now my name is '${a.name}'" (in main(Array))
diff --git a/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.results.txt b/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.results.txt
index 8016cb26001..0a63959cf20 100644
--- a/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.results.txt
+++ b/idea/testData/slicer/inflow/qualifiedAssignmentsForQualifiedRef.results.txt
@@ -1,8 +1,8 @@
-15 val v = "Now my name is '${a.name}'"
-4 var name : String = name1
-4 var name : String = name1
-3 class AClass(name1: String){
-13 val a = AClass("main: hello")
-6 name = "uses: bye"
-7 this.name = "uses: after this"
-14 a.name = "main: bye"
+15 val v = "Now my name is '${a.name}'" (in main(Array))
+4 var name : String = name1 (in AClass)
+4 var name : String = name1 (in AClass.name: String)
+3 class AClass(name1: String){ (in AClass(String))
+13 val a = AClass("main: hello") (in main(Array))
+6 name = "uses: bye" (in AClass.uses())
+7 this.name = "uses: after this" (in AClass.uses())
+14 a.name = "main: bye" (in main(Array))
diff --git a/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.leafGroups.txt b/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.leafGroups.txt
index 0f5c0dab4ea..a96a17ca5d1 100644
--- a/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.leafGroups.txt
+++ b/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.leafGroups.txt
@@ -1,22 +1,21 @@
-13 val a = AClass("main: hello")
-8 val v = "And now my name is '$name'"
-4 var name : String = name1
-4 var name : String = name1
-3 class AClass(name1: String){
-13 val a = AClass("main: hello")
+13 val a = AClass("main: hello") (in main(Array))
+8 val v = "And now my name is '$name'" (in AClass.uses())
+4 var name : String = name1 (in AClass)
+4 var name : String = name1 (in AClass.name: String)
+3 class AClass(name1: String){ (in AClass(String))
+13 val a = AClass("main: hello") (in main(Array))
-14 a.name = "main: bye"
-8 val v = "And now my name is '$name'"
-4 var name : String = name1
-14 a.name = "main: bye"
+14 a.name = "main: bye" (in main(Array))
+8 val v = "And now my name is '$name'" (in AClass.uses())
+4 var name : String = name1 (in AClass)
+14 a.name = "main: bye" (in main(Array))
-6 name = "uses: bye"
-8 val v = "And now my name is '$name'"
-4 var name : String = name1
-6 name = "uses: bye"
-
-7 this.name = "uses: after this"
-8 val v = "And now my name is '$name'"
-4 var name : String = name1
-7 this.name = "uses: after this"
+6 name = "uses: bye" (in AClass.uses())
+8 val v = "And now my name is '$name'" (in AClass.uses())
+4 var name : String = name1 (in AClass)
+6 name = "uses: bye" (in AClass.uses())
+7 this.name = "uses: after this" (in AClass.uses())
+8 val v = "And now my name is '$name'" (in AClass.uses())
+4 var name : String = name1 (in AClass)
+7 this.name = "uses: after this" (in AClass.uses())
diff --git a/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.nullnessGroups.txt b/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.nullnessGroups.txt
index 2afdcc3cabc..1705ab3764c 100644
--- a/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-8 val v = "And now my name is '$name'"
-8 val v = "And now my name is '$name'"
-
+8 val v = "And now my name is '$name'" (in AClass.uses())
+8 val v = "And now my name is '$name'" (in AClass.uses())
diff --git a/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.results.txt b/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.results.txt
index db0e3a06bd4..463a3eb562c 100644
--- a/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.results.txt
+++ b/idea/testData/slicer/inflow/qualifiedAssignmentsForSimpleRef.results.txt
@@ -1,8 +1,8 @@
-8 val v = "And now my name is '$name'"
-4 var name : String = name1
-4 var name : String = name1
-3 class AClass(name1: String){
-13 val a = AClass("main: hello")
-6 name = "uses: bye"
-7 this.name = "uses: after this"
-14 a.name = "main: bye"
+8 val v = "And now my name is '$name'" (in AClass.uses())
+4 var name : String = name1 (in AClass)
+4 var name : String = name1 (in AClass.name: String)
+3 class AClass(name1: String){ (in AClass(String))
+13 val a = AClass("main: hello") (in main(Array))
+6 name = "uses: bye" (in AClass.uses())
+7 this.name = "uses: after this" (in AClass.uses())
+14 a.name = "main: bye" (in main(Array))
diff --git a/idea/testData/slicer/inflow/safeCast.leafGroups.txt b/idea/testData/slicer/inflow/safeCast.leafGroups.txt
index ed1d77f390c..214d22d11f5 100644
--- a/idea/testData/slicer/inflow/safeCast.leafGroups.txt
+++ b/idea/testData/slicer/inflow/safeCast.leafGroups.txt
@@ -1,6 +1,5 @@
-3 fun test(o: Any) {
-4 val x = o as? String
-4 val x = o as? String
-4 val x = o as? String
-3 fun test(o: Any) {
-
+3 fun test(o: Any) { (in test(Any))
+4 val x = o as? String (in test(Any))
+4 val x = o as? String (in test(Any))
+4 val x = o as? String (in test(Any))
+3 fun test(o: Any) { (in test(Any))
diff --git a/idea/testData/slicer/inflow/safeCast.nullnessGroups.txt b/idea/testData/slicer/inflow/safeCast.nullnessGroups.txt
index 32e5d9b9633..a05ad699ff0 100644
--- a/idea/testData/slicer/inflow/safeCast.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/safeCast.nullnessGroups.txt
@@ -1,6 +1,5 @@
[NotNull Values]
-4 val x = o as? String
-4 val x = o as? String
-4 val x = o as? String
-4 val x = o as? String
-
+4 val x = o as? String (in test(Any))
+4 val x = o as? String (in test(Any))
+4 val x = o as? String (in test(Any))
+4 val x = o as? String (in test(Any))
diff --git a/idea/testData/slicer/inflow/safeCast.results.txt b/idea/testData/slicer/inflow/safeCast.results.txt
index 672b68824c1..7ee1d07e4bf 100644
--- a/idea/testData/slicer/inflow/safeCast.results.txt
+++ b/idea/testData/slicer/inflow/safeCast.results.txt
@@ -1,4 +1,4 @@
-4 val x = o as? String
-4 val x = o as? String
-4 val x = o as? String
-3 fun test(o: Any) {
+4 val x = o as? String (in test(Any))
+4 val x = o as? String (in test(Any))
+4 val x = o as? String (in test(Any))
+3 fun test(o: Any) { (in test(Any))
diff --git a/idea/testData/slicer/inflow/secondaryConstructorParameter.leafGroups.txt b/idea/testData/slicer/inflow/secondaryConstructorParameter.leafGroups.txt
index b3c18761878..c884c576426 100644
--- a/idea/testData/slicer/inflow/secondaryConstructorParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/secondaryConstructorParameter.leafGroups.txt
@@ -1,13 +1,12 @@
2 D(int n, String s) {
-5 @JvmOverloads constructor(n: Int, s: String = "???")
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
-8 class B1: A(1)
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-8 class B1: A(1)
+8 class B1: A(1) (in B1)
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
+8 class B1: A(1) (in B1)
11 new A(1);
-5 @JvmOverloads constructor(n: Int, s: String = "???")
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
11 new A(1);
-
diff --git a/idea/testData/slicer/inflow/secondaryConstructorParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/secondaryConstructorParameter.nullnessGroups.txt
index 5ea9e70910a..f521a1344bf 100644
--- a/idea/testData/slicer/inflow/secondaryConstructorParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/secondaryConstructorParameter.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/secondaryConstructorParameter.results.txt b/idea/testData/slicer/inflow/secondaryConstructorParameter.results.txt
index e5aa1882949..b86396f8fe5 100644
--- a/idea/testData/slicer/inflow/secondaryConstructorParameter.results.txt
+++ b/idea/testData/slicer/inflow/secondaryConstructorParameter.results.txt
@@ -1,17 +1,17 @@
-5 @JvmOverloads constructor(n: Int, s: String = "???")
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
7 super(n);
6 D(int n) {
-8 class B1: A(1)
-9 class B2: A(1, "2")
+8 class B1: A(1) (in B1)
+9 class B2: A(1, "2") (in B2)
11 new A(1);
-10 class B3: A(1, s = "2")
+10 class B3: A(1, s = "2") (in B3)
12 new A(1, "2");
-11 class B4: A(n = 1, s = "2")
-12 class B5: A(s = "2", n = 1)
-15 A(1)
-16 A(1, "2")
-17 A(1, s = "2")
-18 A(n = 1, s = "2")
-19 A(s = "2", n = 1)
+11 class B4: A(n = 1, s = "2") (in B4)
+12 class B5: A(s = "2", n = 1) (in B5)
+15 A(1) (in test())
+16 A(1, "2") (in test())
+17 A(1, s = "2") (in test())
+18 A(n = 1, s = "2") (in test())
+19 A(s = "2", n = 1) (in test())
diff --git a/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.leafGroups.txt b/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.leafGroups.txt
index fd7f749547d..90f60061a66 100644
--- a/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.leafGroups.txt
+++ b/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.leafGroups.txt
@@ -1,17 +1,16 @@
-9 class B2: A(1, "2")
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-9 class B2: A(1, "2")
+9 class B2: A(1, "2") (in B2)
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
+9 class B2: A(1, "2") (in B2)
12 new A(1, "2");
-5 @JvmOverloads constructor(n: Int, s: String = "???")
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
12 new A(1, "2");
2 D(int n, String s) {
-5 @JvmOverloads constructor(n: Int, s: String = "???")
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.nullnessGroups.txt b/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.nullnessGroups.txt
index 40daf1481b9..3b6bd4ab4e5 100644
--- a/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
diff --git a/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.results.txt b/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.results.txt
index e35375b7ebc..219cb703e18 100644
--- a/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.results.txt
+++ b/idea/testData/slicer/inflow/secondaryConstructorParameterWithDefault.results.txt
@@ -1,13 +1,13 @@
-5 @JvmOverloads constructor(n: Int, s: String = "???")
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
3 super(n, s);
2 D(int n, String s) {
-5 @JvmOverloads constructor(n: Int, s: String = "???")
-9 class B2: A(1, "2")
-10 class B3: A(1, s = "2")
+5 @JvmOverloads constructor(n: Int, s: String = "???") (in constructor A(Int, String = ...))
+9 class B2: A(1, "2") (in B2)
+10 class B3: A(1, s = "2") (in B3)
12 new A(1, "2");
-11 class B4: A(n = 1, s = "2")
-12 class B5: A(s = "2", n = 1)
-16 A(1, "2")
-17 A(1, s = "2")
-18 A(n = 1, s = "2")
-19 A(s = "2", n = 1)
+11 class B4: A(n = 1, s = "2") (in B4)
+12 class B5: A(s = "2", n = 1) (in B5)
+16 A(1, "2") (in test())
+17 A(1, s = "2") (in test())
+18 A(n = 1, s = "2") (in test())
+19 A(s = "2", n = 1) (in test())
diff --git a/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.leafGroups.txt b/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.leafGroups.txt
index 43bfcbc413d..536cdbab422 100644
--- a/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.leafGroups.txt
+++ b/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.leafGroups.txt
@@ -1,30 +1,29 @@
-6 private var _value: String = ""
-27 println("My name is '${a.name}'")
-14 var name by Delegate()
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-6 private var _value: String = ""
-6 private var _value: String = ""
+6 private var _value: String = "" (in Delegate._value: String)
+27 println("My name is '${a.name}'") (in main(Array))
+14 var name by Delegate() (in AClass)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+6 private var _value: String = "" (in Delegate)
+6 private var _value: String = "" (in Delegate._value: String)
-20 name = "bye"
-27 println("My name is '${a.name}'")
-14 var name by Delegate()
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-6 private var _value: String = ""
-9 _value = value
-8 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
-20 name = "bye"
-
-26 val a = AClass("hello")
-27 println("My name is '${a.name}'")
-14 var name by Delegate()
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-6 private var _value: String = ""
-9 _value = value
-8 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
-16 name = name1
-13 class AClass(name1: String){
-26 val a = AClass("hello")
+20 name = "bye" (in AClass.uses())
+27 println("My name is '${a.name}'") (in main(Array))
+14 var name by Delegate() (in AClass)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+6 private var _value: String = "" (in Delegate)
+9 _value = value (in Delegate.setValue(Any?, KProperty<*>, String))
+8 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { (in Delegate.setValue(Any?, KProperty<*>, String))
+20 name = "bye" (in AClass.uses())
+26 val a = AClass("hello") (in main(Array))
+27 println("My name is '${a.name}'") (in main(Array))
+14 var name by Delegate() (in AClass)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+6 private var _value: String = "" (in Delegate)
+9 _value = value (in Delegate.setValue(Any?, KProperty<*>, String))
+8 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { (in Delegate.setValue(Any?, KProperty<*>, String))
+16 name = name1 (in AClass)
+13 class AClass(name1: String){ (in AClass(String))
+26 val a = AClass("hello") (in main(Array))
diff --git a/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.nullnessGroups.txt b/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.nullnessGroups.txt
index b0b217cfa7a..41cc60724f0 100644
--- a/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-27 println("My name is '${a.name}'")
-27 println("My name is '${a.name}'")
-
+27 println("My name is '${a.name}'") (in main(Array))
+27 println("My name is '${a.name}'") (in main(Array))
diff --git a/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.results.txt b/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.results.txt
index e484fbf45df..70d521b84c5 100644
--- a/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.results.txt
+++ b/idea/testData/slicer/inflow/settersViaDelegateForQualifiedRef.results.txt
@@ -1,12 +1,12 @@
-27 println("My name is '${a.name}'")
-14 var name by Delegate()
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-6 private var _value: String = ""
-6 private var _value: String = ""
-9 _value = value
-8 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
-16 name = name1
-13 class AClass(name1: String){
-26 val a = AClass("hello")
-20 name = "bye"
+27 println("My name is '${a.name}'") (in main(Array))
+14 var name by Delegate() (in AClass)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+7 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+6 private var _value: String = "" (in Delegate)
+6 private var _value: String = "" (in Delegate._value: String)
+9 _value = value (in Delegate.setValue(Any?, KProperty<*>, String))
+8 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { (in Delegate.setValue(Any?, KProperty<*>, String))
+16 name = name1 (in AClass)
+13 class AClass(name1: String){ (in AClass(String))
+26 val a = AClass("hello") (in main(Array))
+20 name = "bye" (in AClass.uses())
diff --git a/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.leafGroups.txt b/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.leafGroups.txt
index 5c284d70511..9ef577d26cb 100644
--- a/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.leafGroups.txt
+++ b/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.leafGroups.txt
@@ -1,30 +1,29 @@
-7 private var _value: String = ""
-22 println("Now my name is '$name'")
-15 var name by Delegate()
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 private var _value: String = ""
-7 private var _value: String = ""
+7 private var _value: String = "" (in Delegate._value: String)
+22 println("Now my name is '$name'") (in AClass.uses())
+15 var name by Delegate() (in AClass)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+7 private var _value: String = "" (in Delegate)
+7 private var _value: String = "" (in Delegate._value: String)
-21 name = "bye"
-22 println("Now my name is '$name'")
-15 var name by Delegate()
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 private var _value: String = ""
-10 _value = value
-9 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
-21 name = "bye"
-
-27 val a = AClass("hello")
-22 println("Now my name is '$name'")
-15 var name by Delegate()
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 private var _value: String = ""
-10 _value = value
-9 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
-17 name = name1
-14 class AClass(name1: String){
-27 val a = AClass("hello")
+21 name = "bye" (in AClass.uses())
+22 println("Now my name is '$name'") (in AClass.uses())
+15 var name by Delegate() (in AClass)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+7 private var _value: String = "" (in Delegate)
+10 _value = value (in Delegate.setValue(Any?, KProperty<*>, String))
+9 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { (in Delegate.setValue(Any?, KProperty<*>, String))
+21 name = "bye" (in AClass.uses())
+27 val a = AClass("hello") (in main(Array))
+22 println("Now my name is '$name'") (in AClass.uses())
+15 var name by Delegate() (in AClass)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+7 private var _value: String = "" (in Delegate)
+10 _value = value (in Delegate.setValue(Any?, KProperty<*>, String))
+9 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { (in Delegate.setValue(Any?, KProperty<*>, String))
+17 name = name1 (in AClass)
+14 class AClass(name1: String){ (in AClass(String))
+27 val a = AClass("hello") (in main(Array))
diff --git a/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.nullnessGroups.txt b/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.nullnessGroups.txt
index 05e1ce43eb1..4d59e3ae4ba 100644
--- a/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.nullnessGroups.txt
@@ -1,4 +1,3 @@
[NotNull Values]
-22 println("Now my name is '$name'")
-22 println("Now my name is '$name'")
-
+22 println("Now my name is '$name'") (in AClass.uses())
+22 println("Now my name is '$name'") (in AClass.uses())
diff --git a/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.results.txt b/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.results.txt
index e5b693711e8..cbe0884da82 100644
--- a/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.results.txt
+++ b/idea/testData/slicer/inflow/settersViaDelegateForSimpleRef.results.txt
@@ -1,12 +1,12 @@
-22 println("Now my name is '$name'")
-15 var name by Delegate()
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value
-7 private var _value: String = ""
-7 private var _value: String = ""
-10 _value = value
-9 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
-17 name = name1
-14 class AClass(name1: String){
-27 val a = AClass("hello")
-21 name = "bye"
+22 println("Now my name is '$name'") (in AClass.uses())
+15 var name by Delegate() (in AClass)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate)
+8 operator fun getValue(thisRef: Any?, property: KProperty<*>) = _value (in Delegate.getValue(Any?, KProperty<*>))
+7 private var _value: String = "" (in Delegate)
+7 private var _value: String = "" (in Delegate._value: String)
+10 _value = value (in Delegate.setValue(Any?, KProperty<*>, String))
+9 operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { (in Delegate.setValue(Any?, KProperty<*>, String))
+17 name = name1 (in AClass)
+14 class AClass(name1: String){ (in AClass(String))
+27 val a = AClass("hello") (in main(Array))
+21 name = "bye" (in AClass.uses())
diff --git a/idea/testData/slicer/inflow/settersViaJavaDelegate.leafGroups.txt b/idea/testData/slicer/inflow/settersViaJavaDelegate.leafGroups.txt
index f4c5e828efe..163df242d7b 100644
--- a/idea/testData/slicer/inflow/settersViaJavaDelegate.leafGroups.txt
+++ b/idea/testData/slicer/inflow/settersViaJavaDelegate.leafGroups.txt
@@ -1,14 +1,13 @@
6 private String _value = "";
-12 println("Now my name is '$name'")
-5 var name by D()
+12 println("Now my name is '$name'") (in AClass.uses())
+5 var name by D() (in AClass)
9 return _value;
6 private String _value = "";
-5 var name by D()
-12 println("Now my name is '$name'")
-5 var name by D()
+5 var name by D() (in AClass.name: String!)
+12 println("Now my name is '$name'") (in AClass.uses())
+5 var name by D() (in AClass)
9 return _value;
13 _value = value;
12 void setValue(@Nullable Object thisRef, @NotNull KProperty> property, @NotNull String value) {
-5 var name by D()
-
+5 var name by D() (in AClass.name: String!)
diff --git a/idea/testData/slicer/inflow/settersViaJavaDelegate.nullnessGroups.txt b/idea/testData/slicer/inflow/settersViaJavaDelegate.nullnessGroups.txt
index 60491b3dc2b..570ca373ab9 100644
--- a/idea/testData/slicer/inflow/settersViaJavaDelegate.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/settersViaJavaDelegate.nullnessGroups.txt
@@ -1,14 +1,13 @@
[Other Values]
-5 var name by D()
-12 println("Now my name is '$name'")
-5 var name by D()
+5 var name by D() (in AClass.name: String!)
+12 println("Now my name is '$name'") (in AClass.uses())
+5 var name by D() (in AClass)
9 return _value;
13 _value = value;
12 void setValue(@Nullable Object thisRef, @NotNull KProperty> property, @NotNull String value) {
-5 var name by D()
+5 var name by D() (in AClass.name: String!)
6 private String _value = "";
-12 println("Now my name is '$name'")
-5 var name by D()
+12 println("Now my name is '$name'") (in AClass.uses())
+5 var name by D() (in AClass)
9 return _value;
6 private String _value = "";
-
diff --git a/idea/testData/slicer/inflow/settersViaJavaDelegate.results.txt b/idea/testData/slicer/inflow/settersViaJavaDelegate.results.txt
index 5838dfd8dac..01d160a6f6f 100644
--- a/idea/testData/slicer/inflow/settersViaJavaDelegate.results.txt
+++ b/idea/testData/slicer/inflow/settersViaJavaDelegate.results.txt
@@ -1,7 +1,7 @@
-12 println("Now my name is '$name'")
-5 var name by D()
+12 println("Now my name is '$name'") (in AClass.uses())
+5 var name by D() (in AClass)
9 return _value;
6 private String _value = "";
13 _value = value;
12 void setValue(@Nullable Object thisRef, @NotNull KProperty> property, @NotNull String value) {
-5 var name by D()
+5 var name by D() (in AClass.name: String!)
diff --git a/idea/testData/slicer/inflow/thisInExtensionFunction.leafGroups.txt b/idea/testData/slicer/inflow/thisInExtensionFunction.leafGroups.txt
index eafa8a7b714..63b1365767d 100644
--- a/idea/testData/slicer/inflow/thisInExtensionFunction.leafGroups.txt
+++ b/idea/testData/slicer/inflow/thisInExtensionFunction.leafGroups.txt
@@ -1,8 +1,7 @@
-8 val x = "".extensionFun()
-8 val x = "".extensionFun()
-8 val x = "".extensionFun()
+8 val x = "".extensionFun() (in foo())
+8 val x = "".extensionFun() (in foo())
+8 val x = "".extensionFun() (in foo())
3 fun Any.extensionFun(): Any {
-4 return this
-3 fun Any.extensionFun(): Any {
-8 val x = "".extensionFun()
-
+4 return this (in extensionFun() on Any)
+3 fun Any.extensionFun(): Any { (in extensionFun() on Any)
+8 val x = "".extensionFun() (in foo())
diff --git a/idea/testData/slicer/inflow/thisInExtensionFunction.nullnessGroups.txt b/idea/testData/slicer/inflow/thisInExtensionFunction.nullnessGroups.txt
index 60b44919674..1c184aa676c 100644
--- a/idea/testData/slicer/inflow/thisInExtensionFunction.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/thisInExtensionFunction.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-8 val x = "".extensionFun()
-8 val x = "".extensionFun()
+8 val x = "".extensionFun() (in foo())
+8 val x = "".extensionFun() (in foo())
diff --git a/idea/testData/slicer/inflow/thisInExtensionFunction.results.txt b/idea/testData/slicer/inflow/thisInExtensionFunction.results.txt
index 91848ff6504..e8af754c3c5 100644
--- a/idea/testData/slicer/inflow/thisInExtensionFunction.results.txt
+++ b/idea/testData/slicer/inflow/thisInExtensionFunction.results.txt
@@ -1,6 +1,6 @@
-8 val x = "".extensionFun()
-8 val x = "".extensionFun()
+8 val x = "".extensionFun() (in foo())
+8 val x = "".extensionFun() (in foo())
3 fun Any.extensionFun(): Any {
-4 return this
-3 fun Any.extensionFun(): Any {
-8 val x = "".extensionFun()
+4 return this (in extensionFun() on Any)
+3 fun Any.extensionFun(): Any { (in extensionFun() on Any)
+8 val x = "".extensionFun() (in foo())
diff --git a/idea/testData/slicer/inflow/thisInExtensionProperty.leafGroups.txt b/idea/testData/slicer/inflow/thisInExtensionProperty.leafGroups.txt
index 682e1cb81e3..f3e6b775752 100644
--- a/idea/testData/slicer/inflow/thisInExtensionProperty.leafGroups.txt
+++ b/idea/testData/slicer/inflow/thisInExtensionProperty.leafGroups.txt
@@ -1,8 +1,7 @@
-7 val x = "".extensionProp
-7 val x = "".extensionProp
-7 val x = "".extensionProp
+7 val x = "".extensionProp (in foo())
+7 val x = "".extensionProp (in foo())
+7 val x = "".extensionProp (in foo())
3 val Any.extensionProp: Any
-4 get() = this
-3 val Any.extensionProp: Any
-7 val x = "".extensionProp
-
+4 get() = this (in extensionProp: Any on Any)
+3 val Any.extensionProp: Any (in extensionProp: Any on Any)
+7 val x = "".extensionProp (in foo())
diff --git a/idea/testData/slicer/inflow/thisInExtensionProperty.nullnessGroups.txt b/idea/testData/slicer/inflow/thisInExtensionProperty.nullnessGroups.txt
index 3edbfc1b822..5d7467ab561 100644
--- a/idea/testData/slicer/inflow/thisInExtensionProperty.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/thisInExtensionProperty.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-7 val x = "".extensionProp
-7 val x = "".extensionProp
+7 val x = "".extensionProp (in foo())
+7 val x = "".extensionProp (in foo())
diff --git a/idea/testData/slicer/inflow/thisInExtensionProperty.results.txt b/idea/testData/slicer/inflow/thisInExtensionProperty.results.txt
index 630f22252a4..9b2fdc6a0a8 100644
--- a/idea/testData/slicer/inflow/thisInExtensionProperty.results.txt
+++ b/idea/testData/slicer/inflow/thisInExtensionProperty.results.txt
@@ -1,6 +1,6 @@
-7 val x = "".extensionProp
-7 val x = "".extensionProp
+7 val x = "".extensionProp (in foo())
+7 val x = "".extensionProp (in foo())
3 val Any.extensionProp: Any
-4 get() = this
-3 val Any.extensionProp: Any
-7 val x = "".extensionProp
+4 get() = this (in extensionProp: Any on Any)
+3 val Any.extensionProp: Any (in extensionProp: Any on Any)
+7 val x = "".extensionProp (in foo())
diff --git a/idea/testData/slicer/inflow/topLevelVal.leafGroups.txt b/idea/testData/slicer/inflow/topLevelVal.leafGroups.txt
index 6f666e91846..585b0043c24 100644
--- a/idea/testData/slicer/inflow/topLevelVal.leafGroups.txt
+++ b/idea/testData/slicer/inflow/topLevelVal.leafGroups.txt
@@ -1,4 +1,3 @@
-3 val foo: Int = 1
+3 val foo: Int = 1 (in foo: Int)
3 val foo: Int = 1
-3 val foo: Int = 1
-
+3 val foo: Int = 1 (in foo: Int)
diff --git a/idea/testData/slicer/inflow/topLevelVal.results.txt b/idea/testData/slicer/inflow/topLevelVal.results.txt
index dd4cc8d739e..88596239d0f 100644
--- a/idea/testData/slicer/inflow/topLevelVal.results.txt
+++ b/idea/testData/slicer/inflow/topLevelVal.results.txt
@@ -1,2 +1,2 @@
3 val foo: Int = 1
-3 val foo: Int = 1
+3 val foo: Int = 1 (in foo: Int)
diff --git a/idea/testData/slicer/inflow/topLevelVar.leafGroups.txt b/idea/testData/slicer/inflow/topLevelVar.leafGroups.txt
index 60a8b4a95bc..9ce7bfb48a3 100644
--- a/idea/testData/slicer/inflow/topLevelVar.leafGroups.txt
+++ b/idea/testData/slicer/inflow/topLevelVar.leafGroups.txt
@@ -1,12 +1,11 @@
-3 var foo: Int = 1
+3 var foo: Int = 1 (in foo: Int)
3 var foo: Int = 1
-3 var foo: Int = 1
+3 var foo: Int = 1 (in foo: Int)
-7 foo = 2
+7 foo = 2 (in test())
3 var foo: Int = 1
-7 foo = 2
+7 foo = 2 (in test())
4 TopLevelVarKt.setFoo(3);
3 var foo: Int = 1
4 TopLevelVarKt.setFoo(3);
-
diff --git a/idea/testData/slicer/inflow/topLevelVar.results.txt b/idea/testData/slicer/inflow/topLevelVar.results.txt
index 5df12d4edbb..c83c37430a3 100644
--- a/idea/testData/slicer/inflow/topLevelVar.results.txt
+++ b/idea/testData/slicer/inflow/topLevelVar.results.txt
@@ -1,4 +1,4 @@
3 var foo: Int = 1
-3 var foo: Int = 1
-7 foo = 2
+3 var foo: Int = 1 (in foo: Int)
+7 foo = 2 (in test())
4 TopLevelVarKt.setFoo(3);
diff --git a/idea/testData/slicer/inflow/valParameter.leafGroups.txt b/idea/testData/slicer/inflow/valParameter.leafGroups.txt
index f5ffd97031f..c95dfbd6a02 100644
--- a/idea/testData/slicer/inflow/valParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/valParameter.leafGroups.txt
@@ -1,17 +1,16 @@
2 D(int n) {
-3 open class A(val n: Int)
+3 open class A(val n: Int) (in A(Int))
3 super(n);
2 D(int n) {
-5 class B : A(1)
-3 open class A(val n: Int)
-5 class B : A(1)
+5 class B : A(1) (in B)
+3 open class A(val n: Int) (in A(Int))
+5 class B : A(1) (in B)
-8 val z = A(2).n
-3 open class A(val n: Int)
-8 val z = A(2).n
+8 val z = A(2).n (in test())
+3 open class A(val n: Int) (in A(Int))
+8 val z = A(2).n (in test())
7 A a = new A(3);
-3 open class A(val n: Int)
+3 open class A(val n: Int) (in A(Int))
7 A a = new A(3);
-
diff --git a/idea/testData/slicer/inflow/valParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/valParameter.nullnessGroups.txt
index 52ad6775d94..bda1aca9933 100644
--- a/idea/testData/slicer/inflow/valParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/valParameter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-3 open class A(val n: Int)
-3 open class A(val n: Int)
+3 open class A(val n: Int) (in A(Int))
+3 open class A(val n: Int) (in A(Int))
diff --git a/idea/testData/slicer/inflow/valParameter.results.txt b/idea/testData/slicer/inflow/valParameter.results.txt
index a1d7fbabba4..5caa00b926e 100644
--- a/idea/testData/slicer/inflow/valParameter.results.txt
+++ b/idea/testData/slicer/inflow/valParameter.results.txt
@@ -1,6 +1,6 @@
-3 open class A(val n: Int)
+3 open class A(val n: Int) (in A(Int))
3 super(n);
2 D(int n) {
-5 class B : A(1)
-8 val z = A(2).n
+5 class B : A(1) (in B)
+8 val z = A(2).n (in test())
7 A a = new A(3);
diff --git a/idea/testData/slicer/inflow/varParameter.leafGroups.txt b/idea/testData/slicer/inflow/varParameter.leafGroups.txt
index 6358f1a2d65..8362548d7d9 100644
--- a/idea/testData/slicer/inflow/varParameter.leafGroups.txt
+++ b/idea/testData/slicer/inflow/varParameter.leafGroups.txt
@@ -1,25 +1,24 @@
2 D(int n) {
-3 open class A(var n: Int) {
+3 open class A(var n: Int) { (in A(Int))
3 super(n);
2 D(int n) {
-20 class B : A(1)
-3 open class A(var n: Int) {
-20 class B : A(1)
+20 class B : A(1) (in B)
+3 open class A(var n: Int) { (in A(Int))
+20 class B : A(1) (in B)
-23 val z = A(2).n
-3 open class A(var n: Int) {
-23 val z = A(2).n
+23 val z = A(2).n (in test())
+3 open class A(var n: Int) { (in A(Int))
+23 val z = A(2).n (in test())
-24 A(3).n = 2
-3 open class A(var n: Int) {
-24 A(3).n = 2
+24 A(3).n = 2 (in test())
+3 open class A(var n: Int) { (in A(Int))
+24 A(3).n = 2 (in test())
7 A a = new A(3);
-3 open class A(var n: Int) {
+3 open class A(var n: Int) { (in A(Int))
7 A a = new A(3);
9 a.setN(4);
-3 open class A(var n: Int) {
+3 open class A(var n: Int) { (in A(Int))
9 a.setN(4);
-
diff --git a/idea/testData/slicer/inflow/varParameter.nullnessGroups.txt b/idea/testData/slicer/inflow/varParameter.nullnessGroups.txt
index 309fcdd6e23..d3a0b507ec1 100644
--- a/idea/testData/slicer/inflow/varParameter.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/varParameter.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-3 open class A(var n: Int) {
-3 open class A(var n: Int) {
+3 open class A(var n: Int) { (in A(Int))
+3 open class A(var n: Int) { (in A(Int))
diff --git a/idea/testData/slicer/inflow/varParameter.results.txt b/idea/testData/slicer/inflow/varParameter.results.txt
index a0222366b0f..4777da88fdb 100644
--- a/idea/testData/slicer/inflow/varParameter.results.txt
+++ b/idea/testData/slicer/inflow/varParameter.results.txt
@@ -1,10 +1,10 @@
-3 open class A(var n: Int) {
+3 open class A(var n: Int) { (in A(Int))
3 super(n);
2 D(int n) {
7 A a = new A(3);
9 a.setN(4);
-16 n = 1
-20 class B : A(1)
-23 val z = A(2).n
-24 A(3).n = 2
-24 A(3).n = 2
+16 n = 1 (in A.bar(Int))
+20 class B : A(1) (in B)
+23 val z = A(2).n (in test())
+24 A(3).n = 2 (in test())
+24 A(3).n = 2 (in test())
diff --git a/idea/testData/slicer/inflow/whenExpression.leafGroups.txt b/idea/testData/slicer/inflow/whenExpression.leafGroups.txt
index b2d94154450..7371e00cda6 100644
--- a/idea/testData/slicer/inflow/whenExpression.leafGroups.txt
+++ b/idea/testData/slicer/inflow/whenExpression.leafGroups.txt
@@ -1,16 +1,15 @@
-3 fun test(m: Int, n: Int) {
-4 val x = when (m) {
-4 val x = when (m) {
-6 2 -> n
-3 fun test(m: Int, n: Int) {
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
+6 2 -> n (in test(Int, Int))
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
-7 else -> 0
-4 val x = when (m) {
-4 val x = when (m) {
-7 else -> 0
-
-5 1 -> 1
-4 val x = when (m) {
-4 val x = when (m) {
-5 1 -> 1
+7 else -> 0 (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
+7 else -> 0 (in test(Int, Int))
+5 1 -> 1 (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
+5 1 -> 1 (in test(Int, Int))
diff --git a/idea/testData/slicer/inflow/whenExpression.nullnessGroups.txt b/idea/testData/slicer/inflow/whenExpression.nullnessGroups.txt
index eb6e467940b..1f8e75108f2 100644
--- a/idea/testData/slicer/inflow/whenExpression.nullnessGroups.txt
+++ b/idea/testData/slicer/inflow/whenExpression.nullnessGroups.txt
@@ -1,3 +1,3 @@
[NotNull Values]
-4 val x = when (m) {
-4 val x = when (m) {
+4 val x = when (m) { (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
diff --git a/idea/testData/slicer/inflow/whenExpression.results.txt b/idea/testData/slicer/inflow/whenExpression.results.txt
index 5d81dfb8b93..3a6bd5df800 100644
--- a/idea/testData/slicer/inflow/whenExpression.results.txt
+++ b/idea/testData/slicer/inflow/whenExpression.results.txt
@@ -1,6 +1,6 @@
-4 val x = when (m) {
-4 val x = when (m) {
-5 1 -> 1
-6 2 -> n
-3 fun test(m: Int, n: Int) {
-7 else -> 0
+4 val x = when (m) { (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
+5 1 -> 1 (in test(Int, Int))
+6 2 -> n (in test(Int, Int))
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
+7 else -> 0 (in test(Int, Int))
diff --git a/idea/testData/slicer/mpp/actualClassFunctionParameter/results.txt b/idea/testData/slicer/mpp/actualClassFunctionParameter/results.txt
index 6e5a96831cb..d1dc4f8fb52 100644
--- a/idea/testData/slicer/mpp/actualClassFunctionParameter/results.txt
+++ b/idea/testData/slicer/mpp/actualClassFunctionParameter/results.txt
@@ -1,3 +1,3 @@
-7 println(p)
-6 actual fun foo(p: Any) {
-8 c.foo(1)
+7 println(p) (in ExpectClass.foo(Any))
+6 actual fun foo(p: Any) { (in ExpectClass.foo(Any))
+8 c.foo(1) (in f(ExpectClass))
diff --git a/idea/testData/slicer/mpp/actualFunctionParameter/results.txt b/idea/testData/slicer/mpp/actualFunctionParameter/results.txt
index 6ec0bc31231..2e71cb57c27 100644
--- a/idea/testData/slicer/mpp/actualFunctionParameter/results.txt
+++ b/idea/testData/slicer/mpp/actualFunctionParameter/results.txt
@@ -1,3 +1,3 @@
-4 println(p)
-3 actual fun foo(p: Any) {
-4 foo(1)
+4 println(p) (in foo(Any))
+3 actual fun foo(p: Any) { (in foo(Any))
+4 foo(1) (in bar())
diff --git a/idea/testData/slicer/mpp/expectClassFunctionParameter/results.txt b/idea/testData/slicer/mpp/expectClassFunctionParameter/results.txt
index 5d4e4a1f9f2..e362c99680f 100644
--- a/idea/testData/slicer/mpp/expectClassFunctionParameter/results.txt
+++ b/idea/testData/slicer/mpp/expectClassFunctionParameter/results.txt
@@ -1,4 +1,4 @@
-10 c.foo(1)
-6 fun foo(p: Any)
-4 actual fun foo(p: Any) {
-5 println(p)
+10 c.foo(1) (in f(ExpectClass))
+6 fun foo(p: Any) (in ExpectClass.foo(Any))
+4 actual fun foo(p: Any) { (in ExpectClass.foo(Any))
+5 println(p) (in ExpectClass.foo(Any))
diff --git a/idea/testData/slicer/mpp/expectExtensionFunctionResultOut/results.txt b/idea/testData/slicer/mpp/expectExtensionFunctionResultOut/results.txt
index 788ac06c719..577a42e3e5d 100644
--- a/idea/testData/slicer/mpp/expectExtensionFunctionResultOut/results.txt
+++ b/idea/testData/slicer/mpp/expectExtensionFunctionResultOut/results.txt
@@ -1,8 +1,8 @@
-6 val result = 1.foo()
-3 expect fun Any.foo(): Any
-1 actual fun Any.foo(): Any {
-2 return this
+6 val result = 1.foo() (in bar())
+3 expect fun Any.foo(): Any (in foo() on Any)
+1 actual fun Any.foo(): Any { (in foo() on Any)
+2 return this (in foo() on Any)
1 actual fun Any.foo(): Any {
-6 val result = 1.foo()
-6 val result = 1.foo()
-7 println(result)
+6 val result = 1.foo() (in bar())
+6 val result = 1.foo() (in bar())
+7 println(result) (in bar())
diff --git a/idea/testData/slicer/mpp/expectFunctionParameter/results.txt b/idea/testData/slicer/mpp/expectFunctionParameter/results.txt
index 2226b1a4465..45c6465cdac 100644
--- a/idea/testData/slicer/mpp/expectFunctionParameter/results.txt
+++ b/idea/testData/slicer/mpp/expectFunctionParameter/results.txt
@@ -1,4 +1,4 @@
-6 foo(1)
-3 expect fun foo(p: Any)
-1 actual fun foo(p: Any) {
-2 println(p)
+6 foo(1) (in bar())
+3 expect fun foo(p: Any) (in foo(Any))
+1 actual fun foo(p: Any) { (in foo(Any))
+2 println(p) (in foo(Any))
diff --git a/idea/testData/slicer/mpp/expectFunctionResultIn/results.txt b/idea/testData/slicer/mpp/expectFunctionResultIn/results.txt
index 24cfb2735a4..46695e8e9be 100644
--- a/idea/testData/slicer/mpp/expectFunctionResultIn/results.txt
+++ b/idea/testData/slicer/mpp/expectFunctionResultIn/results.txt
@@ -1,8 +1,8 @@
-7 println(result)
-6 val result = foo(1)
-6 val result = foo(1)
+7 println(result) (in bar())
+6 val result = foo(1) (in bar())
+6 val result = foo(1) (in bar())
1 actual fun foo(p: Any): Any {
-2 return p
-1 actual fun foo(p: Any): Any {
-6 val result = foo(1)
+2 return p (in foo(Any))
+1 actual fun foo(p: Any): Any { (in foo(Any))
+6 val result = foo(1) (in bar())
3 expect fun foo(p: Any): Any
diff --git a/idea/testData/slicer/mpp/expectFunctionResultOut/results.txt b/idea/testData/slicer/mpp/expectFunctionResultOut/results.txt
index a911734ad85..c5cfbdac96f 100644
--- a/idea/testData/slicer/mpp/expectFunctionResultOut/results.txt
+++ b/idea/testData/slicer/mpp/expectFunctionResultOut/results.txt
@@ -1,8 +1,8 @@
-6 val result = foo(1)
-3 expect fun foo(p: Any): Any
-1 actual fun foo(p: Any): Any {
-2 return p
+6 val result = foo(1) (in bar())
+3 expect fun foo(p: Any): Any (in foo(Any))
+1 actual fun foo(p: Any): Any { (in foo(Any))
+2 return p (in foo(Any))
1 actual fun foo(p: Any): Any {
-6 val result = foo(1)
-6 val result = foo(1)
-7 println(result)
+6 val result = foo(1) (in bar())
+6 val result = foo(1) (in bar())
+7 println(result) (in bar())
diff --git a/idea/testData/slicer/mpp/expectPropertyResultIn/results.txt b/idea/testData/slicer/mpp/expectPropertyResultIn/results.txt
index 27e1489f526..edf79eee854 100644
--- a/idea/testData/slicer/mpp/expectPropertyResultIn/results.txt
+++ b/idea/testData/slicer/mpp/expectPropertyResultIn/results.txt
@@ -1,8 +1,8 @@
-7 println(result)
-6 val result = 1.property
-6 val result = 1.property
+7 println(result) (in bar())
+6 val result = 1.property (in bar())
+6 val result = 1.property (in bar())
1 actual val Int.property: Any
-2 get() = this
-1 actual val Int.property: Any
-6 val result = 1.property
+2 get() = this (in property: Any on Int)
+1 actual val Int.property: Any (in property: Any on Int)
+6 val result = 1.property (in bar())
3 expect val Int.property: Any
diff --git a/idea/testData/slicer/mpp/expectPropertyResultOut/results.txt b/idea/testData/slicer/mpp/expectPropertyResultOut/results.txt
index c21ce46f88c..9aa3d62ffe7 100644
--- a/idea/testData/slicer/mpp/expectPropertyResultOut/results.txt
+++ b/idea/testData/slicer/mpp/expectPropertyResultOut/results.txt
@@ -1,8 +1,8 @@
-6 val result = 1.property
-3 expect val Int.property: Any
-1 actual val Int.property: Any
-2 get() = this
-2 get() = this
-6 val result = 1.property
-6 val result = 1.property
-7 println(result)
+6 val result = 1.property (in bar())
+3 expect val Int.property: Any (in property: Any on Int)
+1 actual val Int.property: Any (in property: Any on Int)
+2 get() = this (in property: Any on Int)
+2 get() = this (in property: Any on Int)
+6 val result = 1.property (in bar())
+6 val result = 1.property (in bar())
+7 println(result) (in bar())
diff --git a/idea/testData/slicer/outflow/abstractExtensionMethodParameter.results.txt b/idea/testData/slicer/outflow/abstractExtensionMethodParameter.results.txt
index 5061672bb4e..7f56268e45b 100644
--- a/idea/testData/slicer/outflow/abstractExtensionMethodParameter.results.txt
+++ b/idea/testData/slicer/outflow/abstractExtensionMethodParameter.results.txt
@@ -1,8 +1,8 @@
-14 1.foo(s)
-4 fun Int.foo(p: Any)
+14 1.foo(s) (in bar(String) on I)
+4 fun Int.foo(p: Any) (in foo(Any) on Int)
3 public void foo(int receiver, Object p) {
4 System.out.println(p);
-9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958
-9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958
-8 override fun Int.foo(p: Any) {
-9 DUPLICATE: val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958
+9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958 (in foo(Any) on Int)
+9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958 (in foo(Any) on Int)
+8 override fun Int.foo(p: Any) { (in foo(Any) on Int)
+9 DUPLICATE: val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958 (in foo(Any) on Int)
diff --git a/idea/testData/slicer/outflow/abstractMethodParameter1.results.txt b/idea/testData/slicer/outflow/abstractMethodParameter1.results.txt
index 740a8dfcba0..bb63ed5d0fd 100644
--- a/idea/testData/slicer/outflow/abstractMethodParameter1.results.txt
+++ b/idea/testData/slicer/outflow/abstractMethodParameter1.results.txt
@@ -1,4 +1,4 @@
-4 fun foo(p: Any)
-8 override fun foo(p: Any) {
-9 val v = p
-9 val v = p
+4 fun foo(p: Any) (in I.foo(Any))
+8 override fun foo(p: Any) { (in C.foo(Any))
+9 val v = p (in C.foo(Any))
+9 val v = p (in C.foo(Any))
diff --git a/idea/testData/slicer/outflow/abstractMethodParameter2.results.txt b/idea/testData/slicer/outflow/abstractMethodParameter2.results.txt
index 1b06742630d..deb6fdfad51 100644
--- a/idea/testData/slicer/outflow/abstractMethodParameter2.results.txt
+++ b/idea/testData/slicer/outflow/abstractMethodParameter2.results.txt
@@ -1,8 +1,8 @@
-14 i.foo(s)
-4 fun foo(p: Any)
+14 i.foo(s) (in bar(I, String))
+4 fun foo(p: Any) (in I.foo(Any))
2 public void foo(Object p) {
3 System.out.println(p);
-9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958
-9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958
-8 override fun foo(p: Any) {
-9 DUPLICATE: val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958
+9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958 (in C.foo(Any))
+9 val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958 (in C.foo(Any))
+8 override fun foo(p: Any) { (in C.foo(Any))
+9 DUPLICATE: val v = p // this usage will be shown twice due to bug in Java implementation: https://youtrack.jetbrains.com/issue/IDEA-236958 (in C.foo(Any))
diff --git a/idea/testData/slicer/outflow/anonymousFunBodyExpression.results.txt b/idea/testData/slicer/outflow/anonymousFunBodyExpression.results.txt
index 189f13ba43a..10a22b1033b 100644
--- a/idea/testData/slicer/outflow/anonymousFunBodyExpression.results.txt
+++ b/idea/testData/slicer/outflow/anonymousFunBodyExpression.results.txt
@@ -1,8 +1,8 @@
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
-8 [LAMBDA CALLS] val x = foo(fun(n: Int) = n)
-3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
+8 [LAMBDA CALLS] val x = foo(fun(n: Int) = n) (in test())
+3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
3 fun foo(f: (Int) -> Int): Int {
-8 val x = foo(fun(n: Int) = n)
-8 val x = foo(fun(n: Int) = n)
+8 val x = foo(fun(n: Int) = n) (in test())
+8 val x = foo(fun(n: Int) = n) (in test())
diff --git a/idea/testData/slicer/outflow/anonymousFunReturnExpression.results.txt b/idea/testData/slicer/outflow/anonymousFunReturnExpression.results.txt
index bd116b369d6..717540d26c4 100644
--- a/idea/testData/slicer/outflow/anonymousFunReturnExpression.results.txt
+++ b/idea/testData/slicer/outflow/anonymousFunReturnExpression.results.txt
@@ -1,8 +1,8 @@
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
-8 [LAMBDA CALLS] val x = foo(fun(n: Int): Int { return n })
-3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 [LAMBDA CALLS] val x = foo(fun(n: Int): Int { return n }) (in test())
+3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
3 fun foo(f: (Int) -> Int): Int {
-8 val x = foo(fun(n: Int): Int { return n })
-8 val x = foo(fun(n: Int): Int { return n })
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
+8 val x = foo(fun(n: Int): Int { return n }) (in test())
diff --git a/idea/testData/slicer/outflow/callArgument.results.txt b/idea/testData/slicer/outflow/callArgument.results.txt
index eafe0030315..c5a95f5a7e4 100644
--- a/idea/testData/slicer/outflow/callArgument.results.txt
+++ b/idea/testData/slicer/outflow/callArgument.results.txt
@@ -1,6 +1,6 @@
-7 val x = 1
-7 val x = 1
-9 foo(x)
-2 fun foo(n: Int) {
-3 val y = n
-3 val y = n
+7 val x = 1 (in test())
+7 val x = 1 (in test())
+9 foo(x) (in test())
+2 fun foo(n: Int) { (in foo(Int))
+3 val y = n (in foo(Int))
+3 val y = n (in foo(Int))
diff --git a/idea/testData/slicer/outflow/callArgumentKJK.results.txt b/idea/testData/slicer/outflow/callArgumentKJK.results.txt
index feab245d97c..fd027b922ae 100644
--- a/idea/testData/slicer/outflow/callArgumentKJK.results.txt
+++ b/idea/testData/slicer/outflow/callArgumentKJK.results.txt
@@ -1,10 +1,10 @@
-8 val x = 1
-8 val x = 1
-9 J().foo(x)
+8 val x = 1 (in K.test())
+8 val x = 1 (in K.test())
+9 J().foo(x) (in K.test())
2 void foo(int n) {
3 int y = n;
3 int y = n;
4 new K().bar(y);
-3 fun bar(m: Int) {
-4 val z = m
-4 val z = m
+3 fun bar(m: Int) { (in K.bar(Int))
+4 val z = m (in K.bar(Int))
+4 val z = m (in K.bar(Int))
diff --git a/idea/testData/slicer/outflow/cast.results.txt b/idea/testData/slicer/outflow/cast.results.txt
index f0d4a0e6ae6..d096579cb8a 100644
--- a/idea/testData/slicer/outflow/cast.results.txt
+++ b/idea/testData/slicer/outflow/cast.results.txt
@@ -1,7 +1,7 @@
-3 fun test(o: Any) {
-4 val x = o as String
-4 val x = o as String
-4 val x = o as String
-5 val y = o as? String
-5 val y = o as? String
-5 val y = o as? String
+3 fun test(o: Any) { (in test(Any))
+4 val x = o as String (in test(Any))
+4 val x = o as String (in test(Any))
+4 val x = o as String (in test(Any))
+5 val y = o as? String (in test(Any))
+5 val y = o as? String (in test(Any))
+5 val y = o as? String (in test(Any))
diff --git a/idea/testData/slicer/outflow/defaultExplicitPrimaryConstructorCalls.results.txt b/idea/testData/slicer/outflow/defaultExplicitPrimaryConstructorCalls.results.txt
index 94f004deac5..a66681fde75 100644
--- a/idea/testData/slicer/outflow/defaultExplicitPrimaryConstructorCalls.results.txt
+++ b/idea/testData/slicer/outflow/defaultExplicitPrimaryConstructorCalls.results.txt
@@ -1,9 +1,9 @@
-3 open class A() {
+3 open class A() { (in A)
2 J() {
-4 constructor(n: Int) : this()
+4 constructor(n: Int) : this() (in constructor A(Int))
7 super();
-7 class B : A()
+7 class B : A() (in B)
11 A a = new A();
-10 constructor() : super()
-14 val x = A()
-14 val x = A()
+10 constructor() : super() (in constructor C())
+14 val x = A() (in test())
+14 val x = A() (in test())
diff --git a/idea/testData/slicer/outflow/diamondHierarchyJKLeafClassFun.results.txt b/idea/testData/slicer/outflow/diamondHierarchyJKLeafClassFun.results.txt
index 54c3da0171b..ca16c40511e 100644
--- a/idea/testData/slicer/outflow/diamondHierarchyJKLeafClassFun.results.txt
+++ b/idea/testData/slicer/outflow/diamondHierarchyJKLeafClassFun.results.txt
@@ -1,22 +1,22 @@
-4 override fun foo() = 4
-4 override fun foo() = 4
+4 override fun foo() = 4 (in D.foo())
+4 override fun foo() = 4 (in D)
2 public int foo();
-8 val x = a.foo()
-8 val x = a.foo()
-9 val y = b.foo()
-9 val y = b.foo()
-10 val z = c.foo()
-10 val z = c.foo()
-11 val u = d.foo()
-11 val u = d.foo()
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+11 val u = d.foo() (in test(A, B, C, D))
+11 val u = d.foo() (in test(A, B, C, D))
6 public int foo() {
-8 DUPLICATE: val x = a.foo()
-9 DUPLICATE: val y = b.foo()
-10 DUPLICATE: val z = c.foo()
-11 DUPLICATE: val u = d.foo()
+8 DUPLICATE: val x = a.foo() (in test(A, B, C, D))
+9 DUPLICATE: val y = b.foo() (in test(A, B, C, D))
+10 DUPLICATE: val z = c.foo() (in test(A, B, C, D))
+11 DUPLICATE: val u = d.foo() (in test(A, B, C, D))
12 public int foo();
-8 DUPLICATE: val x = a.foo()
-9 DUPLICATE: val y = b.foo()
-10 DUPLICATE: val z = c.foo()
-11 DUPLICATE: val u = d.foo()
-11 DUPLICATE: val u = d.foo()
+8 DUPLICATE: val x = a.foo() (in test(A, B, C, D))
+9 DUPLICATE: val y = b.foo() (in test(A, B, C, D))
+10 DUPLICATE: val z = c.foo() (in test(A, B, C, D))
+11 DUPLICATE: val u = d.foo() (in test(A, B, C, D))
+11 DUPLICATE: val u = d.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/outflow/diamondHierarchyJKMiddleClassFun.results.txt b/idea/testData/slicer/outflow/diamondHierarchyJKMiddleClassFun.results.txt
index af121d2565c..6aadb7ca398 100644
--- a/idea/testData/slicer/outflow/diamondHierarchyJKMiddleClassFun.results.txt
+++ b/idea/testData/slicer/outflow/diamondHierarchyJKMiddleClassFun.results.txt
@@ -1,12 +1,12 @@
-4 override fun foo() = 2
-4 override fun foo() = 2
+4 override fun foo() = 2 (in B.foo())
+4 override fun foo() = 2 (in B)
2 public int foo();
-8 val x = a.foo()
-8 val x = a.foo()
-9 val y = b.foo()
-9 val y = b.foo()
-10 val z = c.foo()
-10 val z = c.foo()
-11 val u = d.foo()
-11 val u = d.foo()
-9 DUPLICATE: val y = b.foo()
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+11 val u = d.foo() (in test(A, B, C, D))
+11 val u = d.foo() (in test(A, B, C, D))
+9 DUPLICATE: val y = b.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/outflow/diamondHierarchyJKMiddleInterfaceFun.results.txt b/idea/testData/slicer/outflow/diamondHierarchyJKMiddleInterfaceFun.results.txt
index d57a2627a9f..e6ebaa63209 100644
--- a/idea/testData/slicer/outflow/diamondHierarchyJKMiddleInterfaceFun.results.txt
+++ b/idea/testData/slicer/outflow/diamondHierarchyJKMiddleInterfaceFun.results.txt
@@ -1,12 +1,12 @@
-4 override fun foo() = 3
-4 override fun foo() = 3
+4 override fun foo() = 3 (in C.foo())
+4 override fun foo() = 3 (in C)
2 public int foo();
-8 val x = a.foo()
-8 val x = a.foo()
-9 val y = b.foo()
-9 val y = b.foo()
-10 val z = c.foo()
-10 val z = c.foo()
-11 val u = d.foo()
-11 val u = d.foo()
-10 DUPLICATE: val z = c.foo()
+8 val x = a.foo() (in test(A, B, C, D))
+8 val x = a.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+9 val y = b.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+10 val z = c.foo() (in test(A, B, C, D))
+11 val u = d.foo() (in test(A, B, C, D))
+11 val u = d.foo() (in test(A, B, C, D))
+10 DUPLICATE: val z = c.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/outflow/diamondHierarchyLeafClassFun.results.txt b/idea/testData/slicer/outflow/diamondHierarchyLeafClassFun.results.txt
index 9c48ea76332..963497f3db0 100644
--- a/idea/testData/slicer/outflow/diamondHierarchyLeafClassFun.results.txt
+++ b/idea/testData/slicer/outflow/diamondHierarchyLeafClassFun.results.txt
@@ -1,10 +1,10 @@
-16 override fun foo() = 4
-16 override fun foo() = 4
-20 val x = a.foo()
-20 val x = a.foo()
-21 val y = b.foo()
-21 val y = b.foo()
-22 val z = c.foo()
-22 val z = c.foo()
-23 val u = d.foo()
-23 val u = d.foo()
+16 override fun foo() = 4 (in D.foo())
+16 override fun foo() = 4 (in D)
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
+23 val u = d.foo() (in test(A, B, C, D))
+23 val u = d.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/outflow/diamondHierarchyMiddleClassFun.results.txt b/idea/testData/slicer/outflow/diamondHierarchyMiddleClassFun.results.txt
index 63905fff14c..4bfea009d1a 100644
--- a/idea/testData/slicer/outflow/diamondHierarchyMiddleClassFun.results.txt
+++ b/idea/testData/slicer/outflow/diamondHierarchyMiddleClassFun.results.txt
@@ -1,6 +1,6 @@
-8 override fun foo() = 2
-8 override fun foo() = 2
-20 val x = a.foo()
-20 val x = a.foo()
-21 val y = b.foo()
-21 val y = b.foo()
+8 override fun foo() = 2 (in B.foo())
+8 override fun foo() = 2 (in B)
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
+21 val y = b.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/outflow/diamondHierarchyMiddleInterfaceFun.results.txt b/idea/testData/slicer/outflow/diamondHierarchyMiddleInterfaceFun.results.txt
index 7d63f48ac4f..2cccff232b6 100644
--- a/idea/testData/slicer/outflow/diamondHierarchyMiddleInterfaceFun.results.txt
+++ b/idea/testData/slicer/outflow/diamondHierarchyMiddleInterfaceFun.results.txt
@@ -1,6 +1,6 @@
-12 override fun foo() = 3
-12 override fun foo() = 3
-20 val x = a.foo()
-20 val x = a.foo()
-22 val z = c.foo()
-22 val z = c.foo()
+12 override fun foo() = 3 (in C.foo())
+12 override fun foo() = 3 (in C)
+20 val x = a.foo() (in test(A, B, C, D))
+20 val x = a.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
+22 val z = c.foo() (in test(A, B, C, D))
diff --git a/idea/testData/slicer/outflow/docCommentRefs.results.txt b/idea/testData/slicer/outflow/docCommentRefs.results.txt
index 24862e3c6db..7ebaba41480 100644
--- a/idea/testData/slicer/outflow/docCommentRefs.results.txt
+++ b/idea/testData/slicer/outflow/docCommentRefs.results.txt
@@ -1,3 +1,3 @@
-4 fun foo(): Int = 10
-10 val v = foo()
-10 val v = foo()
+4 fun foo(): Int = 10 (in KotlinClass)
+10 val v = foo() (in KotlinClass.bar())
+10 val v = foo() (in KotlinClass.bar())
diff --git a/idea/testData/slicer/outflow/docCommentRefs2.results.txt b/idea/testData/slicer/outflow/docCommentRefs2.results.txt
index 19d4b4f8779..7c20ac93828 100644
--- a/idea/testData/slicer/outflow/docCommentRefs2.results.txt
+++ b/idea/testData/slicer/outflow/docCommentRefs2.results.txt
@@ -1,3 +1,3 @@
3 val String.foo: Int
-10 val v = "".foo
-10 val v = "".foo
+10 val v = "".foo (in bar())
+10 val v = "".foo (in bar())
diff --git a/idea/testData/slicer/outflow/doubleLambdaResult.results.txt b/idea/testData/slicer/outflow/doubleLambdaResult.results.txt
index 00967a6bfe0..839241bb8ea 100644
--- a/idea/testData/slicer/outflow/doubleLambdaResult.results.txt
+++ b/idea/testData/slicer/outflow/doubleLambdaResult.results.txt
@@ -1,11 +1,11 @@
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS] val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS] val x = foo(1, 2) { { it } }
-8 [LAMBDA CALLS] [LAMBDA CALLS] val x = foo(1, 2) { { it } }
-3 [LAMBDA CALLS] [LAMBDA CALLS] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-4 [LAMBDA CALLS] return f(a)(b)
-4 return f(a)(b)
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS] val x = foo(1, 2) { { it } } (in test())
+8 [LAMBDA CALLS] [LAMBDA CALLS] val x = foo(1, 2) { { it } } (in test())
+3 [LAMBDA CALLS] [LAMBDA CALLS] fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int { (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 [LAMBDA CALLS] return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
+4 return f(a)(b) (in foo(Int, Int, (Int) -> (Int) -> Int))
3 fun foo(a: Int, b: Int, f: (Int) -> (Int) -> Int): Int {
-8 val x = foo(1, 2) { { it } }
-8 val x = foo(1, 2) { { it } }
+8 val x = foo(1, 2) { { it } } (in test())
+8 val x = foo(1, 2) { { it } } (in test())
diff --git a/idea/testData/slicer/outflow/explicitLambdaReturnExpression.results.txt b/idea/testData/slicer/outflow/explicitLambdaReturnExpression.results.txt
index ed4acab1211..dccf603618b 100644
--- a/idea/testData/slicer/outflow/explicitLambdaReturnExpression.results.txt
+++ b/idea/testData/slicer/outflow/explicitLambdaReturnExpression.results.txt
@@ -1,8 +1,8 @@
-9 if (it < 0) return@foo 0
-8 val x = foo {
-8 [LAMBDA CALLS] val x = foo {
-3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+9 if (it < 0) return@foo 0 (in test())
+8 val x = foo { (in test())
+8 [LAMBDA CALLS] val x = foo { (in test())
+3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
3 fun foo(f: (Int) -> Int): Int {
-8 val x = foo {
-8 val x = foo {
+8 val x = foo { (in test())
+8 val x = foo { (in test())
diff --git a/idea/testData/slicer/outflow/extensionIndexingDereferences.results.txt b/idea/testData/slicer/outflow/extensionIndexingDereferences.results.txt
index 8fc37514958..6b8c670503a 100644
--- a/idea/testData/slicer/outflow/extensionIndexingDereferences.results.txt
+++ b/idea/testData/slicer/outflow/extensionIndexingDereferences.results.txt
@@ -1,26 +1,26 @@
-15 val x = A()
-18 x[1]
-6 operator fun A.get(i: Int) = this
-6 operator fun A.get(i: Int) = this
+15 val x = A() (in test())
+18 x[1] (in test())
+6 operator fun A.get(i: Int) = this (in get(Int) on A)
+6 operator fun A.get(i: Int) = this (in get(Int) on A)
6 operator fun A.get(i: Int) = this
-18 x[1]
-20 x[1] += y
-8 operator fun A.plusAssign(a: A) {
-9 val v = this
-9 val v = this
-21 x[1] *= y
-11 operator fun A.times(a: A) = this
-11 operator fun A.times(a: A) = this
+18 x[1] (in test())
+20 x[1] += y (in test())
+8 operator fun A.plusAssign(a: A) { (in plusAssign(A) on A)
+9 val v = this (in plusAssign(A) on A)
+9 val v = this (in plusAssign(A) on A)
+21 x[1] *= y (in test())
+11 operator fun A.times(a: A) = this (in times(A) on A)
+11 operator fun A.times(a: A) = this (in times(A) on A)
11 operator fun A.times(a: A) = this
-21 x[1] *= y
-22 x[1]++
-12 operator fun A.inc() = this
-12 operator fun A.inc() = this
+21 x[1] *= y (in test())
+22 x[1]++ (in test())
+12 operator fun A.inc() = this (in inc() on A)
+12 operator fun A.inc() = this (in inc() on A)
12 operator fun A.inc() = this
-22 x[1]++
-12 DUPLICATE: operator fun A.inc() = this
-19 x[1] = y
-20 x[1] += y
-6 DUPLICATE: operator fun A.get(i: Int) = this
-21 x[1] *= y
-22 x[1]++
+22 x[1]++ (in test())
+12 DUPLICATE: operator fun A.inc() = this (in inc() on A)
+19 x[1] = y (in test())
+20 x[1] += y (in test())
+6 DUPLICATE: operator fun A.get(i: Int) = this (in get(Int) on A)
+21 x[1] *= y (in test())
+22 x[1]++ (in test())
diff --git a/idea/testData/slicer/outflow/forVariable.results.txt b/idea/testData/slicer/outflow/forVariable.results.txt
index a6f8f6aaeb0..f43dff236ed 100644
--- a/idea/testData/slicer/outflow/forVariable.results.txt
+++ b/idea/testData/slicer/outflow/forVariable.results.txt
@@ -1,4 +1,4 @@
-6 for (s in list)
-7 if (s.length == 0)
-8 f1(s)
-3 fun f1(param: String) {}
+6 for (s in list) (in f4(List))
+7 if (s.length == 0) (in f4(List))
+8 f1(s) (in f4(List))
+3 fun f1(param: String) {} (in f1(String))
diff --git a/idea/testData/slicer/outflow/funBodyExpression.results.txt b/idea/testData/slicer/outflow/funBodyExpression.results.txt
index 14dad29430b..292cdac0999 100644
--- a/idea/testData/slicer/outflow/funBodyExpression.results.txt
+++ b/idea/testData/slicer/outflow/funBodyExpression.results.txt
@@ -1,4 +1,4 @@
-3 fun foo(n: Int): Int = n
+3 fun foo(n: Int): Int = n (in foo(Int))
3 fun foo(n: Int): Int = n
-6 val x = foo(1)
-6 val x = foo(1)
+6 val x = foo(1) (in test())
+6 val x = foo(1) (in test())
diff --git a/idea/testData/slicer/outflow/funParameterUsages.results.txt b/idea/testData/slicer/outflow/funParameterUsages.results.txt
index 5b31c3816d0..d0e3fe33016 100644
--- a/idea/testData/slicer/outflow/funParameterUsages.results.txt
+++ b/idea/testData/slicer/outflow/funParameterUsages.results.txt
@@ -1,7 +1,7 @@
-3 fun foo(n: Int) {
-4 val x = n
-4 val x = n
-7 y = n
-6 val y: Int
-9 bar(n)
-12 fun bar(m: Int) {
+3 fun foo(n: Int) { (in foo(Int))
+4 val x = n (in foo(Int))
+4 val x = n (in foo(Int))
+7 y = n (in foo(Int))
+6 val y: Int (in foo(Int))
+9 bar(n) (in foo(Int))
+12 fun bar(m: Int) { (in bar(Int))
diff --git a/idea/testData/slicer/outflow/funResultViaCallableRef.results.txt b/idea/testData/slicer/outflow/funResultViaCallableRef.results.txt
index 9c2d2b67643..a99e26338a9 100644
--- a/idea/testData/slicer/outflow/funResultViaCallableRef.results.txt
+++ b/idea/testData/slicer/outflow/funResultViaCallableRef.results.txt
@@ -1,8 +1,8 @@
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-9 [LAMBDA CALLS] val x = foo(::bar)
-3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
+9 [LAMBDA CALLS] val x = foo(::bar) (in test())
+3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
3 fun foo(f: (Int) -> Int): Int {
-9 val x = foo(::bar)
-9 val x = foo(::bar)
+9 val x = foo(::bar) (in test())
+9 val x = foo(::bar) (in test())
diff --git a/idea/testData/slicer/outflow/funResultViaCallableRefWithAssignment.results.txt b/idea/testData/slicer/outflow/funResultViaCallableRefWithAssignment.results.txt
index a43f3051cf8..6cc075c2b3b 100644
--- a/idea/testData/slicer/outflow/funResultViaCallableRefWithAssignment.results.txt
+++ b/idea/testData/slicer/outflow/funResultViaCallableRefWithAssignment.results.txt
@@ -1,10 +1,10 @@
-8 fun bar(n: Int) = n
-8 fun bar(n: Int) = n
-9 [LAMBDA CALLS] val f = ::bar
-9 [LAMBDA CALLS] val f = ::bar
-10 [LAMBDA CALLS] val x = foo(f)
-3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+8 fun bar(n: Int) = n (in test())
+8 fun bar(n: Int) = n (in test())
+9 [LAMBDA CALLS] val f = ::bar (in test())
+9 [LAMBDA CALLS] val f = ::bar (in test())
+10 [LAMBDA CALLS] val x = foo(f) (in test())
+3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
3 fun foo(f: (Int) -> Int): Int {
-10 val x = foo(f)
-10 val x = foo(f)
+10 val x = foo(f) (in test())
+10 val x = foo(f) (in test())
diff --git a/idea/testData/slicer/outflow/funResultViaCallableRefWithDirectCall.results.txt b/idea/testData/slicer/outflow/funResultViaCallableRefWithDirectCall.results.txt
index 7bad596ae18..f878fe59078 100644
--- a/idea/testData/slicer/outflow/funResultViaCallableRefWithDirectCall.results.txt
+++ b/idea/testData/slicer/outflow/funResultViaCallableRefWithDirectCall.results.txt
@@ -1,5 +1,5 @@
-4 fun bar(n: Int) = n
-4 fun bar(n: Int) = n
-5 [LAMBDA CALLS] val x = (::bar)(1)
-5 val x = (::bar)(1)
-5 val x = (::bar)(1)
+4 fun bar(n: Int) = n (in test())
+4 fun bar(n: Int) = n (in test())
+5 [LAMBDA CALLS] val x = (::bar)(1) (in test())
+5 val x = (::bar)(1) (in test())
+5 val x = (::bar)(1) (in test())
diff --git a/idea/testData/slicer/outflow/funReturnExpression.results.txt b/idea/testData/slicer/outflow/funReturnExpression.results.txt
index 26af5d4593e..3a1f208acbc 100644
--- a/idea/testData/slicer/outflow/funReturnExpression.results.txt
+++ b/idea/testData/slicer/outflow/funReturnExpression.results.txt
@@ -1,4 +1,4 @@
-4 return n
+4 return n (in foo(Int))
3 fun foo(n: Int): Int {
-8 val x = foo(1)
-8 val x = foo(1)
+8 val x = foo(1) (in test())
+8 val x = foo(1) (in test())
diff --git a/idea/testData/slicer/outflow/functionCalls.results.txt b/idea/testData/slicer/outflow/functionCalls.results.txt
index 94fb8f8d78c..24cb6fa2291 100644
--- a/idea/testData/slicer/outflow/functionCalls.results.txt
+++ b/idea/testData/slicer/outflow/functionCalls.results.txt
@@ -1,4 +1,4 @@
3 fun foo(n: Int) = n + 1
3 int x = FunctionCallsKt.foo(2);
-6 val x = foo(1)
-6 val x = foo(1)
+6 val x = foo(1) (in test(Int))
+6 val x = foo(1) (in test(Int))
diff --git a/idea/testData/slicer/outflow/getFunCalls.results.txt b/idea/testData/slicer/outflow/getFunCalls.results.txt
index 0f73e0e67a0..dcbb9c21855 100644
--- a/idea/testData/slicer/outflow/getFunCalls.results.txt
+++ b/idea/testData/slicer/outflow/getFunCalls.results.txt
@@ -1,3 +1,3 @@
-4 operator fun get(n: Int) = this
-8 val x = A()[2]
-8 val x = A()[2]
+4 operator fun get(n: Int) = this (in A)
+8 val x = A()[2] (in test())
+8 val x = A()[2] (in test())
diff --git a/idea/testData/slicer/outflow/getterExpressionBody.results.txt b/idea/testData/slicer/outflow/getterExpressionBody.results.txt
index bd8b273201f..fef2361f1c5 100644
--- a/idea/testData/slicer/outflow/getterExpressionBody.results.txt
+++ b/idea/testData/slicer/outflow/getterExpressionBody.results.txt
@@ -1,4 +1,4 @@
-4 get() = 0
-4 get() = 0
-7 val x = foo
-7 val x = foo
+4 get() = 0 (in foo: Int)
+4 get() = 0 (in foo: Int)
+7 val x = foo (in test())
+7 val x = foo (in test())
diff --git a/idea/testData/slicer/outflow/getterReturnExpression.results.txt b/idea/testData/slicer/outflow/getterReturnExpression.results.txt
index 83ac2411725..4a96fbaa923 100644
--- a/idea/testData/slicer/outflow/getterReturnExpression.results.txt
+++ b/idea/testData/slicer/outflow/getterReturnExpression.results.txt
@@ -1,4 +1,4 @@
-5 return 0
-4 get(): Int {
-9 val x = foo
-9 val x = foo
+5 return 0 (in foo: Int)
+4 get(): Int { (in foo: Int)
+9 val x = foo (in test())
+9 val x = foo (in test())
diff --git a/idea/testData/slicer/outflow/ifExpression.results.txt b/idea/testData/slicer/outflow/ifExpression.results.txt
index 2ab3e313974..64252490a52 100644
--- a/idea/testData/slicer/outflow/ifExpression.results.txt
+++ b/idea/testData/slicer/outflow/ifExpression.results.txt
@@ -1,3 +1,3 @@
-3 fun test(m: Int, n: Int) {
-4 val x = if (m > 1) n else 1
-4 val x = if (m > 1) n else 1
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
+4 val x = if (m > 1) n else 1 (in test(Int, Int))
diff --git a/idea/testData/slicer/outflow/implicitReceiver.results.txt b/idea/testData/slicer/outflow/implicitReceiver.results.txt
index bdf746def21..f5966a3f9f0 100644
--- a/idea/testData/slicer/outflow/implicitReceiver.results.txt
+++ b/idea/testData/slicer/outflow/implicitReceiver.results.txt
@@ -1,7 +1,7 @@
-16 "A".foo()
-9 fun String.foo() {
-5 fun String.stringExtensionFun() = this
-5 fun String.stringExtensionFun() = this
-5 fun String.stringExtensionFun() = this
-10 val string = stringExtensionFun()
-10 val string = stringExtensionFun()
+16 "A".foo() (in outer() on Int)
+9 fun String.foo() { (in outer() on Int)
+5 fun String.stringExtensionFun() = this (in outer() on Int)
+5 fun String.stringExtensionFun() = this (in outer() on Int)
+5 fun String.stringExtensionFun() = this (in outer() on Int)
+10 val string = stringExtensionFun() (in outer() on Int)
+10 val string = stringExtensionFun() (in outer() on Int)
diff --git a/idea/testData/slicer/outflow/indexingDereferences.results.txt b/idea/testData/slicer/outflow/indexingDereferences.results.txt
index 3bf4d7e7262..1cfab0b90d5 100644
--- a/idea/testData/slicer/outflow/indexingDereferences.results.txt
+++ b/idea/testData/slicer/outflow/indexingDereferences.results.txt
@@ -1,6 +1,6 @@
-15 val x = A()
-18 DEREFERENCE: x[1]
-19 DEREFERENCE: x[1] = y
-20 DEREFERENCE: x[1] += y
-21 DEREFERENCE: x[1] *= y
-22 DEREFERENCE: x[1]++
+15 val x = A() (in test())
+18 DEREFERENCE: x[1] (in test())
+19 DEREFERENCE: x[1] = y (in test())
+20 DEREFERENCE: x[1] += y (in test())
+21 DEREFERENCE: x[1] *= y (in test())
+22 DEREFERENCE: x[1]++ (in test())
diff --git a/idea/testData/slicer/outflow/invokeExtensionLambda.results.txt b/idea/testData/slicer/outflow/invokeExtensionLambda.results.txt
index 79bb59916d3..476a56d1f66 100644
--- a/idea/testData/slicer/outflow/invokeExtensionLambda.results.txt
+++ b/idea/testData/slicer/outflow/invokeExtensionLambda.results.txt
@@ -1,46 +1,46 @@
-3 fun String.foo(p: String) {
-4 val v1 = f(p, { this })
-11 fun f(receiver: String, lambda: String.() -> String): String {
-12 return lambda.invoke(receiver)
-12 [LAMBDA RECEIVER] return lambda.invoke(receiver)
-11 [LAMBDA RECEIVER] fun f(receiver: String, lambda: String.() -> String): String {
-4 [LAMBDA RECEIVER] val v1 = f(p, { this })
-4 val v1 = f(p, { this })
-4 val v1 = f(p, { this })
-4 [LAMBDA CALLS] val v1 = f(p, { this })
-11 [LAMBDA CALLS] fun f(receiver: String, lambda: String.() -> String): String {
-12 [LAMBDA CALLS] return lambda.invoke(receiver)
-12 return lambda.invoke(receiver)
+3 fun String.foo(p: String) { (in foo(String) on String)
+4 val v1 = f(p, { this }) (in foo(String) on String)
+11 fun f(receiver: String, lambda: String.() -> String): String { (in f(String, String.() -> String))
+12 return lambda.invoke(receiver) (in f(String, String.() -> String))
+12 [LAMBDA RECEIVER] return lambda.invoke(receiver) (in f(String, String.() -> String))
+11 [LAMBDA RECEIVER] fun f(receiver: String, lambda: String.() -> String): String { (in f(String, String.() -> String))
+4 [LAMBDA RECEIVER] val v1 = f(p, { this }) (in foo(String) on String)
+4 val v1 = f(p, { this }) (in foo(String) on String)
+4 val v1 = f(p, { this }) (in foo(String) on String)
+4 [LAMBDA CALLS] val v1 = f(p, { this }) (in foo(String) on String)
+11 [LAMBDA CALLS] fun f(receiver: String, lambda: String.() -> String): String { (in f(String, String.() -> String))
+12 [LAMBDA CALLS] return lambda.invoke(receiver) (in f(String, String.() -> String))
+12 return lambda.invoke(receiver) (in f(String, String.() -> String))
11 fun f(receiver: String, lambda: String.() -> String): String {
-4 val v1 = f(p, { this })
-4 val v1 = f(p, { this })
-6 val v2 = g("a", "b", p, { p1, p2 -> p2 })
-15 fun g(a: String, b: String, c: String, lambda: String.(String, String) -> String): String {
-16 return lambda.invoke(a, b, c)
-16 [LAMBDA PARAMETER #1] return lambda.invoke(a, b, c)
-15 [LAMBDA PARAMETER #1] fun g(a: String, b: String, c: String, lambda: String.(String, String) -> String): String {
-6 [LAMBDA PARAMETER #1] val v2 = g("a", "b", p, { p1, p2 -> p2 })
-6 val v2 = g("a", "b", p, { p1, p2 -> p2 })
-6 val v2 = g("a", "b", p, { p1, p2 -> p2 })
-6 val v2 = g("a", "b", p, { p1, p2 -> p2 })
-6 [LAMBDA CALLS] val v2 = g("a", "b", p, { p1, p2 -> p2 })
-15 [LAMBDA CALLS] fun g(a: String, b: String, c: String, lambda: String.(String, String) -> String): String {
-16 [LAMBDA CALLS] return lambda.invoke(a, b, c)
-16 return lambda.invoke(a, b, c)
+4 val v1 = f(p, { this }) (in foo(String) on String)
+4 val v1 = f(p, { this }) (in foo(String) on String)
+6 val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+15 fun g(a: String, b: String, c: String, lambda: String.(String, String) -> String): String { (in g(String, String, String, String.(String, String) -> String))
+16 return lambda.invoke(a, b, c) (in g(String, String, String, String.(String, String) -> String))
+16 [LAMBDA PARAMETER #1] return lambda.invoke(a, b, c) (in g(String, String, String, String.(String, String) -> String))
+15 [LAMBDA PARAMETER #1] fun g(a: String, b: String, c: String, lambda: String.(String, String) -> String): String { (in g(String, String, String, String.(String, String) -> String))
+6 [LAMBDA PARAMETER #1] val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+6 val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+6 val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+6 val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+6 [LAMBDA CALLS] val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+15 [LAMBDA CALLS] fun g(a: String, b: String, c: String, lambda: String.(String, String) -> String): String { (in g(String, String, String, String.(String, String) -> String))
+16 [LAMBDA CALLS] return lambda.invoke(a, b, c) (in g(String, String, String, String.(String, String) -> String))
+16 return lambda.invoke(a, b, c) (in g(String, String, String, String.(String, String) -> String))
15 fun g(a: String, b: String, c: String, lambda: String.(String, String) -> String): String {
-6 val v2 = g("a", "b", p, { p1, p2 -> p2 })
-6 val v2 = g("a", "b", p, { p1, p2 -> p2 })
-8 val v3 = inlineF(p, { this })
-19 (INLINE CALL inlineF) inline fun inlineF(receiver: String, lambda: String.() -> String): String {
-20 (INLINE CALL inlineF) return lambda.invoke(receiver)
-20 (INLINE CALL inlineF) [LAMBDA RECEIVER] return lambda.invoke(receiver)
-19 (INLINE CALL inlineF) [LAMBDA RECEIVER] inline fun inlineF(receiver: String, lambda: String.() -> String): String {
-8 [LAMBDA RECEIVER] val v3 = inlineF(p, { this })
-8 val v3 = inlineF(p, { this })
-8 val v3 = inlineF(p, { this })
-8 [LAMBDA CALLS] val v3 = inlineF(p, { this })
-19 (INLINE CALL inlineF) [LAMBDA CALLS] inline fun inlineF(receiver: String, lambda: String.() -> String): String {
-20 (INLINE CALL inlineF) [LAMBDA CALLS] return lambda.invoke(receiver)
-20 (INLINE CALL inlineF) return lambda.invoke(receiver)
-8 val v3 = inlineF(p, { this })
-8 val v3 = inlineF(p, { this })
+6 val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+6 val v2 = g("a", "b", p, { p1, p2 -> p2 }) (in foo(String) on String)
+8 val v3 = inlineF(p, { this }) (in foo(String) on String)
+19 (INLINE CALL inlineF) inline fun inlineF(receiver: String, lambda: String.() -> String): String { (in inlineF(String, String.() -> String))
+20 (INLINE CALL inlineF) return lambda.invoke(receiver) (in inlineF(String, String.() -> String))
+20 (INLINE CALL inlineF) [LAMBDA RECEIVER] return lambda.invoke(receiver) (in inlineF(String, String.() -> String))
+19 (INLINE CALL inlineF) [LAMBDA RECEIVER] inline fun inlineF(receiver: String, lambda: String.() -> String): String { (in inlineF(String, String.() -> String))
+8 [LAMBDA RECEIVER] val v3 = inlineF(p, { this }) (in foo(String) on String)
+8 val v3 = inlineF(p, { this }) (in foo(String) on String)
+8 val v3 = inlineF(p, { this }) (in foo(String) on String)
+8 [LAMBDA CALLS] val v3 = inlineF(p, { this }) (in foo(String) on String)
+19 (INLINE CALL inlineF) [LAMBDA CALLS] inline fun inlineF(receiver: String, lambda: String.() -> String): String { (in inlineF(String, String.() -> String))
+20 (INLINE CALL inlineF) [LAMBDA CALLS] return lambda.invoke(receiver) (in inlineF(String, String.() -> String))
+20 (INLINE CALL inlineF) return lambda.invoke(receiver) (in inlineF(String, String.() -> String))
+8 val v3 = inlineF(p, { this }) (in foo(String) on String)
+8 val v3 = inlineF(p, { this }) (in foo(String) on String)
diff --git a/idea/testData/slicer/outflow/invokeExtensionLambda2.results.txt b/idea/testData/slicer/outflow/invokeExtensionLambda2.results.txt
index e1b958860b1..fe4a08cfbd4 100644
--- a/idea/testData/slicer/outflow/invokeExtensionLambda2.results.txt
+++ b/idea/testData/slicer/outflow/invokeExtensionLambda2.results.txt
@@ -1,20 +1,20 @@
-3 fun String.foo(p: String) {
-4 val v1 = bar(p) { { this } }
-7 (INLINE CALL bar) inline fun bar(x: String, lambda: () -> String.() -> String): String {
-8 (INLINE CALL bar) return lambda()(x)
-8 (INLINE CALL bar) [LAMBDA RECEIVER] return lambda()(x)
-8 (INLINE CALL bar) [LAMBDA IN] [LAMBDA RECEIVER] return lambda()(x)
-7 (INLINE CALL bar) [LAMBDA IN] [LAMBDA RECEIVER] inline fun bar(x: String, lambda: () -> String.() -> String): String {
-4 [LAMBDA IN] [LAMBDA RECEIVER] val v1 = bar(p) { { this } }
-4 [LAMBDA RECEIVER] val v1 = bar(p) { { this } }
-4 [LAMBDA RECEIVER] val v1 = bar(p) { { this } }
-4 val v1 = bar(p) { { this } }
-4 val v1 = bar(p) { { this } }
-4 [LAMBDA CALLS] val v1 = bar(p) { { this } }
-4 [LAMBDA CALLS] val v1 = bar(p) { { this } }
-4 [LAMBDA CALLS] [LAMBDA CALLS] val v1 = bar(p) { { this } }
-7 (INLINE CALL bar) [LAMBDA CALLS] [LAMBDA CALLS] inline fun bar(x: String, lambda: () -> String.() -> String): String {
-8 (INLINE CALL bar) [LAMBDA CALLS] return lambda()(x)
-8 (INLINE CALL bar) return lambda()(x)
-4 val v1 = bar(p) { { this } }
-4 val v1 = bar(p) { { this } }
+3 fun String.foo(p: String) { (in foo(String) on String)
+4 val v1 = bar(p) { { this } } (in foo(String) on String)
+7 (INLINE CALL bar) inline fun bar(x: String, lambda: () -> String.() -> String): String { (in bar(String, () -> String.() -> String))
+8 (INLINE CALL bar) return lambda()(x) (in bar(String, () -> String.() -> String))
+8 (INLINE CALL bar) [LAMBDA RECEIVER] return lambda()(x) (in bar(String, () -> String.() -> String))
+8 (INLINE CALL bar) [LAMBDA IN] [LAMBDA RECEIVER] return lambda()(x) (in bar(String, () -> String.() -> String))
+7 (INLINE CALL bar) [LAMBDA IN] [LAMBDA RECEIVER] inline fun bar(x: String, lambda: () -> String.() -> String): String { (in bar(String, () -> String.() -> String))
+4 [LAMBDA IN] [LAMBDA RECEIVER] val v1 = bar(p) { { this } } (in foo(String) on String)
+4 [LAMBDA RECEIVER] val v1 = bar(p) { { this } } (in foo(String) on String)
+4 [LAMBDA RECEIVER] val v1 = bar(p) { { this } } (in foo(String) on String)
+4 val v1 = bar(p) { { this } } (in foo(String) on String)
+4 val v1 = bar(p) { { this } } (in foo(String) on String)
+4 [LAMBDA CALLS] val v1 = bar(p) { { this } } (in foo(String) on String)
+4 [LAMBDA CALLS] val v1 = bar(p) { { this } } (in foo(String) on String)
+4 [LAMBDA CALLS] [LAMBDA CALLS] val v1 = bar(p) { { this } } (in foo(String) on String)
+7 (INLINE CALL bar) [LAMBDA CALLS] [LAMBDA CALLS] inline fun bar(x: String, lambda: () -> String.() -> String): String { (in bar(String, () -> String.() -> String))
+8 (INLINE CALL bar) [LAMBDA CALLS] return lambda()(x) (in bar(String, () -> String.() -> String))
+8 (INLINE CALL bar) return lambda()(x) (in bar(String, () -> String.() -> String))
+4 val v1 = bar(p) { { this } } (in foo(String) on String)
+4 val v1 = bar(p) { { this } } (in foo(String) on String)
diff --git a/idea/testData/slicer/outflow/invokeExtensionLambda3.results.txt b/idea/testData/slicer/outflow/invokeExtensionLambda3.results.txt
index 9c16a2f114f..64678981968 100644
--- a/idea/testData/slicer/outflow/invokeExtensionLambda3.results.txt
+++ b/idea/testData/slicer/outflow/invokeExtensionLambda3.results.txt
@@ -1,18 +1,18 @@
-3 fun String.foo(p: String) {
-4 val v = bar(p) { this }
-7 fun bar(receiver: T, block: T.() -> R): R {
-9 return receiver.b()
-8 [LAMBDA RECEIVER] val b = block
-8 [LAMBDA RECEIVER] val b = block
-7 [LAMBDA RECEIVER] fun bar(receiver: T, block: T.() -> R): R {
-4 [LAMBDA RECEIVER] val v = bar(p) { this }
-4 val v = bar(p) { this }
-4 val v = bar(p) { this }
-4 [LAMBDA CALLS] val v = bar(p) { this }
-7 [LAMBDA CALLS] fun bar(receiver: T, block: T.() -> R): R {
-8 [LAMBDA CALLS] val b = block
-8 [LAMBDA CALLS] val b = block
-9 return receiver.b()
+3 fun String.foo(p: String) { (in foo(String) on String)
+4 val v = bar(p) { this } (in foo(String) on String)
+7 fun bar(receiver: T, block: T.() -> R): R { (in bar(T, T.() -> R))
+9 return receiver.b() (in bar(T, T.() -> R))
+8 [LAMBDA RECEIVER] val b = block (in bar(T, T.() -> R))
+8 [LAMBDA RECEIVER] val b = block (in bar(T, T.() -> R))
+7 [LAMBDA RECEIVER] fun bar(receiver: T, block: T.() -> R): R { (in bar(T, T.() -> R))
+4 [LAMBDA RECEIVER] val v = bar(p) { this } (in foo(String) on String)
+4 val v = bar(p) { this } (in foo(String) on String)
+4 val v = bar(p) { this } (in foo(String) on String)
+4 [LAMBDA CALLS] val v = bar(p) { this } (in foo(String) on String)
+7 [LAMBDA CALLS] fun bar(receiver: T, block: T.() -> R): R { (in bar(T, T.() -> R))
+8 [LAMBDA CALLS] val b = block (in bar(T, T.() -> R))
+8 [LAMBDA CALLS] val b = block (in bar(T, T.() -> R))
+9 return receiver.b() (in bar(T, T.() -> R))
7 fun bar(receiver: T, block: T.() -> R): R {
-4 val v = bar(p) { this }
-4 val v = bar(p) { this }
+4 val v = bar(p) { this } (in foo(String) on String)
+4 val v = bar(p) { this } (in foo(String) on String)
diff --git a/idea/testData/slicer/outflow/invokeLambdaSecondParam.results.txt b/idea/testData/slicer/outflow/invokeLambdaSecondParam.results.txt
index b685ffa2c36..f5021ddb90e 100644
--- a/idea/testData/slicer/outflow/invokeLambdaSecondParam.results.txt
+++ b/idea/testData/slicer/outflow/invokeLambdaSecondParam.results.txt
@@ -1,15 +1,15 @@
-3 fun String.foo(p: String) {
-4 val v = f({ p1, p2 -> p2 }, p)
-7 fun f(lambda: (String, String) -> String, receiver: String): String {
-8 return lambda("a", receiver)
-7 [LAMBDA PARAMETER #1] fun f(lambda: (String, String) -> String, receiver: String): String {
-4 [LAMBDA PARAMETER #1] val v = f({ p1, p2 -> p2 }, p)
-4 val v = f({ p1, p2 -> p2 }, p)
-4 val v = f({ p1, p2 -> p2 }, p)
-4 val v = f({ p1, p2 -> p2 }, p)
-4 [LAMBDA CALLS] val v = f({ p1, p2 -> p2 }, p)
-7 [LAMBDA CALLS] fun f(lambda: (String, String) -> String, receiver: String): String {
-8 return lambda("a", receiver)
+3 fun String.foo(p: String) { (in foo(String) on String)
+4 val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
+7 fun f(lambda: (String, String) -> String, receiver: String): String { (in f((String, String) -> String, String))
+8 return lambda("a", receiver) (in f((String, String) -> String, String))
+7 [LAMBDA PARAMETER #1] fun f(lambda: (String, String) -> String, receiver: String): String { (in f((String, String) -> String, String))
+4 [LAMBDA PARAMETER #1] val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
+4 val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
+4 val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
+4 val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
+4 [LAMBDA CALLS] val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
+7 [LAMBDA CALLS] fun f(lambda: (String, String) -> String, receiver: String): String { (in f((String, String) -> String, String))
+8 return lambda("a", receiver) (in f((String, String) -> String, String))
7 fun f(lambda: (String, String) -> String, receiver: String): String {
-4 val v = f({ p1, p2 -> p2 }, p)
-4 val v = f({ p1, p2 -> p2 }, p)
+4 val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
+4 val v = f({ p1, p2 -> p2 }, p) (in foo(String) on String)
diff --git a/idea/testData/slicer/outflow/jvmFieldMemberPropertyJavaUsages.results.txt b/idea/testData/slicer/outflow/jvmFieldMemberPropertyJavaUsages.results.txt
index 1e1f69bf987..956a2346e27 100644
--- a/idea/testData/slicer/outflow/jvmFieldMemberPropertyJavaUsages.results.txt
+++ b/idea/testData/slicer/outflow/jvmFieldMemberPropertyJavaUsages.results.txt
@@ -1,3 +1,3 @@
-5 @JvmField val x = 1
+5 @JvmField val x = 1 (in A)
3 int x = new A().x;
3 int x = new A().x;
diff --git a/idea/testData/slicer/outflow/lambdaResult.results.txt b/idea/testData/slicer/outflow/lambdaResult.results.txt
index 77350258f10..8d23e9149a1 100644
--- a/idea/testData/slicer/outflow/lambdaResult.results.txt
+++ b/idea/testData/slicer/outflow/lambdaResult.results.txt
@@ -1,8 +1,8 @@
-8 val x = foo { it }
-8 val x = foo { it }
-8 [LAMBDA CALLS] val x = foo { it }
-3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int {
-4 return f(1)
+8 val x = foo { it } (in test())
+8 val x = foo { it } (in test())
+8 [LAMBDA CALLS] val x = foo { it } (in test())
+3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 return f(1) (in foo((Int) -> Int))
3 fun foo(f: (Int) -> Int): Int {
-8 val x = foo { it }
-8 val x = foo { it }
+8 val x = foo { it } (in test())
+8 val x = foo { it } (in test())
diff --git a/idea/testData/slicer/outflow/lambdaResultWithAssignments.results.txt b/idea/testData/slicer/outflow/lambdaResultWithAssignments.results.txt
index 84511e2460a..6b81b2b3bbb 100644
--- a/idea/testData/slicer/outflow/lambdaResultWithAssignments.results.txt
+++ b/idea/testData/slicer/outflow/lambdaResultWithAssignments.results.txt
@@ -1,10 +1,10 @@
-9 val y = foo { it }
-9 val y = foo { it }
-9 [LAMBDA CALLS] val y = foo { it }
-3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int {
-4 [LAMBDA CALLS] val x = f
-4 [LAMBDA CALLS] val x = f
-5 return x(1)
+9 val y = foo { it } (in test())
+9 val y = foo { it } (in test())
+9 [LAMBDA CALLS] val y = foo { it } (in test())
+3 [LAMBDA CALLS] fun foo(f: (Int) -> Int): Int { (in foo((Int) -> Int))
+4 [LAMBDA CALLS] val x = f (in foo((Int) -> Int))
+4 [LAMBDA CALLS] val x = f (in foo((Int) -> Int))
+5 return x(1) (in foo((Int) -> Int))
3 fun foo(f: (Int) -> Int): Int {
-9 val y = foo { it }
-9 val y = foo { it }
+9 val y = foo { it } (in test())
+9 val y = foo { it } (in test())
diff --git a/idea/testData/slicer/outflow/lambdaResultWithDirectCall.results.txt b/idea/testData/slicer/outflow/lambdaResultWithDirectCall.results.txt
index 814a232a5ce..9c76d2c228e 100644
--- a/idea/testData/slicer/outflow/lambdaResultWithDirectCall.results.txt
+++ b/idea/testData/slicer/outflow/lambdaResultWithDirectCall.results.txt
@@ -1,5 +1,5 @@
-4 val x = { 1 }()
-4 val x = { 1 }()
-4 [LAMBDA CALLS] val x = { 1 }()
-4 val x = { 1 }()
-4 val x = { 1 }()
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
+4 [LAMBDA CALLS] val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
+4 val x = { 1 }() (in test())
diff --git a/idea/testData/slicer/outflow/lambdaResultWithDirectCallViaAssignment.results.txt b/idea/testData/slicer/outflow/lambdaResultWithDirectCallViaAssignment.results.txt
index ccdd7eba5c0..082932e1a15 100644
--- a/idea/testData/slicer/outflow/lambdaResultWithDirectCallViaAssignment.results.txt
+++ b/idea/testData/slicer/outflow/lambdaResultWithDirectCallViaAssignment.results.txt
@@ -1,6 +1,6 @@
-4 val f = { 1 }
-4 val f = { 1 }
-4 [LAMBDA CALLS] val f = { 1 }
-4 [LAMBDA CALLS] val f = { 1 }
-5 val x = f()
-5 val x = f()
+4 val f = { 1 } (in test())
+4 val f = { 1 } (in test())
+4 [LAMBDA CALLS] val f = { 1 } (in test())
+4 [LAMBDA CALLS] val f = { 1 } (in test())
+5 val x = f() (in test())
+5 val x = f() (in test())
diff --git a/idea/testData/slicer/outflow/lambdaResultWithInvokeCall.results.txt b/idea/testData/slicer/outflow/lambdaResultWithInvokeCall.results.txt
index 7c633e70c0d..7ce0b34c3dc 100644
--- a/idea/testData/slicer/outflow/lambdaResultWithInvokeCall.results.txt
+++ b/idea/testData/slicer/outflow/lambdaResultWithInvokeCall.results.txt
@@ -1,9 +1,9 @@
-4 val x = foo { 1 }
-4 val x = foo { 1 }
-4 [LAMBDA CALLS] val x = foo { 1 }
-7 [LAMBDA CALLS] fun foo(callback: () -> Int): Int {
-8 [LAMBDA CALLS] return callback.invoke()
-8 return callback.invoke()
+4 val x = foo { 1 } (in test())
+4 val x = foo { 1 } (in test())
+4 [LAMBDA CALLS] val x = foo { 1 } (in test())
+7 [LAMBDA CALLS] fun foo(callback: () -> Int): Int { (in foo(() -> Int))
+8 [LAMBDA CALLS] return callback.invoke() (in foo(() -> Int))
+8 return callback.invoke() (in foo(() -> Int))
7 fun foo(callback: () -> Int): Int {
-4 val x = foo { 1 }
-4 val x = foo { 1 }
+4 val x = foo { 1 } (in test())
+4 val x = foo { 1 } (in test())
diff --git a/idea/testData/slicer/outflow/letResult.results.txt b/idea/testData/slicer/outflow/letResult.results.txt
index 2c332ba0158..b6dd152b6fd 100644
--- a/idea/testData/slicer/outflow/letResult.results.txt
+++ b/idea/testData/slicer/outflow/letResult.results.txt
@@ -1,48 +1,48 @@
-4 fun foo(p: String) {
-5 val v1 = p.let { value -> bar(value) }
-LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R {
-5 [LAMBDA PARAMETER #0] val v1 = p.let { value -> bar(value) }
-5 val v1 = p.let { value -> bar(value) }
-5 val v1 = p.let { value -> bar(value) }
-17 fun bar(s: String) = s
-17 fun bar(s: String) = s
+4 fun foo(p: String) { (in foo(String))
+5 val v1 = p.let { value -> bar(value) } (in foo(String))
+LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+5 [LAMBDA PARAMETER #0] val v1 = p.let { value -> bar(value) } (in foo(String))
+5 val v1 = p.let { value -> bar(value) } (in foo(String))
+5 val v1 = p.let { value -> bar(value) } (in foo(String))
+17 fun bar(s: String) = s (in bar(String))
+17 fun bar(s: String) = s (in bar(String))
17 fun bar(s: String) = s
-5 val v1 = p.let { value -> bar(value) }
-5 val v1 = p.let { value -> bar(value) }
-5 [LAMBDA CALLS] val v1 = p.let { value -> bar(value) }
-LIB (INLINE CALL let) [LAMBDA CALLS] public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-5 val v1 = p.let { value -> bar(value) }
-5 val v1 = p.let { value -> bar(value) }
-7 val v2 = p.let { it }
-LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R {
-7 [LAMBDA PARAMETER #0] val v2 = p.let { it }
-7 val v2 = p.let { it }
-7 val v2 = p.let { it }
-7 [LAMBDA CALLS] val v2 = p.let { it }
-LIB (INLINE CALL let) [LAMBDA CALLS] public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-7 val v2 = p.let { it }
-7 val v2 = p.let { it }
-9 val v3 = p.let {
-LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R {
-9 [LAMBDA PARAMETER #0] val v3 = p.let {
-14 val v4 = p.let(::zoo)
-LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R {
-14 [LAMBDA PARAMETER #0] val v4 = p.let(::zoo)
-18 fun zoo(s: String) = s
-18 fun zoo(s: String) = s
+5 val v1 = p.let { value -> bar(value) } (in foo(String))
+5 val v1 = p.let { value -> bar(value) } (in foo(String))
+5 [LAMBDA CALLS] val v1 = p.let { value -> bar(value) } (in foo(String))
+LIB (INLINE CALL let) [LAMBDA CALLS] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+5 val v1 = p.let { value -> bar(value) } (in foo(String))
+5 val v1 = p.let { value -> bar(value) } (in foo(String))
+7 val v2 = p.let { it } (in foo(String))
+LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+7 [LAMBDA PARAMETER #0] val v2 = p.let { it } (in foo(String))
+7 val v2 = p.let { it } (in foo(String))
+7 val v2 = p.let { it } (in foo(String))
+7 [LAMBDA CALLS] val v2 = p.let { it } (in foo(String))
+LIB (INLINE CALL let) [LAMBDA CALLS] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+7 val v2 = p.let { it } (in foo(String))
+7 val v2 = p.let { it } (in foo(String))
+9 val v3 = p.let { (in foo(String))
+LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+9 [LAMBDA PARAMETER #0] val v3 = p.let { (in foo(String))
+14 val v4 = p.let(::zoo) (in foo(String))
+LIB (INLINE CALL let) public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+LIB (INLINE CALL let) [LAMBDA PARAMETER #0] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+14 [LAMBDA PARAMETER #0] val v4 = p.let(::zoo) (in foo(String))
+18 fun zoo(s: String) = s (in zoo(String))
+18 fun zoo(s: String) = s (in zoo(String))
18 fun zoo(s: String) = s
-14 [LAMBDA CALLS] val v4 = p.let(::zoo)
-LIB (INLINE CALL let) [LAMBDA CALLS] public inline fun T.let(block: (T) -> R): R {
-LIB (INLINE CALL let) return block(this)
-14 val v4 = p.let(::zoo)
-14 val v4 = p.let(::zoo)
+14 [LAMBDA CALLS] val v4 = p.let(::zoo) (in foo(String))
+LIB (INLINE CALL let) [LAMBDA CALLS] public inline fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+LIB (INLINE CALL let) return block(this) (in let((T) -> R) on T)
+14 val v4 = p.let(::zoo) (in foo(String))
+14 val v4 = p.let(::zoo) (in foo(String))
diff --git a/idea/testData/slicer/outflow/localVariableUsages.results.txt b/idea/testData/slicer/outflow/localVariableUsages.results.txt
index 7db2d5e5879..6232eee6bed 100644
--- a/idea/testData/slicer/outflow/localVariableUsages.results.txt
+++ b/idea/testData/slicer/outflow/localVariableUsages.results.txt
@@ -1,7 +1,7 @@
-6 val x = 1
-8 val y = x
-8 val y = x
-11 z = x
-10 val z: Int
-13 foo(x)
-2 fun foo(n: Int) {
+6 val x = 1 (in test())
+8 val y = x (in test())
+8 val y = x (in test())
+11 z = x (in test())
+10 val z: Int (in test())
+13 foo(x) (in test())
+2 fun foo(n: Int) { (in foo(Int))
diff --git a/idea/testData/slicer/outflow/memberPropertyUsages.results.txt b/idea/testData/slicer/outflow/memberPropertyUsages.results.txt
index 96695f64e53..fa82db87d63 100644
--- a/idea/testData/slicer/outflow/memberPropertyUsages.results.txt
+++ b/idea/testData/slicer/outflow/memberPropertyUsages.results.txt
@@ -1,8 +1,8 @@
-4 val x = 1
+4 val x = 1 (in A)
3 int x = new A().getX();
-6 val y = x
-6 val y = x
-11 z = x
-8 val z: Int
-13 bar(x)
-16 fun bar(m: Int) {
+6 val y = x (in A.y: Int)
+6 val y = x (in A)
+11 z = x (in A)
+8 val z: Int (in A)
+13 bar(x) (in A)
+16 fun bar(m: Int) { (in A.bar(Int))
diff --git a/idea/testData/slicer/outflow/nonInlineLetResult.results.txt b/idea/testData/slicer/outflow/nonInlineLetResult.results.txt
index a0f70e405fa..a7239ad1c3d 100644
--- a/idea/testData/slicer/outflow/nonInlineLetResult.results.txt
+++ b/idea/testData/slicer/outflow/nonInlineLetResult.results.txt
@@ -1,33 +1,33 @@
-3 fun foo(p: String) {
-4 val v1 = p.let { value -> bar(value) }
-16 fun T.let(block: (T) -> R): R {
-17 return block(this)
-16 [LAMBDA PARAMETER #0] fun T.let(block: (T) -> R): R {
-4 [LAMBDA PARAMETER #0] val v1 = p.let { value -> bar(value) }
-4 val v1 = p.let { value -> bar(value) }
-4 val v1 = p.let { value -> bar(value) }
-14 fun bar(s: String) = s
-14 fun bar(s: String) = s
+3 fun foo(p: String) { (in foo(String))
+4 val v1 = p.let { value -> bar(value) } (in foo(String))
+16 fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+17 return block(this) (in let((T) -> R) on T)
+16 [LAMBDA PARAMETER #0] fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+4 [LAMBDA PARAMETER #0] val v1 = p.let { value -> bar(value) } (in foo(String))
+4 val v1 = p.let { value -> bar(value) } (in foo(String))
+4 val v1 = p.let { value -> bar(value) } (in foo(String))
+14 fun bar(s: String) = s (in bar(String))
+14 fun bar(s: String) = s (in bar(String))
14 fun bar(s: String) = s
-4 val v1 = p.let { value -> bar(value) }
-4 val v1 = p.let { value -> bar(value) }
-4 [LAMBDA CALLS] val v1 = p.let { value -> bar(value) }
-16 [LAMBDA CALLS] fun T.let(block: (T) -> R): R {
-17 return block(this)
+4 val v1 = p.let { value -> bar(value) } (in foo(String))
+4 val v1 = p.let { value -> bar(value) } (in foo(String))
+4 [LAMBDA CALLS] val v1 = p.let { value -> bar(value) } (in foo(String))
+16 [LAMBDA CALLS] fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+17 return block(this) (in let((T) -> R) on T)
16 fun T.let(block: (T) -> R): R {
-4 val v1 = p.let { value -> bar(value) }
-4 val v1 = p.let { value -> bar(value) }
-6 val v2 = p.let { it }
-6 val v2 = p.let { it }
-8 val v3 = p.let {
-8 val v3 = p.let {
-6 [LAMBDA PARAMETER #0] val v2 = p.let { it }
-6 val v2 = p.let { it }
-6 val v2 = p.let { it }
-6 [LAMBDA CALLS] val v2 = p.let { it }
-16 [LAMBDA CALLS] DUPLICATE: fun T.let(block: (T) -> R): R {
-8 [LAMBDA PARAMETER #0] val v3 = p.let {
-6 val v2 = p.let { it }
-16 DUPLICATE: fun T.let(block: (T) -> R): R {
-8 val v3 = p.let {
-16 DUPLICATE: fun T.let(block: (T) -> R): R {
+4 val v1 = p.let { value -> bar(value) } (in foo(String))
+4 val v1 = p.let { value -> bar(value) } (in foo(String))
+6 val v2 = p.let { it } (in foo(String))
+6 val v2 = p.let { it } (in foo(String))
+8 val v3 = p.let { (in foo(String))
+8 val v3 = p.let { (in foo(String))
+6 [LAMBDA PARAMETER #0] val v2 = p.let { it } (in foo(String))
+6 val v2 = p.let { it } (in foo(String))
+6 val v2 = p.let { it } (in foo(String))
+6 [LAMBDA CALLS] val v2 = p.let { it } (in foo(String))
+16 [LAMBDA CALLS] DUPLICATE: fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+8 [LAMBDA PARAMETER #0] val v3 = p.let { (in foo(String))
+6 val v2 = p.let { it } (in foo(String))
+16 DUPLICATE: fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
+8 val v3 = p.let { (in foo(String))
+16 DUPLICATE: fun T.let(block: (T) -> R): R { (in let((T) -> R) on T)
diff --git a/idea/testData/slicer/outflow/nonLocalReturn.results.txt b/idea/testData/slicer/outflow/nonLocalReturn.results.txt
index 37fcd8ce0cc..252767e461a 100644
--- a/idea/testData/slicer/outflow/nonLocalReturn.results.txt
+++ b/idea/testData/slicer/outflow/nonLocalReturn.results.txt
@@ -1,4 +1,4 @@
-5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
+5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 } (in bar(Int))
5 fun bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }
-8 val x = bar(1)
-8 val x = bar(1)
+8 val x = bar(1) (in test())
+8 val x = bar(1) (in test())
diff --git a/idea/testData/slicer/outflow/notNullAssertion.results.txt b/idea/testData/slicer/outflow/notNullAssertion.results.txt
index 755733f317a..76044ef856f 100644
--- a/idea/testData/slicer/outflow/notNullAssertion.results.txt
+++ b/idea/testData/slicer/outflow/notNullAssertion.results.txt
@@ -1,4 +1,4 @@
-3 fun test(s: String?) {
-4 val x = s!!
-4 val x = s!!
-4 val x = s!!
+3 fun test(s: String?) { (in test(String?))
+4 val x = s!! (in test(String?))
+4 val x = s!! (in test(String?))
+4 val x = s!! (in test(String?))
diff --git a/idea/testData/slicer/outflow/nullableLambda.results.txt b/idea/testData/slicer/outflow/nullableLambda.results.txt
index ac54c9bf2f5..a35b6a2055c 100644
--- a/idea/testData/slicer/outflow/nullableLambda.results.txt
+++ b/idea/testData/slicer/outflow/nullableLambda.results.txt
@@ -1,18 +1,18 @@
-3 fun String.foo(p: String) {
-4 val v = bar(p, true, { this })
-7 fun bar(receiver: String, b: Boolean, lambda: (String.() -> String)?): String {
-8 return if (b) lambda!!.invoke(receiver) else ""
-8 [LAMBDA RECEIVER] return if (b) lambda!!.invoke(receiver) else ""
-8 [LAMBDA RECEIVER] return if (b) lambda!!.invoke(receiver) else ""
-7 [LAMBDA RECEIVER] fun bar(receiver: String, b: Boolean, lambda: (String.() -> String)?): String {
-4 [LAMBDA RECEIVER] val v = bar(p, true, { this })
-4 val v = bar(p, true, { this })
-4 val v = bar(p, true, { this })
-4 [LAMBDA CALLS] val v = bar(p, true, { this })
-7 [LAMBDA CALLS] fun bar(receiver: String, b: Boolean, lambda: (String.() -> String)?): String {
-8 [LAMBDA CALLS] return if (b) lambda!!.invoke(receiver) else ""
-8 [LAMBDA CALLS] return if (b) lambda!!.invoke(receiver) else ""
-8 return if (b) lambda!!.invoke(receiver) else ""
+3 fun String.foo(p: String) { (in foo(String) on String)
+4 val v = bar(p, true, { this }) (in foo(String) on String)
+7 fun bar(receiver: String, b: Boolean, lambda: (String.() -> String)?): String { (in bar(String, Boolean, (String.() -> String)?))
+8 return if (b) lambda!!.invoke(receiver) else "" (in bar(String, Boolean, (String.() -> String)?))
+8 [LAMBDA RECEIVER] return if (b) lambda!!.invoke(receiver) else "" (in bar(String, Boolean, (String.() -> String)?))
+8 [LAMBDA RECEIVER] return if (b) lambda!!.invoke(receiver) else "" (in bar(String, Boolean, (String.() -> String)?))
+7 [LAMBDA RECEIVER] fun bar(receiver: String, b: Boolean, lambda: (String.() -> String)?): String { (in bar(String, Boolean, (String.() -> String)?))
+4 [LAMBDA RECEIVER] val v = bar(p, true, { this }) (in foo(String) on String)
+4 val v = bar(p, true, { this }) (in foo(String) on String)
+4 val v = bar(p, true, { this }) (in foo(String) on String)
+4 [LAMBDA CALLS] val v = bar(p, true, { this }) (in foo(String) on String)
+7 [LAMBDA CALLS] fun bar(receiver: String, b: Boolean, lambda: (String.() -> String)?): String { (in bar(String, Boolean, (String.() -> String)?))
+8 [LAMBDA CALLS] return if (b) lambda!!.invoke(receiver) else "" (in bar(String, Boolean, (String.() -> String)?))
+8 [LAMBDA CALLS] return if (b) lambda!!.invoke(receiver) else "" (in bar(String, Boolean, (String.() -> String)?))
+8 return if (b) lambda!!.invoke(receiver) else "" (in bar(String, Boolean, (String.() -> String)?))
7 fun bar(receiver: String, b: Boolean, lambda: (String.() -> String)?): String {
-4 val v = bar(p, true, { this })
-4 val v = bar(p, true, { this })
+4 val v = bar(p, true, { this }) (in foo(String) on String)
+4 val v = bar(p, true, { this }) (in foo(String) on String)
diff --git a/idea/testData/slicer/outflow/openMethodParameter.results.txt b/idea/testData/slicer/outflow/openMethodParameter.results.txt
index 1cf66fd369b..6daf06c264a 100644
--- a/idea/testData/slicer/outflow/openMethodParameter.results.txt
+++ b/idea/testData/slicer/outflow/openMethodParameter.results.txt
@@ -1,5 +1,5 @@
-4 open fun foo(p: String) {
-5 val v = p
-5 val v = p
-10 override fun foo(p: String) {
-11 val v = p + 1
+4 open fun foo(p: String) { (in C.foo(String))
+5 val v = p (in C.foo(String))
+5 val v = p (in C.foo(String))
+10 override fun foo(p: String) { (in D.foo(String))
+11 val v = p + 1 (in D.foo(String))
diff --git a/idea/testData/slicer/outflow/operatorCallDereferences.results.txt b/idea/testData/slicer/outflow/operatorCallDereferences.results.txt
index e5765401183..f677345ce5f 100644
--- a/idea/testData/slicer/outflow/operatorCallDereferences.results.txt
+++ b/idea/testData/slicer/outflow/operatorCallDereferences.results.txt
@@ -1,22 +1,22 @@
-21 var x = A()
-23 DEREFERENCE: +x
-24 DEREFERENCE: x + 1
-25 DEREFERENCE: x++
-26 DEREFERENCE: x += 1
-27 DEREFERENCE: x *= 1
-29 -x
-14 operator fun A.unaryMinus() = this
-14 operator fun A.unaryMinus() = this
+21 var x = A() (in test())
+23 DEREFERENCE: +x (in test())
+24 DEREFERENCE: x + 1 (in test())
+25 DEREFERENCE: x++ (in test())
+26 DEREFERENCE: x += 1 (in test())
+27 DEREFERENCE: x *= 1 (in test())
+29 -x (in test())
+14 operator fun A.unaryMinus() = this (in unaryMinus() on A)
+14 operator fun A.unaryMinus() = this (in unaryMinus() on A)
14 operator fun A.unaryMinus() = this
-29 -x
-30 x - 1
-13 operator fun A.minus(n: Int) = this
-13 operator fun A.minus(n: Int) = this
+29 -x (in test())
+30 x - 1 (in test())
+13 operator fun A.minus(n: Int) = this (in minus(Int) on A)
+13 operator fun A.minus(n: Int) = this (in minus(Int) on A)
13 operator fun A.minus(n: Int) = this
-30 x - 1
-32 x -= 1
-21 DUPLICATE: var x = A()
-33 x /= 1
-16 operator fun A.divAssign(n: Int) {
-17 val v = this
-17 val v = this
+30 x - 1 (in test())
+32 x -= 1 (in test())
+21 DUPLICATE: var x = A() (in test())
+33 x /= 1 (in test())
+16 operator fun A.divAssign(n: Int) { (in divAssign(Int) on A)
+17 val v = this (in divAssign(Int) on A)
+17 val v = this (in divAssign(Int) on A)
diff --git a/idea/testData/slicer/outflow/operatorFunCalls.results.txt b/idea/testData/slicer/outflow/operatorFunCalls.results.txt
index e7599c59431..e4b32b0bfdd 100644
--- a/idea/testData/slicer/outflow/operatorFunCalls.results.txt
+++ b/idea/testData/slicer/outflow/operatorFunCalls.results.txt
@@ -1,3 +1,3 @@
-4 operator fun plus(n: Int) = this
-8 val x = A() + 2
-8 val x = A() + 2
+4 operator fun plus(n: Int) = this (in A)
+8 val x = A() + 2 (in test())
+8 val x = A() + 2 (in test())
diff --git a/idea/testData/slicer/outflow/overridingFunctionResult.results.txt b/idea/testData/slicer/outflow/overridingFunctionResult.results.txt
index 4ba765789a2..0fa1d15fd05 100644
--- a/idea/testData/slicer/outflow/overridingFunctionResult.results.txt
+++ b/idea/testData/slicer/outflow/overridingFunctionResult.results.txt
@@ -1,6 +1,6 @@
-8 override fun foo() = 2
-8 override fun foo() = 2
-16 val x = a.foo()
-16 val x = a.foo()
-17 val y = b.foo()
-17 val y = b.foo()
+8 override fun foo() = 2 (in B.foo())
+8 override fun foo() = 2 (in B)
+16 val x = a.foo() (in test(A, B, C))
+16 val x = a.foo() (in test(A, B, C))
+17 val y = b.foo() (in test(A, B, C))
+17 val y = b.foo() (in test(A, B, C))
diff --git a/idea/testData/slicer/outflow/overridingFunctionResultWithJava.results.txt b/idea/testData/slicer/outflow/overridingFunctionResultWithJava.results.txt
index b9e7c7478f8..162e9dad04f 100644
--- a/idea/testData/slicer/outflow/overridingFunctionResultWithJava.results.txt
+++ b/idea/testData/slicer/outflow/overridingFunctionResultWithJava.results.txt
@@ -1,10 +1,10 @@
-4 override fun foo() = 2
-4 override fun foo() = 2
+4 override fun foo() = 2 (in B.foo())
+4 override fun foo() = 2 (in B)
2 public int foo() {
-8 val x = a.foo()
-8 val x = a.foo()
-9 val y = b.foo()
-9 val y = b.foo()
-10 val z = c.foo()
-10 val z = c.foo()
-9 DUPLICATE: val y = b.foo()
+8 val x = a.foo() (in test(A, B, C))
+8 val x = a.foo() (in test(A, B, C))
+9 val y = b.foo() (in test(A, B, C))
+9 val y = b.foo() (in test(A, B, C))
+10 val z = c.foo() (in test(A, B, C))
+10 val z = c.foo() (in test(A, B, C))
+9 DUPLICATE: val y = b.foo() (in test(A, B, C))
diff --git a/idea/testData/slicer/outflow/overridingParameter.results.txt b/idea/testData/slicer/outflow/overridingParameter.results.txt
index e178334487a..f7e19cc886c 100644
--- a/idea/testData/slicer/outflow/overridingParameter.results.txt
+++ b/idea/testData/slicer/outflow/overridingParameter.results.txt
@@ -1,8 +1,8 @@
-10 override val foo = 3
-10 override val foo = 3
-14 val x = a.foo
-14 val x = a.foo
-15 val y = b.foo
-15 val y = b.foo
-16 val z = c.foo
-16 val z = c.foo
+10 override val foo = 3 (in C.foo: Int)
+10 override val foo = 3 (in C)
+14 val x = a.foo (in test(A, B, C))
+14 val x = a.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
+15 val y = b.foo (in test(A, B, C))
+16 val z = c.foo (in test(A, B, C))
+16 val z = c.foo (in test(A, B, C))
diff --git a/idea/testData/slicer/outflow/overridingPropertyGetterResult.results.txt b/idea/testData/slicer/outflow/overridingPropertyGetterResult.results.txt
index 805baf2d53d..c53763122c5 100644
--- a/idea/testData/slicer/outflow/overridingPropertyGetterResult.results.txt
+++ b/idea/testData/slicer/outflow/overridingPropertyGetterResult.results.txt
@@ -1,6 +1,6 @@
-10 get() = 2
-10 get() = 2
-19 val x = a.foo
-19 val x = a.foo
-20 val y = b.foo
-20 val y = b.foo
+10 get() = 2 (in B.foo: Int)
+10 get() = 2 (in B.foo: Int)
+19 val x = a.foo (in test(A, B, C))
+19 val x = a.foo (in test(A, B, C))
+20 val y = b.foo (in test(A, B, C))
+20 val y = b.foo (in test(A, B, C))
diff --git a/idea/testData/slicer/outflow/overridingPropertyResult.results.txt b/idea/testData/slicer/outflow/overridingPropertyResult.results.txt
index 1924d92d93b..10923466cdf 100644
--- a/idea/testData/slicer/outflow/overridingPropertyResult.results.txt
+++ b/idea/testData/slicer/outflow/overridingPropertyResult.results.txt
@@ -1,6 +1,6 @@
-8 override val foo = 2
-8 override val foo = 2
-16 val x = a.foo
-16 val x = a.foo
-17 val y = b.foo
-17 val y = b.foo
+8 override val foo = 2 (in B.foo: Int)
+8 override val foo = 2 (in B)
+16 val x = a.foo (in test(A, B, C))
+16 val x = a.foo (in test(A, B, C))
+17 val y = b.foo (in test(A, B, C))
+17 val y = b.foo (in test(A, B, C))
diff --git a/idea/testData/slicer/outflow/primaryConstructorCalls.results.txt b/idea/testData/slicer/outflow/primaryConstructorCalls.results.txt
index 4460c75f647..51ce9294572 100644
--- a/idea/testData/slicer/outflow/primaryConstructorCalls.results.txt
+++ b/idea/testData/slicer/outflow/primaryConstructorCalls.results.txt
@@ -1,8 +1,8 @@
-3 open class A(n: Int) {
+3 open class A(n: Int) { (in A)
3 super(1);
-4 constructor() : this(1)
-7 class B : A(1)
+4 constructor() : this(1) (in constructor A())
+7 class B : A(1) (in B)
7 A a = new A(1);
-10 constructor() : super(1)
-14 val x = A(1)
-14 val x = A(1)
+10 constructor() : super(1) (in constructor C())
+14 val x = A(1) (in test())
+14 val x = A(1) (in test())
diff --git a/idea/testData/slicer/outflow/primaryConstructorParameterUsages.results.txt b/idea/testData/slicer/outflow/primaryConstructorParameterUsages.results.txt
index afcf2c1630c..38985bc6d5d 100644
--- a/idea/testData/slicer/outflow/primaryConstructorParameterUsages.results.txt
+++ b/idea/testData/slicer/outflow/primaryConstructorParameterUsages.results.txt
@@ -1,7 +1,7 @@
-3 class A(n: Int) {
-4 val x = n
-4 val x = n
-9 y = n
-6 val y: Int
-11 bar(n)
-14 fun bar(m: Int) {
+3 class A(n: Int) { (in A(Int))
+4 val x = n (in A.x: Int)
+4 val x = n (in A)
+9 y = n (in A)
+6 val y: Int (in A)
+11 bar(n) (in A)
+14 fun bar(m: Int) { (in A.bar(Int))
diff --git a/idea/testData/slicer/outflow/secondaryConstructorCalls.results.txt b/idea/testData/slicer/outflow/secondaryConstructorCalls.results.txt
index 110efd95969..a88345ef30d 100644
--- a/idea/testData/slicer/outflow/secondaryConstructorCalls.results.txt
+++ b/idea/testData/slicer/outflow/secondaryConstructorCalls.results.txt
@@ -1,8 +1,8 @@
-4 constructor(n: Int)
+4 constructor(n: Int) (in A)
3 super(1);
-6 constructor() : this(1)
+6 constructor() : this(1) (in constructor A())
7 A a = new A(1);
-9 class B : A(1)
-12 constructor() : super(1)
-16 val x = A(1)
-16 val x = A(1)
+9 class B : A(1) (in B)
+12 constructor() : super(1) (in constructor C())
+16 val x = A(1) (in test())
+16 val x = A(1) (in test())
diff --git a/idea/testData/slicer/outflow/simpleCallDereferences.results.txt b/idea/testData/slicer/outflow/simpleCallDereferences.results.txt
index 4c5943be12a..7c4729ff878 100644
--- a/idea/testData/slicer/outflow/simpleCallDereferences.results.txt
+++ b/idea/testData/slicer/outflow/simpleCallDereferences.results.txt
@@ -1,15 +1,15 @@
-13 val x = A()
-15 DEREFERENCE: x.foo()
-16 DEREFERENCE: x.bar
-17 x.fooExt()
-9 fun A.fooExt() = 1
-18 x.barExt
-10 val A.barExt: Int get() = 2
-20 val y: A? = x
-20 val y: A? = x
-22 DEREFERENCE: y?.foo()
-23 DEREFERENCE: y?.bar
-24 y?.fooExt()
-9 DUPLICATE: fun A.fooExt() = 1
-25 y?.barExt
-10 DUPLICATE: val A.barExt: Int get() = 2
+13 val x = A() (in test())
+15 DEREFERENCE: x.foo() (in test())
+16 DEREFERENCE: x.bar (in test())
+17 x.fooExt() (in test())
+9 fun A.fooExt() = 1 (in fooExt() on A)
+18 x.barExt (in test())
+10 val A.barExt: Int get() = 2 (in barExt: Int on A)
+20 val y: A? = x (in test())
+20 val y: A? = x (in test())
+22 DEREFERENCE: y?.foo() (in test())
+23 DEREFERENCE: y?.bar (in test())
+24 y?.fooExt() (in test())
+9 DUPLICATE: fun A.fooExt() = 1 (in fooExt() on A)
+25 y?.barExt (in test())
+10 DUPLICATE: val A.barExt: Int get() = 2 (in barExt: Int on A)
diff --git a/idea/testData/slicer/outflow/thisInExtensionFunction.results.txt b/idea/testData/slicer/outflow/thisInExtensionFunction.results.txt
index 7c3cbfdabfc..df83b84937d 100644
--- a/idea/testData/slicer/outflow/thisInExtensionFunction.results.txt
+++ b/idea/testData/slicer/outflow/thisInExtensionFunction.results.txt
@@ -1,6 +1,6 @@
-6 val x = "".extensionFun()
-3 fun String.extensionFun(): Any = this
-3 fun String.extensionFun(): Any = this
+6 val x = "".extensionFun() (in foo())
+3 fun String.extensionFun(): Any = this (in extensionFun() on String)
+3 fun String.extensionFun(): Any = this (in extensionFun() on String)
3 fun String.extensionFun(): Any = this
-6 val x = "".extensionFun()
-6 val x = "".extensionFun()
+6 val x = "".extensionFun() (in foo())
+6 val x = "".extensionFun() (in foo())
diff --git a/idea/testData/slicer/outflow/thisInExtensionProperty.results.txt b/idea/testData/slicer/outflow/thisInExtensionProperty.results.txt
index e815e7489ad..05bfd21f3f7 100644
--- a/idea/testData/slicer/outflow/thisInExtensionProperty.results.txt
+++ b/idea/testData/slicer/outflow/thisInExtensionProperty.results.txt
@@ -1,6 +1,6 @@
-7 val x = "".extensionProp
-3 val String.extensionProp: Any
-4 get() = this
-4 get() = this
-7 val x = "".extensionProp
-7 val x = "".extensionProp
+7 val x = "".extensionProp (in foo())
+3 val String.extensionProp: Any (in extensionProp: Any on String)
+4 get() = this (in extensionProp: Any on String)
+4 get() = this (in extensionProp: Any on String)
+7 val x = "".extensionProp (in foo())
+7 val x = "".extensionProp (in foo())
diff --git a/idea/testData/slicer/outflow/topLevelPropertyUsages.results.txt b/idea/testData/slicer/outflow/topLevelPropertyUsages.results.txt
index 1356fae101e..0eb5580a609 100644
--- a/idea/testData/slicer/outflow/topLevelPropertyUsages.results.txt
+++ b/idea/testData/slicer/outflow/topLevelPropertyUsages.results.txt
@@ -1,10 +1,10 @@
4 val x = 1
3 int x = TopLevelPropertyUsagesKt.getX();
-6 val y = x
+6 val y = x (in y: Int)
6 val y = x
-9 val y = x
-9 val y = x
-14 z = x
-11 val z: Int
-16 bar(x)
-20 fun bar(m: Int) {
+9 val y = x (in test())
+9 val y = x (in test())
+14 z = x (in test())
+11 val z: Int (in test())
+16 bar(x) (in test())
+20 fun bar(m: Int) { (in bar(Int))
diff --git a/idea/testData/slicer/outflow/usagesInLoopRange.results.txt b/idea/testData/slicer/outflow/usagesInLoopRange.results.txt
index 66cdc62d6f2..ec2e4316fd4 100644
--- a/idea/testData/slicer/outflow/usagesInLoopRange.results.txt
+++ b/idea/testData/slicer/outflow/usagesInLoopRange.results.txt
@@ -1,2 +1,2 @@
-3 fun f(list: List){
-4 for(s in list){}
+3 fun f(list: List){ (in f(List))
+4 for(s in list){} (in f(List))
diff --git a/idea/testData/slicer/outflow/usagesInTemplates.results.txt b/idea/testData/slicer/outflow/usagesInTemplates.results.txt
index 1dfba865a87..70ae04971c2 100644
--- a/idea/testData/slicer/outflow/usagesInTemplates.results.txt
+++ b/idea/testData/slicer/outflow/usagesInTemplates.results.txt
@@ -1,5 +1,5 @@
-8 val hello = "Hello"
-9 val v = "hello = $hello"
-10 f1(hello)
-3 fun f1(param: String){
-4 val a = "param = $param"
+8 val hello = "Hello" (in main(Array))
+9 val v = "hello = $hello" (in main(Array))
+10 f1(hello) (in main(Array))
+3 fun f1(param: String){ (in f1(String))
+4 val a = "param = $param" (in f1(String))
diff --git a/idea/testData/slicer/outflow/valParameter.results.txt b/idea/testData/slicer/outflow/valParameter.results.txt
index c6743c5a6c6..6dc13a2dc2a 100644
--- a/idea/testData/slicer/outflow/valParameter.results.txt
+++ b/idea/testData/slicer/outflow/valParameter.results.txt
@@ -1,12 +1,12 @@
-3 class A(val n: Int) {
+3 class A(val n: Int) { (in A(Int))
3 int n = new A(1).getN();
-4 val x = n
-4 val x = n
-9 y = n
-6 val y: Int
-11 bar(n)
-14 fun bar(m: Int) {
-15 val z = n
-15 val z = n
-20 val z = A(1).n
-20 val z = A(1).n
+4 val x = n (in A.x: Int)
+4 val x = n (in A)
+9 y = n (in A)
+6 val y: Int (in A)
+11 bar(n) (in A)
+14 fun bar(m: Int) { (in A.bar(Int))
+15 val z = n (in A.bar(Int))
+15 val z = n (in A.bar(Int))
+20 val z = A(1).n (in test())
+20 val z = A(1).n (in test())
diff --git a/idea/testData/slicer/outflow/varParameter.results.txt b/idea/testData/slicer/outflow/varParameter.results.txt
index 5257a670b15..632c6ca5e18 100644
--- a/idea/testData/slicer/outflow/varParameter.results.txt
+++ b/idea/testData/slicer/outflow/varParameter.results.txt
@@ -1,12 +1,12 @@
-3 class A(var n: Int) {
+3 class A(var n: Int) { (in A(Int))
3 int n = new A(1).getN();
-4 val x = n
-4 val x = n
-9 y = n
-6 val y: Int
-11 bar(n)
-14 fun bar(m: Int) {
-15 val z = n
-15 val z = n
-21 val z = A(1).n
-21 val z = A(1).n
+4 val x = n (in A.x: Int)
+4 val x = n (in A)
+9 y = n (in A)
+6 val y: Int (in A)
+11 bar(n) (in A)
+14 fun bar(m: Int) { (in A.bar(Int))
+15 val z = n (in A.bar(Int))
+15 val z = n (in A.bar(Int))
+21 val z = A(1).n (in test())
+21 val z = A(1).n (in test())
diff --git a/idea/testData/slicer/outflow/whenExpression.results.txt b/idea/testData/slicer/outflow/whenExpression.results.txt
index 37352a5023f..c970b668e87 100644
--- a/idea/testData/slicer/outflow/whenExpression.results.txt
+++ b/idea/testData/slicer/outflow/whenExpression.results.txt
@@ -1,3 +1,3 @@
-3 fun test(m: Int, n: Int) {
-6 2 -> n
-4 val x = when (m) {
+3 fun test(m: Int, n: Int) { (in test(Int, Int))
+6 2 -> n (in test(Int, Int))
+4 val x = when (m) { (in test(Int, Int))
diff --git a/idea/testData/slicer/outflow/withResult.results.txt b/idea/testData/slicer/outflow/withResult.results.txt
index 29170a8fcf5..21941da0735 100644
--- a/idea/testData/slicer/outflow/withResult.results.txt
+++ b/idea/testData/slicer/outflow/withResult.results.txt
@@ -1,47 +1,47 @@
-4 fun String.foo(p: String) {
-5 val v1 = with(p) { this }
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-5 [LAMBDA RECEIVER] val v1 = with(p) { this }
-5 val v1 = with(p) { this }
-5 val v1 = with(p) { this }
-5 [LAMBDA CALLS] val v1 = with(p) { this }
-LIB (INLINE CALL with) [LAMBDA CALLS] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-5 val v1 = with(p) { this }
-5 val v1 = with(p) { this }
-7 val v2 = with(p) { bar(this) }
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-7 [LAMBDA RECEIVER] val v2 = with(p) { bar(this) }
-7 val v2 = with(p) { bar(this) }
-14 fun bar(s: String) = s
-14 fun bar(s: String) = s
+4 fun String.foo(p: String) { (in foo(String) on String)
+5 val v1 = with(p) { this } (in foo(String) on String)
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+5 [LAMBDA RECEIVER] val v1 = with(p) { this } (in foo(String) on String)
+5 val v1 = with(p) { this } (in foo(String) on String)
+5 val v1 = with(p) { this } (in foo(String) on String)
+5 [LAMBDA CALLS] val v1 = with(p) { this } (in foo(String) on String)
+LIB (INLINE CALL with) [LAMBDA CALLS] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+5 val v1 = with(p) { this } (in foo(String) on String)
+5 val v1 = with(p) { this } (in foo(String) on String)
+7 val v2 = with(p) { bar(this) } (in foo(String) on String)
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+7 [LAMBDA RECEIVER] val v2 = with(p) { bar(this) } (in foo(String) on String)
+7 val v2 = with(p) { bar(this) } (in foo(String) on String)
+14 fun bar(s: String) = s (in bar(String))
+14 fun bar(s: String) = s (in bar(String))
14 fun bar(s: String) = s
-7 val v2 = with(p) { bar(this) }
-7 val v2 = with(p) { bar(this) }
-7 [LAMBDA CALLS] val v2 = with(p) { bar(this) }
-LIB (INLINE CALL with) [LAMBDA CALLS] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-7 val v2 = with(p) { bar(this) }
-7 val v2 = with(p) { bar(this) }
-9 val v3 = with(p) { this@foo }
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-9 [LAMBDA RECEIVER] val v3 = with(p) { this@foo }
-11 val v4 = with(p, ::zoo)
-LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R {
-11 [LAMBDA RECEIVER] val v4 = with(p, ::zoo)
-15 fun zoo(s: String) = s
-15 fun zoo(s: String) = s
+7 val v2 = with(p) { bar(this) } (in foo(String) on String)
+7 val v2 = with(p) { bar(this) } (in foo(String) on String)
+7 [LAMBDA CALLS] val v2 = with(p) { bar(this) } (in foo(String) on String)
+LIB (INLINE CALL with) [LAMBDA CALLS] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+7 val v2 = with(p) { bar(this) } (in foo(String) on String)
+7 val v2 = with(p) { bar(this) } (in foo(String) on String)
+9 val v3 = with(p) { this@foo } (in foo(String) on String)
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+9 [LAMBDA RECEIVER] val v3 = with(p) { this@foo } (in foo(String) on String)
+11 val v4 = with(p, ::zoo) (in foo(String) on String)
+LIB (INLINE CALL with) public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+LIB (INLINE CALL with) [LAMBDA RECEIVER] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+11 [LAMBDA RECEIVER] val v4 = with(p, ::zoo) (in foo(String) on String)
+15 fun zoo(s: String) = s (in zoo(String))
+15 fun zoo(s: String) = s (in zoo(String))
15 fun zoo(s: String) = s
-11 [LAMBDA CALLS] val v4 = with(p, ::zoo)
-LIB (INLINE CALL with) [LAMBDA CALLS] public inline fun with(receiver: T, block: T.() -> R): R {
-LIB (INLINE CALL with) return receiver.block()
-11 val v4 = with(p, ::zoo)
-11 val v4 = with(p, ::zoo)
+11 [LAMBDA CALLS] val v4 = with(p, ::zoo) (in foo(String) on String)
+LIB (INLINE CALL with) [LAMBDA CALLS] public inline fun with(receiver: T, block: T.() -> R): R { (in with(T, T.() -> R))
+LIB (INLINE CALL with) return receiver.block() (in with(T, T.() -> R))
+11 val v4 = with(p, ::zoo) (in foo(String) on String)
+11 val v4 = with(p, ::zoo) (in foo(String) on String)
diff --git a/idea/testData/slicer/outflow/wrongThis.results.txt b/idea/testData/slicer/outflow/wrongThis.results.txt
index ed41caf6f59..a53c836115a 100644
--- a/idea/testData/slicer/outflow/wrongThis.results.txt
+++ b/idea/testData/slicer/outflow/wrongThis.results.txt
@@ -1,3 +1,3 @@
-14 val x = "".extensionFun()
-5 fun String.extensionFun(): Any {
-8 println(this@extensionFun.length)
+14 val x = "".extensionFun() (in C.foo())
+5 fun String.extensionFun(): Any { (in extensionFun() on String)
+8 println(this@extensionFun.length) (in extensionFun() on String)
diff --git a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTestUtil.kt b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTestUtil.kt
index d9c1bb9fe3e..c579bd25f57 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTestUtil.kt
+++ b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTestUtil.kt
@@ -68,22 +68,31 @@ internal fun buildTreeRepresentation(rootNode: SliceNode): String {
} else {
append(chunks.first().render() + " ")
}
- append("\t".repeat(indent))
+
+ repeat(indent) { append('\t') }
+
if (usage is KotlinSliceDereferenceUsage) {
append("DEREFERENCE: ")
}
+
if (usage is KotlinSliceUsage) {
usage.mode.inlineCallStack.forEach {
append("(INLINE CALL ${it.function?.name}) ")
}
usage.mode.behaviourStack.reversed().joinTo(this, separator = "") { it.testPresentationPrefix }
}
- chunks.slice(1 until chunks.size).joinTo(
- this,
- separator = "",
- prefix = if (isDuplicated) "DUPLICATE: " else "",
- postfix = "\n"
- ) { it.render() }
+
+ if (isDuplicated) {
+ append("DUPLICATE: ")
+ }
+
+ chunks.slice(1 until chunks.size).joinTo(this, separator = "") { it.render() }
+
+ KotlinSliceUsageCellRenderer.containerSuffix(usage)?.let {
+ append(" ($it)")
+ }
+
+ append("\n")
}
}