diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt index cbfe88c6d25..f65432cfa15 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt @@ -7,8 +7,10 @@ package org.jetbrains.kotlin.fir.lazy import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.fir.backend.* -import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirRegularClass +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope @@ -160,6 +162,13 @@ class Fir2IrLazyClass( // Handle values() / valueOf() separately // TODO: handle other static functions / properties properly result += declarationStorage.getIrFunctionSymbol(declaration.symbol).owner + } else if (fir.classKind == ClassKind.ANNOTATION_CLASS && declaration.origin == FirDeclarationOrigin.Java) { + // Java annotation values are exposed as properties. + scope.processPropertiesByName(declaration.name) { + if (it is FirPropertySymbol && it.dispatchReceiverClassOrNull() == fir.symbol.toLookupTag()) { + result += declarationStorage.getIrPropertySymbol(it).owner as IrProperty + } + } } else { scope.processFunctionsByName(declaration.name) { if (it.dispatchReceiverClassOrNull() == fir.symbol.toLookupTag()) { diff --git a/compiler/testData/codegen/box/annotations/instances/javaAnnotation.kt b/compiler/testData/codegen/box/annotations/instances/javaAnnotation.kt index aa784d7b177..80f26f70dba 100644 --- a/compiler/testData/codegen/box/annotations/instances/javaAnnotation.kt +++ b/compiler/testData/codegen/box/annotations/instances/javaAnnotation.kt @@ -1,5 +1,3 @@ -// Fir2IrLazyClass does not handle methods from java dependencies in declarations. -// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM_IR // WITH_RUNTIME