From 0255be7debb80f5c8df242d53ef11e5f9f0df34d Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 27 Nov 2015 11:48:50 +0300 Subject: [PATCH] Minor. Pass callableDescriptor into writeParameter --- .../kotlin/codegen/state/JetTypeMapper.java | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java index 2d4d4c23a88..92bb56c02c5 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java @@ -970,7 +970,7 @@ public class JetTypeMapper { writeAdditionalConstructorParameters((ConstructorDescriptor) f, sw); for (ValueParameterDescriptor parameter : valueParameters) { - writeParameter(sw, parameter.getType()); + writeParameter(sw, parameter.getType(), f); } if (f instanceof AccessorForConstructorDescriptor) { @@ -987,12 +987,12 @@ public class JetTypeMapper { ReceiverParameterDescriptor receiverParameter = f.getExtensionReceiverParameter(); if (receiverParameter != null) { - writeParameter(sw, JvmMethodParameterKind.RECEIVER, receiverParameter.getType()); + writeParameter(sw, JvmMethodParameterKind.RECEIVER, receiverParameter.getType(), f); } for (ValueParameterDescriptor parameter : valueParameters) { if (writeCustomParameter(f, parameter, sw)) continue; - writeParameter(sw, parameter.getType()); + writeParameter(sw, parameter.getType(), f); } sw.writeReturnType(); @@ -1025,7 +1025,7 @@ public class JetTypeMapper { if (SpecialBuiltinMembers.isFromJavaOrBuiltins(f)) return false; if (overridden.getName().asString().equals("remove") && mapType(parameter.getType()).getSort() == Type.INT) { - writeParameter(sw, TypeUtils.makeNullable(parameter.getType())); + writeParameter(sw, TypeUtils.makeNullable(parameter.getType()), f); return true; } @@ -1118,7 +1118,7 @@ public class JetTypeMapper { } else return; - writeParameter(sw, JvmMethodParameterKind.THIS, thisType.getDefaultType()); + writeParameter(sw, JvmMethodParameterKind.THIS, thisType.getDefaultType(), descriptor); } @NotNull @@ -1185,11 +1185,20 @@ public class JetTypeMapper { } } - private void writeParameter(@NotNull BothSignatureWriter sw, @NotNull KotlinType type) { - writeParameter(sw, JvmMethodParameterKind.VALUE, type); + private void writeParameter( + @NotNull BothSignatureWriter sw, + @NotNull KotlinType type, + @NotNull CallableDescriptor callableDescriptor + ) { + writeParameter(sw, JvmMethodParameterKind.VALUE, type, callableDescriptor); } - private void writeParameter(@NotNull BothSignatureWriter sw, @NotNull JvmMethodParameterKind kind, @NotNull KotlinType type) { + private void writeParameter( + @NotNull BothSignatureWriter sw, + @NotNull JvmMethodParameterKind kind, + @NotNull KotlinType type, + @NotNull CallableDescriptor callableDescriptor + ) { sw.writeParameterType(kind); mapType(type, sw, TypeMappingMode.getOptimalModeForValueParameter(type)); sw.writeParameterTypeEnd(); @@ -1206,18 +1215,20 @@ public class JetTypeMapper { ClassDescriptor captureThis = getDispatchReceiverParameterForConstructorCall(descriptor, closure); if (captureThis != null) { - writeParameter(sw, JvmMethodParameterKind.OUTER, captureThis.getDefaultType()); + writeParameter(sw, JvmMethodParameterKind.OUTER, captureThis.getDefaultType(), descriptor); } KotlinType captureReceiverType = closure != null ? closure.getCaptureReceiverType() : null; if (captureReceiverType != null) { - writeParameter(sw, JvmMethodParameterKind.RECEIVER, captureReceiverType); + writeParameter(sw, JvmMethodParameterKind.RECEIVER, captureReceiverType, descriptor); } ClassDescriptor containingDeclaration = descriptor.getContainingDeclaration(); if (containingDeclaration.getKind() == ClassKind.ENUM_CLASS || containingDeclaration.getKind() == ClassKind.ENUM_ENTRY) { - writeParameter(sw, JvmMethodParameterKind.ENUM_NAME_OR_ORDINAL, DescriptorUtilsKt.getBuiltIns(descriptor).getStringType()); - writeParameter(sw, JvmMethodParameterKind.ENUM_NAME_OR_ORDINAL, DescriptorUtilsKt.getBuiltIns(descriptor).getIntType()); + writeParameter( + sw, JvmMethodParameterKind.ENUM_NAME_OR_ORDINAL, DescriptorUtilsKt.getBuiltIns(descriptor).getStringType(), descriptor); + writeParameter( + sw, JvmMethodParameterKind.ENUM_NAME_OR_ORDINAL, DescriptorUtilsKt.getBuiltIns(descriptor).getIntType(), descriptor); } if (closure == null) return; @@ -1313,11 +1324,11 @@ public class JetTypeMapper { sw.writeParametersStart(); for (ScriptDescriptor importedScript : importedScripts) { - writeParameter(sw, importedScript.getDefaultType()); + writeParameter(sw, importedScript.getDefaultType(), script.getUnsubstitutedPrimaryConstructor()); } for (ValueParameterDescriptor valueParameter : script.getUnsubstitutedPrimaryConstructor().getValueParameters()) { - writeParameter(sw, valueParameter.getType()); + writeParameter(sw, valueParameter.getType(), script.getUnsubstitutedPrimaryConstructor()); } writeVoidReturn(sw);