[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.
This commit is contained in:
committed by
Space Team
parent
484e5afb59
commit
9cc6809ec6
@@ -245,7 +245,7 @@ abstract class FirJavaFacade(
|
|||||||
val visibility = javaClass.visibility
|
val visibility = javaClass.visibility
|
||||||
this@buildJavaClass.visibility = visibility
|
this@buildJavaClass.visibility = visibility
|
||||||
classKind = javaClass.classKind
|
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
|
this.isTopLevel = classId.outerClassId == null
|
||||||
isStatic = javaClass.isStatic
|
isStatic = javaClass.isStatic
|
||||||
javaPackage = packageCache.getValue(classSymbol.classId.packageFqName)
|
javaPackage = packageCache.getValue(classSymbol.classId.packageFqName)
|
||||||
|
|||||||
@@ -8,9 +8,6 @@ package org.jetbrains.kotlin.fir.java
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
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.ConeSimpleDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||||
@@ -39,6 +36,7 @@ internal val JavaModifierListOwner.modality: Modality
|
|||||||
|
|
||||||
internal val JavaClass.modality: Modality
|
internal val JavaClass.modality: Modality
|
||||||
get() = when {
|
get() = when {
|
||||||
|
isAnnotationType || isEnum -> Modality.FINAL
|
||||||
isSealed -> Modality.SEALED
|
isSealed -> Modality.SEALED
|
||||||
isAbstract -> Modality.ABSTRACT
|
isAbstract -> Modality.ABSTRACT
|
||||||
isFinal -> Modality.FINAL
|
isFinal -> Modality.FINAL
|
||||||
|
|||||||
Reference in New Issue
Block a user