diff --git a/compiler/fir/analysis-tests/testData/resolve/delegates/delegateInference.fir.txt b/compiler/fir/analysis-tests/testData/resolve/delegates/delegateInference.fir.txt
index 03d12b5..8dd907e 100644
--- a/compiler/fir/analysis-tests/testData/resolve/delegates/delegateInference.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolve/delegates/delegateInference.fir.txt
@@ -42,7 +42,7 @@
 
         public final var x: R|kotlin/Boolean|by R|/FreezableVar.FreezableVar|<R|kotlin/Boolean|>(Boolean(true))
             public get(): R|kotlin/Boolean| {
-                ^ this@R|/Test|.D|/Test.x|.R|SubstitutionOverride</FreezableVar.getValue: R|kotlin/Boolean|>|(this@R|/Test|, ::R|/Test.x|)
+                ^ this@R|/Test|.D|/Test.x|.R|SubstitutionOverride</FreezableVar.getValue: R|Stub (builder inference): TypeVariable(_T)|>|(this@R|/Test|, ::R|/Test.x|)
             }
             public set(<set-?>: R|kotlin/Boolean|): R|kotlin/Unit| {
                 this@R|/Test|.D|/Test.x|.R|SubstitutionOverride</FreezableVar.setValue: R|kotlin/Unit|>|(this@R|/Test|, ::R|/Test.x|, R|<local>/x|)
@@ -50,7 +50,7 @@
 
         public final var y: R|kotlin/String|by R|/FreezableVar.FreezableVar|<R|kotlin/String|>(String())
             public get(): R|kotlin/String| {
-                ^ this@R|/Test|.D|/Test.y|.R|SubstitutionOverride</FreezableVar.getValue: R|kotlin/String|>|(this@R|/Test|, ::R|/Test.y|)
+                ^ this@R|/Test|.D|/Test.y|.R|SubstitutionOverride</FreezableVar.getValue: R|Stub (builder inference): TypeVariable(_T)|>|(this@R|/Test|, ::R|/Test.y|)
             }
             public set(<set-?>: R|kotlin/String|): R|kotlin/Unit| {
                 this@R|/Test|.D|/Test.y|.R|SubstitutionOverride</FreezableVar.setValue: R|kotlin/Unit|>|(this@R|/Test|, ::R|/Test.y|, R|<local>/y|)
diff --git a/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.fir.txt b/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.fir.txt
index a0133e4..52c036b 100644
--- a/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.fir.txt
@@ -18,18 +18,20 @@
     public final fun getAny(): R|kotlin/Any?| {
         ^getAny Null(null)
     }
+    public final fun <Q> materialize(): R|Q| {
+        ^materialize Null(null)!!
+    }
     public final class Test : R|kotlin/Any| {
         public constructor(): R|Test| {
             super<R|kotlin/Any|>()
         }
 
         public final val x: R|kotlin/String|by R|/lazy|<R|kotlin/String|>(<L> = lazy@fun <anonymous>(): R|kotlin/String| <inline=NoInline>  {
-            lval y: R|kotlin/String| = (R|/getAny|() as? R|kotlin/String|) ?: String()
-            ^ R|<local>/y|
+            ^ R|/materialize|<R|kotlin/String|>()
         }
         )
             public get(): R|kotlin/String| {
-                ^ this@R|/Test|.D|/Test.x|.R|SubstitutionOverride</LazyDelegate.getValue: R|kotlin/String|>|(this@R|/Test|, ::R|/Test.x|)
+                ^ this@R|/Test|.D|/Test.x|.R|SubstitutionOverride</LazyDelegate.getValue: R|Stub (builder inference): TypeVariable(_T)|>|(this@R|/Test|, ::R|/Test.x|)
             }
 
     }
diff --git a/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.kt b/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.kt
index d704ff1..f804223 100644
--- a/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.kt
+++ b/compiler/fir/analysis-tests/testData/resolve/delegates/delegateWithLambda.kt
@@ -8,9 +8,10 @@
 
 fun getAny(): Any? = null
 
+fun <Q> materialize(): Q = null!!
+
 class Test {
-    val x by lazy {
-        val y = getAny() as? String ?: ""
-        y
+    val x: String by lazy {
+        materialize()
     }
 }
diff --git a/compiler/fir/analysis-tests/testData/resolve/delegates/provideDelegate.fir.txt b/compiler/fir/analysis-tests/testData/resolve/delegates/provideDelegate.fir.txt
index a1eda8a..680a7dd 100644
--- a/compiler/fir/analysis-tests/testData/resolve/delegates/provideDelegate.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolve/delegates/provideDelegate.fir.txt
@@ -38,9 +38,9 @@
             super<R|kotlin/Any|>()
         }
 
-        public final val x: R|kotlin/Int|by R|/delegate|<R|kotlin/Int|>(Int(1)).R|SubstitutionOverride</DelegateProvider.provideDelegate: R|Delegate<kotlin/Int>|>|(this@R|/A|, ::R|/A.x|)
+        public final val x: R|kotlin/Int|by R|/delegate|<R|kotlin/Int|>(Int(1)).R|SubstitutionOverride</DelegateProvider.provideDelegate: R|Delegate<Stub (builder inference): TypeVariable(_T)>|>|(this@R|/A|, ::R|/A.x|)
             public get(): R|kotlin/Int| {
-                ^ this@R|/A|.D|/A.x|.R|SubstitutionOverride</Delegate.getValue: R|kotlin/Int|>|(this@R|/A|, ::R|/A.x|)
+                ^ this@R|/A|.D|/A.x|.R|SubstitutionOverride</Delegate.getValue: R|Stub (builder inference): TypeVariable(_T)|>|(this@R|/A|, ::R|/A.x|)
             }
 
     }
diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateTypeMismatch.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateTypeMismatch.fir.txt
index 008919b..d8be7b9 100644
--- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateTypeMismatch.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateTypeMismatch.fir.txt
@@ -35,7 +35,7 @@
 
         public final var classifierNamePolicy: R|ClassifierNamePolicy|by this@R|/A|.R|/A.property|<R|ClassifierNamePolicy|>(Q|ClassifierNamePolicy.SOURCE_CODE_QUALIFIED|)
             public get(): R|ClassifierNamePolicy| {
-                ^ this@R|/A|.D|/A.classifierNamePolicy|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|ClassifierNamePolicy|>|(this@R|/A|, ::R|/A.classifierNamePolicy|)
+                ^ this@R|/A|.D|/A.classifierNamePolicy|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|Stub (builder inference): TypeVariable(_T)|>|(this@R|/A|, ::R|/A.classifierNamePolicy|)
             }
             public set(<set-?>: R|ClassifierNamePolicy|): R|kotlin/Unit| {
                 this@R|/A|.D|/A.classifierNamePolicy|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.setValue: R|kotlin/Unit|>|(this@R|/A|, ::R|/A.classifierNamePolicy|, R|<local>/classifierNamePolicy|)
diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot
index c37b2c3..3988652 100644
--- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot
+++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot
@@ -85,6 +85,33 @@
 
     subgraph cluster_9 {
         color=red
+        26 [label="Enter function anonymousFunction" style="filled" fillcolor=red];
+        subgraph cluster_10 {
+            color=blue
+            27 [label="Enter block"];
+            28 [label="Exit anonymous object"];
+            29 [label="Exit anonymous object expression"];
+            30 [label="Exit block"];
+        }
+        31 [label="Exit function anonymousFunction" style="filled" fillcolor=red];
+    }
+    subgraph cluster_11 {
+        color=blue
+        32 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
+        33 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
+    }
+    26 -> {27};
+    27 -> {28};
+    27 -> {34 37 44} [color=red];
+    28 -> {29};
+    28 -> {34 37 44 32} [color=green];
+    28 -> {34 37 44 32} [style=dashed];
+    29 -> {30};
+    30 -> {31};
+    32 -> {33} [color=green];
+
+    subgraph cluster_12 {
+        color=red
         34 [label="Enter function <init>" style="filled" fillcolor=red];
         35 [label="Delegated constructor call: super<R|kotlin/Any|>()"];
         36 [label="Exit function <init>" style="filled" fillcolor=red];
@@ -92,10 +119,10 @@
     34 -> {35};
     35 -> {36};
 
-    subgraph cluster_10 {
+    subgraph cluster_13 {
         color=red
         37 [label="Enter function getValue" style="filled" fillcolor=red];
-        subgraph cluster_11 {
+        subgraph cluster_14 {
             color=blue
             38 [label="Enter block"];
             39 [label="Function call: R|/IssueListView.IssueListView|()"];
@@ -113,10 +140,10 @@
     41 -> {42} [style=dotted];
     42 -> {43} [style=dotted];
 
-    subgraph cluster_12 {
+    subgraph cluster_15 {
         color=red
         44 [label="Enter function setValue" style="filled" fillcolor=red];
-        subgraph cluster_13 {
+        subgraph cluster_16 {
             color=blue
             45 [label="Enter block"];
             46 [label="Function call: R|/IssueListView.IssueListView|()"];
@@ -138,16 +165,16 @@
     50 -> {51} [style=dotted];
     51 -> {52} [style=dotted];
 
-    subgraph cluster_14 {
+    subgraph cluster_17 {
         color=red
         53 [label="Enter function getter" style="filled" fillcolor=red];
-        subgraph cluster_15 {
+        subgraph cluster_18 {
             color=blue
             54 [label="Enter block"];
             55 [label="Access variable D|/IssuesListUserProfile.issueListView|"];
             56 [label="Access variable this@R|/IssuesListUserProfile|"];
-            57 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|IssueListView|>|(...)"];
-            58 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|IssueListView|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"];
+            57 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|Stub (builder inference): TypeVariable(_Target)|>|(...)"];
+            58 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|Stub (builder inference): TypeVariable(_Target)|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"];
             59 [label="Stub" style="filled" fillcolor=gray];
             60 [label="Exit block" style="filled" fillcolor=gray];
         }
@@ -163,10 +190,10 @@
     59 -> {60} [style=dotted];
     60 -> {61} [style=dotted];
 
-    subgraph cluster_16 {
+    subgraph cluster_19 {
         color=red
         62 [label="Enter function setter" style="filled" fillcolor=red];
-        subgraph cluster_17 {
+        subgraph cluster_20 {
             color=blue
             63 [label="Enter block"];
             64 [label="Access variable D|/IssuesListUserProfile.issueListView|"];
@@ -185,66 +212,34 @@
     67 -> {68};
     68 -> {69};
 
-    subgraph cluster_18 {
+    subgraph cluster_21 {
         color=red
         70 [label="Enter property" style="filled" fillcolor=red];
         71 [label="Postponed enter to lambda"];
         72 [label="Postponed exit from lambda"];
-        73 [label="Function call: R?C|/delegate|(...)"];
+        73 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|<R|IssuesListUserProfile|, R|IssuesListUserProfile|, R|IssueListView|>(...)"];
         74 [label="Access variable this@R|/IssuesListUserProfile|"];
-        75 [label="Function call: R?C|/delegate|(...).R?C|special/error|(...)"];
-        76 [label="Postponed enter to lambda"];
-        subgraph cluster_19 {
-            color=blue
-            26 [label="Enter function anonymousFunction" style="filled" fillcolor=red];
-            subgraph cluster_20 {
-                color=blue
-                27 [label="Enter block"];
-                28 [label="Exit anonymous object"];
-                29 [label="Exit anonymous object expression"];
-                30 [label="Exit block"];
-            }
-            31 [label="Exit function anonymousFunction" style="filled" fillcolor=red];
-        }
-        subgraph cluster_21 {
-            color=blue
-            32 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
-            33 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
-        }
-        77 [label="Postponed exit from lambda"];
-        78 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|<R|IssuesListUserProfile|, R|IssuesListUserProfile|, R|IssueListView|>(...)"];
-        79 [label="Exit property" style="filled" fillcolor=red];
+        75 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|<R|IssuesListUserProfile|, R|IssuesListUserProfile|, R|IssueListView|>(...).<Unresolved name: provideDelegate>#(...)"];
+        76 [label="Exit property" style="filled" fillcolor=red];
     }
     70 -> {71};
-    71 -> {72} [color=red];
+    71 -> {72};
+    71 -> {26} [style=dashed];
     72 -> {73};
     73 -> {74};
     74 -> {75};
     75 -> {76};
-    76 -> {77 26};
-    76 -> {26} [style=dashed];
-    77 -> {78};
-    78 -> {79};
-    79 -> {82} [color=green];
-    26 -> {27};
-    27 -> {28};
-    27 -> {34 37 44} [color=red];
-    28 -> {29};
-    28 -> {34 37 44 32} [color=green];
-    28 -> {34 37 44 32} [style=dashed];
-    29 -> {30};
-    30 -> {31};
-    32 -> {33} [color=green];
+    76 -> {79} [color=green];
 
     subgraph cluster_22 {
         color=red
-        80 [label="Enter class IssuesListUserProfile" style="filled" fillcolor=red];
-        81 [label="Part of class initialization"];
-        82 [label="Exit class IssuesListUserProfile" style="filled" fillcolor=red];
+        77 [label="Enter class IssuesListUserProfile" style="filled" fillcolor=red];
+        78 [label="Part of class initialization"];
+        79 [label="Exit class IssuesListUserProfile" style="filled" fillcolor=red];
     }
-    80 -> {81} [color=green];
-    81 -> {82} [style=dotted];
-    81 -> {70} [color=green];
-    81 -> {70} [style=dashed];
+    77 -> {78} [color=green];
+    78 -> {79} [style=dotted];
+    78 -> {70} [color=green];
+    78 -> {70} [style=dashed];
 
 }
diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.fir.txt
index 332b46c..2d74053 100644
--- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.fir.txt
@@ -41,7 +41,7 @@
         }
         )
             public get(): R|IssueListView| {
-                ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|IssueListView|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)
+                ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|Stub (builder inference): TypeVariable(_Target)|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)
             }
             public set(<set-?>: R|IssueListView|): R|kotlin/Unit| {
                 this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.setValue: R|kotlin/Unit|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|, R|<local>/issueListView|)
diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/kt41917.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/kt41917.fir.txt
index 5ec004e..1bd9fc9 100644
--- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/kt41917.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/kt41917.fir.txt
@@ -25,12 +25,12 @@
 
         public final val implicit: R|kotlin/String|by R|/DummyDelegate.DummyDelegate|<R|kotlin/String|>(String(hello))
             public get(): R|kotlin/String| {
-                ^ this@R|/A|.D|/A.implicit|.R|SubstitutionOverride</DummyDelegate.getValue: R|kotlin/String|>|(this@R|/A|, ::R|/A.implicit|)
+                ^ this@R|/A|.D|/A.implicit|.R|SubstitutionOverride</DummyDelegate.getValue: R|Stub (builder inference): TypeVariable(_V)|>|(this@R|/A|, ::R|/A.implicit|)
             }
 
         public final val explicit: R|kotlin/String|by R|/DummyDelegate.DummyDelegate|<R|kotlin/String|>(String(hello))
             public get(): R|kotlin/String| {
-                ^ this@R|/A|.D|/A.explicit|.R|SubstitutionOverride</DummyDelegate.getValue: R|kotlin/String|>|(this@R|/A|, ::R|/A.explicit|)
+                ^ this@R|/A|.D|/A.explicit|.R|SubstitutionOverride</DummyDelegate.getValue: R|Stub (builder inference): TypeVariable(_V)|>|(this@R|/A|, ::R|/A.explicit|)
             }
 
     }
diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/propertyWithFunctionalType.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/propertyWithFunctionalType.fir.txt
index 8d67d71..0b633af 100644
--- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/propertyWithFunctionalType.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/propertyWithFunctionalType.fir.txt
@@ -26,7 +26,7 @@
         }
         )
             public get(): R|(B) -> B| {
-                ^ this@R|/A|.D|/A.conventerWithExpectedType|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|(B) -> B|>|(this@R|/A|, ::R|/A.conventerWithExpectedType|)
+                ^ this@R|/A|.D|/A.conventerWithExpectedType|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|Stub (builder inference): TypeVariable(_T)|>|(this@R|/A|, ::R|/A.conventerWithExpectedType|)
             }
             public set(<set-?>: R|(B) -> B|): R|kotlin/Unit| {
                 this@R|/A|.D|/A.conventerWithExpectedType|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.setValue: R|kotlin/Unit|>|(this@R|/A|, ::R|/A.conventerWithExpectedType|, R|<local>/conventerWithExpectedType|)
diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/intellij/hideBySeverity.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/intellij/hideBySeverity.fir.txt
index 604cf0d..6098bc2 100644
--- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/intellij/hideBySeverity.fir.txt
+++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/intellij/hideBySeverity.fir.txt
@@ -30,14 +30,14 @@
             super<R|BaseState|>()
         }
 
-        public final val hideBySeverityDerived: R|kotlin/collections/MutableSet<kotlin/Int>|by this@R|/Some|.R|/BaseState.propertyDerived|<R|kotlin/collections/MutableSet<kotlin/Int>|>(R|kotlin/collections/mutableSetOf|<R|kotlin/Int|>()).R|SubstitutionOverride</StoredPropertyDerived.provideDelegate: R|StoredPropertyBase<kotlin/collections/MutableSet<kotlin/Int>>|>|(this@R|/Some|, ::R|/Some.hideBySeverityDerived|)
+        public final val hideBySeverityDerived: R|kotlin/collections/MutableSet<kotlin/Int>|by this@R|/Some|.R|/BaseState.propertyDerived|<R|kotlin/collections/MutableSet<kotlin/Int>|>(R|kotlin/collections/mutableSetOf|<R|kotlin/Int|>()).R|SubstitutionOverride</StoredPropertyDerived.provideDelegate: R|StoredPropertyBase<Stub (builder inference): TypeVariable(_PROPERTY_TYPE)>|>|(this@R|/Some|, ::R|/Some.hideBySeverityDerived|)
             public get(): R|kotlin/collections/MutableSet<kotlin/Int>| {
-                ^ this@R|/Some|.D|/Some.hideBySeverityDerived|.R|SubstitutionOverride</StoredPropertyBase.getValue: R|kotlin/collections/MutableSet<kotlin/Int>|>|(this@R|/Some|, ::R|/Some.hideBySeverityDerived|)
+                ^ this@R|/Some|.D|/Some.hideBySeverityDerived|.R|SubstitutionOverride</StoredPropertyBase.getValue: R|Stub (builder inference): TypeVariable(_PROPERTY_TYPE)|>|(this@R|/Some|, ::R|/Some.hideBySeverityDerived|)
             }
 
         public final val hideBySeverityBase: R|kotlin/collections/MutableSet<kotlin/Int>|by this@R|/Some|.R|/BaseState.propertyBase|<R|kotlin/collections/MutableSet<kotlin/Int>|>(R|kotlin/collections/mutableSetOf|<R|kotlin/Int|>())
             public get(): R|kotlin/collections/MutableSet<kotlin/Int>| {
-                ^ this@R|/Some|.D|/Some.hideBySeverityBase|.R|SubstitutionOverride</StoredPropertyBase.getValue: R|kotlin/collections/MutableSet<kotlin/Int>|>|(this@R|/Some|, ::R|/Some.hideBySeverityBase|)
+                ^ this@R|/Some|.D|/Some.hideBySeverityBase|.R|SubstitutionOverride</StoredPropertyBase.getValue: R|Stub (builder inference): TypeVariable(_PROPERTY_TYPE)|>|(this@R|/Some|, ::R|/Some.hideBySeverityBase|)
             }
 
     }
diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt b/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt
index c681773..dc3d9e7 100644
--- a/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt
+++ b/compiler/testData/diagnostics/tests/delegatedProperty/inference/extensionProperty.kt
@@ -4,10 +4,10 @@
 import kotlin.reflect.KProperty
 
 open class A {
-    val B.w: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>MyProperty()<!>
+    val B.w: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!><!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>MyProperty<!>()<!>
 }
 
-val B.r: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>MyProperty()<!>
+val B.r: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!><!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>MyProperty<!>()<!>
 
 val A.e: Int by MyProperty()
 
diff --git a/compiler/testData/diagnostics/tests/typeParameters/kt42472.fir.kt b/compiler/testData/diagnostics/tests/typeParameters/kt42472.fir.kt
index 0107c7c..00766fb 100644
--- a/compiler/testData/diagnostics/tests/typeParameters/kt42472.fir.kt
+++ b/compiler/testData/diagnostics/tests/typeParameters/kt42472.fir.kt
@@ -7,6 +7,6 @@
 }
 
 class Problem {
-    val variable: Int by <!DELEGATE_SPECIAL_FUNCTION_RETURN_TYPE_MISMATCH!>delegate()<!> // delegate returns `ReadOnlyProperty<Problem, {CharSequence & Int}>`
+    val variable: Int by <!DELEGATE_SPECIAL_FUNCTION_RETURN_TYPE_MISMATCH, NEW_INFERENCE_ERROR!>delegate()<!> // delegate returns `ReadOnlyProperty<Problem, {CharSequence & Int}>`
     fun <T : CharSequence> delegate() = null <!CAST_NEVER_SUCCEEDS!>as<!> ReadOnlyProperty<Problem, T>
 }
