Add a set of new tests for KT-27075 (create expected class) + some fixes
This commit is contained in:
+14
-14
@@ -41,6 +41,8 @@ import org.jetbrains.kotlin.psi.findDocComment.findDocComment
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
|
||||
import org.jetbrains.kotlin.renderer.*
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer.Companion.withOptions
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier.*
|
||||
import org.jetbrains.kotlin.resolve.checkers.ExperimentalUsageChecker
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.setSingleOverridden
|
||||
import org.jetbrains.kotlin.util.findCallableMemberBySignature
|
||||
@@ -118,8 +120,8 @@ interface OverrideMemberChooserObject : ClassMember {
|
||||
}
|
||||
|
||||
fun OverrideMemberChooserObject.generateTopLevelActual(
|
||||
copyDoc: Boolean,
|
||||
project: Project
|
||||
project: Project,
|
||||
copyDoc: Boolean
|
||||
) = generateMember(null, copyDoc, project, forceActual = true, forceExpect = false)
|
||||
|
||||
fun OverrideMemberChooserObject.generateActualMember(
|
||||
@@ -128,8 +130,8 @@ fun OverrideMemberChooserObject.generateActualMember(
|
||||
) = generateMember(targetClass, copyDoc, targetClass.project, forceActual = true, forceExpect = false)
|
||||
|
||||
fun OverrideMemberChooserObject.generateTopLevelExpect(
|
||||
copyDoc: Boolean,
|
||||
project: Project
|
||||
project: Project,
|
||||
copyDoc: Boolean
|
||||
) = generateMember(null, copyDoc, project, forceActual = false, forceExpect = true)
|
||||
|
||||
fun OverrideMemberChooserObject.generateExpectMember(
|
||||
@@ -177,8 +179,6 @@ private fun OverrideMemberChooserObject.generateMember(
|
||||
forceActual -> newMember.addModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
forceExpect -> if (targetClass == null) {
|
||||
newMember.addModifier(KtTokens.EXPECT_KEYWORD)
|
||||
} else {
|
||||
newMember.makeNotActual()
|
||||
}
|
||||
targetClass?.hasActualModifier() == true -> {
|
||||
val expectClassDescriptors =
|
||||
@@ -191,9 +191,6 @@ private fun OverrideMemberChooserObject.generateMember(
|
||||
newMember.addModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
newMember.makeNotActual()
|
||||
}
|
||||
}
|
||||
|
||||
if (copyDoc) {
|
||||
@@ -215,9 +212,9 @@ private fun OverrideMemberChooserObject.generateMember(
|
||||
return newMember
|
||||
}
|
||||
|
||||
private val OVERRIDE_RENDERER = DescriptorRenderer.withOptions {
|
||||
private val OVERRIDE_RENDERER = withOptions {
|
||||
defaultParameterValueRenderer = null
|
||||
modifiers = setOf(DescriptorRendererModifier.OVERRIDE, DescriptorRendererModifier.ANNOTATIONS)
|
||||
modifiers = setOf(OVERRIDE, ANNOTATIONS)
|
||||
withDefinedIn = false
|
||||
classifierNamePolicy = ClassifierNamePolicy.SOURCE_CODE_QUALIFIED
|
||||
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE
|
||||
@@ -232,17 +229,20 @@ private val OVERRIDE_RENDERER = DescriptorRenderer.withOptions {
|
||||
}
|
||||
|
||||
private val EXPECT_RENDERER = OVERRIDE_RENDERER.withOptions {
|
||||
modifiers = DescriptorRendererModifier.ALL
|
||||
renderConstructorKeyword = true
|
||||
modifiers = setOf(VISIBILITY, MODALITY, OVERRIDE, INNER, MEMBER_KIND)
|
||||
renderConstructorKeyword = false
|
||||
secondaryConstructorsAsPrimary = false
|
||||
renderDefaultVisibility = false
|
||||
renderDefaultModality = false
|
||||
renderConstructorDelegation = true
|
||||
renderAnnotationPropertiesInPrimaryConstructor = true
|
||||
renderTypeExpansions = true
|
||||
}
|
||||
|
||||
private val ACTUAL_RENDERER = EXPECT_RENDERER.withOptions {
|
||||
modifiers += ACTUAL
|
||||
actualPropertiesInPrimaryConstructor = true
|
||||
renderTypeExpansions = false
|
||||
renderConstructorDelegation = true
|
||||
}
|
||||
|
||||
private fun PropertyDescriptor.wrap(forceOverride: Boolean): PropertyDescriptor {
|
||||
|
||||
Reference in New Issue
Block a user