[FIR] Implement INT_LITERAL_OUT_OF_RANGE diagnostics, fix tests

This commit is contained in:
Ivan Kochurkin
2021-04-07 15:53:23 +03:00
committed by TeamCityServer
parent fb06da2d75
commit 4cf30cd1fa
20 changed files with 68 additions and 48 deletions
@@ -1,5 +0,0 @@
// TESTCASE NUMBER: 1
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>0b<!>
// TESTCASE NUMBER: 2
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>0B<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
/*
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
*
@@ -1,5 +0,0 @@
// TESTCASE NUMBER: 1
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>0x<!>
// TESTCASE NUMBER: 2
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>0X<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
/*
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
*
@@ -1,14 +1,14 @@
// TESTCASE NUMBER: 1
val value_1 = <!ILLEGAL_CONST_EXPRESSION!>0bl<!>
val value_1 = <!INT_LITERAL_OUT_OF_RANGE!>0bl<!>
// TESTCASE NUMBER: 2
val value_2 = <!ILLEGAL_CONST_EXPRESSION!>0BL<!>
val value_2 = <!INT_LITERAL_OUT_OF_RANGE!>0BL<!>
// TESTCASE NUMBER: 3
val value_3 = <!ILLEGAL_CONST_EXPRESSION!>0Xl<!>
val value_3 = <!INT_LITERAL_OUT_OF_RANGE!>0Xl<!>
// TESTCASE NUMBER: 4
val value_4 = <!ILLEGAL_CONST_EXPRESSION!>0xL<!>
val value_4 = <!INT_LITERAL_OUT_OF_RANGE!>0xL<!>
// TESTCASE NUMBER: 5
val value_5 = <!ILLEGAL_UNDERSCORE!>0b_l<!>
@@ -101,12 +101,12 @@ fun case_5() {
// TESTCASE NUMBER: 6
fun case_6() {
checkSubtype<Byte>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!><!>)
checkSubtype<Short>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!><!>)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!><!>)
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Byte>() }
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Short>() }
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Int>() }
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Byte>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!><!>)
checkSubtype<Short>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!><!>)
checkSubtype<Int>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!><!>)
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Byte>() }
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Short>() }
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Int>() }
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
}
@@ -2,24 +2,24 @@
// TESTCASE NUMBER: 1
fun case_1() {
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>9223372036854775808L<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH, ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!>)
<!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH, INT_LITERAL_OUT_OF_RANGE!>9223372036854775808L<!>)
<!INT_LITERAL_OUT_OF_RANGE!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
}
// TESTCASE NUMBER: 2
fun case_2() {
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH, ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!>)
<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH, INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000L<!>)
<!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH, ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!>)
<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH, INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000l<!>)
<!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000L<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(<!ARGUMENT_TYPE_MISMATCH!><!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000l<!><!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
}
@@ -27,8 +27,8 @@ fun case_1() {
f1(<!ARGUMENT_TYPE_MISMATCH!>-2147483648<!>)
f1(<!ARGUMENT_TYPE_MISMATCH!>9223372036854775807<!>)
f1(<!ARGUMENT_TYPE_MISMATCH!>-9223372036854775807<!>)
f1(<!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f1(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f1(<!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
f1(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
}
// TESTCASE NUMBER: 2
@@ -39,20 +39,20 @@ fun case_2() {
f2(<!ARGUMENT_TYPE_MISMATCH!>-2147483648<!>)
f2(<!ARGUMENT_TYPE_MISMATCH!>9223372036854775807<!>)
f2(<!ARGUMENT_TYPE_MISMATCH!>-9223372036854775807<!>)
f2(<!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f2(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f2(<!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
f2(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
}
// TESTCASE NUMBER: 3
fun case_3() {
f3(<!ARGUMENT_TYPE_MISMATCH!>9223372036854775807<!>)
f3(<!ARGUMENT_TYPE_MISMATCH!>-9223372036854775807<!>)
f3(<!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f3(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f3(<!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
f3(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
}
// TESTCASE NUMBER: 4
fun case_4() {
f3(<!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f3(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>1000000000000000000000000000000000000000000000000<!>)
f3(<!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
f3(<!OVERLOAD_RESOLUTION_AMBIGUITY!>-<!><!INT_LITERAL_OUT_OF_RANGE!>1000000000000000000000000000000000000000000000000<!>)
}