diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java index 32c93006074..672ffac46aa 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PropertyCodegen.java @@ -170,7 +170,7 @@ public class PropertyCodegen { public void generateConstructorPropertyAsMethodForAnnotationClass(JetParameter p, PropertyDescriptor descriptor) { JvmMethodSignature signature = typeMapper.mapAnnotationParameterSignature(descriptor); String name = p.getName(); - assert name != null : "Annotation parameter has no name: " + p.getText(); + if (name == null) return; MethodVisitor mv = v.newMethod( OtherOrigin(p, descriptor), ACC_PUBLIC | ACC_ABSTRACT, name, signature.getAsmMethod().getDescriptor(), diff --git a/compiler/testData/diagnostics/tests/annotations/noNameProperty.kt b/compiler/testData/diagnostics/tests/annotations/noNameProperty.kt new file mode 100644 index 00000000000..3fcd987d7ab --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/noNameProperty.kt @@ -0,0 +1 @@ +annotation class Ann(val x: Int, val ) \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/annotations/noNameProperty.txt b/compiler/testData/diagnostics/tests/annotations/noNameProperty.txt new file mode 100644 index 00000000000..f6c24f088a1 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/noNameProperty.txt @@ -0,0 +1,10 @@ +package + +internal final annotation class Ann : kotlin.Annotation { + public constructor Ann(/*0*/ x: kotlin.Int, /*1*/ : [ERROR : Type annotation was missing for parameter ]) + internal final val : [ERROR : Annotation is absent] + internal final val x: kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index c7461ad8797..62cbc0b9ff5 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -765,6 +765,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("noNameProperty.kt") + public void testNoNameProperty() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/noNameProperty.kt"); + doTest(fileName); + } + @TestMetadata("NonAnnotationClass.kt") public void testNonAnnotationClass() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/NonAnnotationClass.kt");