diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index 1cd9ca64071..ab6709efe53 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -385,6 +385,9 @@ public class FunctionCodegen extends GenerationStateAware { if (kind == JvmMethodParameterKind.VALUE) { parameterDescriptor = valueParameters.next(); parameterName = parameterDescriptor.getName().getName(); + } else if (kind == JvmMethodParameterKind.ENUM_NAME || kind == JvmMethodParameterKind.ENUM_ORDINAL) { + //we shouldn't generate annotations for invisible in runtime parameters otherwise we get bad RuntimeInvisibleParameterAnnotations error in javac + continue; } else if (needIndexForVar(kind)) { parameterName = parameterName + "$" + i; } diff --git a/compiler/testData/compileJavaAgainstKotlin/class/kt3561.java b/compiler/testData/compileJavaAgainstKotlin/class/kt3561.java new file mode 100644 index 00000000000..e6dd3168450 --- /dev/null +++ b/compiler/testData/compileJavaAgainstKotlin/class/kt3561.java @@ -0,0 +1,7 @@ +package test; + +public class kt3561 { + public MyEnum getEntryName() { + return MyEnum.OK; + } +} diff --git a/compiler/testData/compileJavaAgainstKotlin/class/kt3561.kt b/compiler/testData/compileJavaAgainstKotlin/class/kt3561.kt new file mode 100644 index 00000000000..a57b7dff894 --- /dev/null +++ b/compiler/testData/compileJavaAgainstKotlin/class/kt3561.kt @@ -0,0 +1,6 @@ +package test + +enum class MyEnum { + OK +} + diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java index 528680394b7..c6f6c63623f 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java @@ -73,6 +73,11 @@ public class CompileJavaAgainstKotlinTestGenerated extends AbstractCompileJavaAg doTest("compiler/testData/compileJavaAgainstKotlin/class/ImplementsMapPP.kt"); } + @TestMetadata("kt3561.kt") + public void testKt3561() throws Exception { + doTest("compiler/testData/compileJavaAgainstKotlin/class/kt3561.kt"); + } + @TestMetadata("Simple.kt") public void testSimple() throws Exception { doTest("compiler/testData/compileJavaAgainstKotlin/class/Simple.kt");