Suggest quick-fixes for SIGNED_CONSTANT_CONVERTED_TO_UNSIGNED

#KT-27590 Fixed
This commit is contained in:
Mikhail Glukhikh
2018-12-18 19:59:37 +03:00
parent 9289a2c573
commit d7ce79cc76
6 changed files with 56 additions and 8 deletions
@@ -138,6 +138,20 @@ class IntegerValueTypeConstant(
return IntegerValueTypeConstant(value, module, newParameters, convertedFromSigned = true)
}
fun IntegerValueTypeConstant.convertToSignedConstant(module: ModuleDescriptor): IntegerValueTypeConstant {
val newParameters = CompileTimeConstant.Parameters(
parameters.canBeUsedInAnnotation,
parameters.isPure,
isUnsignedNumberLiteral = false,
isUnsignedLongNumberLiteral = parameters.isUnsignedLongNumberLiteral,
usesVariableAsConstant = parameters.usesVariableAsConstant,
usesNonConstValAsConstant = parameters.usesNonConstValAsConstant,
isConvertableConstVal = parameters.isConvertableConstVal
)
return IntegerValueTypeConstant(value, module, newParameters, convertedFromSigned = true)
}
}
private val typeConstructor = IntegerValueTypeConstructor(value.toLong(), module, parameters)