KT-26765: Support 'call' for constructors with inline class parameters

This commit is contained in:
Dmitry Petrov
2018-10-19 15:45:01 +03:00
parent 23ead5e430
commit 6d0a403ead
11 changed files with 145 additions and 35 deletions
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
import org.jetbrains.kotlin.resolve.jvm.AsmTypes.*
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature
import org.jetbrains.kotlin.resolve.jvm.shouldHideConstructorDueToInlineClassTypeValueParameters
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.typeUtil.builtIns
import org.jetbrains.kotlin.util.OperatorNameConventions
@@ -241,6 +242,11 @@ class PropertyReferenceCodegen(
}
val accessor = when (callable) {
is ClassConstructorDescriptor ->
if (shouldHideConstructorDueToInlineClassTypeValueParameters(callable))
AccessorForConstructorDescriptor(callable, callable.containingDeclaration, null, AccessorKind.NORMAL)
else
callable
is FunctionDescriptor -> callable
is VariableDescriptorWithAccessors ->
callable.getter ?: DescriptorFactory.createDefaultGetter(callable as PropertyDescriptor, Annotations.EMPTY).apply {