JS: fix inlining of array constructor expressed via typealias

See KT-20978
This commit is contained in:
Alexey Andreev
2017-10-30 15:58:01 +03:00
parent ec53f9b254
commit 779af375a7
2 changed files with 18 additions and 2 deletions
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.builtins.getValueParameterTypesFromFunctionType
import org.jetbrains.kotlin.builtins.isBuiltinFunctionalType
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
import org.jetbrains.kotlin.js.backend.ast.*
import org.jetbrains.kotlin.js.backend.ast.metadata.descriptor
import org.jetbrains.kotlin.js.backend.ast.metadata.inlineStrategy
@@ -192,8 +193,12 @@ object ArrayFIF : CompositeFIF() {
}
invocation.inlineStrategy = InlineStrategy.IN_PLACE
val descriptor = callInfo.resolvedCall.resultingDescriptor.original
invocation.descriptor = descriptor
context.addInlineCall(descriptor)
val resolvedDescriptor = when (descriptor) {
is TypeAliasConstructorDescriptor -> descriptor.underlyingConstructorDescriptor
else -> descriptor
}
invocation.descriptor = resolvedDescriptor
context.addInlineCall(resolvedDescriptor)
invocation
}
}