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