[FIR] Implement Int -> Long conversions for literals and operators over them

^KT-38895
^KT-50996 Fixed
^KT-51000 Fixed
^KT-51003 Fixed
^KT-51018 Fixed
This commit is contained in:
Dmitriy Novozhilov
2022-01-25 12:41:04 +03:00
committed by teamcity
parent cc86ca2a0f
commit 52b72a7dac
98 changed files with 1318 additions and 232 deletions
@@ -306,7 +306,9 @@ interface IrTypeSystemContext : TypeSystemContext, TypeSystemCommonSuperTypesCon
setOf(byteType, shortType, intType, longType)
}
override fun TypeConstructorMarker.isIntegerLiteralTypeConstructor() = false
override fun TypeConstructorMarker.isIntegerLiteralTypeConstructor(): Boolean = false
override fun TypeConstructorMarker.isIntegerLiteralConstantTypeConstructor(): Boolean = false
override fun TypeConstructorMarker.isIntegerConstantOperatorTypeConstructor(): Boolean = false
override fun TypeConstructorMarker.isLocalType(): Boolean {
if (this !is IrClassSymbol) return false
@@ -113,4 +113,4 @@ class IrCapturedType(
override fun hashCode(): Int {
return (captureStatus.hashCode() * 31 + (lowerType?.hashCode() ?: 0)) * 31 + constructor.hashCode()
}
}
}