KT-16436 Incorrect primitive constants handling
Expression '1.unaryMinus()' is resolved as Int::unaryMinus call with Int receiver. However, this expression is implicitly coerced to a different integral type (Byte, Short, Long) based on results of constant evaluation. Introduce IMPLICIT_INTEGER_COERCION type operator to handle such cases. TODO: should we use it for simple constant expressions like '1' and '-1'?
This commit is contained in:
@@ -23,6 +23,7 @@ enum class IrTypeOperator {
|
||||
IMPLICIT_CAST,
|
||||
IMPLICIT_NOTNULL,
|
||||
IMPLICIT_COERCION_TO_UNIT,
|
||||
IMPLICIT_INTEGER_COERCION,
|
||||
SAFE_CAST,
|
||||
INSTANCEOF,
|
||||
NOT_INSTANCEOF;
|
||||
|
||||
Reference in New Issue
Block a user