IR: IMPLICIT_DYNAMIC_CAST
Generate IMPLICIT_DYNAMIC_CAST for implicit casts from `dynamic` to `T`
This commit is contained in:
@@ -512,6 +512,7 @@ enum IrTypeOperator {
|
||||
INSTANCEOF = 7;
|
||||
NOT_INSTANCEOF = 8;
|
||||
SAM_CONVERSION = 9;
|
||||
IMPLICIT_DYNAMIC_CAST = 10;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+20
-18
@@ -530,24 +530,26 @@ abstract class IrModuleDeserializer(
|
||||
}
|
||||
|
||||
private fun deserializeTypeOperator(operator: KotlinIr.IrTypeOperator) = when (operator) {
|
||||
KotlinIr.IrTypeOperator.CAST
|
||||
-> IrTypeOperator.CAST
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_CAST
|
||||
-> IrTypeOperator.IMPLICIT_CAST
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_NOTNULL
|
||||
-> IrTypeOperator.IMPLICIT_NOTNULL
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_COERCION_TO_UNIT
|
||||
-> IrTypeOperator.IMPLICIT_COERCION_TO_UNIT
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_INTEGER_COERCION
|
||||
-> IrTypeOperator.IMPLICIT_INTEGER_COERCION
|
||||
KotlinIr.IrTypeOperator.SAFE_CAST
|
||||
-> IrTypeOperator.SAFE_CAST
|
||||
KotlinIr.IrTypeOperator.INSTANCEOF
|
||||
-> IrTypeOperator.INSTANCEOF
|
||||
KotlinIr.IrTypeOperator.NOT_INSTANCEOF
|
||||
-> IrTypeOperator.NOT_INSTANCEOF
|
||||
KotlinIr.IrTypeOperator.SAM_CONVERSION
|
||||
-> IrTypeOperator.SAM_CONVERSION
|
||||
KotlinIr.IrTypeOperator.CAST ->
|
||||
IrTypeOperator.CAST
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_CAST ->
|
||||
IrTypeOperator.IMPLICIT_CAST
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_NOTNULL ->
|
||||
IrTypeOperator.IMPLICIT_NOTNULL
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_COERCION_TO_UNIT ->
|
||||
IrTypeOperator.IMPLICIT_COERCION_TO_UNIT
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_INTEGER_COERCION ->
|
||||
IrTypeOperator.IMPLICIT_INTEGER_COERCION
|
||||
KotlinIr.IrTypeOperator.SAFE_CAST ->
|
||||
IrTypeOperator.SAFE_CAST
|
||||
KotlinIr.IrTypeOperator.INSTANCEOF ->
|
||||
IrTypeOperator.INSTANCEOF
|
||||
KotlinIr.IrTypeOperator.NOT_INSTANCEOF ->
|
||||
IrTypeOperator.NOT_INSTANCEOF
|
||||
KotlinIr.IrTypeOperator.SAM_CONVERSION ->
|
||||
IrTypeOperator.SAM_CONVERSION
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_DYNAMIC_CAST ->
|
||||
IrTypeOperator.IMPLICIT_DYNAMIC_CAST
|
||||
}
|
||||
|
||||
private fun deserializeTypeOp(proto: KotlinIr.IrTypeOp, start: Int, end: Int, type: IrType): IrTypeOperatorCall {
|
||||
|
||||
+20
-18
@@ -601,24 +601,26 @@ open class IrModuleSerializer(
|
||||
}
|
||||
|
||||
private fun serializeTypeOperator(operator: IrTypeOperator): KotlinIr.IrTypeOperator = when (operator) {
|
||||
IrTypeOperator.CAST
|
||||
-> KotlinIr.IrTypeOperator.CAST
|
||||
IrTypeOperator.IMPLICIT_CAST
|
||||
-> KotlinIr.IrTypeOperator.IMPLICIT_CAST
|
||||
IrTypeOperator.IMPLICIT_NOTNULL
|
||||
-> KotlinIr.IrTypeOperator.IMPLICIT_NOTNULL
|
||||
IrTypeOperator.IMPLICIT_COERCION_TO_UNIT
|
||||
-> KotlinIr.IrTypeOperator.IMPLICIT_COERCION_TO_UNIT
|
||||
IrTypeOperator.IMPLICIT_INTEGER_COERCION
|
||||
-> KotlinIr.IrTypeOperator.IMPLICIT_INTEGER_COERCION
|
||||
IrTypeOperator.SAFE_CAST
|
||||
-> KotlinIr.IrTypeOperator.SAFE_CAST
|
||||
IrTypeOperator.INSTANCEOF
|
||||
-> KotlinIr.IrTypeOperator.INSTANCEOF
|
||||
IrTypeOperator.NOT_INSTANCEOF
|
||||
-> KotlinIr.IrTypeOperator.NOT_INSTANCEOF
|
||||
IrTypeOperator.SAM_CONVERSION
|
||||
-> KotlinIr.IrTypeOperator.SAM_CONVERSION
|
||||
IrTypeOperator.CAST ->
|
||||
KotlinIr.IrTypeOperator.CAST
|
||||
IrTypeOperator.IMPLICIT_CAST ->
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_CAST
|
||||
IrTypeOperator.IMPLICIT_NOTNULL ->
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_NOTNULL
|
||||
IrTypeOperator.IMPLICIT_COERCION_TO_UNIT ->
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_COERCION_TO_UNIT
|
||||
IrTypeOperator.IMPLICIT_INTEGER_COERCION ->
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_INTEGER_COERCION
|
||||
IrTypeOperator.SAFE_CAST ->
|
||||
KotlinIr.IrTypeOperator.SAFE_CAST
|
||||
IrTypeOperator.INSTANCEOF ->
|
||||
KotlinIr.IrTypeOperator.INSTANCEOF
|
||||
IrTypeOperator.NOT_INSTANCEOF ->
|
||||
KotlinIr.IrTypeOperator.NOT_INSTANCEOF
|
||||
IrTypeOperator.SAM_CONVERSION ->
|
||||
KotlinIr.IrTypeOperator.SAM_CONVERSION
|
||||
IrTypeOperator.IMPLICIT_DYNAMIC_CAST ->
|
||||
KotlinIr.IrTypeOperator.IMPLICIT_DYNAMIC_CAST
|
||||
}
|
||||
|
||||
private fun serializeTypeOp(expression: IrTypeOperatorCall): KotlinIr.IrTypeOp {
|
||||
|
||||
+9
@@ -588,6 +588,10 @@ public final class KotlinIr {
|
||||
* <code>SAM_CONVERSION = 9;</code>
|
||||
*/
|
||||
SAM_CONVERSION(8, 9),
|
||||
/**
|
||||
* <code>IMPLICIT_DYNAMIC_CAST = 10;</code>
|
||||
*/
|
||||
IMPLICIT_DYNAMIC_CAST(9, 10),
|
||||
;
|
||||
|
||||
/**
|
||||
@@ -626,6 +630,10 @@ public final class KotlinIr {
|
||||
* <code>SAM_CONVERSION = 9;</code>
|
||||
*/
|
||||
public static final int SAM_CONVERSION_VALUE = 9;
|
||||
/**
|
||||
* <code>IMPLICIT_DYNAMIC_CAST = 10;</code>
|
||||
*/
|
||||
public static final int IMPLICIT_DYNAMIC_CAST_VALUE = 10;
|
||||
|
||||
|
||||
public final int getNumber() { return value; }
|
||||
@@ -641,6 +649,7 @@ public final class KotlinIr {
|
||||
case 7: return INSTANCEOF;
|
||||
case 8: return NOT_INSTANCEOF;
|
||||
case 9: return SAM_CONVERSION;
|
||||
case 10: return IMPLICIT_DYNAMIC_CAST;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user