Reapply "Only create descriptors for candidates with lambda args"
#KT-36247 fixed A lot of testdata changed because significanly less (error) descriptors are created for unresolved types, so diagnostics became different.
This commit is contained in:
@@ -114,22 +114,20 @@ L6:
|
||||
jf(L8|<v0>) NEXT:[mark({ s.remove(it) }), mark({ s.add(it) })]
|
||||
6 mark({ s.add(it) })
|
||||
mark(s.add(it))
|
||||
r(s) -> <v1>
|
||||
r(it) -> <v2>
|
||||
magic[VALUE_CONSUMER](it|<v2>) -> <v3>
|
||||
r(it) -> <v1>
|
||||
r(s) -> <v2>
|
||||
mark(add(it))
|
||||
call(add(it), <ERROR FUNCTION>|<v1>) -> <v4>
|
||||
magic[UNRESOLVED_CALL](add(it)|<v1>, !<v3>, <v2>) -> <v4>
|
||||
5 jmp(L9) NEXT:[merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9>]
|
||||
L8 [else branch]:
|
||||
6 mark({ s.remove(it) }) PREV:[jf(L8|<v0>)]
|
||||
mark(s.remove(it))
|
||||
r(s) -> <v5>
|
||||
r(it) -> <v6>
|
||||
magic[VALUE_CONSUMER](it|<v6>) -> <v7>
|
||||
r(it) -> <v5>
|
||||
r(s) -> <v6>
|
||||
mark(remove(it))
|
||||
call(remove(it), <ERROR FUNCTION>|<v5>) -> <v8>
|
||||
magic[UNRESOLVED_CALL](remove(it)|<v5>, !<v7>, <v6>) -> <v8>
|
||||
L9 ['if' expression result]:
|
||||
5 merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9> PREV:[jmp(L9), call(remove(it), <ERROR FUNCTION>|<v5>) -> <v8>]
|
||||
5 merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9> PREV:[jmp(L9), magic[UNRESOLVED_CALL](remove(it)|<v5>, !<v7>, <v6>) -> <v8>]
|
||||
r(true) -> <v10>
|
||||
L10 [start finally]:
|
||||
6 mark({ name?.hashCode() })
|
||||
|
||||
@@ -48,17 +48,17 @@ try { name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } re
|
||||
return true
|
||||
}
|
||||
---------------------
|
||||
<v3>: * NEW: magic[VALUE_CONSUMER](it|<v2>) -> <v3>
|
||||
<v7>: * NEW: magic[VALUE_CONSUMER](it|<v6>) -> <v7>
|
||||
flag <v0>: Boolean NEW: r(flag) -> <v0>
|
||||
s <v1>: * NEW: r(s) -> <v1>
|
||||
it <v2>: * NEW: r(it) -> <v2>
|
||||
add(it) <v4>: * NEW: call(add(it), <ERROR FUNCTION>|<v1>) -> <v4>
|
||||
s <v2>: * NEW: r(s) -> <v2>
|
||||
add !<v3>: *
|
||||
it <v1>: * NEW: r(it) -> <v1>
|
||||
add(it) <v4>: * NEW: magic[UNRESOLVED_CALL](add(it)|<v1>, !<v3>, <v2>) -> <v4>
|
||||
s.add(it) <v4>: * COPY
|
||||
{ s.add(it) } <v4>: * COPY
|
||||
s <v5>: * NEW: r(s) -> <v5>
|
||||
it <v6>: * NEW: r(it) -> <v6>
|
||||
remove(it) <v8>: * NEW: call(remove(it), <ERROR FUNCTION>|<v5>) -> <v8>
|
||||
s <v6>: * NEW: r(s) -> <v6>
|
||||
remove !<v7>: *
|
||||
it <v5>: * NEW: r(it) -> <v5>
|
||||
remove(it) <v8>: * NEW: magic[UNRESOLVED_CALL](remove(it)|<v5>, !<v7>, <v6>) -> <v8>
|
||||
s.remove(it) <v8>: * COPY
|
||||
{ s.remove(it) } <v8>: * COPY
|
||||
if (flag) { s.add(it) } else { s.remove(it) } <v9>: * NEW: merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9>
|
||||
|
||||
@@ -114,22 +114,20 @@ L5:
|
||||
jf(L7|<v0>) NEXT:[mark({ s.remove(it) }), mark({ s.add(it) })]
|
||||
6 mark({ s.add(it) })
|
||||
mark(s.add(it))
|
||||
r(s) -> <v1>
|
||||
r(it) -> <v2>
|
||||
magic[VALUE_CONSUMER](it|<v2>) -> <v3>
|
||||
r(it) -> <v1>
|
||||
r(s) -> <v2>
|
||||
mark(add(it))
|
||||
call(add(it), <ERROR FUNCTION>|<v1>) -> <v4>
|
||||
magic[UNRESOLVED_CALL](add(it)|<v1>, !<v3>, <v2>) -> <v4>
|
||||
5 jmp(L8) NEXT:[merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9>]
|
||||
L7 [else branch]:
|
||||
6 mark({ s.remove(it) }) PREV:[jf(L7|<v0>)]
|
||||
mark(s.remove(it))
|
||||
r(s) -> <v5>
|
||||
r(it) -> <v6>
|
||||
magic[VALUE_CONSUMER](it|<v6>) -> <v7>
|
||||
r(it) -> <v5>
|
||||
r(s) -> <v6>
|
||||
mark(remove(it))
|
||||
call(remove(it), <ERROR FUNCTION>|<v5>) -> <v8>
|
||||
magic[UNRESOLVED_CALL](remove(it)|<v5>, !<v7>, <v6>) -> <v8>
|
||||
L8 ['if' expression result]:
|
||||
5 merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9> PREV:[jmp(L8), call(remove(it), <ERROR FUNCTION>|<v5>) -> <v8>]
|
||||
5 merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9> PREV:[jmp(L8), magic[UNRESOLVED_CALL](remove(it)|<v5>, !<v7>, <v6>) -> <v8>]
|
||||
r(true) -> <v10>
|
||||
L9 [start finally]:
|
||||
6 mark({ name?.hashCode() })
|
||||
|
||||
@@ -48,17 +48,17 @@ try { name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } re
|
||||
return true
|
||||
}
|
||||
---------------------
|
||||
<v3>: * NEW: magic[VALUE_CONSUMER](it|<v2>) -> <v3>
|
||||
<v7>: * NEW: magic[VALUE_CONSUMER](it|<v6>) -> <v7>
|
||||
flag <v0>: Boolean NEW: r(flag) -> <v0>
|
||||
s <v1>: * NEW: r(s) -> <v1>
|
||||
it <v2>: * NEW: r(it) -> <v2>
|
||||
add(it) <v4>: * NEW: call(add(it), <ERROR FUNCTION>|<v1>) -> <v4>
|
||||
s <v2>: * NEW: r(s) -> <v2>
|
||||
add !<v3>: *
|
||||
it <v1>: * NEW: r(it) -> <v1>
|
||||
add(it) <v4>: * NEW: magic[UNRESOLVED_CALL](add(it)|<v1>, !<v3>, <v2>) -> <v4>
|
||||
s.add(it) <v4>: * COPY
|
||||
{ s.add(it) } <v4>: * COPY
|
||||
s <v5>: * NEW: r(s) -> <v5>
|
||||
it <v6>: * NEW: r(it) -> <v6>
|
||||
remove(it) <v8>: * NEW: call(remove(it), <ERROR FUNCTION>|<v5>) -> <v8>
|
||||
s <v6>: * NEW: r(s) -> <v6>
|
||||
remove !<v7>: *
|
||||
it <v5>: * NEW: r(it) -> <v5>
|
||||
remove(it) <v8>: * NEW: magic[UNRESOLVED_CALL](remove(it)|<v5>, !<v7>, <v6>) -> <v8>
|
||||
s.remove(it) <v8>: * COPY
|
||||
{ s.remove(it) } <v8>: * COPY
|
||||
if (flag) { s.add(it) } else { s.remove(it) } <v9>: * NEW: merge(if (flag) { s.add(it) } else { s.remove(it) }|<v4>, <v8>) -> <v9>
|
||||
|
||||
Reference in New Issue
Block a user