diff --git a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/lib2/l2.kt b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/lib2/l2.kt
index 9c22b1c..cb88179 100644
--- a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/lib2/l2.kt
+++ b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/lib2/l2.kt
@@ -65,6 +65,10 @@
 fun referenceInnerToNestedConstructorWithoutDispatchReceiver(): String = ClassWithChangedMembers::InnerToNested.name
 fun referenceInnerToNestedConstructorWithDispatchReceiver(obj: ClassWithChangedMembers): String = obj::InnerToNested.name
 
+fun invokeNestedToInnerConstructorWithoutDispatchReceiver(): String = ClassWithChangedMembers::NestedToInner.invoke(123).toString()
+fun invokeInnerToNestedConstructorWithoutDispatchReceiver(obj: ClassWithChangedMembers): String = ClassWithChangedMembers::InnerToNested.invoke(obj, 123).toString()
+fun invokeInnerToNestedConstructorWithDispatchReceiver(obj: ClassWithChangedMembers): String = obj::InnerToNested.invoke(123).toString()
+
 fun referenceFunctionWithUnlinkedParameter(): String = ::functionWithUnlinkedParameter.name
 fun referenceFunctionWithUnlinkedReturnValue(): String = ::functionWithUnlinkedReturnValue.name
 fun referenceFunctionWithRemovedTypeParameter(): String {
diff --git a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/main/m.kt b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/main/m.kt
index 391c72c..fbb61f1 100644
--- a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/main/m.kt
+++ b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarations/main/m.kt
@@ -49,6 +49,10 @@
     expectFailure(linkage("Reference to constructor 'InnerToNested.<init>' can not be evaluated: The call site provides 1 more value argument(s) than the constructor expects")) { referenceInnerToNestedConstructorWithoutDispatchReceiver() }
     expectFailure(linkage("Reference to constructor 'InnerToNested.<init>' can not be evaluated: The call site provides 1 more value argument(s) than the constructor expects")) { referenceInnerToNestedConstructorWithDispatchReceiver(classWithChangedMembers) }
 
+    expectFailure(linkage("Reference to constructor 'NestedToInner.<init>' can not be evaluated: The call site has 1 less value argument(s) than the constructor requires. Those arguments are missing: <this>")) { invokeNestedToInnerConstructorWithoutDispatchReceiver() }
+    expectFailure(linkage("Reference to constructor 'InnerToNested.<init>' can not be evaluated: The call site provides 1 more value argument(s) than the constructor expects")) { invokeInnerToNestedConstructorWithoutDispatchReceiver(classWithChangedMembers) }
+    expectFailure(linkage("Reference to constructor 'InnerToNested.<init>' can not be evaluated: The call site provides 1 more value argument(s) than the constructor expects")) { invokeInnerToNestedConstructorWithDispatchReceiver(classWithChangedMembers) }
+
     expectFailure(linkage("Reference to function 'functionWithUnlinkedParameter' can not be evaluated: Function uses unlinked class symbol '/RemovedClass'")) { referenceFunctionWithUnlinkedParameter() }
     expectFailure(linkage("Reference to function 'functionWithUnlinkedReturnValue' can not be evaluated: Function uses unlinked class symbol '/RemovedClass'")) { referenceFunctionWithUnlinkedReturnValue() }
     expectFailure(linkage("Reference to function 'functionWithRemovedTypeParameter' can not be evaluated: Function uses unlinked class symbol '/RemovedClass' (via type parameter '#0')")) { referenceFunctionWithRemovedTypeParameter() }
diff --git a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/ReadMe.md b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/ReadMe.md
new file mode 100644
index 0000000..749d36b7
--- /dev/null
+++ b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/ReadMe.md
@@ -0,0 +1 @@
+This is the copy of referencingUnusableDeclarations test, but testing the new implementation of callable references (IrRichCallableReference).
\ No newline at end of file
diff --git a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/lib2/l2.kt b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/lib2/l2.kt
index 9c22b1c..cb88179 100644
--- a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/lib2/l2.kt
+++ b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/lib2/l2.kt
@@ -65,6 +65,10 @@
 fun referenceInnerToNestedConstructorWithoutDispatchReceiver(): String = ClassWithChangedMembers::InnerToNested.name
 fun referenceInnerToNestedConstructorWithDispatchReceiver(obj: ClassWithChangedMembers): String = obj::InnerToNested.name
 
+fun invokeNestedToInnerConstructorWithoutDispatchReceiver(): String = ClassWithChangedMembers::NestedToInner.invoke(123).toString()
+fun invokeInnerToNestedConstructorWithoutDispatchReceiver(obj: ClassWithChangedMembers): String = ClassWithChangedMembers::InnerToNested.invoke(obj, 123).toString()
+fun invokeInnerToNestedConstructorWithDispatchReceiver(obj: ClassWithChangedMembers): String = obj::InnerToNested.invoke(123).toString()
+
 fun referenceFunctionWithUnlinkedParameter(): String = ::functionWithUnlinkedParameter.name
 fun referenceFunctionWithUnlinkedReturnValue(): String = ::functionWithUnlinkedReturnValue.name
 fun referenceFunctionWithRemovedTypeParameter(): String {
diff --git a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/main/m.kt b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/main/m.kt
index 391c72c..f8720ac 100644
--- a/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/main/m.kt
+++ b/compiler/testData/klib/partial-linkage/referencingUnusableDeclarationsWithRichReferences/main/m.kt
@@ -7,30 +7,30 @@
     val classWithChangedMembers = ClassWithChangedMembers()
 
     expectFailure(linkage("Reference to class 'RemovedClass' can not be evaluated: No class found for symbol '/RemovedClass'")) { referenceRemovedClassReference() }
-    expectFailure(linkage("Reference to constructor 'RemovedClass.<init>' can not be evaluated: No constructor found for symbol '/RemovedClass.<init>'")) { referenceRemovedClassConstructorReference() }
+    expectFailure(linkage("Reference to constructor 'RemovedClass.<init>' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass'")) { referenceRemovedClassConstructorReference() }
     expectFailure(linkage("Reference to property 'p1' can not be evaluated: No property found for symbol '/RemovedClass.p1'")) { referenceRemovedClassProperty1Reference() }
-    expectFailure(linkage("Reference to function 'f1' can not be evaluated: No function found for symbol '/RemovedClass.f1'")) { referenceRemovedClassFunction1Reference() }
+    expectFailure(linkage("Reference to function 'f1' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass'")) { referenceRemovedClassFunction1Reference() }
 
     expectFailure(linkage("Reference to class 'RemovedClassImpl' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass' (via class 'RemovedClassImpl')")) { referenceRemovedClassImplReference() }
-    expectFailure(linkage("Reference to constructor 'RemovedClassImpl.<init>' can not be evaluated: Class 'RemovedClassImpl' uses unlinked class symbol '/RemovedClass'")) { referenceRemovedClassImplConstructorReference() }
+    expectFailure(linkage("Reference to constructor 'RemovedClassImpl.<init>' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass' (via class 'RemovedClassImpl')")) { referenceRemovedClassImplConstructorReference() }
     expectFailure(linkage("Reference to property 'p1' can not be evaluated: No property found for symbol '/RemovedClassImpl.p1'")) { referenceRemovedClassImplProperty1Reference() }
     expectFailure(linkage("Reference to property 'p2' can not be evaluated: Dispatch receiver class 'RemovedClassImpl' uses unlinked class symbol '/RemovedClass'")) { referenceRemovedClassImplProperty2Reference() }
-    expectFailure(linkage("Reference to function 'f1' can not be evaluated: No function found for symbol '/RemovedClassImpl.f1'")) { referenceRemovedClassImplFunction1Reference() }
-    expectFailure(linkage("Reference to function 'f2' can not be evaluated: Dispatch receiver class 'RemovedClassImpl' uses unlinked class symbol '/RemovedClass'")) { referenceRemovedClassImplFunction2Reference() }
+    expectFailure(linkage("Reference to function 'f1' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass' (via class 'RemovedClassImpl')")) { referenceRemovedClassImplFunction1Reference() }
+    expectFailure(linkage("Reference to function 'f2' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass' (via class 'RemovedClassImpl')")) { referenceRemovedClassImplFunction2Reference() }
 
     expectFailure(linkage("Reference to class 'RemovedInterface' can not be evaluated: No class found for symbol '/RemovedInterface'")) { referenceRemovedInterfaceReference() }
     expectFailure(linkage("Reference to property 'p1' can not be evaluated: No property found for symbol '/RemovedInterface.p1'")) { referenceRemovedInterfaceProperty1Reference() }
     expectFailure(linkage("Reference to property 'p2' can not be evaluated: No property found for symbol '/RemovedInterface.p2'")) { referenceRemovedInterfaceProperty2Reference() }
-    expectFailure(linkage("Reference to function 'f1' can not be evaluated: No function found for symbol '/RemovedInterface.f1'")) { referenceRemovedInterfaceFunction1Reference() }
-    expectFailure(linkage("Reference to function 'f2' can not be evaluated: No function found for symbol '/RemovedInterface.f2'")) { referenceRemovedInterfaceFunction2Reference() }
+    expectFailure(linkage("Reference to function 'f1' can not be evaluated: Expression uses unlinked class symbol '/RemovedInterface'")) { referenceRemovedInterfaceFunction1Reference() }
+    expectFailure(linkage("Reference to function 'f2' can not be evaluated: Expression uses unlinked class symbol '/RemovedInterface'")) { referenceRemovedInterfaceFunction2Reference() }
 
     expectFailure(linkage("Reference to class 'RemovedInterfaceImpl' can not be evaluated: Expression uses unlinked class symbol '/RemovedInterface' (via class 'RemovedInterfaceImpl')")) { referenceRemovedInterfaceImplReference() }
     expectFailure(linkage("Reference to property 'p1' can not be evaluated: Dispatch receiver class 'RemovedInterfaceImpl' uses unlinked class symbol '/RemovedInterface'")) { referenceRemovedInterfaceImplProperty1Reference() }
     expectFailure(linkage("Reference to property 'p2' can not be evaluated: No property found for symbol '/RemovedInterfaceImpl.p2'")) { referenceRemovedInterfaceImplProperty2Reference() }
     expectFailure(linkage("Reference to property 'p3' can not be evaluated: Dispatch receiver class 'RemovedInterfaceImpl' uses unlinked class symbol '/RemovedInterface'")) { referenceRemovedInterfaceImplProperty3Reference() }
-    expectFailure(linkage("Reference to function 'f1' can not be evaluated: Dispatch receiver class 'RemovedInterfaceImpl' uses unlinked class symbol '/RemovedInterface'")) { referenceRemovedInterfaceImplFunction1Reference() }
-    expectFailure(linkage("Reference to function 'f2' can not be evaluated: No function found for symbol '/RemovedInterfaceImpl.f2'")) { referenceRemovedInterfaceImplFunction2Reference() }
-    expectFailure(linkage("Reference to function 'f3' can not be evaluated: Dispatch receiver class 'RemovedInterfaceImpl' uses unlinked class symbol '/RemovedInterface'")) { referenceRemovedInterfaceImplFunction3Reference() }
+    expectFailure(linkage("Reference to function 'f1' can not be evaluated: Expression uses unlinked class symbol '/RemovedInterface' (via class 'RemovedInterfaceImpl')")) { referenceRemovedInterfaceImplFunction1Reference() }
+    expectFailure(linkage("Reference to function 'f2' can not be evaluated: Expression uses unlinked class symbol '/RemovedInterface' (via class 'RemovedInterfaceImpl')")) { referenceRemovedInterfaceImplFunction2Reference() }
+    expectFailure(linkage("Reference to function 'f3' can not be evaluated: Expression uses unlinked class symbol '/RemovedInterface' (via class 'RemovedInterfaceImpl')")) { referenceRemovedInterfaceImplFunction3Reference() }
 
     expectSuccess("<init>") { referenceStableClassConstructor() }
     expectSuccess("foo") { referenceStableClassMemberFunctionWithoutDispatchReceiver() }
@@ -45,13 +45,17 @@
     expectFailure(linkage("Reference to function 'removedFun' can not be evaluated: No function found for symbol '/InterfaceWithChangedMembers.removedFun'")) { referenceRemovedFunFromInterface() }
     expectFailure(linkage("Reference to function 'changedFun' can not be evaluated: No function found for symbol '/InterfaceWithChangedMembers.changedFun'")) { referenceChangedFunFromInterface() }
 
-    expectFailure(linkage("Reference to constructor 'NestedToInner.<init>' can not be evaluated: The call site has 1 less value argument(s) than the constructor requires. Those arguments are missing: <this>")) { referenceNestedToInnerConstructorWithoutDispatchReceiver() }
-    expectFailure(linkage("Reference to constructor 'InnerToNested.<init>' can not be evaluated: The call site provides 1 more value argument(s) than the constructor expects")) { referenceInnerToNestedConstructorWithoutDispatchReceiver() }
-    expectFailure(linkage("Reference to constructor 'InnerToNested.<init>' can not be evaluated: The call site provides 1 more value argument(s) than the constructor expects")) { referenceInnerToNestedConstructorWithDispatchReceiver(classWithChangedMembers) }
+    expectSuccess("<init>") { referenceNestedToInnerConstructorWithoutDispatchReceiver() }
+    expectSuccess("<init>") { referenceInnerToNestedConstructorWithoutDispatchReceiver() }
+    expectSuccess("<init>") { referenceInnerToNestedConstructorWithDispatchReceiver(classWithChangedMembers) }
 
-    expectFailure(linkage("Reference to function 'functionWithUnlinkedParameter' can not be evaluated: Function uses unlinked class symbol '/RemovedClass'")) { referenceFunctionWithUnlinkedParameter() }
-    expectFailure(linkage("Reference to function 'functionWithUnlinkedReturnValue' can not be evaluated: Function uses unlinked class symbol '/RemovedClass'")) { referenceFunctionWithUnlinkedReturnValue() }
-    expectFailure(linkage("Reference to function 'functionWithRemovedTypeParameter' can not be evaluated: Function uses unlinked class symbol '/RemovedClass' (via type parameter '#0')")) { referenceFunctionWithRemovedTypeParameter() }
+    expectFailure(linkage("Constructor 'NestedToInner.<init>' can not be called: The call site has 1 less value argument(s) than the constructor requires. Those arguments are missing: x")) { invokeNestedToInnerConstructorWithoutDispatchReceiver() }
+    expectFailure(linkage("Constructor 'InnerToNested.<init>' can not be called: The call site provides 1 more value argument(s) than the constructor expects")) { invokeInnerToNestedConstructorWithoutDispatchReceiver(classWithChangedMembers) }
+    expectFailure(linkage("Constructor 'InnerToNested.<init>' can not be called: The call site provides 1 more value argument(s) than the constructor expects")) { invokeInnerToNestedConstructorWithDispatchReceiver(classWithChangedMembers) }
+
+    expectFailure(linkage("Reference to function 'functionWithUnlinkedParameter' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass'")) { referenceFunctionWithUnlinkedParameter() }
+    expectFailure(linkage("Reference to function 'functionWithUnlinkedReturnValue' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass'")) { referenceFunctionWithUnlinkedReturnValue() }
+    expectFailure(linkage("Reference to function 'functionWithRemovedTypeParameter' can not be evaluated: Expression uses unlinked class symbol '/RemovedClass' (via class 'RemovedClassImpl')")) { referenceFunctionWithRemovedTypeParameter() }
 
     expectSuccess("foo") { referencingMemberFunctionFoo(sfh) }
     expectSuccess("bar") { referencingMemberFunctionBar(sfh) }
