FIR: support (partially) type annotations in JVM deserialized

This commit is contained in:
Mikhail Glukhikh
2019-04-22 18:44:14 +03:00
parent 48cd9e3251
commit e3e7eea3fe
15 changed files with 96 additions and 39 deletions
@@ -1,17 +1,17 @@
public final class A : R|kotlin/Any| {
public final fun arrays(s: R|kotlin/Array<kotlin/Int>|, t: R|kotlin/Array<kotlin/IntArray>|, u: R|kotlin/Array<kotlin/Array<kotlin/Int>>|, v: R|kotlin/Array<kotlin/Array<kotlin/Array<kotlin/String>>>|): R|kotlin/Unit|
public final fun arrays(s: @R|test/Ann|(klass = <getClass>(<getClass>(R|kotlin/Int|))) R|kotlin/Array<kotlin/Int>|, t: @R|test/Ann|(klass = <getClass>(<getClass>(R|kotlin/IntArray|))) R|kotlin/Array<kotlin/IntArray>|, u: @R|test/Ann|(klass = <getClass>(<getClass>(R|kotlin/Int|))) R|kotlin/Array<kotlin/Array<kotlin/Int>>|, v: @R|test/Ann|(klass = <getClass>(<getClass>(R|kotlin/String|))) R|kotlin/Array<kotlin/Array<kotlin/Array<kotlin/String>>>|): R|kotlin/Unit|
public final fun generic(s: R|kotlin/String|): R|kotlin/Unit|
public final fun generic(s: @R|test/Ann|(klass = <getClass>(<getClass>(R|test/Generic|))) R|kotlin/String|): R|kotlin/Unit|
public final fun innerGeneric(s: R|kotlin/String|): R|kotlin/Unit|
public final fun innerGeneric(s: @R|test/Ann|(klass = <getClass>(<getClass>(R|test/InnerGeneric.Inner|))) R|kotlin/String|): R|kotlin/Unit|
public final fun simple(s: R|kotlin/String|): R|kotlin/Unit|
public final fun simple(s: @R|test/Ann|(klass = <getClass>(<getClass>(R|test/Simple|))) R|kotlin/String|): R|kotlin/Unit|
public constructor(): R|test/A|
}
public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|())) public final annotation class Ann : R|kotlin/Annotation| {
public final val klass: R|kotlin/reflect/KClass<*>|
public get(): R|kotlin/reflect/KClass<*>|
@@ -1,6 +1,6 @@
public final fun R|kotlin/String|.foo(): R|kotlin/Unit|
public final fun @R|test/A|() R|kotlin/String|.foo(): R|kotlin/Unit|
public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|())) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,10 +1,10 @@
public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|())) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
public final class SimpleTypeAnnotation : R|kotlin/Any| {
public final fun foo(x: R|kotlin/ranges/IntRange|): R|kotlin/Int|
public final fun foo(x: @R|test/A|() R|kotlin/ranges/IntRange|): @R|test/A|() R|kotlin/Int|
public constructor(): R|test/SimpleTypeAnnotation|
@@ -10,7 +10,7 @@
}
public final class TypeAnnotationWithArguments : R|kotlin/Any| {
public final fun foo(param: R|kotlin/ranges/IntRange|): R|kotlin/Unit|
public final fun foo(param: @R|test/Ann|(x = String(param), y = Double(3.14)) R|kotlin/ranges/IntRange|): @R|test/Ann|(x = String(fun), y = Double(2.72)) R|kotlin/Unit|
public constructor(): R|test/TypeAnnotationWithArguments|
@@ -1,4 +1,4 @@
public final fun builder(c: R|class error: createSuspendFunctionType not supported|): R|kotlin/Unit|
public final fun builder(c: @R|kotlin/ExtensionFunctionType|() R|class error: createSuspendFunctionType not supported|): R|kotlin/Unit|
public final class Controller : R|kotlin/Any| {
public final suspend fun suspendFun(): R|kotlin/Unit|
@@ -1,5 +1,5 @@
public open class MethodWithFunctionTypes : R|kotlin/Any| {
public open fun foo(f: R|kotlin/Function1<kotlin/String, kotlin/String>|): R|kotlin/Function1<kotlin/String, kotlin/String>|?
public open fun foo(f: R|kotlin/Function1<kotlin/String, kotlin/String>|): @R|kotlin/ExtensionFunctionType|() R|kotlin/Function1<kotlin/String, kotlin/String>|?
public constructor(): R|test/MethodWithFunctionTypes|
@@ -1,6 +1,6 @@
public final fun test1(): R|class error: createSuspendFunctionType not supported|
public final fun test2(): R|class error: createSuspendFunctionType not supported|
public final fun test2(): @R|kotlin/ExtensionFunctionType|() R|class error: createSuspendFunctionType not supported|
public final fun test3(): R|kotlin/collections/List<class error: createSuspendFunctionType not supported>|
@@ -1,4 +1,4 @@
public final fun <P> foo(x: R|kotlin/Function1<test/Foo<P>, kotlin/Unit>|): R|kotlin/Unit|
public final fun <P> foo(x: @R|kotlin/ExtensionFunctionType|() R|kotlin/Function1<test/Foo<P>, kotlin/Unit>|): R|kotlin/Unit|
public final class Foo<T> : R|kotlin/Any| {
public constructor<T>(): R|test/Foo<T>|