FIR2IR: fix annotations conversion for precompiled functions
fixes the case then the function being inlined is taken from the binaries compiled on the previous iteration, and therefore should be treated similarly to a fun from a library.
This commit is contained in:
+3
-1
@@ -1481,7 +1481,9 @@ class Fir2IrDeclarationStorage(
|
||||
private fun IrMutableAnnotationContainer.convertAnnotationsForNonDeclaredMembers(
|
||||
firAnnotationContainer: FirAnnotationContainer, origin: IrDeclarationOrigin,
|
||||
) {
|
||||
if ((firAnnotationContainer as? FirDeclaration)?.isFromLibrary == true || origin == IrDeclarationOrigin.FAKE_OVERRIDE) {
|
||||
if ((firAnnotationContainer as? FirDeclaration)?.let { it.isFromLibrary || it.isPrecompiled } == true
|
||||
|| origin == IrDeclarationOrigin.FAKE_OVERRIDE
|
||||
) {
|
||||
annotationGenerator.generate(this, firAnnotationContainer)
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -50,6 +50,8 @@ inline val FirDeclaration.isJava: Boolean
|
||||
get() = origin == FirDeclarationOrigin.Java
|
||||
inline val FirDeclaration.isFromLibrary: Boolean
|
||||
get() = origin == FirDeclarationOrigin.Library
|
||||
inline val FirDeclaration.isPrecompiled: Boolean
|
||||
get() = origin == FirDeclarationOrigin.Precompiled
|
||||
inline val FirDeclaration.isSynthetic: Boolean
|
||||
get() = origin == FirDeclarationOrigin.Synthetic
|
||||
|
||||
|
||||
Reference in New Issue
Block a user