Skip to content

Commit 9e16cd2

Browse files
flofridaySpace Team
authored andcommitted
[FIR] Add unsigned constant evaluation diagnostic tests
KT-51065
1 parent c03e87d commit 9e16cd2

15 files changed

+1732
-0
lines changed

analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLDiagnosticsFe10TestGenerated.java

Lines changed: 48 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLPartialDiagnosticsFe10TestGenerated.java

Lines changed: 48 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLReversedDiagnosticsFe10TestGenerated.java

Lines changed: 48 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
// RUN_PIPELINE_TILL: FRONTEND
2+
// LANGUAGE: +IntrinsicConstEvaluation
3+
// DIAGNOSTICS: -REDUNDANT_CALL_OF_CONVERSION_METHOD
4+
// WITH_STDLIB
5+
const val zeroVal = 0u.toUByte()
6+
const val oneVal = 1u.toUByte()
7+
const val twoVal = 2u.toUByte()
8+
const val threeVal = 3u.toUByte()
9+
const val fourVal = 4u.toUByte()
10+
11+
const val byteVal = 2.toByte()
12+
const val shortVal = 2.toShort()
13+
const val intVal = 2
14+
const val longVal = 2L
15+
const val ubyteVal = 2u.toUByte()
16+
const val ushortVal = 2u.toUShort()
17+
const val uintVal = 2u
18+
const val ulongVal = 2UL
19+
const val floatVal = 2.0f
20+
const val doubleVal = 2.0
21+
22+
const val compareTo1 = oneVal.compareTo(twoVal)
23+
const val compareTo2 = twoVal.compareTo(twoVal)
24+
const val compareTo3 = threeVal.compareTo(twoVal)
25+
const val compareTo4 = twoVal.compareTo(ushortVal)
26+
const val compareTo5 = twoVal.compareTo(uintVal)
27+
const val compareTo6 = twoVal.compareTo(ulongVal)
28+
29+
const val plus1 = oneVal.plus(twoVal)
30+
const val plus2 = twoVal.plus(twoVal)
31+
const val plus3 = threeVal.plus(twoVal)
32+
const val plus4 = twoVal.plus(ushortVal)
33+
const val plus5 = twoVal.plus(uintVal)
34+
const val plus6 = twoVal.plus(ulongVal)
35+
36+
const val minus1 = oneVal.minus(twoVal)
37+
const val minus2 = twoVal.minus(twoVal)
38+
const val minus3 = threeVal.minus(twoVal)
39+
const val minus4 = twoVal.minus(ushortVal)
40+
const val minus5 = twoVal.minus(uintVal)
41+
const val minus6 = twoVal.minus(ulongVal)
42+
43+
const val times1 = oneVal.times(twoVal)
44+
const val times2 = twoVal.times(twoVal)
45+
const val times3 = threeVal.times(twoVal)
46+
const val times4 = twoVal.times(ushortVal)
47+
const val times5 = twoVal.times(uintVal)
48+
const val times6 = twoVal.times(ulongVal)
49+
50+
const val div1 = oneVal.div(twoVal)
51+
const val div2 = twoVal.div(twoVal)
52+
const val div3 = threeVal.div(twoVal)
53+
const val div4 = twoVal.div(ushortVal)
54+
const val div5 = twoVal.div(uintVal)
55+
const val div6 = twoVal.div(ulongVal)
56+
57+
const val floorDiv1 = oneVal.floorDiv(twoVal)
58+
const val floorDiv2 = twoVal.floorDiv(twoVal)
59+
const val floorDiv3 = threeVal.floorDiv(twoVal)
60+
const val floorDiv4 = twoVal.floorDiv(ushortVal)
61+
const val floorDiv5 = twoVal.floorDiv(uintVal)
62+
const val floorDiv6 = twoVal.floorDiv(ulongVal)
63+
64+
const val rem1 = oneVal.rem(twoVal)
65+
const val rem2 = twoVal.rem(twoVal)
66+
const val rem3 = threeVal.rem(twoVal)
67+
const val rem4 = twoVal.rem(ushortVal)
68+
const val rem5 = twoVal.rem(uintVal)
69+
const val rem6 = twoVal.rem(ulongVal)
70+
71+
const val mod1 = oneVal.mod(twoVal)
72+
const val mod2 = twoVal.mod(twoVal)
73+
const val mod3 = threeVal.mod(twoVal)
74+
const val mod4 = twoVal.mod(ushortVal)
75+
const val mod5 = twoVal.mod(uintVal)
76+
const val mod6 = twoVal.mod(ulongVal)
77+
78+
const val and1 = oneVal.and(twoVal)
79+
const val and2 = twoVal.and(twoVal)
80+
const val and3 = threeVal.and(twoVal)
81+
const val and4 = 12u.toUByte().and(10u.toUByte())
82+
83+
const val or1 = oneVal.or(twoVal)
84+
const val or2 = twoVal.or(twoVal)
85+
const val or3 = threeVal.or(twoVal)
86+
const val or4 = 12u.toUByte().or(10u.toUByte())
87+
88+
const val xor1 = oneVal.xor(twoVal)
89+
const val xor2 = twoVal.xor(twoVal)
90+
const val xor3 = threeVal.xor(twoVal)
91+
const val xor4 = 12u.toUByte().xor(10u.toUByte())
92+
93+
const val inv1 = zeroVal.inv()
94+
const val inv2 = oneVal.inv()
95+
96+
const val convert1 = oneVal.toUByte()
97+
const val convert2 = oneVal.toUShort()
98+
const val convert3 = oneVal.toUInt()
99+
const val convert4 = oneVal.toULong()
100+
const val convert5 = oneVal.toFloat()
101+
const val convert6 = oneVal.toDouble()
102+
const val convert7 = oneVal.toByte()
103+
const val convert8 = oneVal.toShort()
104+
const val convert9 = oneVal.toInt()
105+
const val convert10 = oneVal.toLong()
106+
const val convert11 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1.toByte().toUByte()<!>
107+
const val convert12 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1.toShort().toUByte()<!>
108+
const val convert13 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1.toUByte()<!>
109+
const val convert14 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1L.toUByte()<!>
110+
111+
const val equals1 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>oneVal == twoVal<!>
112+
const val equals2 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>twoVal == twoVal<!>
113+
const val equals3 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>threeVal == twoVal<!>
114+
const val equals4 = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>fourVal == twoVal<!>
115+
116+
const val toString1 = oneVal.toString()
117+
const val toString2 = twoVal.toString()
118+
119+
const val limits1 = 254u.toUByte()+oneVal
120+
const val limits2 = 255u.toUByte()+oneVal
121+
const val limits3 = zeroVal-oneVal
122+
123+
/* GENERATED_FIR_TAGS: additiveExpression, const, equalityExpression, integerLiteral, propertyDeclaration,
124+
unsignedLiteral */

0 commit comments

Comments
 (0)