[FIR] Improve diagnostic reporting & don't use error symbol for candidate if possible

Also introduce few new diagnostics:
- NONE_APPLICABLE more many inapplicable candidates
- HIDDEN for visible candidates
This commit is contained in:
Dmitriy Novozhilov
2020-07-22 16:40:14 +03:00
committed by Mikhail Glukhikh
parent 5c0528b61e
commit f283f2db43
365 changed files with 1400 additions and 1451 deletions
@@ -40,12 +40,12 @@ class Case1 : AbstractClassCase1(){
fun case1(){
val a = Case1()
a.<!INAPPLICABLE_CANDIDATE!>priv<!>()
a.<!HIDDEN!>priv<!>()
a.prot()
a.int()
a.pub()
a.<!INAPPLICABLE_CANDIDATE!>priv1<!>
a.<!HIDDEN!>priv1<!>
a.prot1
a.int1
a.pub1
@@ -59,12 +59,12 @@ import base.*
// TESTCASE NUMBER: 2
fun case2() {
val a = Case1()
a.<!INAPPLICABLE_CANDIDATE!>priv<!>()
a.<!HIDDEN!>priv<!>()
a.prot()
a.int()
a.pub()
a.<!INAPPLICABLE_CANDIDATE!>priv1<!>
a.<!HIDDEN!>priv1<!>
a.prot1
a.int1
a.pub1
@@ -27,7 +27,7 @@ import checkSubtype
fun case1() {
val a: Any = true
if (a) { "true" } else "false"
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Boolean>(a)
<!NONE_APPLICABLE!>checkSubtype<!><Boolean>(a)
}
/*
@@ -38,7 +38,7 @@ fun case1() {
fun case2() {
val a = JavaContainer.aO
if (a) { "true" } else "false"
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Boolean>(a)
<!NONE_APPLICABLE!>checkSubtype<!><Boolean>(a)
}
// TESTCASE NUMBER: 3
@@ -1,11 +1,11 @@
// TESTCASE NUMBER: 1
fun case_1() {
true checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean?>() }
false checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean?>() }
true checkType { <!NONE_APPLICABLE!>check<!><Boolean?>() }
false checkType { <!NONE_APPLICABLE!>check<!><Boolean?>() }
true checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Any?>() }
false checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Any>() }
true checkType { <!NONE_APPLICABLE!>check<!><Any?>() }
false checkType { <!NONE_APPLICABLE!>check<!><Any>() }
true checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Nothing?>() }
false checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Nothing>() }
true checkType { <!NONE_APPLICABLE!>check<!><Nothing?>() }
false checkType { <!NONE_APPLICABLE!>check<!><Nothing>() }
}
@@ -2,12 +2,12 @@
// TESTCASE NUMBER: 1
fun case_1() {
0L checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
1000000L checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Int>() }
0XAf10cDL checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Int>() }
0x0_0L checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
0b100_000_111_111L checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
0b0L checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
0L checkType { <!NONE_APPLICABLE!>check<!><Short>() }
1000000L checkType { <!NONE_APPLICABLE!>check<!><Int>() }
0XAf10cDL checkType { <!NONE_APPLICABLE!>check<!><Int>() }
0x0_0L checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
0b100_000_111_111L checkType { <!NONE_APPLICABLE!>check<!><Short>() }
0b0L checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(0L)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(1000000L)
@@ -2,83 +2,83 @@
// TESTCASE NUMBER: 1
fun case_1() {
0 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
0 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
0 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
0 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
0 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
0 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
}
// TESTCASE NUMBER: 2
fun case_2() {
127 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
127 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
127 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
127 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
127 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
127 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(128)
128 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
128 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
128 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
128 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
128 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
128 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
-128 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
-128 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
-128 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-128 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
-128 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
-128 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(-129)
-129 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
-129 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
-129 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-129 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
-129 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
-129 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
}
// TESTCASE NUMBER: 3
fun case_3() {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(32767)
32767 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
32767 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
32767 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
32767 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
32767 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
32767 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(32768)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(32768)
32768 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
32768 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
32768 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
32768 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
32768 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
32768 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(-32768)
-32768 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
-32768 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
-32768 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-32768 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
-32768 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
-32768 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(-32769)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(-32769)
-32769 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
-32769 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
-32769 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-32769 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
-32769 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
-32769 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
}
// TESTCASE NUMBER: 4
fun case_4() {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(2147483647)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(2147483647)
2147483647 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
2147483647 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
2147483647 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
2147483647 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
2147483647 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
2147483647 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(2147483648)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(2147483648)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(2147483648)
2147483648 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
2147483648 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
2147483648 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Int>() }
2147483648 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
2147483648 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
2147483648 checkType { <!NONE_APPLICABLE!>check<!><Int>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(-2147483648)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(-2147483648)
-2147483648 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
-2147483648 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
-2147483648 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-2147483648 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
-2147483648 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
-2147483648 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(-2147483649)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(-2147483649)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(-2147483649)
-2147483649 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
-2147483649 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
-2147483649 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
-2147483649 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
-2147483649 checkType { check<Int>() }
}
@@ -87,15 +87,15 @@ fun case_5() {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(9223372036854775807)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(9223372036854775807)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(9223372036854775807)
9223372036854775807 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
9223372036854775807 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
9223372036854775807 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Int>() }
9223372036854775807 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
9223372036854775807 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
9223372036854775807 checkType { <!NONE_APPLICABLE!>check<!><Int>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Byte>(-9223372036854775807)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(-9223372036854775807)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(-9223372036854775807)
-9223372036854775807 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
-9223372036854775807 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
-9223372036854775807 checkType { <!NONE_APPLICABLE!>check<!><Byte>() }
-9223372036854775807 checkType { <!NONE_APPLICABLE!>check<!><Short>() }
-9223372036854775807 checkType { check<Int>() }
}
@@ -105,8 +105,8 @@ fun case_6() {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Short>(<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!>)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Int>(<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!>)
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Long>(<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!>)
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Byte>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Short>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Int>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Byte>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Short>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Int>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
}
@@ -3,23 +3,23 @@
// TESTCASE NUMBER: 1
fun case_1() {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Long>(<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!>)
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Long>(<!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!>)
<!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
<!ILLEGAL_CONST_EXPRESSION!>9223372036854775808L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
}
// TESTCASE NUMBER: 2
fun case_2() {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Long>(<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!>)
<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Long>(<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!>)
<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
<!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Long>(<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!>)
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000L<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Long>(<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!>)
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
<!AMBIGUITY!>-<!><!ILLEGAL_CONST_EXPRESSION!>100000000000000000000000000000000l<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!NONE_APPLICABLE!>check<!><Long>() }
}
@@ -68,7 +68,7 @@ fun case_4() {
checkSubtype<Int>(-2147483648)
checkSubtype<Long>(-2147483648)
-2147483649 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-2147483649 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(-2147483649)
}
@@ -77,6 +77,6 @@ fun case_5() {
9223372036854775807 checkType { check<Long>() }
checkSubtype<Long>(9223372036854775807)
-9223372036854775807 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-9223372036854775807 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(-9223372036854775807)
}
@@ -68,7 +68,7 @@ fun case_4() {
checkSubtype<Int>(-0x80000000)
checkSubtype<Long>(-0x80000000)
-0x80000001 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-0x80000001 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(-0x80000001)
}
@@ -77,6 +77,6 @@ fun case_5() {
0X7FFFFFFFFFFFFFFF checkType { check<Long>() }
checkSubtype<Long>(0X7FFFFFFFFFFFFFFF)
-0X7FFFFFFFFFFFFFFF checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-0X7FFFFFFFFFFFFFFF checkType { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(-0X7FFFFFFFFFFFFFFF)
}
@@ -68,7 +68,7 @@ fun case_4() {
checkSubtype<Int>(-0B10000000000000000000000000000000)
checkSubtype<Long>(-0B10000000000000000000000000000000)
-0b10000000000000000000000000000001 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-0b10000000000000000000000000000001 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(-0b10000000000000000000000000000001)
}
@@ -77,6 +77,6 @@ fun case_5() {
0b111111111111111111111111111111111111111111111111111111111111111 checkType { check<Long>() }
checkSubtype<Long>(0b111111111111111111111111111111111111111111111111111111111111111)
-0B111111111111111111111111111111111111111111111111111111111111111 checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Long>() }
-0B111111111111111111111111111111111111111111111111111111111111111 checkType { <!NONE_APPLICABLE!>check<!><Long>() }
checkSubtype<Long>(-0B111111111111111111111111111111111111111111111111111111111111111)
}
@@ -26,7 +26,7 @@ fun case1() {
val a: Boolean? = false
checkSubtype<Boolean?>(a)
val x4 = a && true
x4 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>() }
x4 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>() }
}
// TESTCASE NUMBER: 2
@@ -34,7 +34,7 @@ fun case2() {
val a: Any = false
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any")!>a<!>
val x4 = a && true
x4 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>() }
x4 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>() }
}
// TESTCASE NUMBER: 3
@@ -46,7 +46,7 @@ fun case3() {
val x3 = a1 && a2
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean")!>x3<!>
x3 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>() }
x3 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>() }
}
// TESTCASE NUMBER: 4
@@ -42,5 +42,5 @@ fun case1() {
val x3 = a1 && a2 && a3 && a4 && a5 as Boolean
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean")!>x3<!>
x3 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>()}
x3 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>()}
}
@@ -26,7 +26,7 @@ fun case1() {
val a: Boolean? = false
checkSubtype<Boolean?>(a)
val x4 = a || true
x4 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>() }
x4 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>() }
}
// TESTCASE NUMBER: 2
@@ -34,7 +34,7 @@ fun case2() {
val a: Any = false
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any")!>a<!>
val x4 = a || true
x4 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>() }
x4 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>() }
}
// TESTCASE NUMBER: 3
@@ -46,7 +46,7 @@ fun case3() {
val x3 = a1 || a2
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean")!>x3<!>
x3 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>() }
x3 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>() }
}
// TESTCASE NUMBER: 4
@@ -42,5 +42,5 @@ fun case1() {
val x3 = a1 || a2 || a3 || a4 || a5 as Boolean
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Boolean")!>x3<!>
x3 <!AMBIGUITY!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>check<!><Boolean>()}
x3 <!AMBIGUITY!>checkType<!> { <!NONE_APPLICABLE!>check<!><Boolean>()}
}
@@ -11,7 +11,7 @@ class Case1() {
}
fun case() {
<!INAPPLICABLE_CANDIDATE!>Companion<!>(<!UNRESOLVED_REFERENCE!>::x<!>)
<!NONE_APPLICABLE!>Companion<!>(<!UNRESOLVED_REFERENCE!>::x<!>)
}
val x = ""
@@ -27,7 +27,7 @@ class Case2() {
}
fun case() {
<!INAPPLICABLE_CANDIDATE!>Companion<!>(<!UNRESOLVED_REFERENCE!>::x<!>)
<!NONE_APPLICABLE!>Companion<!>(<!UNRESOLVED_REFERENCE!>::x<!>)
}
val x = C()
@@ -28,10 +28,10 @@ class Case2() {
}
fun case() {
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!DEBUG_INFO_EXPRESSION_TYPE("Type is unknown"), UNRESOLVED_REFERENCE!>::invoke<!>, <!DEBUG_INFO_EXPRESSION_TYPE("Type is unknown"), UNRESOLVED_REFERENCE!>::invoke<!>)
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>::invoke<!>, <!UNRESOLVED_REFERENCE!>::invoke<!>)
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!><!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>::invoke<!>, <!UNRESOLVED_REFERENCE!>::invoke<!>)<!>
<!DEBUG_INFO_EXPRESSION_TYPE("ERROR CLASS: Inapplicable(INAPPLICABLE): [/Case2.foo, /Case2.foo]")!><!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>::invoke<!>, <!UNRESOLVED_REFERENCE!>::invoke<!>)<!>
<!NONE_APPLICABLE!>foo<!>(<!DEBUG_INFO_EXPRESSION_TYPE("Type is unknown"), UNRESOLVED_REFERENCE!>::invoke<!>, <!DEBUG_INFO_EXPRESSION_TYPE("Type is unknown"), UNRESOLVED_REFERENCE!>::invoke<!>)
<!NONE_APPLICABLE!>foo<!>(<!UNRESOLVED_REFERENCE!>::invoke<!>, <!UNRESOLVED_REFERENCE!>::invoke<!>)
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!><!NONE_APPLICABLE!>foo<!>(<!UNRESOLVED_REFERENCE!>::invoke<!>, <!UNRESOLVED_REFERENCE!>::invoke<!>)<!>
<!DEBUG_INFO_EXPRESSION_TYPE("ERROR CLASS: Ambiguity: foo, [/Case2.foo, /Case2.foo]")!><!NONE_APPLICABLE!>foo<!>(<!UNRESOLVED_REFERENCE!>::invoke<!>, <!UNRESOLVED_REFERENCE!>::invoke<!>)<!>
}
fun foo(vararg x: (Int)->Any): String = TODO() // (1.1)
@@ -22,7 +22,7 @@ class Case1<AT>(val x: AT) {
when (k) {
is AT -> {
k checkType { <!INAPPLICABLE_CANDIDATE!>check<!><AT>() }
k checkType { <!NONE_APPLICABLE!>check<!><AT>() }
}
}
}
@@ -31,7 +31,7 @@ class Case1<AT>(val x: AT) {
val k: AT = x!!
if (k is AT) {
k checkType { <!INAPPLICABLE_CANDIDATE!>check<!><AT>() }
k checkType { <!NONE_APPLICABLE!>check<!><AT>() }
}
}
}
@@ -6,7 +6,7 @@
class Case1(val nothing: Nothing)
fun case1() {
val res = Case1(<!INAPPLICABLE_CANDIDATE!>Nothing<!>())
val res = <!INAPPLICABLE_CANDIDATE!>Case1<!>(<!INAPPLICABLE_CANDIDATE!>Nothing<!>())
}
@@ -17,5 +17,5 @@ class Case2 {
fun case2(c: Case2) {
val testValue = c.data ?: throw IllegalArgumentException("data required")
testValue checkType { <!INAPPLICABLE_CANDIDATE!>check<!><Nothing>() }
testValue checkType { <!NONE_APPLICABLE!>check<!><Nothing>() }
}