[IR] Hide regular class constructor with MFVC parameters
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179
This commit is contained in:
committed by
Space Team
parent
d358e63b0a
commit
5b868becf4
+2
-2
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.jvm.AsmTypes
|
||||
import org.jetbrains.kotlin.resolve.jvm.annotations.findJvmOverloadsAnnotation
|
||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind
|
||||
import org.jetbrains.kotlin.resolve.jvm.shouldHideConstructorDueToInlineClassTypeValueParameters
|
||||
import org.jetbrains.kotlin.resolve.jvm.shouldHideConstructorDueToValueClassTypeValueParameters
|
||||
import org.jetbrains.org.objectweb.asm.Label
|
||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||
import org.jetbrains.org.objectweb.asm.Type
|
||||
@@ -269,7 +269,7 @@ class DefaultParameterValueSubstitutor(val state: GenerationState) {
|
||||
|
||||
if (classOrObject.isLocal) return false
|
||||
if (classDescriptor.isInlineClass()) return false
|
||||
if (shouldHideConstructorDueToInlineClassTypeValueParameters(constructorDescriptor)) return false
|
||||
if (shouldHideConstructorDueToValueClassTypeValueParameters(constructorDescriptor)) return false
|
||||
if (DescriptorUtils.isSealedClass(classDescriptor)) return false
|
||||
|
||||
if (CodegenBinding.canHaveOuter(state.bindingContext, classDescriptor)) return false
|
||||
|
||||
@@ -53,7 +53,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.jetbrains.kotlin.builtins.KotlinBuiltIns.isBoolean;
|
||||
import static org.jetbrains.kotlin.builtins.KotlinBuiltIns.isPrimitiveClass;
|
||||
import static org.jetbrains.kotlin.codegen.AsmUtil.*;
|
||||
import static org.jetbrains.kotlin.codegen.CodegenUtilKt.isToArrayFromCollection;
|
||||
import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isConstOrHasJvmFieldAnnotation;
|
||||
@@ -355,7 +354,7 @@ public class DescriptorAsmUtil {
|
||||
if (kind != OwnerKind.ERASED_INLINE_CLASS &&
|
||||
memberDescriptor instanceof ConstructorDescriptor &&
|
||||
!(memberDescriptor instanceof AccessorForConstructorDescriptor) &&
|
||||
InlineClassManglingRulesKt.shouldHideConstructorDueToInlineClassTypeValueParameters((ConstructorDescriptor) memberDescriptor)
|
||||
InlineClassManglingRulesKt.shouldHideConstructorDueToValueClassTypeValueParameters((ConstructorDescriptor) memberDescriptor)
|
||||
) {
|
||||
return ACC_PRIVATE;
|
||||
}
|
||||
@@ -898,7 +897,7 @@ public class DescriptorAsmUtil {
|
||||
if (!(descriptor instanceof ClassConstructorDescriptor)) return false;
|
||||
|
||||
ClassConstructorDescriptor classConstructorDescriptor = (ClassConstructorDescriptor) descriptor;
|
||||
if (InlineClassManglingRulesKt.shouldHideConstructorDueToInlineClassTypeValueParameters(descriptor)) {
|
||||
if (InlineClassManglingRulesKt.shouldHideConstructorDueToValueClassTypeValueParameters(descriptor)) {
|
||||
return true;
|
||||
}
|
||||
if (isSealedClass(classConstructorDescriptor.getConstructedClass()) &&
|
||||
|
||||
@@ -82,7 +82,7 @@ import static org.jetbrains.kotlin.resolve.DescriptorUtils.*;
|
||||
import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt.getInlineClassRepresentation;
|
||||
import static org.jetbrains.kotlin.resolve.inline.InlineOnlyKt.isInlineOnlyPrivateInBytecode;
|
||||
import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE;
|
||||
import static org.jetbrains.kotlin.resolve.jvm.InlineClassManglingRulesKt.shouldHideConstructorDueToInlineClassTypeValueParameters;
|
||||
import static org.jetbrains.kotlin.resolve.jvm.InlineClassManglingRulesKt.shouldHideConstructorDueToValueClassTypeValueParameters;
|
||||
import static org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils.*;
|
||||
import static org.jetbrains.org.objectweb.asm.Opcodes.*;
|
||||
|
||||
@@ -270,11 +270,11 @@ public class FunctionCodegen {
|
||||
) {
|
||||
if (functionDescriptor instanceof AccessorForConstructorDescriptor) {
|
||||
ConstructorDescriptor originalConstructor = ((AccessorForConstructorDescriptor) functionDescriptor).getCalleeDescriptor();
|
||||
if (shouldHideConstructorDueToInlineClassTypeValueParameters(originalConstructor)) {
|
||||
if (shouldHideConstructorDueToValueClassTypeValueParameters(originalConstructor)) {
|
||||
functionDescriptor = originalConstructor;
|
||||
}
|
||||
}
|
||||
else if (shouldHideConstructorDueToInlineClassTypeValueParameters(functionDescriptor)) {
|
||||
else if (shouldHideConstructorDueToValueClassTypeValueParameters(functionDescriptor)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ public class FunctionCodegen {
|
||||
boolean skipNullabilityAnnotations
|
||||
) {
|
||||
FunctionDescriptor annotationsOwner;
|
||||
if (shouldHideConstructorDueToInlineClassTypeValueParameters(functionDescriptor)) {
|
||||
if (shouldHideConstructorDueToValueClassTypeValueParameters(functionDescriptor)) {
|
||||
if (functionDescriptor instanceof AccessorForConstructorDescriptor) {
|
||||
annotationsOwner = ((AccessorForConstructorDescriptor) functionDescriptor).getCalleeDescriptor();
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.isGetterOfUnderlyingPropertyOfInlineClass
|
||||
import org.jetbrains.kotlin.resolve.isInlineClass
|
||||
import org.jetbrains.kotlin.resolve.jvm.AsmTypes
|
||||
import org.jetbrains.kotlin.resolve.jvm.shouldHideConstructorDueToInlineClassTypeValueParameters
|
||||
import org.jetbrains.kotlin.resolve.jvm.shouldHideConstructorDueToValueClassTypeValueParameters
|
||||
import org.jetbrains.kotlin.resolve.source.KotlinSourceElement
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.typeUtil.builtIns
|
||||
@@ -191,7 +191,7 @@ private fun getSignatureString(callable: CallableDescriptor, state: GenerationSt
|
||||
|
||||
val accessor = when (callable) {
|
||||
is ClassConstructorDescriptor ->
|
||||
if (shouldHideConstructorDueToInlineClassTypeValueParameters(callable))
|
||||
if (shouldHideConstructorDueToValueClassTypeValueParameters(callable))
|
||||
AccessorForConstructorDescriptor(callable, callable.containingDeclaration, null, AccessorKind.NORMAL)
|
||||
else
|
||||
callable
|
||||
|
||||
Reference in New Issue
Block a user