[FIR] K2: Fix disappeared diagnostic UNDERSCORE_USAGE_WITHOUT_BACKTICKS on types

^KT-59985 Fixed

Merge-request: KT-MR-12282
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
Vladimir Sukharev
2023-09-22 11:18:19 +00:00
committed by Space Team
parent 80f86a3527
commit 56eedfebee
16 changed files with 103 additions and 140 deletions
@@ -12,23 +12,34 @@ class Bar2<K : <!UNRESOLVED_REFERENCE!>_<!>>
class Bar3<K> where K : <!UNRESOLVED_REFERENCE!>_<!>
class Bar4<<!UNDERSCORE_IS_RESERVED!>_<!>>
typealias A1<<!UNDERSCORE_IS_RESERVED!>_<!>> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>_<!>
typealias A1<<!UNDERSCORE_IS_RESERVED!>_<!>> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS, UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>
typealias A11<<!UNDERSCORE_IS_RESERVED!>_<!>> = Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>
typealias A12<<!UNDERSCORE_IS_RESERVED!>_<!>> = Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>>
typealias A2<T> = Foo<<!UNRESOLVED_REFERENCE!>_<!>>
typealias A3<T> = (<!UNRESOLVED_REFERENCE!>_<!>) -> T
typealias A4<T> = (T) -> () -> <!UNRESOLVED_REFERENCE!>_<!>
typealias A5<T> = (T) -> (((<!UNRESOLVED_REFERENCE!>_<!>))) -> T
fun foo1(x: <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>) {}
fun foo2(x: Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>>) {}
fun foo1(x: <!UNRESOLVED_REFERENCE!>_<!>) {}
fun foo2(x: Foo<<!UNRESOLVED_REFERENCE!>_<!>>) {}
fun foo21(x: Foo<Foo<<!UNRESOLVED_REFERENCE!>_<!>>>) {}
fun foo3(): <!UNRESOLVED_REFERENCE!>_<!> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun foo5(): Foo<<!UNRESOLVED_REFERENCE!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K, <!UNDERSCORE_IS_RESERVED!>_<!>> foo6(): Foo<_> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : _, <!UNDERSCORE_IS_RESERVED!>_<!>> foo7(): Foo<_> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun foo4(): Foo<<!UNRESOLVED_REFERENCE!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun foo5(): Foo<Foo<<!UNRESOLVED_REFERENCE!>_<!>>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K, <!UNDERSCORE_IS_RESERVED!>_<!>> foo6(): Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>, <!UNDERSCORE_IS_RESERVED!>_<!>> foo7(): <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>, <!UNDERSCORE_IS_RESERVED!>_<!>> foo8(): Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>>, <!UNDERSCORE_IS_RESERVED!>_<!>> foo9(): Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <!UNRESOLVED_REFERENCE!>_<!>.foo10() {}
fun Foo<<!UNRESOLVED_REFERENCE!>_<!>>.foo11() {}
fun Foo<Foo<<!UNRESOLVED_REFERENCE!>_<!>>>.foo12() {}
class AA1 : <!UNRESOLVED_REFERENCE!>_<!>
class AA2 : <!FINAL_SUPERTYPE, SUPERTYPE_NOT_INITIALIZED!>Foo<<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>_<!>><!>
fun <`_`> bar(): Foo<_> = TODO()
fun <`_`> bar(): Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>> = TODO()
fun <`_`> bar1(): Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>> = TODO()
fun test() {
val x1 = foo<Int, (<!UNRESOLVED_REFERENCE!>_<!>) -> Unit> { { it } }
@@ -42,8 +53,8 @@ fun test() {
val z32: Pair<<!UNRESOLVED_REFERENCE!>_<!>, Float> = 1 to 1f
val z34: Pair<((<!UNRESOLVED_REFERENCE!>_<!>)), Float> = 1 to 1f
val x8: (Float) -> Int = { x: <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!> -> 10 }
val x9: (Foo<Float>) -> Int = { x: Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>> -> 10 }
val x8: (Float) -> Int = { x: <!UNRESOLVED_REFERENCE!>_<!> -> 10 }
val x9: (Foo<Float>) -> Int = { x: Foo<<!UNRESOLVED_REFERENCE!>_<!>> -> 10 }
val x10 = object : <!UNRESOLVED_REFERENCE!>_<!> {}
val x11 = object : <!FINAL_SUPERTYPE!>Foo<<!UNRESOLVED_REFERENCE!>_<!>><!>() {}
@@ -56,7 +67,7 @@ fun test() {
val x12: Foo<@<!UNRESOLVED_REFERENCE!>_<!> Int>? = null
val x13: Foo<@<!UNRESOLVED_REFERENCE!>_<!>() Int>? = null
val x14: Foo<@Anno(<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>) Int>? = null
val x14: Foo<@Anno(<!UNRESOLVED_REFERENCE!>_<!>) Int>? = null
val x15: <!UNRESOLVED_REFERENCE!>_<!><<!UNRESOLVED_REFERENCE!>_<!>>? = null
}
@@ -13,6 +13,8 @@ class Bar3<K> where K : <!UNRESOLVED_REFERENCE!>_<!>
class Bar4<<!UNDERSCORE_IS_RESERVED!>_<!>>
typealias A1<<!UNDERSCORE_IS_RESERVED!>_<!>> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS, UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>
typealias A11<<!UNDERSCORE_IS_RESERVED!>_<!>> = Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>
typealias A12<<!UNDERSCORE_IS_RESERVED!>_<!>> = Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>>
typealias A2<T> = Foo<<!UNRESOLVED_REFERENCE!>_<!>>
typealias A3<T> = (<!UNRESOLVED_REFERENCE!>_<!>) -> T
typealias A4<T> = (T) -> () -> <!UNRESOLVED_REFERENCE!>_<!>
@@ -20,15 +22,24 @@ typealias A5<T> = (T) -> (((<!UNRESOLVED_REFERENCE!>_<!>))) -> T
fun foo1(x: <!UNRESOLVED_REFERENCE!>_<!>) {}
fun foo2(x: Foo<<!UNRESOLVED_REFERENCE!>_<!>>) {}
fun foo21(x: Foo<Foo<<!UNRESOLVED_REFERENCE!>_<!>>>) {}
fun foo3(): <!UNRESOLVED_REFERENCE!>_<!> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun foo5(): Foo<<!UNRESOLVED_REFERENCE!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun foo4(): Foo<<!UNRESOLVED_REFERENCE!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun foo5(): Foo<Foo<<!UNRESOLVED_REFERENCE!>_<!>>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K, <!UNDERSCORE_IS_RESERVED!>_<!>> foo6(): Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>, <!UNDERSCORE_IS_RESERVED!>_<!>> foo7(): Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>, <!UNDERSCORE_IS_RESERVED!>_<!>> foo7(): <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>, <!UNDERSCORE_IS_RESERVED!>_<!>> foo8(): Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <K : Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>>, <!UNDERSCORE_IS_RESERVED!>_<!>> foo9(): Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
fun <!UNRESOLVED_REFERENCE!>_<!>.foo10() {}
fun Foo<<!UNRESOLVED_REFERENCE!>_<!>>.foo11() {}
fun Foo<Foo<<!UNRESOLVED_REFERENCE!>_<!>>>.foo12() {}
class AA1 : <!UNRESOLVED_REFERENCE!>_<!>
class AA2 : <!FINAL_SUPERTYPE, SUPERTYPE_NOT_INITIALIZED!>Foo<<!UNRESOLVED_REFERENCE!>_<!>><!>
fun <`_`> bar(): Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>> = TODO()
fun <`_`> bar1(): Foo<Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>>> = TODO()
fun test() {
val x1 = foo<Int, (<!UNRESOLVED_REFERENCE!>_<!>) -> Unit> { { <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>it<!> } }
@@ -1,14 +1,22 @@
package
public fun </*0*/ _> bar(): Foo<_>
public fun </*0*/ _> bar1(): Foo<Foo<_>>
public fun </*0*/ K, /*1*/ T> foo(/*0*/ x: (K) -> T): kotlin.Pair<K, T>
public fun foo1(/*0*/ x: [Error type: Unresolved type for _]): kotlin.Unit
public fun foo2(/*0*/ x: Foo<[Error type: Unresolved type for _]>): kotlin.Unit
public fun foo21(/*0*/ x: Foo<Foo<[Error type: Unresolved type for _]>>): kotlin.Unit
public fun foo3(): [Error type: Unresolved type for _]
public fun foo5(): Foo<[Error type: Unresolved type for _]>
public fun foo4(): Foo<[Error type: Unresolved type for _]>
public fun foo5(): Foo<Foo<[Error type: Unresolved type for _]>>
public fun </*0*/ K, /*1*/ _> foo6(): Foo<_>
public fun </*0*/ K : _, /*1*/ _> foo7(): Foo<_>
public fun </*0*/ K : _, /*1*/ _> foo7(): _
public fun </*0*/ K : Foo<_>, /*1*/ _> foo8(): Foo<_>
public fun </*0*/ K : Foo<Foo<_>>, /*1*/ _> foo9(): Foo<Foo<_>>
public fun test(): kotlin.Unit
public fun [Error type: Unresolved type for _].foo10(): kotlin.Unit
public fun Foo<[Error type: Unresolved type for _]>.foo11(): kotlin.Unit
public fun Foo<Foo<[Error type: Unresolved type for _]>>.foo12(): kotlin.Unit
public final class AA1 {
public constructor AA1()
@@ -74,6 +82,8 @@ public final class Foo</*0*/ K> {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public typealias A1</*0*/ _> = _
public typealias A11</*0*/ _> = Foo<_>
public typealias A12</*0*/ _> = Foo<Foo<_>>
public typealias A2</*0*/ T> = Foo<[Error type: Unresolved type for _]>
public typealias A3</*0*/ T> = ([Error type: Unresolved type for _]) -> T
public typealias A4</*0*/ T> = (T) -> () -> [Error type: Unresolved type for _]