[K2] Disappeared UNSUPPORTED

Prohibit annotations for parameters in function type

^KT-59881
This commit is contained in:
Anastasia.Nekrasova
2023-11-29 13:15:44 +02:00
committed by Space Team
parent f0f06ccf2e
commit 23bed574c1
4 changed files with 49 additions and 14 deletions
@@ -1,30 +1,31 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
annotation class Ann
annotation class Ann2
fun f(@Ann x: Int) {}
val inVal: (@Ann x: Int)->Unit = {}
val inVal: (<!UNSUPPORTED!>@Ann<!> <!UNSUPPORTED!>@Ann2<!> x: Int)->Unit = {}
fun inParam(fn: (@Ann x: Int)->Unit) {}
fun inParam(fn: (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit) {}
fun inParamNested(fn1: (fn2: (@Ann n: Int)->Unit)->Unit) {}
fun inParamNested(fn1: (fn2: (<!UNSUPPORTED!>@Ann<!> n: Int)->Unit)->Unit) {}
fun inReturn(): (@Ann x: Int)->Unit = {}
fun inReturn(): (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit = {}
class A : (<!WRONG_ANNOTATION_TARGET!>@Ann<!> Int)->Unit {
override fun invoke(p1: Int) {
var lambda: (@Ann x: Int)->Unit = {}
var lambda: (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit = {}
}
val prop: (@Ann x: Int)->Unit
get(): (@Ann x: Int)->Unit = {}
val prop: (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit
get(): (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit = {}
}
@Target(AnnotationTarget.TYPE)
annotation class TypeAnn
val onType: (@TypeAnn A).(@Ann a: @TypeAnn A, @TypeAnn A)->@TypeAnn A? = <!INITIALIZER_TYPE_MISMATCH!>{ null }<!>
val onType: (@TypeAnn A).(<!UNSUPPORTED!>@Ann<!> a: @TypeAnn A, @TypeAnn A)->@TypeAnn A? = <!INITIALIZER_TYPE_MISMATCH!>{ null }<!>
fun (@TypeAnn A).extFun(@Ann a: @TypeAnn A): @TypeAnn A? = null
@@ -1,10 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
annotation class Ann
annotation class Ann2
fun f(@Ann x: Int) {}
val inVal: (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit = {}
val inVal: (<!UNSUPPORTED!>@Ann<!> <!UNSUPPORTED!>@Ann2<!> x: Int)->Unit = {}
fun inParam(fn: (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit) {}
@@ -27,6 +27,13 @@ public final annotation class Ann : kotlin.Annotation {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class TypeAnn : kotlin.Annotation {
public constructor TypeAnn()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean