Create expect/actual class: fix inline class generation

#KT-28744 Fixed
#KT-28745 Fixed
This commit is contained in:
Mikhail Glukhikh
2018-12-11 20:29:01 +03:00
parent d3a5b0dcd6
commit ca3d758fba
11 changed files with 40 additions and 8 deletions
@@ -187,7 +187,7 @@ interface DescriptorRendererOptions {
var renderDefaultVisibility: Boolean
var renderDefaultModality: Boolean
var renderConstructorDelegation: Boolean
var renderAnnotationPropertiesInPrimaryConstructor: Boolean
var renderPrimaryConstructorParametersAsProperties: Boolean
var actualPropertiesInPrimaryConstructor: Boolean
var uninferredTypeParameterAsName: Boolean
var overrideRenderingPolicy: OverrideRenderingPolicy
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.resolve.constants.ConstantValue
import org.jetbrains.kotlin.resolve.constants.KClassValue
import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass
import org.jetbrains.kotlin.resolve.descriptorUtil.declaresOrInheritsDefaultValue
import org.jetbrains.kotlin.resolve.descriptorUtil.isAnnotationConstructor
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor
import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE
@@ -815,7 +814,9 @@ internal class DescriptorRendererImpl(
renderModifier(builder, valueParameter.isCrossinline, "crossinline")
renderModifier(builder, valueParameter.isNoinline, "noinline")
if (renderAnnotationPropertiesInPrimaryConstructor && valueParameter.containingDeclaration.isAnnotationConstructor()) {
if (renderPrimaryConstructorParametersAsProperties &&
(valueParameter.containingDeclaration as? ClassConstructorDescriptor)?.isPrimary == true
) {
renderModifier(builder, actualPropertiesInPrimaryConstructor, "actual")
renderModifier(builder, true, "val")
}
@@ -82,7 +82,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var renderDefaultVisibility by property(true)
override var renderDefaultModality by property(true)
override var renderConstructorDelegation by property(false)
override var renderAnnotationPropertiesInPrimaryConstructor by property(false)
override var renderPrimaryConstructorParametersAsProperties by property(false)
override var actualPropertiesInPrimaryConstructor: Boolean by property(false)
override var uninferredTypeParameterAsName by property(false)
override var includePropertyConstant by property(false)