diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt index 6c5f43c0475..213d5117cbb 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt @@ -177,6 +177,7 @@ open class FunctionCodegen( ) Opcodes.ACC_BRIDGE else 0 val modalityFlag = when ((irFunction as? IrSimpleFunction)?.modality) { Modality.FINAL -> when { + irFunction.origin == JvmLoweredDeclarationOrigin.CLASS_STATIC_INITIALIZER -> 0 classCodegen.irClass.isInterface && irFunction.body != null -> 0 !classCodegen.irClass.isAnnotationClass || irFunction.isStatic -> Opcodes.ACC_FINAL else -> Opcodes.ACC_ABSTRACT diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt index 4840c8e630e..aed08433b97 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.ir.declarations.IrField import org.jetbrains.kotlin.ir.expressions.IrSetField import org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl import org.jetbrains.kotlin.ir.util.patchDeclarationParents +import org.jetbrains.kotlin.load.java.JavaVisibilities import org.jetbrains.kotlin.name.Name class StaticInitializersLowering(override val context: JvmBackendContext) : InitializersLoweringBase(context) { @@ -41,6 +42,7 @@ class StaticInitializersLowering(override val context: JvmBackendContext) : Init // TODO: mark as synthesized origin = JvmLoweredDeclarationOrigin.CLASS_STATIC_INITIALIZER returnType = context.irBuiltIns.unitType + visibility = JavaVisibilities.PACKAGE_VISIBILITY }.apply { body = IrBlockBodyImpl(irClass.startOffset, irClass.endOffset, staticInitializerStatements).patchDeclarationParents(this) } diff --git a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline_ir.txt b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline_ir.txt index 0ac8b097f57..116814ea318 100644 --- a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline_ir.txt +++ b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/crossinline_ir.txt @@ -377,7 +377,7 @@ public interface Sink { public final class SourceCrossinline$Factory { synthetic final static @org.jetbrains.annotations.NotNull field $$INSTANCE: SourceCrossinline$Factory inner class SourceCrossinline$Factory - public final static method (): void + static method (): void private method (): void } @@ -385,6 +385,6 @@ public final class SourceCrossinline$Factory { public interface SourceCrossinline { public final static @org.jetbrains.annotations.NotNull field Factory: SourceCrossinline$Factory inner class SourceCrossinline$Factory - public static method (): void + static method (): void public abstract @org.jetbrains.annotations.Nullable method consume(@org.jetbrains.annotations.NotNull p0: Sink, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object } diff --git a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/unit/override5_ir.txt b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/unit/override5_ir.txt index 8c05d7c0688..790d43792c2 100644 --- a/compiler/testData/codegen/box/coroutines/tailCallOptimizations/unit/override5_ir.txt +++ b/compiler/testData/codegen/box/coroutines/tailCallOptimizations/unit/override5_ir.txt @@ -78,7 +78,7 @@ public final class Override5Kt { private static field c: kotlin.coroutines.Continuation inner class Override5Kt$box$1 inner class Override5Kt$inlineMe$1 - public final static method (): void + static method (): void public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String public final static method builder(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function1): void public final static @org.jetbrains.annotations.Nullable method getC(): kotlin.coroutines.Continuation