diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionDefinitionLoader.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionDefinitionLoader.kt index edaad1a8d91..5ef90d43cb6 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionDefinitionLoader.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionDefinitionLoader.kt @@ -92,13 +92,8 @@ class FunctionDefinitionLoader( private fun lookUpFunctionIndirect(call: JsInvocation, fragment: JsProgramFragment): InlineFunctionDefinition? { - /** remove ending `()` */ - val callQualifier: JsExpression = if (isCallInvocation(call)) { - (call.qualifier as JsNameRef).qualifier!! - } else { - call.qualifier - } - + /** Try loading via `descriptor` metadata. + * In case of private inline properties that's the only way... */ call.descriptor?.let { descriptor -> fragmentInfo[fragment]?.let { info -> info.localAccessors[descriptor]?.let { fn -> @@ -109,6 +104,13 @@ class FunctionDefinitionLoader( } } + /** remove ending `()` */ + val callQualifier: JsExpression = if (isCallInvocation(call)) { + (call.qualifier as JsNameRef).qualifier!! + } else { + call.qualifier + } + /** process cases 2, 3 */ val qualifier = callQualifier.transitiveStaticRef return when (qualifier) {