diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index a6e286a1109..0f370098435 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -391,7 +391,9 @@ public class FunctionCodegen extends ParentCodegenAware { } private static boolean needIndexForVar(JvmMethodParameterKind kind) { - return kind == JvmMethodParameterKind.CAPTURED_LOCAL_VARIABLE || kind == JvmMethodParameterKind.SUPER_OF_ANONYMOUS_CALL_PARAM; + return kind == JvmMethodParameterKind.CAPTURED_LOCAL_VARIABLE || + kind == JvmMethodParameterKind.ENUM_NAME_OR_ORDINAL || + kind == JvmMethodParameterKind.SUPER_OF_ANONYMOUS_CALL_PARAM; } public static void endVisit(MethodVisitor mv, @Nullable String description, @Nullable PsiElement method) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java index 72587c14c55..1b1b52da899 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java @@ -756,8 +756,8 @@ public class JetTypeMapper { ClassDescriptor containingDeclaration = descriptor.getContainingDeclaration(); if (containingDeclaration.getKind() == ClassKind.ENUM_CLASS || containingDeclaration.getKind() == ClassKind.ENUM_ENTRY) { - writeParameter(sw, JvmMethodParameterKind.ENUM_NAME, KotlinBuiltIns.getInstance().getStringType()); - writeParameter(sw, JvmMethodParameterKind.ENUM_ORDINAL, KotlinBuiltIns.getInstance().getIntType()); + writeParameter(sw, JvmMethodParameterKind.ENUM_NAME_OR_ORDINAL, KotlinBuiltIns.getInstance().getStringType()); + writeParameter(sw, JvmMethodParameterKind.ENUM_NAME_OR_ORDINAL, KotlinBuiltIns.getInstance().getIntType()); } if (closure == null) return; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/jvmSignature/JvmMethodParameterKind.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/jvmSignature/JvmMethodParameterKind.java index ee6fb2746d9..7e8408ab18f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/jvmSignature/JvmMethodParameterKind.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/jvmSignature/JvmMethodParameterKind.java @@ -16,21 +16,16 @@ package org.jetbrains.jet.lang.resolve.java.jvmSignature; -import java.util.EnumSet; - public enum JvmMethodParameterKind { VALUE, THIS, OUTER, RECEIVER, CAPTURED_LOCAL_VARIABLE, - ENUM_NAME, - ENUM_ORDINAL, + ENUM_NAME_OR_ORDINAL, SUPER_OF_ANONYMOUS_CALL_PARAM; - private static final EnumSet SKIPPED_IN_GENERIC_SIGNATURE = EnumSet.of(OUTER, ENUM_NAME, ENUM_ORDINAL); - public boolean isSkippedInGenericSignature() { - return SKIPPED_IN_GENERIC_SIGNATURE.contains(this); + return this == OUTER || this == ENUM_NAME_OR_ORDINAL; } }