diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFlags.java b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFlags.java index b2495f7c836..b3bc615726e 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFlags.java +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFlags.java @@ -27,6 +27,10 @@ public class IrFlags extends Flags { public static final BooleanFlagField IS_STATIC = FlagField.booleanAfter(IS_EXTERNAL_FIELD); public static final BooleanFlagField IS_FAKE_OVERRIDE = FlagField.booleanAfter(IS_STATIC); + // Parameters + + public static final BooleanFlagField IS_HIDDEN = FlagField.booleanAfter(IS_NOINLINE); + // Local variables public static final BooleanFlagField IS_LOCAL_VAR = FlagField.booleanAfter(HAS_ANNOTATIONS); public static final BooleanFlagField IS_LOCAL_CONST = FlagField.booleanAfter(IS_LOCAL_VAR); @@ -79,6 +83,21 @@ public class IrFlags extends Flags { ; } + public static int getValueParameterFlags( + boolean hasAnnotations, + boolean declaresDefaultValue, + boolean isCrossinline, + boolean isNoinline, + boolean isHidden + ) { + return HAS_ANNOTATIONS.toFlags(hasAnnotations) + | DECLARES_DEFAULT_VALUE.toFlags(declaresDefaultValue) + | IS_CROSSINLINE.toFlags(isCrossinline) + | IS_NOINLINE.toFlags(isNoinline) + | IS_HIDDEN.toFlags(isHidden) + ; + } + public static int getLocalFlags(boolean hasAnnotations, boolean isVar, boolean isConst, boolean isLateinit) { return HAS_ANNOTATIONS.toFlags(hasAnnotations) | IS_LOCAL_VAR.toFlags(isVar) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/encodings/BinaryFlags.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/encodings/BinaryFlags.kt index 827109d4da2..f73df2ac680 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/encodings/BinaryFlags.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/encodings/BinaryFlags.kt @@ -142,11 +142,12 @@ inline class ValueParameterFlags(val flags: Long) { val isCrossInline: Boolean get() = IrFlags.IS_CROSSINLINE.get(flags.toInt()) val isNoInline: Boolean get() = IrFlags.IS_NOINLINE.get(flags.toInt()) + val isHidden: Boolean get() = IrFlags.IS_HIDDEN.get(flags.toInt()) companion object { fun encode(param: IrValueParameter): Long { return param.run { - IrFlags.getValueParameterFlags(annotations.isNotEmpty(), defaultValue != null, isCrossinline, isNoinline).toLong() + IrFlags.getValueParameterFlags(annotations.isNotEmpty(), defaultValue != null, isCrossinline, isNoinline, isHidden).toLong() } }