FIR deserializer: read nullability & add constructors

This commit is contained in:
Mikhail Glukhikh
2019-04-02 15:50:52 +03:00
parent 6e9d78d431
commit 8a6c9a6aec
336 changed files with 1321 additions and 96 deletions
@@ -10,6 +10,8 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirClassImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirTypeParameterImpl
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.Flags
@@ -69,6 +71,19 @@ fun deserializeClassToSymbol(
// TODO: properties
declarations += classProto.functionList.map(classDeserializer::loadFunction)
val delegatedSelfType = FirResolvedTypeRefImpl(
session,
null,
ConeClassTypeImpl(
symbol.toLookupTag(),
typeParameters.map { ConeTypeParameterTypeImpl(it.symbol, false) }.toTypedArray(),
false
),
isMarkedNullable = false,
annotations = emptyList()
)
declarations += classProto.constructorList.map { classDeserializer.loadConstructor(it, delegatedSelfType) }
declarations += classProto.nestedClassNameList.mapNotNull { nestedNameId ->
val nestedClassId = classId.createNestedClassId(Name.identifier(nameResolver.getString(nestedNameId)))
deserializeNestedClass(nestedClassId, context)?.fir
@@ -7,11 +7,10 @@ package org.jetbrains.kotlin.fir.deserialization
import org.jetbrains.kotlin.descriptors.annotations.Annotations
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirNamedFunction
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirMemberFunctionImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirTypeParameterImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
import org.jetbrains.kotlin.fir.declarations.impl.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
@@ -160,6 +159,41 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
}
}
fun loadConstructor(proto: ProtoBuf.Constructor, delegatedSelfType: FirTypeRef): FirConstructor {
val flags = proto.flags
val relativeClassName = c.relativeClassName!!
val symbol = FirFunctionSymbol(CallableId(c.packageFqName, relativeClassName, relativeClassName.shortName()))
val local = c.childContext(emptyList())
val isPrimary = !Flags.IS_SECONDARY.get(flags)
return if (isPrimary) {
FirPrimaryConstructorImpl(
c.session,
null,
symbol,
ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
Flags.IS_EXPECT_FUNCTION.get(flags),
false,
delegatedSelfType,
null
)
} else {
FirConstructorImpl(
c.session,
null,
symbol,
ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)),
Flags.IS_EXPECT_FUNCTION.get(flags),
false,
delegatedSelfType,
null
)
}.apply {
valueParameters += local.memberDeserializer.valueParameters(proto.valueParameterList)
annotations += getAnnotations(proto, flags, AnnotatedCallableKind.FUNCTION)
}
}
private fun createTypeParameterSymbol(name: Name): FirTypeParameterSymbol {
val firSymbol = FirTypeParameterSymbol()
FirTypeParameterImpl(c.session, null, firSymbol, name, variance = Variance.INVARIANT, isReified = false)
@@ -90,7 +90,7 @@ class FirTypeDeserializer(
//createSuspendFunctionType(annotations, constructor, arguments, proto.nullable)
ConeClassErrorType("createSuspendFunctionType not supported")
} else {
ConeClassTypeImpl(constructor, arguments, isNullable = false)
ConeClassTypeImpl(constructor, arguments, isNullable = proto.nullable)
}
val abbreviatedTypeProto = proto.abbreviatedType(typeTable) ?: return simpleType
@@ -3,6 +3,8 @@ public abstract class BooleanIterator : R|kotlin/collections/Iterator<kotlin/Boo
public abstract fun nextBoolean(): R|kotlin/Boolean|
public constructor()
}
public abstract class ByteIterator : R|kotlin/collections/Iterator<kotlin/Byte>| {
@@ -10,6 +12,8 @@ public abstract class ByteIterator : R|kotlin/collections/Iterator<kotlin/Byte>|
public abstract fun nextByte(): R|kotlin/Byte|
public constructor()
}
public abstract class CharIterator : R|kotlin/collections/Iterator<kotlin/Char>| {
@@ -17,6 +21,8 @@ public abstract class CharIterator : R|kotlin/collections/Iterator<kotlin/Char>|
public abstract fun nextChar(): R|kotlin/Char|
public constructor()
}
<E> public abstract interface Collection : R|kotlin/collections/Iterable<E>| {
@@ -35,6 +41,8 @@ public abstract class DoubleIterator : R|kotlin/collections/Iterator<kotlin/Doub
public abstract fun nextDouble(): R|kotlin/Double|
public constructor()
}
public abstract class FloatIterator : R|kotlin/collections/Iterator<kotlin/Float>| {
@@ -42,6 +50,8 @@ public abstract class FloatIterator : R|kotlin/collections/Iterator<kotlin/Float
public abstract fun nextFloat(): R|kotlin/Float|
public constructor()
}
public abstract class IntIterator : R|kotlin/collections/Iterator<kotlin/Int>| {
@@ -49,6 +59,8 @@ public abstract class IntIterator : R|kotlin/collections/Iterator<kotlin/Int>| {
public abstract fun nextInt(): R|kotlin/Int|
public constructor()
}
<T> public abstract interface Iterable : R|kotlin/Any| {
@@ -106,6 +118,8 @@ public abstract class LongIterator : R|kotlin/collections/Iterator<kotlin/Long>|
public abstract fun nextLong(): R|kotlin/Long|
public constructor()
}
<K, V> public abstract interface Map : R|kotlin/Any| {
@@ -244,5 +258,7 @@ public abstract class ShortIterator : R|kotlin/collections/Iterator<kotlin/Short
public abstract fun nextShort(): R|kotlin/Short|
public constructor()
}
+36 -6
View File
@@ -1,5 +1,5 @@
public open class CharProgression : R|kotlin/collections/Iterable<kotlin/Char>| {
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
@@ -9,9 +9,13 @@ public open class CharProgression : R|kotlin/collections/Iterable<kotlin/Char>|
public open fun toString(): R|kotlin/String|
internal constructor(start: R|kotlin/Char|, endInclusive: R|kotlin/Char|, step: R|kotlin/Int|)
public final companion object Companion : R|kotlin/Any| {
public final fun fromClosedRange(rangeStart: R|kotlin/Char|, rangeEnd: R|kotlin/Char|, step: R|kotlin/Int|): R|kotlin/ranges/CharProgression|
private constructor()
}
}
@@ -21,12 +25,14 @@ internal final class CharProgressionIterator : R|kotlin/collections/CharIterator
public open fun nextChar(): R|kotlin/Char|
public constructor(first: R|kotlin/Char|, last: R|kotlin/Char|, step: R|kotlin/Int|)
}
public final class CharRange : R|kotlin/ranges/CharProgression|, R|kotlin/ranges/ClosedRange<kotlin/Char>| {
public open operator fun contains(value: R|kotlin/Char|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
@@ -34,7 +40,11 @@ public final class CharRange : R|kotlin/ranges/CharProgression|, R|kotlin/ranges
public open fun toString(): R|kotlin/String|
public constructor(start: R|kotlin/Char|, endInclusive: R|kotlin/Char|)
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -47,7 +57,7 @@ public final class CharRange : R|kotlin/ranges/CharProgression|, R|kotlin/ranges
}
public open class IntProgression : R|kotlin/collections/Iterable<kotlin/Int>| {
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
@@ -57,9 +67,13 @@ public open class IntProgression : R|kotlin/collections/Iterable<kotlin/Int>| {
public open fun toString(): R|kotlin/String|
internal constructor(start: R|kotlin/Int|, endInclusive: R|kotlin/Int|, step: R|kotlin/Int|)
public final companion object Companion : R|kotlin/Any| {
public final fun fromClosedRange(rangeStart: R|kotlin/Int|, rangeEnd: R|kotlin/Int|, step: R|kotlin/Int|): R|kotlin/ranges/IntProgression|
private constructor()
}
}
@@ -69,12 +83,14 @@ internal final class IntProgressionIterator : R|kotlin/collections/IntIterator|
public open fun nextInt(): R|kotlin/Int|
public constructor(first: R|kotlin/Int|, last: R|kotlin/Int|, step: R|kotlin/Int|)
}
public final class IntRange : R|kotlin/ranges/IntProgression|, R|kotlin/ranges/ClosedRange<kotlin/Int>| {
public open operator fun contains(value: R|kotlin/Int|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
@@ -82,13 +98,17 @@ public final class IntRange : R|kotlin/ranges/IntProgression|, R|kotlin/ranges/C
public open fun toString(): R|kotlin/String|
public constructor(start: R|kotlin/Int|, endInclusive: R|kotlin/Int|)
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
public open class LongProgression : R|kotlin/collections/Iterable<kotlin/Long>| {
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
@@ -98,9 +118,13 @@ public open class LongProgression : R|kotlin/collections/Iterable<kotlin/Long>|
public open fun toString(): R|kotlin/String|
internal constructor(start: R|kotlin/Long|, endInclusive: R|kotlin/Long|, step: R|kotlin/Long|)
public final companion object Companion : R|kotlin/Any| {
public final fun fromClosedRange(rangeStart: R|kotlin/Long|, rangeEnd: R|kotlin/Long|, step: R|kotlin/Long|): R|kotlin/ranges/LongProgression|
private constructor()
}
}
@@ -110,12 +134,14 @@ internal final class LongProgressionIterator : R|kotlin/collections/LongIterator
public open fun nextLong(): R|kotlin/Long|
public constructor(first: R|kotlin/Long|, last: R|kotlin/Long|, step: R|kotlin/Long|)
}
public final class LongRange : R|kotlin/ranges/LongProgression|, R|kotlin/ranges/ClosedRange<kotlin/Long>| {
public open operator fun contains(value: R|kotlin/Long|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
@@ -123,7 +149,11 @@ public final class LongRange : R|kotlin/ranges/LongProgression|, R|kotlin/ranges
public open fun toString(): R|kotlin/String|
public constructor(start: R|kotlin/Long|, endInclusive: R|kotlin/Long|)
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
+115 -5
View File
@@ -24,20 +24,22 @@ public final fun longArrayOf(vararg elements: R|kotlin/LongArray|): R|kotlin/Lon
public final fun shortArrayOf(vararg elements: R|kotlin/ShortArray|): R|kotlin/ShortArray|
public final operator fun R|kotlin/String|.plus(other: R|kotlin/Any|): R|kotlin/String|
public final operator fun R|kotlin/String|?.plus(other: R|kotlin/Any|?): R|kotlin/String|
public final fun R|kotlin/Any|.toString(): R|kotlin/String|
public final fun R|kotlin/Any|?.toString(): R|kotlin/String|
public abstract interface Annotation : R|kotlin/Any| {
}
public open class Any {
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
public open fun toString(): R|kotlin/String|
public constructor()
}
<T> public final class Array : R|kotlin/Any| {
@@ -47,6 +49,8 @@ public open class Any {
public final operator fun set(index: R|kotlin/Int|, value: R|T|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, T>|)
}
public final class Boolean : R|kotlin/Comparable<kotlin/Boolean>| {
@@ -60,7 +64,11 @@ public final class Boolean : R|kotlin/Comparable<kotlin/Boolean>| {
public final infix fun xor(other: R|kotlin/Boolean|): R|kotlin/Boolean|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -72,6 +80,10 @@ public final class BooleanArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Boolean|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Boolean>|)
public constructor(size: R|kotlin/Int|)
}
public final class Byte : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Byte>| {
@@ -189,7 +201,11 @@ public final class Byte : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Byte>| {
public final operator fun unaryPlus(): R|kotlin/Int|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -201,6 +217,10 @@ public final class ByteArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Byte|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Byte>|)
public constructor(size: R|kotlin/Int|)
}
public final class Char : R|kotlin/Comparable<kotlin/Char>| {
@@ -232,7 +252,11 @@ public final class Char : R|kotlin/Comparable<kotlin/Char>| {
public final fun toShort(): R|kotlin/Short|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -244,6 +268,10 @@ public final class CharArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Char|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Char>|)
public constructor(size: R|kotlin/Int|)
}
public abstract interface CharSequence : R|kotlin/Any| {
@@ -264,9 +292,13 @@ public abstract interface Cloneable : R|kotlin/Any| {
}
public final annotation class Deprecated : R|kotlin/Annotation| {
public constructor(message: R|kotlin/String|, replaceWith: R|kotlin/ReplaceWith|, level: R|kotlin/DeprecationLevel|)
}
public final enum class DeprecationLevel : R|kotlin/Enum<kotlin/DeprecationLevel>| {
private constructor()
}
public final class Double : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Double>| {
@@ -376,7 +408,11 @@ public final class Double : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Double>
public final operator fun unaryPlus(): R|kotlin/Double|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -388,9 +424,15 @@ public final class DoubleArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Double|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Double>|)
public constructor(size: R|kotlin/Int|)
}
public final annotation class DslMarker : R|kotlin/Annotation| {
public constructor()
}
<E> public abstract class Enum : R|kotlin/Comparable<E>| {
@@ -398,18 +440,24 @@ public final annotation class DslMarker : R|kotlin/Annotation| {
public final operator fun compareTo(other: R|E|): R|kotlin/Int|
public final operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public final operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public final fun hashCode(): R|kotlin/Int|
public open fun toString(): R|kotlin/String|
public constructor(name: R|kotlin/String|, ordinal: R|kotlin/Int|)
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
public final annotation class ExtensionFunctionType : R|kotlin/Annotation| {
public constructor()
}
public final class Float : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Float>| {
@@ -519,7 +567,11 @@ public final class Float : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Float>|
public final operator fun unaryPlus(): R|kotlin/Float|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -531,6 +583,10 @@ public final class FloatArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Float|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Float>|)
public constructor(size: R|kotlin/Int|)
}
<R> public abstract interface Function : R|kotlin/Any| {
@@ -665,7 +721,11 @@ public final class Int : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Int>| {
public final infix fun xor(other: R|kotlin/Int|): R|kotlin/Int|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -677,6 +737,10 @@ public final class IntArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Int|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Int>|)
public constructor(size: R|kotlin/Int|)
}
public final class Long : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Long>| {
@@ -808,7 +872,11 @@ public final class Long : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Long>| {
public final infix fun xor(other: R|kotlin/Long|): R|kotlin/Long|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -820,9 +888,15 @@ public final class LongArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Long|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Long>|)
public constructor(size: R|kotlin/Int|)
}
public final class Nothing {
private constructor()
}
public abstract class Number : R|kotlin/Any| {
@@ -840,15 +914,23 @@ public abstract class Number : R|kotlin/Any| {
public abstract fun toShort(): R|kotlin/Short|
public constructor()
}
public final annotation class ParameterName : R|kotlin/Annotation| {
public constructor(name: R|kotlin/String|)
}
public final annotation class PublishedApi : R|kotlin/Annotation| {
public constructor()
}
public final annotation class ReplaceWith : R|kotlin/Annotation| {
public constructor(expression: R|kotlin/String|, vararg imports: R|kotlin/Array<out kotlin/String>|)
}
public final class Short : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Short>| {
@@ -966,7 +1048,11 @@ public final class Short : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Short>|
public final operator fun unaryPlus(): R|kotlin/Int|
private constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -978,9 +1064,15 @@ public final class ShortArray : R|kotlin/Any| {
public final operator fun set(index: R|kotlin/Int|, value: R|kotlin/Short|): R|kotlin/Unit|
public constructor(size: R|kotlin/Int|, init: R|kotlin/Function1<kotlin/Int, kotlin/Short>|)
public constructor(size: R|kotlin/Int|)
}
public final annotation class SinceKotlin : R|kotlin/Annotation| {
public constructor(version: R|kotlin/String|)
}
public final class String : R|kotlin/Comparable<kotlin/String>|, R|kotlin/CharSequence| {
@@ -988,26 +1080,44 @@ public final class String : R|kotlin/Comparable<kotlin/String>|, R|kotlin/CharSe
public open operator fun get(index: R|kotlin/Int|): R|kotlin/Char|
public final operator fun plus(other: R|kotlin/Any|): R|kotlin/String|
public final operator fun plus(other: R|kotlin/Any|?): R|kotlin/String|
public open fun subSequence(startIndex: R|kotlin/Int|, endIndex: R|kotlin/Int|): R|kotlin/CharSequence|
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
public final annotation class Suppress : R|kotlin/Annotation| {
public constructor(vararg names: R|kotlin/Array<out kotlin/String>|)
}
public open class Throwable : R|kotlin/Any| {
public constructor(message: R|kotlin/String|?)
public constructor(cause: R|kotlin/Throwable|?)
public constructor()
public constructor(message: R|kotlin/String|?, cause: R|kotlin/Throwable|?)
}
public final object Unit : R|kotlin/Any| {
public open fun toString(): R|kotlin/String|
private constructor()
}
public final annotation class UnsafeVariance : R|kotlin/Annotation| {
public constructor()
}
@@ -1,2 +1,4 @@
public final annotation class AnnotatedAnnotation : R|kotlin/Annotation| {
public constructor()
}
@@ -1,4 +1,6 @@
public open class AnnotatedMethod : R|kotlin/Any| {
public open fun f(): R|kotlin/Unit|
public constructor()
}
@@ -1,14 +1,24 @@
public final class AnnotationInAnnotationArguments : R|kotlin/Any| {
public constructor()
}
public final enum class E : R|kotlin/Enum<test/E>| {
private constructor()
}
public final annotation class EnumOption : R|kotlin/Annotation| {
public constructor(option: R|test/E|)
}
public final annotation class OptionGroups : R|kotlin/Annotation| {
public constructor(o1: R|test/StringOptions|, o2: R|test/EnumOption|)
}
public final annotation class StringOptions : R|kotlin/Annotation| {
public constructor(vararg option: R|kotlin/Array<out kotlin/String>|)
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(klass: R|kotlin/reflect/KClass<*>|, klasses: R|kotlin/Array<kotlin/reflect/KClass<*>>|, sarKlass: R|kotlin/reflect/KClass<kotlin/Array<kotlin/String>>|, d2arKlass: R|kotlin/reflect/KClass<kotlin/Array<kotlin/DoubleArray>>|)
}
public final class Klass : R|kotlin/Any| {
public constructor()
}
@@ -1,13 +1,21 @@
public final enum class E : R|kotlin/Enum<test/E>| {
private constructor()
}
public final annotation class EnumAnno : R|kotlin/Annotation| {
public constructor(value: R|test/E|)
}
public final class EnumArgumentWithCustomToString : R|kotlin/Any| {
public final fun annotated(): R|kotlin/Unit|
public constructor()
}
public final annotation class EnumArrayAnno : R|kotlin/Annotation| {
public constructor(vararg value: R|kotlin/Array<out test/E>|)
}
@@ -1,4 +1,6 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(s: R|kotlin/String|)
}
public abstract interface T : R|kotlin/Any| {
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(bytes: R|kotlin/ByteArray|, shorts: R|kotlin/ShortArray|, ints: R|kotlin/IntArray|, longs: R|kotlin/LongArray|, chars: R|kotlin/CharArray|, floats: R|kotlin/FloatArray|, doubles: R|kotlin/DoubleArray|, booleans: R|kotlin/BooleanArray|)
}
public final class Klass : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
public final annotation class SimpleAnnotation : R|kotlin/Annotation| {
public constructor()
}
@@ -1,2 +1,4 @@
public final annotation class TargetedAnnotation : R|kotlin/Annotation| {
public constructor()
}
@@ -1,8 +1,14 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/String|)
}
public final class Constructor : R|kotlin/Any| {
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(t: R|java/lang/annotation/ElementType|)
}
public final class Class : R|kotlin/Any| {
public final fun foo(): R|kotlin/Unit|
public constructor()
}
@@ -1,8 +1,14 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/String|, x: R|kotlin/Int|)
}
public final annotation class Bnno : R|kotlin/Annotation| {
public constructor()
}
public final enum class Eee : R|kotlin/Enum<test/Eee>| {
private constructor()
}
@@ -1,7 +1,11 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public final fun foo(): R|kotlin/Unit|
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,20 +1,34 @@
public final annotation class Ann : R|kotlin/Annotation| {
public constructor()
}
public sealed class Sealed : R|kotlin/Any| {
private constructor(z: R|test/Z|)
public final class Derived : R|test/Sealed| {
public constructor(z: R|test/Z|)
}
}
public final class Test : R|kotlin/Any| {
public constructor(z: R|test/Z|, a: R|kotlin/Int|)
private constructor(z: R|test/Z|, s: R|kotlin/String|)
public constructor(z: R|test/Z|)
}
public final inline class Z : R|kotlin/Any| {
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
public open fun toString(): R|kotlin/String|
public constructor(x: R|kotlin/Int|)
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,8 +1,10 @@
public final inline class Z : R|kotlin/Any| {
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
public open fun toString(): R|kotlin/String|
internal constructor(value: R|kotlin/Int|)
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,10 +1,20 @@
public final class A : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
public final annotation class Anno1 : R|kotlin/Annotation| {
public constructor()
}
public final class B : R|kotlin/Any| {
public constructor()
public final annotation class Anno2 : R|kotlin/Annotation| {
public constructor()
}
}
@@ -14,4 +24,6 @@ public final class A : R|kotlin/Any| {
}
public final class C : R|kotlin/Any| {
public constructor()
}
@@ -1,9 +1,17 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
public final class Nested : R|kotlin/Any| {
public constructor()
}
}
@@ -1,8 +1,14 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -1,6 +1,12 @@
public final class A : R|kotlin/Any| {
public constructor()
public final class B : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -3,10 +3,12 @@ public final data class My : R|kotlin/Any| {
public final fun copy(x: R|kotlin/Int|): R|test/My|
public open operator fun equals(other: R|kotlin/Any|): R|kotlin/Boolean|
public open operator fun equals(other: R|kotlin/Any|?): R|kotlin/Boolean|
public open fun hashCode(): R|kotlin/Int|
public open fun toString(): R|kotlin/String|
public constructor(x: R|kotlin/Int|)
}
@@ -1,11 +1,19 @@
public final class Class : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
public final inner class Inner : R|kotlin/Any| {
public constructor()
}
public final class Nested : R|kotlin/Any| {
public constructor()
}
}
@@ -1,11 +1,19 @@
public final annotation class $$$$$$ : R|kotlin/Annotation| {
public constructor()
}
public final class A : R|kotlin/Any| {
public constructor()
}
public final annotation class Anno$tation : R|kotlin/Annotation| {
public constructor()
}
public final class Cla$s : R|kotlin/Any| {
public constructor()
}
@@ -1,14 +1,24 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(t: R|java/lang/annotation/ElementType|)
}
public final class Class : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
public final inner class Inner : R|kotlin/Any| {
public constructor()
}
public final class Nested : R|kotlin/Any| {
public constructor()
}
}
@@ -1,11 +1,19 @@
public final annotation class A1 : R|kotlin/Annotation| {
public constructor()
}
public final annotation class A2 : R|kotlin/Annotation| {
public constructor()
}
public final annotation class A3 : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,5 +1,9 @@
public final class A : R|kotlin/Any| {
public constructor()
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
}
@@ -7,4 +11,6 @@ public final class A : R|kotlin/Any| {
public final class B : R|kotlin/Any| {
public final fun f(): R|kotlin/Unit|
public constructor()
}
@@ -1,11 +1,19 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
public final inner class Inner : R|kotlin/Any| {
public constructor()
}
public final class Nested : R|kotlin/Any| {
public constructor()
}
}
@@ -1,2 +1,4 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class X : R|kotlin/Any| {
public constructor()
}
@@ -1,26 +1,44 @@
public final annotation class BooleanAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Boolean|)
}
public final annotation class ByteAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Byte|)
}
public final annotation class CharAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Char|)
}
public final class Class : R|kotlin/Any| {
public constructor()
}
public final annotation class DoubleAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Double|)
}
public final annotation class FloatAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Float|)
}
public final annotation class IntAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Int|)
}
public final annotation class LongAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Long|)
}
public final annotation class ShortAnno : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Short|)
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(int: R|kotlin/Int|, string: R|kotlin/String|, double: R|kotlin/Double|)
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,4 +1,6 @@
public final fun foo(): R|kotlin/Unit|
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(t: R|java/lang/annotation/ElementType|)
}
@@ -3,4 +3,6 @@ public final fun baz(): R|kotlin/Unit|
public final fun foo(): R|kotlin/Unit|
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(vararg t: R|kotlin/Array<out java/lang/annotation/ElementType>|)
}
@@ -1,4 +1,6 @@
public final fun function(): R|kotlin/Unit|
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,2 +1,4 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,2 +1,4 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,2 +1,4 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -3,4 +3,6 @@ public final fun baz(): R|kotlin/Unit|
public final fun foo(): R|kotlin/Unit|
public final annotation class Anno : R|kotlin/Annotation| {
public constructor(vararg t: R|kotlin/Array<out kotlin/String>|)
}
@@ -1,8 +1,14 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final annotation class B : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor(x: R|kotlin/Int|, y: R|kotlin/String|)
}
@@ -1,8 +1,14 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final annotation class B : R|kotlin/Annotation| {
public constructor()
}
public final enum class E : R|kotlin/Enum<test/E>| {
private constructor(x: R|kotlin/String|, y: R|kotlin/Int|)
}
@@ -1,4 +1,6 @@
public final fun R|kotlin/Int|.foo(x: R|kotlin/Int|): R|kotlin/Unit|
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public final fun R|kotlin/String|.foo(x: R|kotlin/Int|): R|kotlin/Int|
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public final fun foo(x: R|kotlin/String|): R|kotlin/Unit|
public constructor()
}
@@ -1,4 +1,6 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public abstract interface Trait : R|kotlin/Any| {
@@ -1,11 +1,19 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor(s: R|kotlin/String|)
}
public final class Outer : R|kotlin/Any| {
public constructor()
public final inner class Inner : R|kotlin/Any| {
public constructor(y: R|kotlin/String|)
}
public final class Nested : R|kotlin/Any| {
public constructor(x: R|kotlin/String|)
}
}
@@ -3,13 +3,21 @@ public final fun bar(x: R|kotlin/Int|): R|kotlin/Unit|
public final fun foo(x: R|kotlin/Int|, y: R|kotlin/Double|, z: R|kotlin/String|): R|kotlin/Unit|
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final annotation class B : R|kotlin/Annotation| {
public constructor()
}
public final annotation class C : R|kotlin/Annotation| {
public constructor()
}
public final annotation class D : R|kotlin/Annotation| {
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,4 +1,6 @@
public final fun foo(x: R|kotlin/Int|): R|kotlin/Unit|
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final annotation class B : R|kotlin/Annotation| {
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,8 +1,14 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -1,11 +1,19 @@
public final class Class : R|kotlin/Any| {
public constructor()
}
public final annotation class DoubleAnno : R|kotlin/Annotation| {
public constructor()
}
public final annotation class IntAnno : R|kotlin/Annotation| {
public constructor()
}
public final annotation class StringAnno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,8 +1,14 @@
public final annotation class DoubleAnno : R|kotlin/Annotation| {
public constructor()
}
public final annotation class IntAnno : R|kotlin/Annotation| {
public constructor()
}
public final annotation class StringAnno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
public abstract interface Trait : R|kotlin/Any| {
}
@@ -1,2 +1,4 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
@@ -1,4 +1,6 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public abstract interface Trait : R|kotlin/Any| {
@@ -1,8 +1,12 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public abstract interface Trait : R|kotlin/Any| {
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -7,19 +7,31 @@ public final class A : R|kotlin/Any| {
public final fun simple(s: R|kotlin/String|): R|kotlin/Unit|
public constructor()
}
public final annotation class Ann : R|kotlin/Annotation| {
public constructor(klass: R|kotlin/reflect/KClass<*>|)
}
<T> public final class Generic : R|kotlin/Any| {
public constructor()
}
<A, B> public final class InnerGeneric : R|kotlin/Any| {
public constructor()
<C, D> public final inner class Inner : R|kotlin/Any| {
public constructor()
}
}
public final class Simple : R|kotlin/Any| {
public constructor()
}
@@ -1,4 +1,6 @@
public final fun R|kotlin/String|.foo(): R|kotlin/Unit|
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final class SimpleTypeAnnotation : R|kotlin/Any| {
public final fun foo(x: R|kotlin/ranges/IntRange|): R|kotlin/Int|
public constructor()
}
@@ -1,9 +1,13 @@
public final fun typeAnnotation(): R|kotlin/Unit|
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final class TypeParameterAnnotation : R|kotlin/Any| {
<T> public final fun foo(x: R|T|): R|kotlin/Unit|
public constructor()
}
@@ -1,4 +1,6 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
<T> public abstract interface Foo : R|java/io/Serializable| {
@@ -1,7 +1,11 @@
public final annotation class Ann : R|kotlin/Annotation| {
public constructor(x: R|kotlin/String|, y: R|kotlin/Double|)
}
public final class TypeAnnotationWithArguments : R|kotlin/Any| {
public final fun foo(param: R|kotlin/ranges/IntRange|): R|kotlin/Unit|
public constructor()
}
@@ -1,4 +1,6 @@
public final fun foo(bar: R|kotlin/collections/Map<kotlin/String, kotlin/collections/List<kotlin/Int>>|): R|kotlin/Unit|
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor()
}
public final class SimpleTypeParameterAnnotation : R|kotlin/Any| {
<T> public final fun foo(x: R|T|): R|kotlin/Unit|
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor(x: R|kotlin/String|, y: R|kotlin/Double|)
}
public final class SimpleTypeParameterAnnotation : R|kotlin/Any| {
<T> public final fun foo(x: R|T|): R|kotlin/Unit|
public constructor()
}
@@ -1,10 +1,16 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
public final class CustomDelegate : R|kotlin/Any| {
public final operator fun getValue(thisRef: R|kotlin/Any|, prop: R|kotlin/reflect/KProperty<*>|): R|kotlin/String|
public final operator fun getValue(thisRef: R|kotlin/Any|?, prop: R|kotlin/reflect/KProperty<*>|): R|kotlin/String|
public constructor()
}
@@ -1,5 +1,9 @@
public final annotation class Anno : R|kotlin/Annotation| {
public constructor()
}
public final class Class : R|kotlin/Any| {
public constructor()
}
@@ -1,7 +1,11 @@
public final annotation class A : R|kotlin/Annotation| {
public constructor(value: R|kotlin/String|)
}
public final annotation class B : R|kotlin/Annotation| {
public constructor(value: R|kotlin/Array<kotlin/String>|)
}
public abstract interface I : R|kotlin/Any| {
@@ -1,7 +1,11 @@
public final class A : R|kotlin/Any| {
public final fun R|kotlin/String|.myLength(q: R|kotlin/String|): R|kotlin/Int|
public constructor()
}
public final annotation class Ann : R|kotlin/Annotation| {
public constructor()
}
@@ -1,2 +1,4 @@
public final class Ramification : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<T> public final class Wine : R|kotlin/Any| {
public constructor()
}
@@ -1,5 +1,9 @@
public final class Outer : R|kotlin/Any| {
public constructor()
public final inner class Inner : R|kotlin/Any| {
public constructor()
}
}
@@ -1,11 +1,19 @@
<test> public final class ConstructorTypeParamClassObjectConflict : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
<test> public final class ConstructorTypeParamClassObjectTypeConflict : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
public abstract interface test : R|kotlin/Any| {
}
@@ -14,19 +22,31 @@
}
public final class TestClassObjectAndClassConflict : R|kotlin/Any| {
public constructor()
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
public final class TestConstructorParamClassObjectConflict : R|kotlin/Any| {
public constructor(test: R|kotlin/String|)
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
public final class TestConstructorValClassObjectConflict : R|kotlin/Any| {
public constructor(test: R|kotlin/String|)
public final companion object Companion : R|kotlin/Any| {
private constructor()
}
}
@@ -1,2 +1,4 @@
<T> public final class Juice : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<T> public final class Beer : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<A, B> public final class ClassParamReferencesParam : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<A, B> public final class ClassParamReferencesParam : R|kotlin/Any| {
public constructor()
}
@@ -1,4 +1,6 @@
<A> public final class ClassParamReferencesSelf : R|kotlin/Any| {
public constructor()
}
<P> public abstract interface TraitWithP : R|kotlin/Any| {
@@ -1,2 +1,4 @@
<A> public final class Clock : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<A> public final class Clock : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<A> public final class Clock : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<P, Q> public final class ClassTwoParams : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
<P, Q> public final class ClassTwoParams : R|kotlin/Any| {
public constructor()
}
@@ -1,2 +1,4 @@
public final enum class EnumWithGenericConstructorParameter : R|kotlin/Enum<test/EnumWithGenericConstructorParameter>| {
private constructor(list: R|kotlin/collections/List<kotlin/String>|?)
}
@@ -1,2 +1,4 @@
public final enum class EnumWithPrimitiveConstructorParameter : R|kotlin/Enum<test/EnumWithPrimitiveConstructorParameter>| {
private constructor(b: R|kotlin/Boolean|)
}
@@ -1,5 +1,9 @@
public abstract class Aaa : R|kotlin/Any| {
public constructor()
}
public final class Bbb : R|test/Aaa| {
public constructor()
}
@@ -1,5 +1,9 @@
<P> public abstract class Aaa : R|kotlin/Any| {
public constructor()
}
public final class Bbb : R|test/Aaa<java/util/Random>| {
public constructor()
}

Some files were not shown because too many files have changed in this diff Show More