[Invariant Fix] Adjust DataFlowValue::Identifier for refinement

After refinement is introduced it becomes possible to have a different
descriptors instances for effectively the same descriptors

Also, it accidentally fixes KT-25432 because is caused by a different
version of descriptors created for NewCapturedType

^KT-25432 Fixed
This commit is contained in:
Denis Zharkov
2019-04-04 15:43:42 +03:00
committed by Dmitry Savvinov
parent 21cc93860b
commit daa27016ca
4 changed files with 145 additions and 143 deletions
@@ -75,8 +75,8 @@ fun <T> ClassWithSixTypeParameters<out T, *, T, in T?, *, T>.case_5() {
*/
fun <T> case_6(y: Inv<out T>) {
if (y.prop_3 is MutableList<*>) {
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>y.prop_3<!>
<!DEBUG_INFO_UNRESOLVED_WITH_TARGET, UNRESOLVED_REFERENCE_WRONG_RECEIVER!><!DEBUG_INFO_EXPRESSION_TYPE("T")!>y.prop_3<!><!NO_GET_METHOD!>[0]<!><!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!! & kotlin.collections.MutableList<*>")!>y.prop_3<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<*>"), DEBUG_INFO_SMARTCAST!>y.prop_3<!>[0]
}
}
@@ -87,10 +87,10 @@ fun <T> case_6(y: Inv<out T>) {
*/
fun <T> Inv<out T>.case_7() {
if (this.prop_3 is MutableList<*>) {
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>this.prop_3<!>
<!DEBUG_INFO_UNRESOLVED_WITH_TARGET, UNRESOLVED_REFERENCE_WRONG_RECEIVER!><!DEBUG_INFO_EXPRESSION_TYPE("T")!>this.prop_3<!><!NO_GET_METHOD!>[0]<!><!>
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>prop_3<!>
<!DEBUG_INFO_UNRESOLVED_WITH_TARGET, UNRESOLVED_REFERENCE_WRONG_RECEIVER!><!DEBUG_INFO_EXPRESSION_TYPE("T")!>prop_3<!><!NO_GET_METHOD!>[0]<!><!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!! & kotlin.collections.MutableList<*>")!>this.prop_3<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableList<*>"), DEBUG_INFO_SMARTCAST!>this.prop_3<!>[0]
<!DEBUG_INFO_EXPRESSION_TYPE("T & T!! & kotlin.collections.MutableList<*>")!>prop_3<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.collections.MutableList<*>"), DEBUG_INFO_SMARTCAST!>prop_3<!>[0]
}
}