[KLIB] Support isHidden in proto flags
This commit is contained in:
+19
@@ -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)
|
||||
|
||||
+2
-1
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user