From 9cc6809ec68eb741e5a18a4296df03e677e1daa5 Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Mon, 27 Feb 2023 18:20:02 +0100 Subject: [PATCH] [FIR] Fix `JavaClass.modality` for annotation classes and enums - `JavaClass.modality` should return the correct modality instead of requiring the caller to handle annotation classes and enums. --- .../java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt | 2 +- .../fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt index e04c8875a6a..e099df8b8bd 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt @@ -245,7 +245,7 @@ abstract class FirJavaFacade( val visibility = javaClass.visibility this@buildJavaClass.visibility = visibility classKind = javaClass.classKind - modality = if (classKind == ClassKind.ANNOTATION_CLASS || classKind == ClassKind.ENUM_CLASS) Modality.FINAL else javaClass.modality + modality = javaClass.modality this.isTopLevel = classId.outerClassId == null isStatic = javaClass.isStatic javaPackage = packageCache.getValue(classSymbol.classId.packageFqName) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index 985936281f4..a00c978ad9b 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -8,9 +8,6 @@ package org.jetbrains.kotlin.fir.java import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataKey -import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataRegistry -import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall @@ -39,6 +36,7 @@ internal val JavaModifierListOwner.modality: Modality internal val JavaClass.modality: Modality get() = when { + isAnnotationType || isEnum -> Modality.FINAL isSealed -> Modality.SEALED isAbstract -> Modality.ABSTRACT isFinal -> Modality.FINAL