[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:
committed by
Mikhail Glukhikh
parent
5c0528b61e
commit
f283f2db43
@@ -10,14 +10,14 @@ FILE: default.kt
|
||||
R|/foo|(Int(1), Double(2.0))
|
||||
R|/foo|(Int(1), Double(2.0), Boolean(true))
|
||||
R|/foo|(Int(1), third = Boolean(true))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/foo]>#()
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/foo]>#(Int(0), Double(0.0), Boolean(false), String())
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#()
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(Int(0), Double(0.0), Boolean(false), String())
|
||||
R|/bar|(Int(1), third = Boolean(true))
|
||||
R|/bar|(Int(1), Double(2.0), Boolean(true))
|
||||
R|/bar|(Int(1), Double(2.0), Boolean(true), String(my))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/bar]>#(Int(1), Boolean(true))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(Int(1), Boolean(true))
|
||||
R|/baz|(Int(1))
|
||||
R|/baz|(Int(1), vararg(String(my), String(yours)))
|
||||
R|/baz|(Int(1), z = Boolean(true))
|
||||
<Inapplicable(INAPPLICABLE): [/baz]>#(Int(0), String(), Boolean(false))
|
||||
<Inapplicable(INAPPLICABLE): /baz>#(Int(0), String(), Boolean(false))
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,8 +22,8 @@ FILE: defaultFromOverrides.kt
|
||||
public final fun foo(a: R|A|): R|kotlin/Unit| {
|
||||
R|<local>/a|.R|/A.foo|()
|
||||
R|<local>/a|.R|/A.foo|(Int(1))
|
||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): [/A.bar]>#()
|
||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): [/A.bar]>#(String())
|
||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): /A.bar>#()
|
||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): /A.bar>#(String())
|
||||
R|<local>/a|.R|/A.bar|(y = Int(1))
|
||||
R|<local>/a|.R|/A.bar|(String(), Int(2))
|
||||
}
|
||||
|
||||
+4
-4
@@ -20,9 +20,9 @@ FILE: integerLiteralTypes.kt
|
||||
R|/takeLong|(Long(1))
|
||||
}
|
||||
public final fun test_2(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/takeInt]>#(Long(10000000000))
|
||||
<Inapplicable(INAPPLICABLE): /takeInt>#(Long(10000000000))
|
||||
R|/takeLong|(Long(10000000000))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(1000))
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(1000))
|
||||
}
|
||||
public final fun test_3(): R|kotlin/Unit| {
|
||||
R|/takeInt|(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
|
||||
@@ -46,8 +46,8 @@ FILE: integerLiteralTypes.kt
|
||||
))
|
||||
}
|
||||
public final fun test_5(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/takeString]>#(Int(1))
|
||||
<Inapplicable(INAPPLICABLE): [/takeString]>#(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
|
||||
<Inapplicable(INAPPLICABLE): /takeString>#(Int(1))
|
||||
<Inapplicable(INAPPLICABLE): /takeString>#(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
|
||||
^ Int(1)
|
||||
}
|
||||
))
|
||||
|
||||
+1
-1
@@ -5,6 +5,6 @@ FILE: main.kt
|
||||
}
|
||||
public final fun test(array: R|kotlin/Array<B>|): R|kotlin/Unit| {
|
||||
Q|A|.R|/A.take|(R|<local>/array|)
|
||||
<Inapplicable(INAPPLICABLE): [/takeA]>#(R|<local>/array|)
|
||||
<Inapplicable(INAPPLICABLE): /takeA>#(R|<local>/array|)
|
||||
R|/takeOutA|(R|<local>/array|)
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@ FILE: lambda.kt
|
||||
^@foo Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/foo]>#(Int(1), <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(Int(1), <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@foo Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/foo]>#(f = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(f = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@foo Unit
|
||||
}
|
||||
, <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
@@ -45,11 +45,11 @@ FILE: lambda.kt
|
||||
^@bar Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/bar]>#(<L> = bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(<L> = bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@bar Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/bar]>#(bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@bar Unit
|
||||
}
|
||||
)
|
||||
@@ -61,15 +61,15 @@ FILE: lambda.kt
|
||||
^@baz Unit
|
||||
}
|
||||
, Boolean(false))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/baz]>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /baz>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@baz Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/baz]>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /baz>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@baz Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/baz]>#(other = Boolean(false), <L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /baz>#(other = Boolean(false), <L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@baz Unit
|
||||
}
|
||||
)
|
||||
|
||||
+8
-8
@@ -30,20 +30,20 @@ FILE: operatorsOverLiterals.kt
|
||||
}
|
||||
public final fun test_4(): R|kotlin/Unit| {
|
||||
R|/takeByte|(Byte(1).R|kotlin/Byte.plus|(Byte(1)))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(1).R|kotlin/Int.plus|(Int(127)))
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(1).R|kotlin/Int.plus|(Int(127)))
|
||||
R|/takeByte|(Byte(1).R|kotlin/Byte.minus|(Byte(1)))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(100).R|kotlin/Int.unaryMinus|().R|kotlin/Int.minus|(Int(100)))
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(100).R|kotlin/Int.unaryMinus|().R|kotlin/Int.minus|(Int(100)))
|
||||
R|/takeByte|(Byte(10).R|kotlin/Byte.times|(Byte(10)))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(100).R|kotlin/Int.times|(Int(100)))
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(100).R|kotlin/Int.times|(Int(100)))
|
||||
<Unresolved name: taleByte>#(Int(10).R|kotlin/Int.div|(Int(10)))
|
||||
R|/takeByte|(Byte(100).R|kotlin/Byte.rem|(Byte(10)))
|
||||
R|/takeByte|(Int(1000).R|kotlin/Int.rem|(Byte(10)))
|
||||
R|/takeByte|(Int(1000).R|<local>/and|(Byte(100)))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(128).R|kotlin/Int.and|(Int(511)))
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(128).R|kotlin/Int.and|(Int(511)))
|
||||
R|/takeByte|(Byte(100).R|<local>/or|(Byte(100)))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(1000).R|kotlin/Int.or|(Int(0)))
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(1000).R|kotlin/Int.or|(Int(0)))
|
||||
R|/takeByte|(Int(511).R|kotlin/Int.xor|(Int(511)))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(512).R|kotlin/Int.xor|(Int(511)))
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(512).R|kotlin/Int.xor|(Int(511)))
|
||||
}
|
||||
public final fun test_5(): R|kotlin/Unit| {
|
||||
R|/takeByte|(Byte(1).R|kotlin/Byte.unaryMinus|())
|
||||
@@ -51,11 +51,11 @@ FILE: operatorsOverLiterals.kt
|
||||
R|/takeByte|(Byte(1).R|<local>/inv|())
|
||||
}
|
||||
public final fun test_6(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
|
||||
^ Int(127).R|kotlin/Int.plus|(Int(1))
|
||||
}
|
||||
))
|
||||
<Inapplicable(INAPPLICABLE): [/takeByte]>#(Int(1).R|<local>/plus|(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
|
||||
<Inapplicable(INAPPLICABLE): /takeByte>#(Int(1).R|<local>/plus|(R|kotlin/run|<R|kotlin/Int|>(<L> = run@fun <anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
|
||||
^ Int(1)
|
||||
}
|
||||
)))
|
||||
|
||||
@@ -7,11 +7,11 @@ FILE: simple.kt
|
||||
R|/foo|(Int(1), Double(2.0), fourth = String(???), third = Boolean(false))
|
||||
R|/foo|(Int(1), second = Double(3.14), third = Boolean(false), fourth = String(!?))
|
||||
R|/foo|(third = Boolean(false), second = Double(2.71), fourth = String(?!), first = Int(0))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/foo]>#()
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(Double(0.0), Boolean(false), Int(0), String())
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#()
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(Double(0.0), Boolean(false), Int(0), String())
|
||||
R|/foo|(Int(1), Double(2.0), third = Boolean(true), String())
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/foo]>#(second = Double(0.0), first = Int(0), fourth = String())
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(first = Double(0.0), second = Int(0), third = String(), fourth = Boolean(false))
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(first = Int(0), second = Double(0.0), third = Boolean(false), fourth = String(), first = Int(1))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/foo]>#(Int(0), Double(0.0), Boolean(false), foth = String())
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(second = Double(0.0), first = Int(0), fourth = String())
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(first = Double(0.0), second = Int(0), third = String(), fourth = Boolean(false))
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(first = Int(0), second = Double(0.0), third = Boolean(false), fourth = String(), first = Int(1))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(Int(0), Double(0.0), Boolean(false), foth = String())
|
||||
}
|
||||
|
||||
@@ -8,9 +8,9 @@ FILE: vararg.kt
|
||||
R|/foo|(Int(1), vararg(String()))
|
||||
R|/foo|(Int(1), vararg(String(my), String(yours)))
|
||||
R|/foo|(Int(1), vararg(*R|kotlin/arrayOf|<R|kotlin/String|>(vararg(String(my), String(yours)))))
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(String())
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(Int(1), Int(2))
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(String())
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(Int(1), Int(2))
|
||||
R|/bar|(Int(1), z = Boolean(true), vararg(y = *R|kotlin/arrayOf|<R|kotlin/String|>(vararg(String(my), String(yours)))))
|
||||
<Inapplicable(INAPPLICABLE): [/bar]>#(Int(0), z = Boolean(false), y = String(), y = String(other))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/bar]>#(Int(0), String(), Boolean(true))
|
||||
<Inapplicable(INAPPLICABLE): /bar>#(Int(0), z = Boolean(false), y = String(), y = String(other))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(Int(0), String(), Boolean(true))
|
||||
}
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ FILE: errorCandidates.kt
|
||||
public final fun bar(x: R|B|): R|kotlin/Unit| {
|
||||
}
|
||||
public final fun test(c: R|C|): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(String())
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(String())
|
||||
<Ambiguity: bar, [/bar, /bar]>#(R|<local>/c|)
|
||||
<Unresolved name: baz>#()
|
||||
}
|
||||
|
||||
@@ -404,7 +404,7 @@ digraph flowFromInplaceLambda_kt {
|
||||
142 [label="Function call: R|/select|<R|kotlin/Int|>(...)"];
|
||||
143 [label="Variable declaration: lval a: R|kotlin/Int|"];
|
||||
144 [label="Access variable R|<local>/x|"];
|
||||
145 [label="Function call: <Inapplicable(INAPPLICABLE): [/takeInt]>#(...)"];
|
||||
145 [label="Function call: <Inapplicable(INAPPLICABLE): /takeInt>#(...)"];
|
||||
146 [label="Access variable R|<local>/y|"];
|
||||
147 [label="Function call: R|/takeInt|(...)"];
|
||||
148 [label="Access variable R|<local>/a|"];
|
||||
|
||||
@@ -63,7 +63,7 @@ FILE: flowFromInplaceLambda.kt
|
||||
^ Int(1)
|
||||
}
|
||||
)))
|
||||
<Inapplicable(INAPPLICABLE): [/takeInt]>#(R|<local>/x|)
|
||||
<Inapplicable(INAPPLICABLE): /takeInt>#(R|<local>/x|)
|
||||
R|/takeInt|(R|<local>/y|)
|
||||
R|/takeInt|(R|<local>/a|)
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ digraph jumps_kt {
|
||||
}
|
||||
51 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
||||
52 [label="Access variable R|<local>/y|"];
|
||||
53 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
53 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
54 [label="Exit block"];
|
||||
}
|
||||
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
|
||||
@@ -22,7 +22,7 @@ FILE: jumps.kt
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
public final fun test_3(x: R|kotlin/Int?|): R|kotlin/Unit| {
|
||||
while(Boolean(true)) {
|
||||
|
||||
@@ -13,7 +13,7 @@ open class A3(x: String, y: String = "") {
|
||||
class B3_1 : <!AMBIGUITY!>A3<!>("")
|
||||
class B3_2 : A3("", "asas")
|
||||
class B3_3 : A3("", true)
|
||||
class B3_4 : <!INAPPLICABLE_CANDIDATE!>A3<!>("", Unit)
|
||||
class B3_4 : <!NONE_APPLICABLE!>A3<!>("", Unit)
|
||||
|
||||
open class A4(val x: Byte)
|
||||
class B4 : A4( 1 + 1)
|
||||
@@ -24,4 +24,4 @@ open class A5 {
|
||||
}
|
||||
|
||||
class B5_1 : A5(1 + 1)
|
||||
class B5_2 : A5(100 * 2)
|
||||
class B5_2 : A5(100 * 2)
|
||||
|
||||
+2
-2
@@ -70,5 +70,5 @@ FILE: upperBoundViolated.kt
|
||||
}
|
||||
public final val np1: R|NumberPhile<kotlin/Int>| = R|/NumberPhile.NumberPhile|<R|kotlin/Int|>(Int(10))
|
||||
public get(): R|NumberPhile<kotlin/Int>|
|
||||
public final val np2: <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/NumberPhile.NumberPhile]> = <Inapplicable(INAPPLICABLE): [/NumberPhile.NumberPhile]>#(String(Test))
|
||||
public get(): <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/NumberPhile.NumberPhile]>
|
||||
public final val np2: R|NumberPhile<kotlin/String>| = <Inapplicable(INAPPLICABLE): /NumberPhile.NumberPhile>#<R|kotlin/String|>(String(Test))
|
||||
public get(): R|NumberPhile<kotlin/String>|
|
||||
|
||||
Vendored
+2
-2
@@ -8,7 +8,7 @@ class CallBasedInExpressionGenerator(
|
||||
private val isInverted = operatorReference.<!UNRESOLVED_REFERENCE!>getReferencedNameElementType<!>() == <!UNRESOLVED_REFERENCE!>KtTokens<!>.<!UNRESOLVED_REFERENCE!>NOT_IN<!>
|
||||
|
||||
override fun generate(argument: StackValue): BranchedValue =
|
||||
gen(argument).<!INAPPLICABLE_CANDIDATE!>let<!> { if (isInverted) <!UNRESOLVED_REFERENCE!>Invert<!>(<!UNRESOLVED_REFERENCE!>it<!>) else <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
gen(argument).<!INAPPLICABLE_CANDIDATE!>let<!> { if (isInverted) <!UNRESOLVED_REFERENCE!>Invert<!>(it) else it }
|
||||
|
||||
private fun gen(argument: StackValue): BranchedValue =
|
||||
object : BranchedValue(argument, null, argument.<!UNRESOLVED_REFERENCE!>type<!>, <!UNRESOLVED_REFERENCE!>Opcodes<!>.<!UNRESOLVED_REFERENCE!>IFEQ<!>) {
|
||||
@@ -27,4 +27,4 @@ class CallBasedInExpressionGenerator(
|
||||
result.<!UNRESOLVED_REFERENCE!>put<!>(result.<!UNRESOLVED_REFERENCE!>type<!>, result.<!UNRESOLVED_REFERENCE!>kotlinType<!>, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+3
-3
@@ -14,13 +14,13 @@ FILE: CallBasedInExpressionGenerator.kt
|
||||
private get(): R|kotlin/Boolean|
|
||||
|
||||
public final override fun generate(argument: R|ERROR CLASS: Symbol not found, for `StackValue`|): R|ERROR CLASS: Symbol not found, for `BranchedValue`| {
|
||||
^generate this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.gen|(R|<local>/argument|).<Inapplicable(WRONG_RECEIVER): [kotlin/let]>#(<L> = let@fun <anonymous>(): <ERROR TYPE REF: Can't resolve when expression> {
|
||||
^generate this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.gen|(R|<local>/argument|).<Inapplicable(WRONG_RECEIVER): kotlin/let>#<R|kotlin/Any?|, R|kotlin/Nothing|>(<L> = let@fun <anonymous>(it: R|kotlin/Any?|): <ERROR TYPE REF: Can't resolve when expression> <kind=EXACTLY_ONCE> {
|
||||
^ when () {
|
||||
this@R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator|.R|org/jetbrains/kotlin/codegen/range/inExpression/CallBasedInExpressionGenerator.isInverted| -> {
|
||||
<Unresolved name: Invert>#(<Unresolved name: it>#)
|
||||
<Unresolved name: Invert>#(R|<local>/it|)
|
||||
}
|
||||
else -> {
|
||||
<Unresolved name: it>#
|
||||
R|<local>/it|
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ class Bar {
|
||||
}
|
||||
|
||||
// NB! abc() here is resolved to member Foo.abc(), and not to extension member of Bar
|
||||
fun Foo.check() = abc() <!INAPPLICABLE_CANDIDATE!>+<!> bar()
|
||||
fun Foo.check() = abc() <!NONE_APPLICABLE!>+<!> bar()
|
||||
|
||||
// NB! + here is resolved to member String.plus (not to extension member above)
|
||||
fun Foo.check2() = "" + bar()
|
||||
@@ -60,4 +60,4 @@ fun f() {
|
||||
<!UNRESOLVED_REFERENCE!>dcb<!>()
|
||||
|
||||
abc()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,8 +36,8 @@ FILE: access.kt
|
||||
^plus String()
|
||||
}
|
||||
|
||||
public final fun R|Foo|.check(): <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus]> {
|
||||
^check this@R|/Bar.check|.R|/Foo.abc|().<Inapplicable(INAPPLICABLE): [kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus]>#(this@R|/Bar|.R|/Bar.bar|())
|
||||
public final fun R|Foo|.check(): <ERROR TYPE REF: Ambiguity: plus, [kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus]> {
|
||||
^check this@R|/Bar.check|.R|/Foo.abc|().<Ambiguity: plus, [kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus]>#(this@R|/Bar|.R|/Bar.bar|())
|
||||
}
|
||||
|
||||
public final fun R|Foo|.check2(): R|kotlin/String| {
|
||||
|
||||
@@ -34,5 +34,5 @@ FILE: enumEntryUse.kt
|
||||
R|/useEnum|(Q|TestEnum|.R|/TestEnum.SECOND|)
|
||||
R|/useEnum|(Q|TestEnum|.R|/TestEnum.THIRD|)
|
||||
R|/useVararg|(vararg(Q|TestEnum|.R|/TestEnum.FIRST|, Q|TestEnum|.R|/TestEnum.SECOND|))
|
||||
<Inapplicable(INAPPLICABLE): [/useVararg]>#(Int(1), Int(2), Int(3), Int(4), Int(5))
|
||||
<Inapplicable(INAPPLICABLE): /useVararg>#(Int(1), Int(2), Int(3), Int(4), Int(5))
|
||||
}
|
||||
|
||||
+1
-1
@@ -18,5 +18,5 @@ FILE: typeParameters.kt
|
||||
}
|
||||
public final fun main(fooImpl: R|FooImpl|, bar: R|Bar|): R|kotlin/Unit| {
|
||||
lval a: R|FooImpl| = R|/foo|<R|FooImpl|>(R|<local>/fooImpl|)
|
||||
lval b: <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/foo]> = <Inapplicable(INAPPLICABLE): [/foo]>#(R|<local>/bar|)
|
||||
lval b: R|Bar| = <Inapplicable(INAPPLICABLE): /foo>#<R|Bar|>(R|<local>/bar|)
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,6 +17,6 @@ FILE: typeParameters2.kt
|
||||
^foo R|<local>/t|
|
||||
}
|
||||
public final fun main(fooImpl: R|FooImpl|, fooBarImpl: R|FooBarImpl|): R|kotlin/Unit| {
|
||||
lval a: <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/foo]> = <Inapplicable(INAPPLICABLE): [/foo]>#(R|<local>/fooBarImpl|)
|
||||
lval a: R|FooImpl| = <Inapplicable(INAPPLICABLE): /foo>#<R|FooImpl|>(R|<local>/fooBarImpl|)
|
||||
lval b: R|Foo| = R|/foo|<R|Foo|>(R|<local>/fooImpl|)
|
||||
}
|
||||
|
||||
+6
-6
@@ -11,8 +11,8 @@ open class Outer {
|
||||
|
||||
class Derived : Outer() {
|
||||
fun foo() {
|
||||
Outer.<!INAPPLICABLE_CANDIDATE!>PrivateNested<!>()
|
||||
super.<!INAPPLICABLE_CANDIDATE!>PrivateInner<!>()
|
||||
Outer.<!HIDDEN!>PrivateNested<!>()
|
||||
super.<!HIDDEN!>PrivateInner<!>()
|
||||
|
||||
Outer.ProtectedNested()
|
||||
super.ProtectedInner()
|
||||
@@ -23,11 +23,11 @@ class Derived : Outer() {
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
Outer.<!INAPPLICABLE_CANDIDATE!>PrivateNested<!>()
|
||||
Outer().<!INAPPLICABLE_CANDIDATE!>PrivateInner<!>()
|
||||
Outer.<!HIDDEN!>PrivateNested<!>()
|
||||
Outer().<!HIDDEN!>PrivateInner<!>()
|
||||
|
||||
Outer.<!INAPPLICABLE_CANDIDATE!>ProtectedNested<!>()
|
||||
Outer().<!INAPPLICABLE_CANDIDATE!>ProtectedInner<!>()
|
||||
Outer.<!HIDDEN!>ProtectedNested<!>()
|
||||
Outer().<!HIDDEN!>ProtectedInner<!>()
|
||||
|
||||
Outer.PublicNested()
|
||||
Outer().PublicInner()
|
||||
|
||||
+6
-6
@@ -53,8 +53,8 @@ FILE: nestedVisibility.kt
|
||||
}
|
||||
|
||||
public final fun foo(): R|kotlin/Unit| {
|
||||
Q|Outer|.<Inapplicable(HIDDEN): [/Outer.PrivateNested.PrivateNested]>#()
|
||||
this@R|/Derived|.super<R|Outer|>.<Inapplicable(HIDDEN): [/Outer.PrivateInner.PrivateInner]>#()
|
||||
Q|Outer|.<HIDDEN: /Outer.PrivateNested.PrivateNested is invisible>#()
|
||||
this@R|/Derived|.super<R|Outer|>.<HIDDEN: /Outer.PrivateInner.PrivateInner is invisible>#()
|
||||
Q|Outer|.R|/Outer.ProtectedNested.ProtectedNested|()
|
||||
this@R|/Derived|.super<R|Outer|>.R|/Outer.ProtectedInner.ProtectedInner|()
|
||||
Q|Outer|.R|/Outer.PublicNested.PublicNested|()
|
||||
@@ -63,10 +63,10 @@ FILE: nestedVisibility.kt
|
||||
|
||||
}
|
||||
public final fun foo(): R|kotlin/Unit| {
|
||||
Q|Outer|.<Inapplicable(HIDDEN): [/Outer.PrivateNested.PrivateNested]>#()
|
||||
R|/Outer.Outer|().<Inapplicable(HIDDEN): [/Outer.PrivateInner.PrivateInner]>#()
|
||||
Q|Outer|.<Inapplicable(HIDDEN): [/Outer.ProtectedNested.ProtectedNested]>#()
|
||||
R|/Outer.Outer|().<Inapplicable(HIDDEN): [/Outer.ProtectedInner.ProtectedInner]>#()
|
||||
Q|Outer|.<HIDDEN: /Outer.PrivateNested.PrivateNested is invisible>#()
|
||||
R|/Outer.Outer|().<HIDDEN: /Outer.PrivateInner.PrivateInner is invisible>#()
|
||||
Q|Outer|.<HIDDEN: /Outer.ProtectedNested.ProtectedNested is invisible>#()
|
||||
R|/Outer.Outer|().<HIDDEN: /Outer.ProtectedInner.ProtectedInner is invisible>#()
|
||||
Q|Outer|.R|/Outer.PublicNested.PublicNested|()
|
||||
R|/Outer.Outer|().R|/Outer.PublicInner.PublicInner|()
|
||||
}
|
||||
|
||||
+10
-10
@@ -9,21 +9,21 @@ private class Private {
|
||||
bar()
|
||||
Nested()
|
||||
fromCompanion()
|
||||
NotCompanion.<!INAPPLICABLE_CANDIDATE!>foo<!>() // hidden
|
||||
NotCompanion.<!HIDDEN!>foo<!>() // hidden
|
||||
}
|
||||
|
||||
inner class Inner {
|
||||
fun foo() {
|
||||
bar()
|
||||
fromCompanion()
|
||||
NotCompanion.<!INAPPLICABLE_CANDIDATE!>foo<!>() // hidden
|
||||
NotCompanion.<!HIDDEN!>foo<!>() // hidden
|
||||
}
|
||||
}
|
||||
|
||||
private class Nested {
|
||||
fun foo() {
|
||||
fromCompanion()
|
||||
NotCompanion.<!INAPPLICABLE_CANDIDATE!>foo<!>() // hidden
|
||||
NotCompanion.<!HIDDEN!>foo<!>() // hidden
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ fun withLocals() {
|
||||
|
||||
Local().baz()
|
||||
|
||||
Local().<!INAPPLICABLE_CANDIDATE!>bar<!>() // hidden
|
||||
Local().<!HIDDEN!>bar<!>() // hidden
|
||||
}
|
||||
|
||||
fun test() {
|
||||
@@ -62,14 +62,14 @@ fun test() {
|
||||
Private().baz()
|
||||
Private().Inner()
|
||||
|
||||
Private().<!INAPPLICABLE_CANDIDATE!>bar<!>() // hidden
|
||||
Private.<!INAPPLICABLE_CANDIDATE!>Nested<!>() // hidden
|
||||
Private.<!INAPPLICABLE_CANDIDATE!>fromCompanion<!>() // hidden
|
||||
Private().<!HIDDEN!>bar<!>() // hidden
|
||||
Private.<!HIDDEN!>Nested<!>() // hidden
|
||||
Private.<!HIDDEN!>fromCompanion<!>() // hidden
|
||||
}
|
||||
|
||||
// FILE: second.kt
|
||||
|
||||
fun secondTest() {
|
||||
<!INAPPLICABLE_CANDIDATE!>foo<!>() // hidden
|
||||
<!INAPPLICABLE_CANDIDATE!>Private<!>() // hidden
|
||||
}
|
||||
<!HIDDEN!>foo<!>() // hidden
|
||||
<!HIDDEN!>Private<!>() // hidden
|
||||
}
|
||||
|
||||
+9
-9
@@ -13,7 +13,7 @@ FILE: first.kt
|
||||
this@R|/Private|.R|/Private.bar|()
|
||||
R|/Private.Nested.Nested|()
|
||||
this@R|/Private.Companion|.R|/Private.Companion.fromCompanion|()
|
||||
Q|Private.NotCompanion|.<Inapplicable(HIDDEN): [/Private.NotCompanion.foo]>#()
|
||||
Q|Private.NotCompanion|.<HIDDEN: /Private.NotCompanion.foo is invisible>#()
|
||||
}
|
||||
|
||||
public[private] final inner class Inner : R|kotlin/Any| {
|
||||
@@ -24,7 +24,7 @@ FILE: first.kt
|
||||
public[private] final fun foo(): R|kotlin/Unit| {
|
||||
this@R|/Private|.R|/Private.bar|()
|
||||
this@R|/Private.Companion|.R|/Private.Companion.fromCompanion|()
|
||||
Q|Private.NotCompanion|.<Inapplicable(HIDDEN): [/Private.NotCompanion.foo]>#()
|
||||
Q|Private.NotCompanion|.<HIDDEN: /Private.NotCompanion.foo is invisible>#()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -36,7 +36,7 @@ FILE: first.kt
|
||||
|
||||
public[private] final fun foo(): R|kotlin/Unit| {
|
||||
this@R|/Private.Companion|.R|/Private.Companion.fromCompanion|()
|
||||
Q|Private.NotCompanion|.<Inapplicable(HIDDEN): [/Private.NotCompanion.foo]>#()
|
||||
Q|Private.NotCompanion|.<HIDDEN: /Private.NotCompanion.foo is invisible>#()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -89,18 +89,18 @@ FILE: first.kt
|
||||
}
|
||||
|
||||
R|/Local.Local|().R|/Local.baz|()
|
||||
R|/Local.Local|().<Inapplicable(HIDDEN): [/Local.bar]>#()
|
||||
R|/Local.Local|().<HIDDEN: /Local.bar is invisible>#()
|
||||
}
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
R|/foo|()
|
||||
R|/Private.Private|().R|/Private.baz|()
|
||||
R|/Private.Private|().R|/Private.Inner.Inner|()
|
||||
R|/Private.Private|().<Inapplicable(HIDDEN): [/Private.bar]>#()
|
||||
Q|Private|.<Inapplicable(HIDDEN): [/Private.Nested.Nested]>#()
|
||||
Q|Private|.<Inapplicable(HIDDEN): [/Private.Companion.fromCompanion]>#()
|
||||
R|/Private.Private|().<HIDDEN: /Private.bar is invisible>#()
|
||||
Q|Private|.<HIDDEN: /Private.Nested.Nested is invisible>#()
|
||||
Q|Private|.<HIDDEN: /Private.Companion.fromCompanion is invisible>#()
|
||||
}
|
||||
FILE: second.kt
|
||||
public final fun secondTest(): R|kotlin/Unit| {
|
||||
<Inapplicable(HIDDEN): [/foo]>#()
|
||||
<Inapplicable(HIDDEN): [/Private.Private]>#()
|
||||
<HIDDEN: /foo is invisible>#()
|
||||
<HIDDEN: /Private.Private is invisible>#()
|
||||
}
|
||||
|
||||
+3
-3
@@ -31,7 +31,7 @@ class Derived : Protected() {
|
||||
fun foo() {
|
||||
bar()
|
||||
Nested().foo()
|
||||
Nested().<!INAPPLICABLE_CANDIDATE!>bar<!>() // hidden
|
||||
Nested().<!HIDDEN!>bar<!>() // hidden
|
||||
|
||||
fromCompanion()
|
||||
protectedFromCompanion()
|
||||
@@ -48,8 +48,8 @@ fun test() {
|
||||
Protected().baz()
|
||||
Protected().Inner()
|
||||
|
||||
Protected().<!INAPPLICABLE_CANDIDATE!>bar<!>() // hidden
|
||||
Protected.<!INAPPLICABLE_CANDIDATE!>Nested<!>() // hidden
|
||||
Protected().<!HIDDEN!>bar<!>() // hidden
|
||||
Protected.<!HIDDEN!>Nested<!>() // hidden
|
||||
}
|
||||
|
||||
open class Generic<T>(val x: T) {
|
||||
|
||||
+3
-3
@@ -59,7 +59,7 @@ FILE: protectedVisibility.kt
|
||||
public final fun foo(): R|kotlin/Unit| {
|
||||
this@R|/Derived|.R|/Protected.bar|()
|
||||
R|/Protected.Nested.Nested|().R|/Protected.Nested.foo|()
|
||||
R|/Protected.Nested.Nested|().<Inapplicable(HIDDEN): [/Protected.Nested.bar]>#()
|
||||
R|/Protected.Nested.Nested|().<HIDDEN: /Protected.Nested.bar is invisible>#()
|
||||
this@R|/Protected.Companion|.R|/Protected.Companion.fromCompanion|()
|
||||
this@R|/Protected.Companion|.R|/Protected.Companion.protectedFromCompanion|()
|
||||
}
|
||||
@@ -79,8 +79,8 @@ FILE: protectedVisibility.kt
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
R|/Protected.Protected|().R|/Protected.baz|()
|
||||
R|/Protected.Protected|().R|/Protected.Inner.Inner|()
|
||||
R|/Protected.Protected|().<Inapplicable(HIDDEN): [/Protected.bar]>#()
|
||||
Q|Protected|.<Inapplicable(HIDDEN): [/Protected.Nested.Nested]>#()
|
||||
R|/Protected.Protected|().<HIDDEN: /Protected.bar is invisible>#()
|
||||
Q|Protected|.<HIDDEN: /Protected.Nested.Nested is invisible>#()
|
||||
}
|
||||
public open class Generic<T> : R|kotlin/Any| {
|
||||
public constructor<T>(x: R|T|): R|Generic<T>| {
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ FILE: test.kt
|
||||
lval bar: R|kotlin/CharSequence?| = R|<local>/x|?.{ $subj$.R|/SomeClass.bar| }
|
||||
when () {
|
||||
!=(R|<local>/bar|, Null(null)) -> {
|
||||
R|<local>/x|.R|/SomeClass.bar|.<Inapplicable(WRONG_RECEIVER): [kotlin/CharSequence.length]>#
|
||||
R|<local>/x|.R|/SomeClass.bar|.<Inapplicable(WRONG_RECEIVER): kotlin/CharSequence.length>#
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ FILE: nullableIntegerLiteralType.kt
|
||||
}
|
||||
}
|
||||
|
||||
<Inapplicable(INAPPLICABLE): [/takeInt]>#(R|<local>/x|)
|
||||
<Inapplicable(INAPPLICABLE): /takeInt>#(R|<local>/x|)
|
||||
}
|
||||
public final fun test_2(b: R|kotlin/Boolean|, y: R|kotlin/Int|): R|kotlin/Unit| {
|
||||
lval x: R|kotlin/Int?| = when () {
|
||||
@@ -23,5 +23,5 @@ FILE: nullableIntegerLiteralType.kt
|
||||
}
|
||||
}
|
||||
|
||||
<Inapplicable(INAPPLICABLE): [/takeInt]>#(R|<local>/x|)
|
||||
<Inapplicable(INAPPLICABLE): /takeInt>#(R|<local>/x|)
|
||||
}
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ FILE: receiverWithCapturedType.kt
|
||||
R|<local>/resolvedCall|.R|/getParameterForArgument|<R|CallableDescriptor|>()
|
||||
}
|
||||
public final fun test_2_1(resolvedCall: R|ResolvedCall<out CallableDescriptor>|, d: R|CallableDescriptor|): R|kotlin/Unit| {
|
||||
lval x: <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/updateD]> = R|<local>/resolvedCall|.<Inapplicable(INAPPLICABLE): [/updateD]>#(R|<local>/d|)
|
||||
lval x: R|CallableDescriptor| = R|<local>/resolvedCall|.<Inapplicable(INAPPLICABLE): /updateD>#<R|CapturedType(out CallableDescriptor)|>(R|<local>/d|)
|
||||
}
|
||||
public final fun test_2_2(resolvedCall: R|ResolvedCall<in CallableDescriptor>|, d: R|CallableDescriptor|): R|kotlin/Unit| {
|
||||
lval x: R|CallableDescriptor| = R|<local>/resolvedCall|.R|/updateD|<R|CapturedType(in CallableDescriptor)|>(R|<local>/d|)
|
||||
|
||||
@@ -29,7 +29,7 @@ FILE: lambdaArgInScopeFunction.kt
|
||||
}
|
||||
) }
|
||||
R|<local>/lambda|.R|tests/_checkType/checkType|<R|() -> KotlinClass|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function0<KotlinClass>?>|.<anonymous>(): R|kotlin/Unit| {
|
||||
^ <Inapplicable(WRONG_RECEIVER): [tests/_checkType/_]>#()
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Unit) -> KotlinClass?|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -50,7 +50,7 @@ FILE: lambdaArgInScopeFunction.kt
|
||||
}
|
||||
)
|
||||
R|<local>/lambda|.R|tests/_checkType/checkType|<R|() -> KotlinClass|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function0<KotlinClass>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
^ <Inapplicable(WRONG_RECEIVER): [tests/_checkType/_]>#()
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Unit) -> KotlinClass?|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
+4
-4
@@ -29,11 +29,11 @@ FILE: KotlinClass.kt
|
||||
}
|
||||
)
|
||||
R|<local>/invalidType|.R|tests/_checkType/checkType|<R|(JavaClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<JavaClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
^ <Inapplicable(WRONG_RECEIVER): [tests/_checkType/_]>#()
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
R|/Case1.Case1|(R|<local>/javaClass|).R|/Case1.x|.R|tests/_checkType/checkType|<R|(KotlinClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<KotlinClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
^ <Inapplicable(WRONG_RECEIVER): [tests/_checkType/_]>#()
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -122,11 +122,11 @@ FILE: KotlinClass.kt
|
||||
}
|
||||
)
|
||||
R|<local>/invalidType|.R|tests/_checkType/checkType|<R|(KotlinClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<KotlinClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
^ <Inapplicable(WRONG_RECEIVER): [tests/_checkType/_]>#()
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
R|/Case2.Case2|(R|<local>/kotlinClass|).R|/Case2.x|.R|tests/_checkType/checkType|<R|(KotlinClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<KotlinClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
^ <Inapplicable(WRONG_RECEIVER): [tests/_checkType/_]>#()
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -29,9 +29,9 @@ FILE: innerTypes.kt
|
||||
public final val rrq: R|Outer.Inner<kotlin/Int, kotlin/String>| = R|/Boxed.Boxed|<R|kotlin/String|>().R|FakeOverride</Boxed.substitute: R|Outer.Inner<kotlin/Int, kotlin/String>|>|()
|
||||
public get(): R|Outer.Inner<kotlin/Int, kotlin/String>|
|
||||
public final fun check(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/accept]>#(R|/Outer.Outer|<R|kotlin/Int|>().R|/Outer.Inner.Inner|<R|kotlin/Int|>())
|
||||
<Inapplicable(INAPPLICABLE): [/accept]>#(R|/Outer.Outer|<R|kotlin/String|>().R|/Outer.Inner.Inner|<R|kotlin/String|>())
|
||||
<Inapplicable(INAPPLICABLE): /accept>#(R|/Outer.Outer|<R|kotlin/Int|>().R|/Outer.Inner.Inner|<R|kotlin/Int|>())
|
||||
<Inapplicable(INAPPLICABLE): /accept>#(R|/Outer.Outer|<R|kotlin/String|>().R|/Outer.Inner.Inner|<R|kotlin/String|>())
|
||||
R|/accept|(R|/Outer.Outer|<R|kotlin/String|>().R|/Outer.Inner.Inner|<R|kotlin/Int|>())
|
||||
<Inapplicable(INAPPLICABLE): [/accept]>#(R|/Boxed.Boxed|<R|kotlin/Int|>().R|FakeOverride</Boxed.substitute: R|Outer.Inner<kotlin/Int, kotlin/Int>|>|())
|
||||
<Inapplicable(INAPPLICABLE): /accept>#(R|/Boxed.Boxed|<R|kotlin/Int|>().R|FakeOverride</Boxed.substitute: R|Outer.Inner<kotlin/Int, kotlin/Int>|>|())
|
||||
R|/accept|(R|/Boxed.Boxed|<R|kotlin/String|>().R|FakeOverride</Boxed.substitute: R|Outer.Inner<kotlin/Int, kotlin/String>|>|())
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class B : A() {
|
||||
fun test() {
|
||||
foo()
|
||||
bar()
|
||||
<!INAPPLICABLE_CANDIDATE!>buz<!>()
|
||||
<!NONE_APPLICABLE!>buz<!>()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ FILE: simple.kt
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
this@R|/B|.R|/B.foo|()
|
||||
this@R|/B|.R|/B.bar|()
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): [/B.buz, /A.buz]>#()
|
||||
<Ambiguity: buz, [/B.buz, /A.buz]>#()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -24,5 +24,5 @@ FILE: supertypeGenericsComplex.kt
|
||||
}
|
||||
public final fun f(list: R|kotlin/collections/MutableList<X>|, s: R|kotlin/collections/MutableList<kotlin/CharSequence>|): R|kotlin/Unit| {
|
||||
R|/C.C|().R|FakeOverride</C.f: R|kotlin/Unit|>|<R|X|>(R|<local>/list|, R|<local>/s|)
|
||||
R|/C.C|().<Inapplicable(INAPPLICABLE): [/C.f]>#(R|<local>/s|, R|<local>/list|)
|
||||
R|/C.C|().<Inapplicable(INAPPLICABLE): /C.f>#<R|kotlin/CharSequence|>(R|<local>/s|, R|<local>/list|)
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
FILE: main.kt
|
||||
public final fun <V> R|SLRUMap<V>|.getOrPut(value: R|V|): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/SLRUMap.takeV]>#(R|<local>/value|)
|
||||
this@R|/getOrPut|.<Inapplicable(INAPPLICABLE): /SLRUMap.takeV>#(R|<local>/value|)
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -14,7 +14,7 @@ FILE: main.kt
|
||||
^ R|<local>/x|.R|kotlin/Number.toInt|().R|kotlin/Any.toString|()
|
||||
}
|
||||
))
|
||||
<Inapplicable(INAPPLICABLE): [/foo2]>#(R|/MyFunction|<R|ft<kotlin/Int, kotlin/Int?>!|, R|ft<kotlin/String, kotlin/String?>!|>(<L> = MyFunction@fun <anonymous>(x: R|kotlin/Int|): R|kotlin/String| {
|
||||
<Inapplicable(INAPPLICABLE): /foo2>#(R|/MyFunction|<R|kotlin/Number|, R|ft<kotlin/String, kotlin/String?>!|>(<L> = MyFunction@fun <anonymous>(x: R|kotlin/Int|): R|kotlin/String| {
|
||||
^ R|<local>/x|.R|kotlin/Any.toString|()
|
||||
}
|
||||
))
|
||||
|
||||
+3
-3
@@ -5,11 +5,11 @@ FILE: main.kt
|
||||
^MyRunnable Int(1)
|
||||
}
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(R|/MyRunnable|(<L> = MyRunnable@fun <anonymous>(x: R|kotlin/Int|): R|kotlin/Boolean| {
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(R|/MyRunnable|(<L> = MyRunnable@fun <anonymous>(x: R|kotlin/Int|): R|kotlin/Boolean| {
|
||||
^ CMP(>, R|<local>/x|.R|kotlin/Int.compareTo|(Int(1)))
|
||||
}
|
||||
))
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(R|/MyRunnable|(MyRunnable@fun <anonymous>(it: R|kotlin/Int|): R|kotlin/Boolean| {
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(R|/MyRunnable|(MyRunnable@fun <anonymous>(it: R|kotlin/Int|): R|kotlin/Boolean| {
|
||||
^ CMP(>, R|<local>/it|.R|kotlin/Int.compareTo|(Int(1)))
|
||||
}
|
||||
))
|
||||
@@ -17,5 +17,5 @@ FILE: main.kt
|
||||
^ CMP(>, R|<local>/x|.R|kotlin/Int.compareTo|(Int(1)))
|
||||
}
|
||||
|
||||
<Inapplicable(INAPPLICABLE): [/foo]>#(R|/MyRunnable|(R|<local>/x|))
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(R|/MyRunnable|(R|<local>/x|))
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ FILE: main.kt
|
||||
^ R|<local>/x|.R|kotlin/Number.toInt|().R|kotlin/Any.toString|()
|
||||
}
|
||||
)
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): [/JavaUsage.foo2]>#(<L> = foo2@fun <anonymous>(x: R|kotlin/Int|): R|kotlin/String| {
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): /JavaUsage.foo2>#(<L> = foo2@fun <anonymous>(x: R|kotlin/Int|): R|ft<kotlin/CharSequence, kotlin/CharSequence?>!| {
|
||||
^ R|<local>/x|.R|kotlin/Any.toString|()
|
||||
}
|
||||
)
|
||||
|
||||
@@ -38,16 +38,16 @@ FILE: kotlinSam.kt
|
||||
}
|
||||
)
|
||||
R|/foo1|(R|<local>/f|)
|
||||
<Inapplicable(INAPPLICABLE): [/foo2]>#(<L> = foo2@fun <anonymous>(x: R|kotlin/Nothing|): R|kotlin/Boolean| {
|
||||
<Inapplicable(INAPPLICABLE): /foo2>#(<L> = foo2@fun <anonymous>(x: R|kotlin/Nothing|): R|kotlin/Boolean| {
|
||||
^ CMP(>, R|<local>/x|.<Unresolved name: compareTo>#(Int(1)))
|
||||
}
|
||||
)
|
||||
<Inapplicable(INAPPLICABLE): [/foo2]>#(R|<local>/f|)
|
||||
<Inapplicable(INAPPLICABLE): [/foo3]>#(<L> = foo3@fun <anonymous>(x: R|kotlin/Nothing|): R|kotlin/Boolean| {
|
||||
<Inapplicable(INAPPLICABLE): /foo2>#(R|<local>/f|)
|
||||
<Inapplicable(INAPPLICABLE): /foo3>#(<L> = foo3@fun <anonymous>(x: R|kotlin/Nothing|): R|kotlin/Boolean| {
|
||||
^ CMP(>, R|<local>/x|.<Unresolved name: compareTo>#(Int(1)))
|
||||
}
|
||||
)
|
||||
<Inapplicable(INAPPLICABLE): [/foo3]>#(R|<local>/f|)
|
||||
<Inapplicable(INAPPLICABLE): /foo3>#(R|<local>/f|)
|
||||
R|/foo4|(<L> = foo4@fun <anonymous>(x: R|kotlin/Int|): R|kotlin/Boolean| {
|
||||
^ CMP(>, R|<local>/x|.R|kotlin/Int.compareTo|(Int(1)))
|
||||
}
|
||||
|
||||
+3
-3
@@ -2,11 +2,11 @@ FILE: main.kt
|
||||
public final fun foo(m: R|MyRunnable|): R|kotlin/Unit| {
|
||||
}
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): [/JavaUsage.foo]>#(<L> = foo@fun <anonymous>(x: R|kotlin/Nothing|): R|kotlin/Boolean| {
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): /JavaUsage.foo>#(<L> = foo@fun <anonymous>(x: R|kotlin/Nothing|): R|kotlin/Boolean| {
|
||||
^ CMP(>, R|<local>/x|.<Unresolved name: compareTo>#(Int(1)))
|
||||
}
|
||||
)
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): [/JavaUsage.foo]>#(foo@fun <anonymous>(): R|kotlin/Boolean| {
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): /JavaUsage.foo>#(foo@fun <anonymous>(): R|kotlin/Boolean| {
|
||||
^ CMP(>, <Unresolved name: it>#.<Unresolved name: compareTo>#(Int(1)))
|
||||
}
|
||||
)
|
||||
@@ -14,5 +14,5 @@ FILE: main.kt
|
||||
^ CMP(>, R|<local>/x|.R|kotlin/Int.compareTo|(Int(1)))
|
||||
}
|
||||
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): [/JavaUsage.foo]>#(R|<local>/x|)
|
||||
Q|JavaUsage|.<Inapplicable(INAPPLICABLE): /JavaUsage.foo>#(R|<local>/x|)
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@ sealed class WithPrivateConstructor private constructor(val x: Int) {
|
||||
private constructor() : this(42)
|
||||
}
|
||||
|
||||
object First : <!INAPPLICABLE_CANDIDATE!>WithPrivateConstructor<!>() // error
|
||||
object Second : <!INAPPLICABLE_CANDIDATE!>WithPrivateConstructor<!>(0) // error
|
||||
object First : <!NONE_APPLICABLE!>WithPrivateConstructor<!>() // error
|
||||
object Second : <!NONE_APPLICABLE!>WithPrivateConstructor<!>(0) // error
|
||||
|
||||
@@ -202,7 +202,7 @@ digraph bangbang_kt {
|
||||
78 [label="Exit when"];
|
||||
}
|
||||
79 [label="Access variable R|<local>/a|"];
|
||||
80 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
80 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
81 [label="Exit block"];
|
||||
}
|
||||
82 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
@@ -331,14 +331,14 @@ digraph bangbang_kt {
|
||||
color=blue
|
||||
123 [label="Enter block"];
|
||||
124 [label="Access variable R|<local>/a|"];
|
||||
125 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
125 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
126 [label="Exit block"];
|
||||
}
|
||||
127 [label="Exit when branch result"];
|
||||
128 [label="Exit when"];
|
||||
}
|
||||
129 [label="Access variable R|<local>/a|"];
|
||||
130 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
130 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
131 [label="Exit block"];
|
||||
}
|
||||
132 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||
|
||||
@@ -32,7 +32,7 @@ FILE: bangbang.kt
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
public final fun test_4(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
when () {
|
||||
@@ -46,11 +46,11 @@ FILE: bangbang.kt
|
||||
public final fun test_5(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
when () {
|
||||
R|<local>/b| || R|<local>/a|!!.R|/A.foo|() -> {
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
public final fun <X : R|A?|> test_6(x: R|X|): R|kotlin/Unit| {
|
||||
R|<local>/x|!!.R|/A.foo|()
|
||||
|
||||
+8
-8
@@ -53,7 +53,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
19 [label="Enter block"];
|
||||
20 [label="Access variable R|<local>/b|"];
|
||||
21 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
21 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
22 [label="Exit block"];
|
||||
}
|
||||
23 [label="Exit when branch result"];
|
||||
@@ -137,7 +137,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
52 [label="Enter block"];
|
||||
53 [label="Access variable R|<local>/b|"];
|
||||
54 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
54 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
55 [label="Exit block"];
|
||||
}
|
||||
56 [label="Exit when branch result"];
|
||||
@@ -212,7 +212,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
79 [label="Enter block"];
|
||||
80 [label="Access variable R|<local>/b|"];
|
||||
81 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
81 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
82 [label="Exit block"];
|
||||
}
|
||||
83 [label="Exit when branch result"];
|
||||
@@ -278,7 +278,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
100 [label="Enter block"];
|
||||
101 [label="Access variable R|<local>/b|"];
|
||||
102 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
102 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
103 [label="Exit block"];
|
||||
}
|
||||
104 [label="Exit when branch result"];
|
||||
@@ -362,7 +362,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
133 [label="Enter block"];
|
||||
134 [label="Access variable R|<local>/b|"];
|
||||
135 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
135 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
136 [label="Exit block"];
|
||||
}
|
||||
137 [label="Exit when branch result"];
|
||||
@@ -428,7 +428,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
154 [label="Enter block"];
|
||||
155 [label="Access variable R|<local>/b|"];
|
||||
156 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
156 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
157 [label="Exit block"];
|
||||
}
|
||||
158 [label="Exit when branch result"];
|
||||
@@ -503,7 +503,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
181 [label="Enter block"];
|
||||
182 [label="Access variable R|<local>/b|"];
|
||||
183 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
183 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
184 [label="Exit block"];
|
||||
}
|
||||
185 [label="Exit when branch result"];
|
||||
@@ -587,7 +587,7 @@ digraph equalsToBoolean_kt {
|
||||
color=blue
|
||||
214 [label="Enter block"];
|
||||
215 [label="Access variable R|<local>/b|"];
|
||||
216 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
|
||||
216 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
||||
217 [label="Exit block"];
|
||||
}
|
||||
218 [label="Exit when branch result"];
|
||||
|
||||
+8
-8
@@ -12,7 +12,7 @@ FILE: equalsToBoolean.kt
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ FILE: equalsToBoolean.kt
|
||||
public final fun test_2(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
!=(==(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
@@ -31,7 +31,7 @@ FILE: equalsToBoolean.kt
|
||||
public final fun test_3(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
==(==(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
@@ -45,7 +45,7 @@ FILE: equalsToBoolean.kt
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ FILE: equalsToBoolean.kt
|
||||
public final fun test_5(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
==(!=(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
@@ -67,7 +67,7 @@ FILE: equalsToBoolean.kt
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ FILE: equalsToBoolean.kt
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ FILE: equalsToBoolean.kt
|
||||
public final fun test_8(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
!=(!=(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||
|
||||
+6
-6
@@ -267,7 +267,7 @@ digraph jumpFromRhsOfOperator_kt {
|
||||
101 [label="Exit ||"];
|
||||
}
|
||||
102 [label="Access variable R|<local>/a|"];
|
||||
103 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
103 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
104 [label="Exit block"];
|
||||
}
|
||||
105 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||
@@ -309,7 +309,7 @@ digraph jumpFromRhsOfOperator_kt {
|
||||
117 [label="Exit &&"];
|
||||
}
|
||||
118 [label="Access variable R|<local>/a|"];
|
||||
119 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
119 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
120 [label="Exit block"];
|
||||
}
|
||||
121 [label="Exit function teat_6" style="filled" fillcolor=red];
|
||||
@@ -364,14 +364,14 @@ digraph jumpFromRhsOfOperator_kt {
|
||||
color=blue
|
||||
139 [label="Enter block"];
|
||||
140 [label="Access variable R|<local>/a|"];
|
||||
141 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
141 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
142 [label="Exit block"];
|
||||
}
|
||||
143 [label="Exit when branch result"];
|
||||
144 [label="Exit when"];
|
||||
}
|
||||
145 [label="Access variable R|<local>/a|"];
|
||||
146 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
146 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
147 [label="Exit block"];
|
||||
}
|
||||
148 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||
@@ -437,14 +437,14 @@ digraph jumpFromRhsOfOperator_kt {
|
||||
color=blue
|
||||
166 [label="Enter block"];
|
||||
167 [label="Access variable R|<local>/a|"];
|
||||
168 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
168 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
169 [label="Exit block"];
|
||||
}
|
||||
170 [label="Exit when branch result"];
|
||||
171 [label="Exit when"];
|
||||
}
|
||||
172 [label="Access variable R|<local>/a|"];
|
||||
173 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
173 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
174 [label="Exit block"];
|
||||
}
|
||||
175 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||
|
||||
+6
-6
@@ -31,27 +31,27 @@ FILE: jumpFromRhsOfOperator.kt
|
||||
}
|
||||
public final fun test_5(a: R|A?|): R|kotlin/Unit| {
|
||||
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
public final fun teat_6(a: R|A?|): R|kotlin/Unit| {
|
||||
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
public final fun test_7(a: R|A?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|() -> {
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
public final fun test_8(a: R|A?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|() -> {
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
|
||||
+4
-4
@@ -670,7 +670,7 @@ digraph boundSmartcastsInBranches_kt {
|
||||
274 [label="Access variable R|<local>/x|"];
|
||||
275 [label="Access variable R|kotlin/String.length|"];
|
||||
276 [label="Access variable R|<local>/y|"];
|
||||
277 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
277 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
278 [label="Access variable R|<local>/z|"];
|
||||
279 [label="Access variable R|kotlin/String.length|"];
|
||||
280 [label="Exit block"];
|
||||
@@ -695,11 +695,11 @@ digraph boundSmartcastsInBranches_kt {
|
||||
color=blue
|
||||
291 [label="Enter block"];
|
||||
292 [label="Access variable R|<local>/x|"];
|
||||
293 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
293 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
294 [label="Access variable R|<local>/y|"];
|
||||
295 [label="Access variable R|kotlin/String.length|"];
|
||||
296 [label="Access variable R|<local>/z|"];
|
||||
297 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
297 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
298 [label="Exit block"];
|
||||
}
|
||||
299 [label="Exit when branch result"];
|
||||
@@ -724,7 +724,7 @@ digraph boundSmartcastsInBranches_kt {
|
||||
310 [label="Access variable R|<local>/x|"];
|
||||
311 [label="Access variable R|kotlin/String.length|"];
|
||||
312 [label="Access variable R|<local>/y|"];
|
||||
313 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
313 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
314 [label="Access variable R|<local>/z|"];
|
||||
315 [label="Access variable R|kotlin/String.length|"];
|
||||
316 [label="Exit block"];
|
||||
|
||||
+4
-4
@@ -132,23 +132,23 @@ FILE: boundSmartcastsInBranches.kt
|
||||
when () {
|
||||
!=(R|<local>/x|, Null(null)) -> {
|
||||
R|<local>/x|.R|kotlin/String.length|
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
R|<local>/z|.R|kotlin/String.length|
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(R|<local>/y|, Null(null)) -> {
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
R|<local>/y|.R|kotlin/String.length|
|
||||
R|<local>/z|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/z|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
!=(R|<local>/z|, Null(null)) -> {
|
||||
R|<local>/x|.R|kotlin/String.length|
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
R|<local>/z|.R|kotlin/String.length|
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -136,9 +136,9 @@ digraph equalsAndIdentity_kt {
|
||||
color=blue
|
||||
50 [label="Enter block"];
|
||||
51 [label="Access variable R|<local>/x|"];
|
||||
52 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
52 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
53 [label="Access variable R|<local>/y|"];
|
||||
54 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
54 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
55 [label="Exit block"];
|
||||
}
|
||||
56 [label="Exit when branch result"];
|
||||
@@ -161,9 +161,9 @@ digraph equalsAndIdentity_kt {
|
||||
color=blue
|
||||
66 [label="Enter block"];
|
||||
67 [label="Access variable R|<local>/x|"];
|
||||
68 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
68 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
69 [label="Access variable R|<local>/y|"];
|
||||
70 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
70 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
71 [label="Exit block"];
|
||||
}
|
||||
72 [label="Exit when branch result"];
|
||||
|
||||
+4
-4
@@ -22,15 +22,15 @@ FILE: equalsAndIdentity.kt
|
||||
public final fun test_2(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
==(R|<local>/x|, R|<local>/y|) -> {
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
when () {
|
||||
===(R|<local>/x|, R|<local>/y|) -> {
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -264,7 +264,7 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
84 [label="Enter block"];
|
||||
85 [label="Access variable R|<local>/x|"];
|
||||
86 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
86 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
87 [label="Exit block"];
|
||||
}
|
||||
88 [label="Exit when branch result"];
|
||||
@@ -280,7 +280,7 @@ digraph nullability_kt {
|
||||
95 [label="Exit when"];
|
||||
}
|
||||
96 [label="Access variable R|<local>/x|"];
|
||||
97 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
97 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
98 [label="Exit block"];
|
||||
}
|
||||
99 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
@@ -348,14 +348,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
117 [label="Enter block"];
|
||||
118 [label="Access variable R|<local>/x|"];
|
||||
119 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
119 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
120 [label="Exit block"];
|
||||
}
|
||||
121 [label="Exit when branch result"];
|
||||
122 [label="Exit when"];
|
||||
}
|
||||
123 [label="Access variable R|<local>/x|"];
|
||||
124 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
124 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
125 [label="Exit block"];
|
||||
}
|
||||
126 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
@@ -517,11 +517,11 @@ digraph nullability_kt {
|
||||
184 [label="Access variable R|/Q.data|"];
|
||||
185 [label="Access variable R|<local>/q|"];
|
||||
186 [label="Access variable R|/Q.data|"];
|
||||
187 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
187 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
188 [label="Access variable R|<local>/q|"];
|
||||
189 [label="Access variable R|/Q.data|"];
|
||||
190 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
191 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
|
||||
190 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
191 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
192 [label="Exit block"];
|
||||
}
|
||||
193 [label="Exit when branch result"];
|
||||
@@ -591,11 +591,11 @@ digraph nullability_kt {
|
||||
216 [label="Access variable R|/Q.data|"];
|
||||
217 [label="Access variable R|<local>/q|"];
|
||||
218 [label="Access variable R|/Q.data|"];
|
||||
219 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
219 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
220 [label="Access variable R|<local>/q|"];
|
||||
221 [label="Access variable R|/Q.data|"];
|
||||
222 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
223 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
|
||||
222 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
223 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
224 [label="Exit block"];
|
||||
}
|
||||
225 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||
@@ -665,11 +665,11 @@ digraph nullability_kt {
|
||||
247 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||
248 [label="Access variable R|<local>/q|"];
|
||||
249 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||
250 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#()"];
|
||||
250 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()"];
|
||||
251 [label="Access variable R|<local>/q|"];
|
||||
252 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||
253 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#()"];
|
||||
254 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#().<Unresolved name: inc>#()"];
|
||||
253 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()"];
|
||||
254 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()"];
|
||||
255 [label="Exit block"];
|
||||
}
|
||||
256 [label="Exit when branch result"];
|
||||
@@ -794,7 +794,7 @@ digraph nullability_kt {
|
||||
293 [label="Exit when"];
|
||||
}
|
||||
294 [label="Access variable R|<local>/b|"];
|
||||
295 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
295 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_71 {
|
||||
color=blue
|
||||
296 [label="Enter when"];
|
||||
@@ -819,7 +819,7 @@ digraph nullability_kt {
|
||||
309 [label="Exit when"];
|
||||
}
|
||||
310 [label="Access variable R|<local>/b|"];
|
||||
311 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
311 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_74 {
|
||||
color=blue
|
||||
312 [label="Enter when"];
|
||||
@@ -844,7 +844,7 @@ digraph nullability_kt {
|
||||
325 [label="Exit when"];
|
||||
}
|
||||
326 [label="Access variable R|<local>/b|"];
|
||||
327 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
327 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_77 {
|
||||
color=blue
|
||||
328 [label="Enter when"];
|
||||
@@ -869,7 +869,7 @@ digraph nullability_kt {
|
||||
341 [label="Exit when"];
|
||||
}
|
||||
342 [label="Access variable R|<local>/b|"];
|
||||
343 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
343 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
344 [label="Exit block"];
|
||||
}
|
||||
345 [label="Exit function test_9" style="filled" fillcolor=red];
|
||||
@@ -965,14 +965,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
356 [label="Enter block"];
|
||||
357 [label="Access variable R|<local>/b|"];
|
||||
358 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
358 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
359 [label="Exit block"];
|
||||
}
|
||||
360 [label="Exit when branch result"];
|
||||
361 [label="Exit when"];
|
||||
}
|
||||
362 [label="Access variable R|<local>/b|"];
|
||||
363 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
363 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_85 {
|
||||
color=blue
|
||||
364 [label="Enter when"];
|
||||
@@ -990,14 +990,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
372 [label="Enter block"];
|
||||
373 [label="Access variable R|<local>/b|"];
|
||||
374 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
374 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
375 [label="Exit block"];
|
||||
}
|
||||
376 [label="Exit when branch result"];
|
||||
377 [label="Exit when"];
|
||||
}
|
||||
378 [label="Access variable R|<local>/b|"];
|
||||
379 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
379 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_88 {
|
||||
color=blue
|
||||
380 [label="Enter when"];
|
||||
@@ -1015,14 +1015,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
388 [label="Enter block"];
|
||||
389 [label="Access variable R|<local>/b|"];
|
||||
390 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
390 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
391 [label="Exit block"];
|
||||
}
|
||||
392 [label="Exit when branch result"];
|
||||
393 [label="Exit when"];
|
||||
}
|
||||
394 [label="Access variable R|<local>/b|"];
|
||||
395 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
395 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_91 {
|
||||
color=blue
|
||||
396 [label="Enter when"];
|
||||
@@ -1040,14 +1040,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
404 [label="Enter block"];
|
||||
405 [label="Access variable R|<local>/b|"];
|
||||
406 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
406 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
407 [label="Exit block"];
|
||||
}
|
||||
408 [label="Exit when branch result"];
|
||||
409 [label="Exit when"];
|
||||
}
|
||||
410 [label="Access variable R|<local>/b|"];
|
||||
411 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
|
||||
411 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
412 [label="Exit block"];
|
||||
}
|
||||
413 [label="Exit function test_10" style="filled" fillcolor=red];
|
||||
@@ -1164,11 +1164,11 @@ digraph nullability_kt {
|
||||
444 [label="Access variable R|/QImpl.data|"];
|
||||
445 [label="Access variable R|<local>/q2|"];
|
||||
446 [label="Access variable R|/QImpl.data|"];
|
||||
447 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
447 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
448 [label="Access variable R|<local>/q2|"];
|
||||
449 [label="Access variable R|/QImpl.data|"];
|
||||
450 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
451 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
|
||||
450 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
451 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
subgraph cluster_99 {
|
||||
color=blue
|
||||
452 [label="Enter when"];
|
||||
@@ -1305,11 +1305,11 @@ digraph nullability_kt {
|
||||
498 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||
499 [label="Access variable R|<local>/q|"];
|
||||
500 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||
501 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
501 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
502 [label="Access variable R|<local>/q|"];
|
||||
503 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||
504 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
505 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
|
||||
504 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
505 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
506 [label="Exit block"];
|
||||
}
|
||||
507 [label="Exit when branch result"];
|
||||
@@ -1388,11 +1388,11 @@ digraph nullability_kt {
|
||||
532 [label="Access variable R|/QImplMutable.data|"];
|
||||
533 [label="Access variable R|<local>/q|"];
|
||||
534 [label="Access variable R|/QImplMutable.data|"];
|
||||
535 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
535 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
536 [label="Access variable R|<local>/q|"];
|
||||
537 [label="Access variable R|/QImplMutable.data|"];
|
||||
538 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
|
||||
539 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
|
||||
538 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
539 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
540 [label="Exit block"];
|
||||
}
|
||||
541 [label="Exit when branch result"];
|
||||
|
||||
@@ -68,7 +68,7 @@ fun test_5(q: Q?) {
|
||||
if (q?.data?.s?.inc() != null) {
|
||||
q.data // good
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,14 +77,14 @@ fun test_6(q: Q?) {
|
||||
q?.data?.s?.inc() ?: return
|
||||
q.data // good
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
|
||||
}
|
||||
|
||||
fun test_7(q: Q?) {
|
||||
if (q?.fdata()?.fs()?.inc() != null) {
|
||||
q.fdata() // good
|
||||
q.fdata().<!INAPPLICABLE_CANDIDATE!>fs<!>() // bad
|
||||
q.fdata().<!INAPPLICABLE_CANDIDATE!>fs<!>().<!UNRESOLVED_REFERENCE!>inc<!>() // bad
|
||||
q.fdata().<!INAPPLICABLE_CANDIDATE!>fs<!>().inc() // bad
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ fun test_11(q: QImpl?, q2: QImpl) {
|
||||
// Issue: Smartcasting of QImpl.data affects all instances
|
||||
q2.data
|
||||
q2.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
|
||||
q2.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
|
||||
q2.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
|
||||
|
||||
if (q2.data != null) {
|
||||
q2.data.s
|
||||
@@ -163,7 +163,7 @@ fun test_12(q: QImplWithCustomGetter?) {
|
||||
if (q?.data?.s?.inc() != null) {
|
||||
q.data // good
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,6 +172,6 @@ fun test_13(q: QImplMutable?) {
|
||||
if (q?.data?.s?.inc() != null) {
|
||||
q.data // good
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
|
||||
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,23 +67,23 @@ FILE: nullability.kt
|
||||
R|<local>/x|.R|/A.foo|()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
public final fun test_2(x: R|A?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
==(R|<local>/x|, Null(null)) -> {
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/x|.R|/A.foo|()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
public final fun test_3(x: R|A?|): R|kotlin/Unit| {
|
||||
R|<local>/x| ?: ^test_3 Unit
|
||||
@@ -102,8 +102,8 @@ FILE: nullability.kt
|
||||
when () {
|
||||
!=(R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||
R|<local>/q|.R|/Q.data|
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,15 +111,15 @@ FILE: nullability.kt
|
||||
public final fun test_6(q: R|Q?|): R|kotlin/Unit| {
|
||||
R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() } ?: ^test_6 Unit
|
||||
R|<local>/q|.R|/Q.data|
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
||||
}
|
||||
public final fun test_7(q: R|Q?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
!=(R|<local>/q|?.{ $subj$.R|/Q.fdata|() }?.{ $subj$.R|/MyData.fs|() }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||
R|<local>/q|.R|/Q.fdata|()
|
||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#()
|
||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#().<Unresolved name: inc>#()
|
||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()
|
||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,58 +139,58 @@ FILE: nullability.kt
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
when () {
|
||||
===(R|<local>/a|, R|<local>/b|) -> {
|
||||
R|<local>/b|.R|kotlin/Int.inc|()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
when () {
|
||||
==(R|<local>/b|, R|<local>/a|) -> {
|
||||
R|<local>/b|.R|kotlin/Int.inc|()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
when () {
|
||||
===(R|<local>/b|, R|<local>/a|) -> {
|
||||
R|<local>/b|.R|kotlin/Int.inc|()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
public final fun test_10(a: R|kotlin/Int?|, b: R|kotlin/Int?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
==(R|<local>/a|, R|<local>/b|) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
when () {
|
||||
===(R|<local>/a|, R|<local>/b|) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
when () {
|
||||
==(R|<local>/b|, R|<local>/a|) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
when () {
|
||||
===(R|<local>/b|, R|<local>/a|) -> {
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
public final fun test_11(q: R|QImpl?|, q2: R|QImpl|): R|kotlin/Unit| {
|
||||
when () {
|
||||
@@ -199,8 +199,8 @@ FILE: nullability.kt
|
||||
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|
|
||||
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|.R|kotlin/Int.inc|()
|
||||
R|<local>/q2|.R|/QImpl.data|
|
||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
|
||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
|
||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
||||
when () {
|
||||
!=(R|<local>/q2|.R|/QImpl.data|, Null(null)) -> {
|
||||
R|<local>/q2|.R|/QImpl.data|.R|/MyData.s|
|
||||
@@ -216,8 +216,8 @@ FILE: nullability.kt
|
||||
when () {
|
||||
!=(R|<local>/q|?.{ $subj$.R|/QImplWithCustomGetter.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||
R|<local>/q|.R|/QImplWithCustomGetter.data|
|
||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
|
||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
|
||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,8 +226,8 @@ FILE: nullability.kt
|
||||
when () {
|
||||
!=(R|<local>/q|?.{ $subj$.R|/QImplMutable.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||
R|<local>/q|.R|/QImplMutable.data|
|
||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
|
||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
|
||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ FILE: orInWhenBranch.kt
|
||||
public final fun test_1(a: R|kotlin/Any?|): R|kotlin/Unit| {
|
||||
when (R|<local>/a|) {
|
||||
($subj$ is R|kotlin/String|) || ($subj$ is R|kotlin/Any|) -> {
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ FILE: orInWhenBranch.kt
|
||||
public final fun test_2(a: R|kotlin/Any?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
(R|<local>/a| is R|kotlin/String|) || (R|<local>/a| is R|kotlin/Any|) -> {
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ FILE: orInWhenBranch.kt
|
||||
public final fun test_3(a: R|kotlin/Any?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
when (R|<local>/a|) {
|
||||
($subj$ is R|kotlin/String|) || ==($subj$, R|<local>/b|) -> {
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ FILE: orInWhenBranch.kt
|
||||
public final fun test_4(a: R|kotlin/Any?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
when () {
|
||||
(R|<local>/a| is R|kotlin/String|) || R|<local>/b| -> {
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+4
-4
@@ -54,7 +54,7 @@ digraph safeCallAndEqualityToBool_kt {
|
||||
color=blue
|
||||
21 [label="Enter block"];
|
||||
22 [label="Access variable R|<local>/s|"];
|
||||
23 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
23 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
24 [label="Exit block"];
|
||||
}
|
||||
25 [label="Exit when branch result"];
|
||||
@@ -131,7 +131,7 @@ digraph safeCallAndEqualityToBool_kt {
|
||||
color=blue
|
||||
49 [label="Enter block"];
|
||||
50 [label="Access variable R|<local>/s|"];
|
||||
51 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
51 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
52 [label="Exit block"];
|
||||
}
|
||||
53 [label="Exit when branch result"];
|
||||
@@ -217,7 +217,7 @@ digraph safeCallAndEqualityToBool_kt {
|
||||
color=blue
|
||||
83 [label="Enter block"];
|
||||
84 [label="Access variable R|<local>/s|"];
|
||||
85 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
85 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
86 [label="Exit block"];
|
||||
}
|
||||
87 [label="Exit when branch result"];
|
||||
@@ -294,7 +294,7 @@ digraph safeCallAndEqualityToBool_kt {
|
||||
color=blue
|
||||
111 [label="Enter block"];
|
||||
112 [label="Access variable R|<local>/s|"];
|
||||
113 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
113 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
114 [label="Exit block"];
|
||||
}
|
||||
115 [label="Exit when branch result"];
|
||||
|
||||
Vendored
+4
-4
@@ -8,7 +8,7 @@ FILE: safeCallAndEqualityToBool.kt
|
||||
R|<local>/s|.R|kotlin/String.length|
|
||||
}
|
||||
else -> {
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ FILE: safeCallAndEqualityToBool.kt
|
||||
R|<local>/s|.R|kotlin/String.length|
|
||||
}
|
||||
else -> {
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ FILE: safeCallAndEqualityToBool.kt
|
||||
public final fun test_3(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(true)) -> {
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
else -> {
|
||||
R|<local>/s|.R|kotlin/String.length|
|
||||
@@ -38,7 +38,7 @@ FILE: safeCallAndEqualityToBool.kt
|
||||
public final fun test_4(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(false)) -> {
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
else -> {
|
||||
R|<local>/s|.R|kotlin/String.length|
|
||||
|
||||
+3
-3
@@ -53,7 +53,7 @@ digraph safeCalls_kt {
|
||||
19 [label="Function call: $subj$.R|/foo|(...)"];
|
||||
20 [label="Exit safe call"];
|
||||
21 [label="Access variable R|<local>/x|"];
|
||||
22 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
22 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
23 [label="Exit block"];
|
||||
}
|
||||
24 [label="Exit function test" style="filled" fillcolor=red];
|
||||
@@ -207,7 +207,7 @@ digraph safeCalls_kt {
|
||||
78 [label="Function call: $subj$.R|/A.bool|()"];
|
||||
79 [label="Exit safe call"];
|
||||
80 [label="Access variable R|<local>/x|"];
|
||||
81 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()"];
|
||||
81 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()"];
|
||||
82 [label="Exit block"];
|
||||
}
|
||||
83 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
@@ -271,7 +271,7 @@ digraph safeCalls_kt {
|
||||
101 [label="Function call: $subj$.R|/boo|(...)"];
|
||||
102 [label="Exit safe call"];
|
||||
103 [label="Access variable R|<local>/x|"];
|
||||
104 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()"];
|
||||
104 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()"];
|
||||
105 [label="Exit block"];
|
||||
}
|
||||
106 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||
|
||||
+3
-3
@@ -6,7 +6,7 @@ FILE: safeCalls.kt
|
||||
}
|
||||
public final fun test(x: R|kotlin/String?|): R|kotlin/Unit| {
|
||||
R|<local>/x|?.{ $subj$.R|/foo|(==(R|<local>/x|.R|kotlin/String.length|, Int(1))) }
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
public abstract interface A : R|kotlin/Any| {
|
||||
public abstract fun bar(a: R|A|): R|kotlin/String|
|
||||
@@ -28,7 +28,7 @@ FILE: safeCalls.kt
|
||||
}
|
||||
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
||||
R|<local>/x|?.{ $subj$.R|/A.id|() }?.{ $subj$.R|/A.bool|() }
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()
|
||||
}
|
||||
public final fun R|kotlin/Any?|.boo(b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||
}
|
||||
@@ -37,5 +37,5 @@ FILE: safeCalls.kt
|
||||
^test_5 Unit
|
||||
}
|
||||
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()
|
||||
}
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ digraph delayedAssignment_kt {
|
||||
32 [label="Exit when"];
|
||||
}
|
||||
33 [label="Access variable R|<local>/a|"];
|
||||
34 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
|
||||
34 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
35 [label="Exit block"];
|
||||
}
|
||||
36 [label="Exit function test" style="filled" fillcolor=red];
|
||||
|
||||
+1
-1
@@ -20,5 +20,5 @@ FILE: delayedAssignment.kt
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -103,7 +103,7 @@ digraph smartcastAfterReassignment_kt {
|
||||
40 [label="Const: Null(null)"];
|
||||
41 [label="Assignment: R|<local>/x|"];
|
||||
42 [label="Access variable R|<local>/x|"];
|
||||
43 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
|
||||
43 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
44 [label="Exit block"];
|
||||
}
|
||||
45 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
|
||||
Vendored
+1
-1
@@ -19,5 +19,5 @@ FILE: smartcastAfterReassignment.kt
|
||||
R|<local>/x| = String()
|
||||
R|<local>/x|.R|kotlin/String.length|
|
||||
R|<local>/x| = Null(null)
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,12 +2,12 @@ class A {
|
||||
companion object Comp {}
|
||||
|
||||
fun foo() {
|
||||
<!INAPPLICABLE_CANDIDATE!>Comp<!>()
|
||||
<!HIDDEN!>Comp<!>()
|
||||
}
|
||||
}
|
||||
|
||||
object B {
|
||||
private val x = <!INAPPLICABLE_CANDIDATE!>B<!>()
|
||||
private val x = <!HIDDEN!>B<!>()
|
||||
}
|
||||
|
||||
class D {
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ FILE: singletonConstructors.kt
|
||||
}
|
||||
|
||||
public final fun foo(): R|kotlin/Unit| {
|
||||
<Inapplicable(HIDDEN): [/A.Comp.Comp]>#()
|
||||
<HIDDEN: /A.Comp.Comp is invisible>#()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,8 +21,8 @@ FILE: singletonConstructors.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
private final val x: <ERROR TYPE REF: Inapplicable(HIDDEN): [/B.B]> = <Inapplicable(HIDDEN): [/B.B]>#()
|
||||
private get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [/B.B]>
|
||||
private final val x: R|B| = <HIDDEN: /B.B is invisible>#()
|
||||
private get(): R|B|
|
||||
|
||||
}
|
||||
public final class D : R|kotlin/Any| {
|
||||
|
||||
+2
-2
@@ -34,13 +34,13 @@ fun main() {
|
||||
<!AMBIGUITY!>foo3<!>(KotlinClass::baz)
|
||||
|
||||
// Type mismatch
|
||||
<!INAPPLICABLE_CANDIDATE!>foo1<!>(KotlinClass::bar)
|
||||
<!INAPPLICABLE_CANDIDATE!>foo1<!>(<!UNRESOLVED_REFERENCE!>KotlinClass::bar<!>)
|
||||
foo2(KotlinClass::bar)
|
||||
foo3(KotlinClass::bar)
|
||||
|
||||
foo1(KotlinClass2::bar)
|
||||
// Type mismatch
|
||||
<!INAPPLICABLE_CANDIDATE!>foo2<!>(KotlinClass2::bar)
|
||||
<!INAPPLICABLE_CANDIDATE!>foo2<!>(<!UNRESOLVED_REFERENCE!>KotlinClass2::bar<!>)
|
||||
foo3(KotlinClass2::bar)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -53,10 +53,10 @@ FILE: main.kt
|
||||
R|/foo1|(Q|KotlinClass|::R|/KotlinClass.Companion.baz|)
|
||||
R|/foo2|(Q|KotlinClass|::R|/KotlinClass.baz|)
|
||||
<Ambiguity: foo3, [/foo3, /foo3]>#(Q|KotlinClass|::R|/KotlinClass.baz|)
|
||||
<Inapplicable(INAPPLICABLE): [/foo1]>#(Q|KotlinClass|::R|/JavaClass.bar|)
|
||||
<Inapplicable(INAPPLICABLE): /foo1>#(Q|KotlinClass|::<Unresolved reference: bar>#)
|
||||
R|/foo2|(Q|KotlinClass|::R|/JavaClass.bar|)
|
||||
R|/foo3|(Q|KotlinClass|::R|/JavaClass.bar|)
|
||||
R|/foo1|(Q|KotlinClass2|::R|/KotlinClass2.Companion.bar|)
|
||||
<Inapplicable(INAPPLICABLE): [/foo2]>#(Q|KotlinClass2|::R|/KotlinClass2.bar|)
|
||||
<Inapplicable(INAPPLICABLE): /foo2>#(Q|KotlinClass2|::<Unresolved reference: bar>#)
|
||||
R|/foo3|(Q|KotlinClass2|::R|/KotlinClass2.Companion.bar|)
|
||||
}
|
||||
|
||||
+2
-2
@@ -7,6 +7,6 @@ fun <T> bar(f: (T) -> Unit, e: T) {}
|
||||
fun <T> baz(e: T, f: (T) -> Unit) {}
|
||||
|
||||
fun test(a: A, b: B) {
|
||||
<!INAPPLICABLE_CANDIDATE!>baz<!>(a, ::fooB)
|
||||
<!INAPPLICABLE_CANDIDATE!>bar<!>(::fooB, a)
|
||||
<!INAPPLICABLE_CANDIDATE!>baz<!>(a, <!UNRESOLVED_REFERENCE!>::fooB<!>)
|
||||
<!INAPPLICABLE_CANDIDATE!>bar<!>(<!UNRESOLVED_REFERENCE!>::fooB<!>, a)
|
||||
}
|
||||
|
||||
+2
-2
@@ -10,6 +10,6 @@ FILE: resolveCallableReferencesAfterAllSimpleArguments.kt
|
||||
public final fun <T> baz(e: R|T|, f: R|(T) -> kotlin/Unit|): R|kotlin/Unit| {
|
||||
}
|
||||
public final fun test(a: R|A|, b: R|B|): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): [/baz]>#(R|<local>/a|, ::R|/fooB|)
|
||||
<Inapplicable(INAPPLICABLE): [/bar]>#(::R|/fooB|, R|<local>/a|)
|
||||
<Inapplicable(INAPPLICABLE): /baz>#<R|A|>(R|<local>/a|, ::<Unresolved reference: fooB>#)
|
||||
<Inapplicable(INAPPLICABLE): /bar>#<R|A|>(::<Unresolved reference: fooB>#, R|<local>/a|)
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,5 +3,5 @@ fun <T, R> use(x: (T) -> R): (T) -> R = x
|
||||
fun foo() = use(::bar)
|
||||
fun bar(x: String) = 1
|
||||
|
||||
fun loop1() = <!INAPPLICABLE_CANDIDATE!>use<!>(::loop2)
|
||||
fun loop1() = <!INAPPLICABLE_CANDIDATE!>use<!>(<!UNRESOLVED_REFERENCE!>::loop2<!>)
|
||||
fun loop2() = loop1()
|
||||
|
||||
Vendored
+2
-2
@@ -8,8 +8,8 @@ FILE: implicitTypes.kt
|
||||
public final fun bar(x: R|kotlin/String|): R|kotlin/Int| {
|
||||
^bar Int(1)
|
||||
}
|
||||
public final fun loop1(): <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/use]> {
|
||||
^loop1 <Inapplicable(INAPPLICABLE): [/use]>#(::R|/loop2|)
|
||||
public final fun loop1(): R|(kotlin/Any?) -> kotlin/Nothing| {
|
||||
^loop1 <Inapplicable(INAPPLICABLE): /use>#<R|kotlin/Any?|, R|kotlin/Nothing|>(::<Unresolved reference: loop2>#)
|
||||
}
|
||||
public final fun loop2(): <ERROR TYPE REF: cycle> {
|
||||
^loop2 R|/loop1|()
|
||||
|
||||
Vendored
+1
-1
@@ -10,7 +10,7 @@ FILE: notIsNullOrEmpty.kt
|
||||
public final fun test_2(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
R|<local>/s|.R|kotlin/text/isNullOrEmpty|() -> {
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
else -> {
|
||||
R|<local>/s|.R|kotlin/String.length|
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ FILE: eqNotEq.kt
|
||||
R|<local>/x|.R|kotlin/String.length|
|
||||
}
|
||||
else -> {
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ FILE: receivers.kt
|
||||
this@R|special/anonymous|.R|/myRequireNotNull|()
|
||||
}
|
||||
)
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /foo>#()
|
||||
}
|
||||
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
||||
R|kotlin/with|<R|A?|, R|kotlin/Unit|>(R|<local>/x|, <L> = with@fun R|A?|.<anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
|
||||
|
||||
+8
-8
@@ -22,24 +22,24 @@ import j.JavaProtected
|
||||
import j.JavaPackageLocal
|
||||
|
||||
class A {
|
||||
val p1 = JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaPPackage<!>
|
||||
val p2 = JavaProtected.<!INAPPLICABLE_CANDIDATE!>javaPProtectedStatic<!>
|
||||
val p3 = JavaProtected().<!INAPPLICABLE_CANDIDATE!>javaPProtectedPackage<!>
|
||||
val p1 = JavaPackageLocal.<!HIDDEN!>javaPPackage<!>
|
||||
val p2 = JavaProtected.<!HIDDEN!>javaPProtectedStatic<!>
|
||||
val p3 = JavaProtected().<!HIDDEN!>javaPProtectedPackage<!>
|
||||
|
||||
fun test() {
|
||||
JavaProtected.<!INAPPLICABLE_CANDIDATE!>javaMProtectedStatic<!>()
|
||||
JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaMPackage<!>()
|
||||
JavaProtected.<!HIDDEN!>javaMProtectedStatic<!>()
|
||||
JavaPackageLocal.<!HIDDEN!>javaMPackage<!>()
|
||||
}
|
||||
}
|
||||
|
||||
class B : JavaProtected() {
|
||||
val p1 = JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaPPackage<!>
|
||||
val p1 = JavaPackageLocal.<!HIDDEN!>javaPPackage<!>
|
||||
val p2 = JavaProtected.javaPProtectedStatic
|
||||
val p3 = javaPProtectedPackage
|
||||
|
||||
fun test() {
|
||||
JavaProtected.javaMProtectedStatic()
|
||||
JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaMPackage<!>()
|
||||
JavaPackageLocal.<!HIDDEN!>javaMPackage<!>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,4 +59,4 @@ class C {
|
||||
JavaProtected.javaMProtectedStatic()
|
||||
JavaPackageLocal.javaMPackage()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-11
@@ -4,18 +4,18 @@ FILE: k.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val p1: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]> = Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>
|
||||
public final val p1: R|kotlin/Int| = Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaPPackage is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val p2: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedStatic]> = Q|j/JavaProtected|.<Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedStatic]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedStatic]>
|
||||
public final val p2: R|kotlin/Int| = Q|j/JavaProtected|.<HIDDEN: j/JavaProtected.javaPProtectedStatic is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val p3: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedPackage]> = R|j/JavaProtected.JavaProtected|().<Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedPackage]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedPackage]>
|
||||
public final val p3: R|kotlin/Int| = R|j/JavaProtected.JavaProtected|().<HIDDEN: j/JavaProtected.javaPProtectedPackage is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
Q|j/JavaProtected|.<Inapplicable(HIDDEN): [j/JavaProtected.javaMProtectedStatic]>#()
|
||||
Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaMPackage]>#()
|
||||
Q|j/JavaProtected|.<HIDDEN: j/JavaProtected.javaMProtectedStatic is invisible>#()
|
||||
Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaMPackage is invisible>#()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,8 +24,8 @@ FILE: k.kt
|
||||
super<R|j/JavaProtected|>()
|
||||
}
|
||||
|
||||
public final val p1: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]> = Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>
|
||||
public final val p1: R|kotlin/Int| = Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaPPackage is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val p2: R|kotlin/Int| = Q|j/JavaProtected|.R|j/JavaProtected.javaPProtectedStatic|
|
||||
public get(): R|kotlin/Int|
|
||||
@@ -35,7 +35,7 @@ FILE: k.kt
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
Q|j/JavaProtected|.R|j/JavaProtected.javaMProtectedStatic|()
|
||||
Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaMPackage]>#()
|
||||
Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaMPackage is invisible>#()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -7,9 +7,9 @@ FILE: K1.kt
|
||||
}
|
||||
public final fun main(k: R|KSub|, vString: R|SuperClass.NestedInSuperClass<kotlin/String>|, vInt: R|SuperClass.NestedInSuperClass<kotlin/Int>|): R|kotlin/Unit| {
|
||||
R|<local>/k|.R|/J1.getImpl|().R|FakeOverride</J1.NestedIImpl.nestedI: R|kotlin/Unit|>|(R|<local>/vString|)
|
||||
R|<local>/k|.R|/J1.getImpl|().<Inapplicable(INAPPLICABLE): [/J1.NestedIImpl.nestedI]>#(R|<local>/vInt|)
|
||||
R|<local>/k|.R|/J1.getImpl|().<Inapplicable(INAPPLICABLE): /J1.NestedIImpl.nestedI>#(R|<local>/vInt|)
|
||||
R|<local>/k|.R|/J1.getNestedSubClass|().R|FakeOverride</J1.NestedSubClass.nested: R|kotlin/Unit|>|(String())
|
||||
R|<local>/k|.R|/J1.getNestedSubClass|().<Inapplicable(INAPPLICABLE): [/J1.NestedSubClass.nested]>#(Int(1))
|
||||
R|<local>/k|.R|/J1.getNestedSubClass|().<Inapplicable(INAPPLICABLE): /J1.NestedSubClass.nested>#(Int(1))
|
||||
}
|
||||
FILE: K2.kt
|
||||
public open class KFirst : R|SuperClass<kotlin/String>|, R|SuperI<kotlin/Int>| {
|
||||
|
||||
+1
-1
@@ -8,5 +8,5 @@ FILE: K1.kt
|
||||
FILE: K2.kt
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
Q|JavaClass|.R|/JavaClass.baz|(R|/KotlinClass.KotlinClass|())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): [/JavaClass.baz]>#(String())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): /JavaClass.baz>#(String())
|
||||
}
|
||||
|
||||
+2
-2
@@ -9,6 +9,6 @@ FILE: K2.kt
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
Q|JavaClass|.R|/JavaClass.baz|(R|/KotlinClass.KotlinClass|<R|ft<kotlin/Int, kotlin/Int?>!|>())
|
||||
Q|JavaClass|.R|/JavaClass.baz|(R|/KotlinClass.KotlinClass|<R|kotlin/Int|>())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): [/JavaClass.baz]>#(R|/KotlinClass.KotlinClass|<R|kotlin/String|>())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): [/JavaClass.baz]>#(String())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): /JavaClass.baz>#(R|/KotlinClass.KotlinClass|<R|kotlin/String|>())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): /JavaClass.baz>#(String())
|
||||
}
|
||||
|
||||
+8
-2
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorLoop
|
||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.CandidateApplicability
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.*
|
||||
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
|
||||
|
||||
@@ -53,8 +54,13 @@ class ErrorNodeDiagnosticCollectorComponent(collector: AbstractDiagnosticCollect
|
||||
is ConeUnresolvedReferenceError -> FirErrors.UNRESOLVED_REFERENCE.on(source, diagnostic.name?.asString() ?: "<No name>")
|
||||
is ConeUnresolvedSymbolError -> FirErrors.UNRESOLVED_REFERENCE.on(source, diagnostic.classId.asString())
|
||||
is ConeUnresolvedNameError -> FirErrors.UNRESOLVED_REFERENCE.on(source, diagnostic.name.asString())
|
||||
is ConeInapplicableCandidateError -> FirErrors.INAPPLICABLE_CANDIDATE.on(source, diagnostic.candidates.map { it.symbol })
|
||||
is ConeAmbiguityError -> FirErrors.AMBIGUITY.on(source, diagnostic.candidates)
|
||||
is ConeHiddenCandidateError -> FirErrors.HIDDEN.on(source, diagnostic.candidateSymbol)
|
||||
is ConeInapplicableCandidateError -> FirErrors.INAPPLICABLE_CANDIDATE.on(source, diagnostic.candidateSymbol)
|
||||
is ConeAmbiguityError -> if (diagnostic.applicability < CandidateApplicability.SYNTHETIC_RESOLVED) {
|
||||
FirErrors.NONE_APPLICABLE.on(source, diagnostic.candidates)
|
||||
} else {
|
||||
FirErrors.AMBIGUITY.on(source, diagnostic.candidates)
|
||||
}
|
||||
is ConeOperatorAmbiguityError -> FirErrors.ASSIGN_OPERATOR_AMBIGUITY.on(source, diagnostic.candidates)
|
||||
is ConeVariableExpectedError -> FirErrors.VARIABLE_EXPECTED.on(source)
|
||||
is ConeTypeMismatchError -> FirErrors.TYPE_MISMATCH.on(source, diagnostic.expectedType, diagnostic.actualType)
|
||||
|
||||
+6
-1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.DiagnosticFactoryToRendererMap
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.NULLABLE_STRING
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.PROPERTY_NAME
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.SYMBOL
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.SYMBOLS
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.TO_STRING
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.AMBIGUITY
|
||||
@@ -22,11 +23,13 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.EXPOSED_PARAMETER
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.EXPOSED_PROPERTY_TYPE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.EXPOSED_RECEIVER_TYPE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.EXPOSED_TYPEALIAS_EXPANDED_TYPE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.HIDDEN
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ILLEGAL_CONST_EXPRESSION
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ILLEGAL_UNDERSCORE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INAPPLICABLE_CANDIDATE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INCOMPATIBLE_MODIFIERS
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INFERENCE_ERROR
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.NONE_APPLICABLE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OTHER_ERROR
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.RECURSION_IN_IMPLICIT_TYPES
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.RECURSION_IN_SUPERTYPES
|
||||
@@ -48,7 +51,9 @@ class FirDefaultErrorMessages : DefaultErrorMessages.Extension {
|
||||
companion object {
|
||||
val MAP = FirDiagnosticFactoryToRendererMap("FIR").also { map ->
|
||||
map.put(UNRESOLVED_REFERENCE, "Unresolved reference: {0}", NULLABLE_STRING)
|
||||
map.put(INAPPLICABLE_CANDIDATE, "Inapplicable candidate(s): {0}", SYMBOLS)
|
||||
map.put(HIDDEN, "Symbol {0} is invisible", SYMBOL)
|
||||
map.put(NONE_APPLICABLE, "None of the following functions are applicable: {0}", SYMBOLS)
|
||||
map.put(INAPPLICABLE_CANDIDATE, "Inapplicable candidate(s): {0}", SYMBOL)
|
||||
map.put(AMBIGUITY, "Ambiguity between candidates: {0}", SYMBOLS)
|
||||
map.put(ASSIGN_OPERATOR_AMBIGUITY, "Ambiguity between assign operator candidates: {0}", SYMBOLS)
|
||||
map.put(SYNTAX_ERROR, "Syntax error")
|
||||
|
||||
+10
-6
@@ -14,13 +14,17 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
object FirDiagnosticRenderers {
|
||||
val NULLABLE_STRING = Renderer<String?> { it ?: "null" }
|
||||
|
||||
val SYMBOL = Renderer { symbol: AbstractFirBasedSymbol<*> ->
|
||||
when (symbol) {
|
||||
is FirClassLikeSymbol<*> -> symbol.classId.asString()
|
||||
is FirCallableSymbol<*> -> symbol.callableId.toString()
|
||||
else -> "???"
|
||||
}
|
||||
}
|
||||
|
||||
val SYMBOLS = Renderer { symbols: Collection<AbstractFirBasedSymbol<*>> ->
|
||||
symbols.joinToString(prefix = "[", postfix = "]", separator = ",", limit = 3, truncated = "...") { symbol ->
|
||||
when (symbol) {
|
||||
is FirClassLikeSymbol<*> -> symbol.classId.asString()
|
||||
is FirCallableSymbol<*> -> symbol.callableId.toString()
|
||||
else -> "???"
|
||||
}
|
||||
SYMBOL.render(symbol)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,4 +35,4 @@ object FirDiagnosticRenderers {
|
||||
val PROPERTY_NAME = Renderer { symbol: FirPropertySymbol ->
|
||||
symbol.fir.name.asString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -19,7 +19,9 @@ import org.jetbrains.kotlin.psi.*
|
||||
|
||||
object FirErrors {
|
||||
val UNRESOLVED_REFERENCE by error1<FirSourceElement, PsiElement, String>()
|
||||
val INAPPLICABLE_CANDIDATE by error1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>()
|
||||
val HIDDEN by error1<FirSourceElement, PsiElement, AbstractFirBasedSymbol<*>>()
|
||||
val NONE_APPLICABLE by error1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>()
|
||||
val INAPPLICABLE_CANDIDATE by error1<FirSourceElement, PsiElement, AbstractFirBasedSymbol<*>>()
|
||||
val AMBIGUITY by error1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>()
|
||||
val ASSIGN_OPERATOR_AMBIGUITY by error1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>()
|
||||
val SYNTAX_ERROR by error0<FirSourceElement, PsiElement>()
|
||||
|
||||
@@ -1229,29 +1229,27 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
||||
private fun FlowContent.generate(diagnostic: ConeDiagnostic) {
|
||||
when (diagnostic) {
|
||||
is ConeInapplicableCandidateError -> {
|
||||
for (candidate in diagnostic.candidates) {
|
||||
describeVerbose(candidate.symbol)
|
||||
br
|
||||
candidate.diagnostics.forEach { callDiagnostic ->
|
||||
when (callDiagnostic) {
|
||||
is NewConstraintError -> {
|
||||
ident()
|
||||
describeVerbose(diagnostic.candidateSymbol)
|
||||
br
|
||||
diagnostic.diagnostics.forEach { callDiagnostic ->
|
||||
when (callDiagnostic) {
|
||||
is NewConstraintError -> {
|
||||
ident()
|
||||
|
||||
generate(callDiagnostic.lowerType as ConeKotlinType)
|
||||
generate(callDiagnostic.lowerType as ConeKotlinType)
|
||||
|
||||
ws
|
||||
span(classes = "subtype-error") { +"<:" }
|
||||
ws
|
||||
generate(callDiagnostic.upperType as ConeKotlinType)
|
||||
}
|
||||
else -> {
|
||||
ident()
|
||||
callDiagnostic::class.qualifiedName?.let { +it }
|
||||
Unit
|
||||
}
|
||||
ws
|
||||
span(classes = "subtype-error") { +"<:" }
|
||||
ws
|
||||
generate(callDiagnostic.upperType as ConeKotlinType)
|
||||
}
|
||||
else -> {
|
||||
ident()
|
||||
callDiagnostic::class.qualifiedName?.let { +it }
|
||||
Unit
|
||||
}
|
||||
br
|
||||
}
|
||||
br
|
||||
}
|
||||
}
|
||||
is ConeAmbiguityError -> {
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.resolve.calls.*
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeAmbiguityError
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeHiddenCandidateError
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeInapplicableCandidateError
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedNameError
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.ResolvedCallableReferenceAtom
|
||||
@@ -397,20 +398,24 @@ class FirCallResolver(
|
||||
source,
|
||||
name
|
||||
)
|
||||
applicability < CandidateApplicability.SYNTHETIC_RESOLVED -> {
|
||||
val diagnostic = ConeInapplicableCandidateError(
|
||||
applicability,
|
||||
candidates.map {
|
||||
ConeInapplicableCandidateError.CandidateInfo(
|
||||
it.symbol,
|
||||
if (it.systemInitialized) it.system.diagnostics else emptyList(),
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
buildErrorReference(callInfo, diagnostic, source, name)
|
||||
candidates.size > 1 -> buildErrorReference(
|
||||
callInfo,
|
||||
ConeAmbiguityError(name, applicability, candidates.map { it.symbol }),
|
||||
source,
|
||||
name
|
||||
)
|
||||
|
||||
applicability < CandidateApplicability.SYNTHETIC_RESOLVED -> {
|
||||
val candidate = candidates.single()
|
||||
val diagnostic = when (applicability) {
|
||||
CandidateApplicability.HIDDEN -> ConeHiddenCandidateError(candidate.symbol)
|
||||
else -> ConeInapplicableCandidateError(applicability, candidate)
|
||||
}
|
||||
buildErrorReference(source, candidate, diagnostic)
|
||||
}
|
||||
candidates.size == 1 -> {
|
||||
|
||||
else -> {
|
||||
val candidate = candidates.single()
|
||||
val coneSymbol = candidate.symbol
|
||||
if (coneSymbol is FirBackingFieldSymbol) {
|
||||
@@ -434,12 +439,6 @@ class FirCallResolver(
|
||||
}
|
||||
FirNamedReferenceWithCandidate(source, name, candidate)
|
||||
}
|
||||
else -> buildErrorReference(
|
||||
callInfo,
|
||||
ConeAmbiguityError(name, candidates.map { it.symbol }),
|
||||
source,
|
||||
name
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -453,4 +452,15 @@ class FirCallResolver(
|
||||
resolutionStageRunner.processCandidate(candidate, stopOnFirstError = false)
|
||||
return FirErrorReferenceWithCandidate(source, name, candidate, diagnostic)
|
||||
}
|
||||
|
||||
private fun buildErrorReference(
|
||||
source: FirSourceElement?,
|
||||
candidate: Candidate,
|
||||
diagnostic: ConeDiagnostic
|
||||
): FirErrorReferenceWithCandidate {
|
||||
if (!candidate.fullyAnalyzed) {
|
||||
resolutionStageRunner.processCandidate(candidate, stopOnFirstError = false)
|
||||
}
|
||||
return FirErrorReferenceWithCandidate(source, candidate.callInfo.name, candidate, diagnostic)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,6 +115,8 @@ class Candidate(
|
||||
|
||||
val diagnostics: MutableList<ResolutionDiagnostic> = mutableListOf()
|
||||
|
||||
var passedStages: Int = 0
|
||||
|
||||
fun dispatchReceiverExpression(): FirExpression = when (explicitReceiverKind) {
|
||||
ExplicitReceiverKind.DISPATCH_RECEIVER, ExplicitReceiverKind.BOTH_RECEIVERS ->
|
||||
callInfo.explicitReceiver?.takeIf { it !is FirExpressionStub } ?: FirNoReceiverExpression
|
||||
@@ -143,3 +145,6 @@ class Candidate(
|
||||
return symbol.hashCode()
|
||||
}
|
||||
}
|
||||
|
||||
val Candidate.fullyAnalyzed: Boolean
|
||||
get() = passedStages == callInfo.callKind.resolutionSequence.size
|
||||
|
||||
+4
-2
@@ -17,7 +17,9 @@ class ResolutionStageRunner(val components: InferenceComponents) {
|
||||
val sink = CheckerSinkImpl(components, stopOnFirstError = stopOnFirstError)
|
||||
var finished = false
|
||||
sink.continuation = suspend {
|
||||
for (stage in candidate.callInfo.callKind.resolutionSequence) {
|
||||
candidate.callInfo.callKind.resolutionSequence.forEachIndexed { index, stage ->
|
||||
if (index < candidate.passedStages) return@forEachIndexed
|
||||
candidate.passedStages++
|
||||
stage.check(candidate, sink, candidate.callInfo)
|
||||
}
|
||||
}.createCoroutineUnintercepted(completion = object : Continuation<Unit> {
|
||||
@@ -38,4 +40,4 @@ class ResolutionStageRunner(val components: InferenceComponents) {
|
||||
}
|
||||
return sink.current
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -36,8 +36,8 @@ internal object MapTypeArguments : ResolutionStage() {
|
||||
if (typeArguments.size == owner.typeParameters.size || callInfo.callKind == CallKind.DelegatingConstructorCall) {
|
||||
candidate.typeArgumentMapping = TypeArgumentMapping.Mapped(typeArguments)
|
||||
} else {
|
||||
sink.yieldApplicability(CandidateApplicability.INAPPLICABLE)
|
||||
candidate.typeArgumentMapping = TypeArgumentMapping.Mapped(emptyList())
|
||||
sink.yieldApplicability(CandidateApplicability.INAPPLICABLE)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+19
-7
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.resolve.diagnostics
|
||||
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.CandidateApplicability
|
||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
@@ -27,16 +28,27 @@ class ConeUnresolvedNameError(val name: Name) : ConeDiagnostic() {
|
||||
override val reason: String get() = "Unresolved name: $name"
|
||||
}
|
||||
|
||||
class ConeInapplicableCandidateError(
|
||||
val applicability: CandidateApplicability,
|
||||
val candidates: Collection<CandidateInfo>
|
||||
class ConeHiddenCandidateError(
|
||||
val candidateSymbol: AbstractFirBasedSymbol<*>
|
||||
) : ConeDiagnostic() {
|
||||
data class CandidateInfo(val symbol: AbstractFirBasedSymbol<*>, val diagnostics: List<KotlinCallDiagnostic>)
|
||||
|
||||
override val reason: String get() = "Inapplicable($applicability): ${candidates.map { describeSymbol(it.symbol) }}"
|
||||
override val reason: String get() = "HIDDEN: ${describeSymbol(candidateSymbol)} is invisible"
|
||||
}
|
||||
|
||||
class ConeAmbiguityError(val name: Name, val candidates: Collection<AbstractFirBasedSymbol<*>>) : ConeDiagnostic() {
|
||||
class ConeInapplicableCandidateError(
|
||||
val applicability: CandidateApplicability,
|
||||
val candidateSymbol: AbstractFirBasedSymbol<*>,
|
||||
val diagnostics: List<KotlinCallDiagnostic>
|
||||
) : ConeDiagnostic() {
|
||||
constructor(applicability: CandidateApplicability, candidate: Candidate) : this(
|
||||
applicability,
|
||||
candidate.symbol,
|
||||
candidate.system.diagnostics
|
||||
)
|
||||
|
||||
override val reason: String get() = "Inapplicable($applicability): ${describeSymbol(candidateSymbol)}"
|
||||
}
|
||||
|
||||
class ConeAmbiguityError(val name: Name, val applicability: CandidateApplicability, val candidates: Collection<AbstractFirBasedSymbol<*>>) : ConeDiagnostic() {
|
||||
override val reason: String get() = "Ambiguity: $name, ${candidates.map { describeSymbol(it) }}"
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -180,7 +180,9 @@ class FirCallCompleter(
|
||||
FirBuilderInferenceSession(components, stubsForPostponedVariables as Map<ConeTypeVariable, ConeStubType>)
|
||||
}
|
||||
|
||||
val localContext = towerDataContextForAnonymousFunctions.getValue(lambdaArgument.symbol)
|
||||
val localContext = towerDataContextForAnonymousFunctions.get(lambdaArgument.symbol) ?: error(
|
||||
""
|
||||
)
|
||||
transformer.context.withTowerDataContext(localContext) {
|
||||
if (builderInferenceSession != null) {
|
||||
components.inferenceComponents.withInferenceSession(builderInferenceSession) {
|
||||
|
||||
+1
-1
@@ -917,7 +917,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform
|
||||
buildErrorNamedReference {
|
||||
// TODO: add better diagnostic
|
||||
source = augmentedArraySetCall.source
|
||||
diagnostic = ConeAmbiguityError(operatorName, emptyList())
|
||||
diagnostic = ConeAmbiguityError(operatorName, CandidateApplicability.RESOLVED, emptyList())
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -6,9 +6,9 @@ class A() {
|
||||
fun f(): Unit {
|
||||
var x: Int? = 1
|
||||
x = null
|
||||
x <!INAPPLICABLE_CANDIDATE!>+<!> 1
|
||||
x <!INAPPLICABLE_CANDIDATE!>plus<!> 1
|
||||
x <!INAPPLICABLE_CANDIDATE!><<!> 1
|
||||
x <!NONE_APPLICABLE!>+<!> 1
|
||||
x <!NONE_APPLICABLE!>plus<!> 1
|
||||
x <!NONE_APPLICABLE!><<!> 1
|
||||
<!UNRESOLVED_REFERENCE!>x += 1<!>
|
||||
|
||||
x == 1
|
||||
@@ -22,7 +22,7 @@ fun f(): Unit {
|
||||
x === 1
|
||||
x !== 1
|
||||
|
||||
x<!INAPPLICABLE_CANDIDATE!>..<!>2
|
||||
x<!NONE_APPLICABLE!>..<!>2
|
||||
x <!INAPPLICABLE_CANDIDATE!>in<!> 1..2
|
||||
|
||||
val y : Boolean? = true
|
||||
|
||||
@@ -5,6 +5,6 @@ fun test() {
|
||||
<!INAPPLICABLE_CANDIDATE!>Int<!>()
|
||||
<!INAPPLICABLE_CANDIDATE!>Short<!>()
|
||||
<!INAPPLICABLE_CANDIDATE!>Byte<!>()
|
||||
<!INAPPLICABLE_CANDIDATE!>Char<!>()
|
||||
<!HIDDEN!>Char<!>()
|
||||
<!INAPPLICABLE_CANDIDATE!>Boolean<!>()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -40,8 +40,8 @@ class Example {
|
||||
var d by CustomDelegate3()
|
||||
|
||||
fun test() {
|
||||
requireString(a)
|
||||
requireString(aval)
|
||||
<!INAPPLICABLE_CANDIDATE!>requireString<!>(a)
|
||||
<!INAPPLICABLE_CANDIDATE!>requireString<!>(aval)
|
||||
requireString(b)
|
||||
requireInt(c)
|
||||
requireInt(d)
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ operator fun String.unaryPlus(): Int = 0
|
||||
fun test() {
|
||||
requireInt(+ "")
|
||||
requireInt(+ Example())
|
||||
requireString(<!INAPPLICABLE_CANDIDATE!>+<!> ExampleDeprecated())
|
||||
<!INAPPLICABLE_CANDIDATE!>requireString<!>(<!INAPPLICABLE_CANDIDATE!>+<!> ExampleDeprecated())
|
||||
}
|
||||
|
||||
fun requireInt(n: Int) {}
|
||||
|
||||
+4
-4
@@ -38,7 +38,7 @@ fun test() {
|
||||
|
||||
if (out != null && ins != null || out != null) {
|
||||
ins?.read();
|
||||
ins.<!INAPPLICABLE_CANDIDATE!>read<!>();
|
||||
ins.<!NONE_APPLICABLE!>read<!>();
|
||||
out.println();
|
||||
}
|
||||
|
||||
@@ -114,12 +114,12 @@ fun test() {
|
||||
}
|
||||
else {
|
||||
out?.println();
|
||||
out.<!INAPPLICABLE_CANDIDATE!>println<!>();
|
||||
out.<!NONE_APPLICABLE!>println<!>();
|
||||
}
|
||||
|
||||
if (out == null || out.println() == Unit) {
|
||||
out?.println();
|
||||
out.<!INAPPLICABLE_CANDIDATE!>println<!>();
|
||||
out.<!NONE_APPLICABLE!>println<!>();
|
||||
}
|
||||
else {
|
||||
out.println();
|
||||
@@ -149,7 +149,7 @@ fun test() {
|
||||
|
||||
while (out2 == null) {
|
||||
out2?.println();
|
||||
out2.<!INAPPLICABLE_CANDIDATE!>println<!>();
|
||||
out2.<!NONE_APPLICABLE!>println<!>();
|
||||
}
|
||||
out2.println()
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
object A1<!CONSTRUCTOR_IN_OBJECT!>()<!> {
|
||||
<!CONSTRUCTOR_IN_OBJECT!>constructor(x: Int = "", y: Int)<!> : <!INAPPLICABLE_CANDIDATE!>this<!>() {
|
||||
<!CONSTRUCTOR_IN_OBJECT!>constructor(x: Int = "", y: Int)<!> : <!NONE_APPLICABLE!>this<!>() {
|
||||
x + y
|
||||
}
|
||||
}
|
||||
|
||||
object A2 public <!CONSTRUCTOR_IN_OBJECT!>constructor(private val prop: Int)<!> {
|
||||
<!CONSTRUCTOR_IN_OBJECT!>constructor(x: Int = "", y: Int)<!> : <!INAPPLICABLE_CANDIDATE!>this<!>(x * y) {
|
||||
<!CONSTRUCTOR_IN_OBJECT!>constructor(x: Int = "", y: Int)<!> : <!NONE_APPLICABLE!>this<!>(x * y) {
|
||||
x + y
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,6 @@ val x = object <!CONSTRUCTOR_IN_OBJECT!>(val prop: Int)<!> {
|
||||
|
||||
class A3 {
|
||||
companion object B<!CONSTRUCTOR_IN_OBJECT!>(val prop: Int)<!> {
|
||||
public <!CONSTRUCTOR_IN_OBJECT!>constructor()<!> : <!INAPPLICABLE_CANDIDATE!>this<!>(2)
|
||||
public <!CONSTRUCTOR_IN_OBJECT!>constructor()<!> : <!NONE_APPLICABLE!>this<!>(2)
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user