From e4d85ac5279137cdbafd6e3e8a8e38e81499d5a0 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 21 Dec 2016 12:03:12 +0300 Subject: [PATCH] Support header annotation classes in common modules Properties are only allowed to be declared in a header class' primary constructor if that class is an annotation class. However, we did not correctly determine that such properties are also "header". The test passed because the diagnostic was lost --- .../src/org/jetbrains/kotlin/resolve/DescriptorResolver.java | 2 +- .../diagnostics/tests/multiplatform/headerClass/classKinds.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java index f449152be7d..58d9be7fa5c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java @@ -1140,7 +1140,7 @@ public class DescriptorResolver { KotlinSourceElementKt.toSourceElement(parameter), /* lateInit = */ false, /* isConst = */ false, - /* isHeader = */ false, + /* isHeader = */ classDescriptor.isHeader(), /* isImpl = */ modifierList != null && modifierList.hasModifier(KtTokens.IMPL_KEYWORD), /* isExternal = */ false ); diff --git a/compiler/testData/diagnostics/tests/multiplatform/headerClass/classKinds.kt b/compiler/testData/diagnostics/tests/multiplatform/headerClass/classKinds.kt index 8351801b0b9..63294ef03a6 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/headerClass/classKinds.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/headerClass/classKinds.kt @@ -17,7 +17,7 @@ header enum class En { ENTRY } impl interface Interface -impl annotation class Anno(val prop: String) +impl annotation class Anno impl constructor(impl val prop: String) impl object Object