KT-15677 KT-15775
Update parser & descriptor renderer to handle parenthesized types and function types properly. Resolve annotations in parenthesized types. AnnotationsImpl.isEmpty() returned false for targeted annotations only (e.g., 'fun @receiver:Ann C?.foo()'). Properly keep track of targeted annotations.
This commit is contained in:
+2
-2
@@ -12,7 +12,7 @@ fun inParamNested(fn1: (fn2: (<!UNSUPPORTED!>@Ann<!> n: Int)->Unit)->Unit) {}
|
||||
|
||||
fun inReturn(): (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit = {}
|
||||
|
||||
class A : (@<!DEBUG_INFO_MISSING_UNRESOLVED!>Ann<!> Int)->Unit {
|
||||
class A : (@Ann Int)->Unit {
|
||||
override fun invoke(p1: Int) {
|
||||
var lambda: (<!UNSUPPORTED!>@Ann<!> x: Int)->Unit = {}
|
||||
}
|
||||
@@ -24,6 +24,6 @@ class A : (@<!DEBUG_INFO_MISSING_UNRESOLVED!>Ann<!> Int)->Unit {
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class TypeAnn
|
||||
|
||||
val onType: (@TypeAnn A).(<!UNSUPPORTED!>@Ann<!> a: @TypeAnn A, @<!DEBUG_INFO_MISSING_UNRESOLVED!>TypeAnn<!> A)->@TypeAnn A? = <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>{<!> null }
|
||||
val onType: (@TypeAnn A).(<!UNSUPPORTED!>@Ann<!> a: @TypeAnn A, @TypeAnn A)->@TypeAnn A? = <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>{<!> null }
|
||||
|
||||
fun (@TypeAnn A).extFun(@Ann a: @TypeAnn A): @TypeAnn A? = null
|
||||
+2
-2
@@ -1,14 +1,14 @@
|
||||
package
|
||||
|
||||
public val inVal: (x: kotlin.Int) -> kotlin.Unit
|
||||
public val onType: (@TypeAnn A).(a: @TypeAnn A, A) -> @TypeAnn A?
|
||||
public val onType: (@TypeAnn A).(a: @TypeAnn A, @TypeAnn A) -> @TypeAnn A?
|
||||
public fun f(/*0*/ @Ann x: kotlin.Int): kotlin.Unit
|
||||
public fun inParam(/*0*/ fn: (x: kotlin.Int) -> kotlin.Unit): kotlin.Unit
|
||||
public fun inParamNested(/*0*/ fn1: (fn2: (n: kotlin.Int) -> kotlin.Unit) -> kotlin.Unit): kotlin.Unit
|
||||
public fun inReturn(): (x: kotlin.Int) -> kotlin.Unit
|
||||
public fun @TypeAnn A.extFun(/*0*/ @Ann a: @TypeAnn A): @TypeAnn A?
|
||||
|
||||
public final class A : (kotlin.Int) -> kotlin.Unit {
|
||||
public final class A : (@Ann kotlin.Int) -> kotlin.Unit {
|
||||
public constructor A()
|
||||
public final val prop: (x: kotlin.Int) -> kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ annotation class special
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class base
|
||||
|
||||
fun transform(i: Int, tr: (@<!DEBUG_INFO_MISSING_UNRESOLVED!>special<!> Int) -> Int): Int = @special tr(@special i)
|
||||
fun transform(i: Int, tr: (<!WRONG_ANNOTATION_TARGET!>@special<!> Int) -> Int): Int = @special tr(@special i)
|
||||
|
||||
fun foo(i: Int): Int {
|
||||
val j = @special i + 1
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
public fun foo(/*0*/ i: kotlin.Int): kotlin.Int
|
||||
public fun transform(/*0*/ i: kotlin.Int, /*1*/ tr: (kotlin.Int) -> kotlin.Int): kotlin.Int
|
||||
public fun transform(/*0*/ i: kotlin.Int, /*1*/ tr: (@special kotlin.Int) -> kotlin.Int): kotlin.Int
|
||||
|
||||
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class base : kotlin.Annotation {
|
||||
public constructor base()
|
||||
|
||||
Reference in New Issue
Block a user