Beatify names for enum name and ordinal local variables
This commit is contained in:
@@ -787,32 +787,41 @@ public class FunctionCodegen {
|
||||
shift++;
|
||||
}
|
||||
|
||||
boolean isEnumName = true;
|
||||
KotlinTypeMapper typeMapper = state.getTypeMapper();
|
||||
for (int i = 0; i < params.size(); i++) {
|
||||
JvmMethodParameterSignature param = params.get(i);
|
||||
JvmMethodParameterKind kind = param.getKind();
|
||||
String parameterName;
|
||||
|
||||
if (kind == JvmMethodParameterKind.VALUE) {
|
||||
ValueParameterDescriptor parameter = valueParameterIterator.next();
|
||||
String nameForDestructuredParameter = VariableAsmNameManglingUtils.getNameForDestructuredParameterOrNull(parameter);
|
||||
switch (kind) {
|
||||
case VALUE:
|
||||
ValueParameterDescriptor parameter = valueParameterIterator.next();
|
||||
String nameForDestructuredParameter = VariableAsmNameManglingUtils.getNameForDestructuredParameterOrNull(parameter);
|
||||
|
||||
parameterName =
|
||||
nameForDestructuredParameter == null
|
||||
? computeParameterName(i, parameter)
|
||||
: nameForDestructuredParameter;
|
||||
}
|
||||
else if (kind == JvmMethodParameterKind.RECEIVER) {
|
||||
parameterName = AsmUtil.getNameForReceiverParameter(
|
||||
functionDescriptor, typeMapper.getBindingContext(), state.getLanguageVersionSettings());
|
||||
} else if (kind == JvmMethodParameterKind.OUTER) {
|
||||
parameterName = CAPTURED_THIS_FIELD; //should be 'this$X' depending on inner class nesting
|
||||
}
|
||||
else {
|
||||
String lowercaseKind = kind.name().toLowerCase();
|
||||
parameterName = needIndexForVar(kind)
|
||||
? "$" + lowercaseKind + "$" + i
|
||||
: "$" + lowercaseKind;
|
||||
parameterName =
|
||||
nameForDestructuredParameter == null
|
||||
? computeParameterName(i, parameter)
|
||||
: nameForDestructuredParameter;
|
||||
break;
|
||||
case RECEIVER:
|
||||
parameterName = AsmUtil.getNameForReceiverParameter(
|
||||
functionDescriptor, typeMapper.getBindingContext(), state.getLanguageVersionSettings());
|
||||
break;
|
||||
case OUTER:
|
||||
parameterName = CAPTURED_THIS_FIELD; //should be 'this$X' depending on inner class nesting
|
||||
|
||||
break;
|
||||
case ENUM_NAME_OR_ORDINAL:
|
||||
parameterName = isEnumName ? "$enum$name" : "$enum$ordinal";
|
||||
isEnumName = !isEnumName;
|
||||
break;
|
||||
default:
|
||||
String lowercaseKind = kind.name().toLowerCase();
|
||||
parameterName = needIndexForVar(kind)
|
||||
? "$" + lowercaseKind + "$" + i
|
||||
: "$" + lowercaseKind;
|
||||
break;
|
||||
}
|
||||
|
||||
Type type = param.getAsmType();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
final class foo/Kotlin$A : foo/Kotlin {
|
||||
void <init>(java.lang.String $enum_name_or_ordinal$0, int $enum_name_or_ordinal$1)
|
||||
void <init>(java.lang.String $enum$name, int $enum$ordinal)
|
||||
|
||||
public final void foo()
|
||||
}
|
||||
@@ -11,10 +11,10 @@ public class foo/Kotlin : java/lang/Enum {
|
||||
|
||||
static void <clinit>()
|
||||
|
||||
private void <init>(java.lang.String $enum_name_or_ordinal$0, int $enum_name_or_ordinal$1, java.lang.String s)
|
||||
private void <init>(java.lang.String $enum$name, int $enum$ordinal, java.lang.String s)
|
||||
@Lfoo/TypeAnn;([]) : METHOD_FORMAL_PARAMETER 0, null
|
||||
|
||||
public void <init>(java.lang.String $enum_name_or_ordinal$0, int $enum_name_or_ordinal$1, java.lang.String s, kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)
|
||||
public void <init>(java.lang.String $enum$name, int $enum$ordinal, java.lang.String s, kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)
|
||||
|
||||
public static foo.Kotlin valueOf(java.lang.String p0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user