FIR deserializer: load type-parameters correctly
This commit is contained in:
committed by
Mikhail Glukhikh
parent
853167a24d
commit
649c2f6bcc
+2
-1
@@ -47,7 +47,7 @@ class FirDeserializationContext(
|
||||
): FirDeserializationContext = FirDeserializationContext(
|
||||
nameResolver, typeTable, versionRequirementTable, session, packageFqName, relativeClassName,
|
||||
FirTypeDeserializer(
|
||||
nameResolver, typeTable, typeParameterProtos, typeDeserializer
|
||||
session, nameResolver, typeTable, typeParameterProtos, typeDeserializer
|
||||
),
|
||||
components
|
||||
)
|
||||
@@ -98,6 +98,7 @@ class FirDeserializationContext(
|
||||
packageFqName,
|
||||
relativeClassName,
|
||||
FirTypeDeserializer(
|
||||
session,
|
||||
nameResolver,
|
||||
typeTable,
|
||||
typeParameterProtos,
|
||||
|
||||
+42
-1
@@ -5,22 +5,29 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.deserialization
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirTypeParameterImpl
|
||||
import org.jetbrains.kotlin.fir.resolve.toTypeProjection
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.firUnsafe
|
||||
import org.jetbrains.kotlin.fir.symbols.*
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl
|
||||
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.*
|
||||
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
|
||||
import org.jetbrains.kotlin.serialization.deserialization.getClassId
|
||||
import org.jetbrains.kotlin.serialization.deserialization.getName
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
import java.util.*
|
||||
|
||||
class FirTypeDeserializer(
|
||||
val session: FirSession,
|
||||
val nameResolver: NameResolver,
|
||||
val typeTable: TypeTable,
|
||||
typeParameterProtos: List<ProtoBuf.TypeParameter>,
|
||||
@@ -52,17 +59,51 @@ class FirTypeDeserializer(
|
||||
private fun typeParameterSymbol(typeParameterId: Int): ConeTypeParameterLookupTag? =
|
||||
typeParameterDescriptors[typeParameterId] ?: parent?.typeParameterSymbol(typeParameterId)
|
||||
|
||||
|
||||
private fun ProtoBuf.TypeParameter.Variance.convertVariance(): Variance {
|
||||
return when (this) {
|
||||
ProtoBuf.TypeParameter.Variance.IN -> Variance.IN_VARIANCE
|
||||
ProtoBuf.TypeParameter.Variance.OUT -> Variance.OUT_VARIANCE
|
||||
ProtoBuf.TypeParameter.Variance.INV -> Variance.INVARIANT
|
||||
}
|
||||
}
|
||||
|
||||
private val typeParameterDescriptors =
|
||||
if (typeParameterProtos.isEmpty()) {
|
||||
mapOf<Int, ConeTypeParameterSymbol>()
|
||||
} else {
|
||||
val result = LinkedHashMap<Int, ConeTypeParameterSymbol>()
|
||||
for ((index, proto) in typeParameterProtos.withIndex()) {
|
||||
result[proto.id] = LibraryTypeParameterSymbol(nameResolver.getName(proto.name))
|
||||
if (!proto.hasId()) continue
|
||||
val name = nameResolver.getName(proto.name)
|
||||
val symbol = FirTypeParameterSymbol()
|
||||
FirTypeParameterImpl(
|
||||
session,
|
||||
null,
|
||||
symbol,
|
||||
name,
|
||||
proto.variance.convertVariance(),
|
||||
proto.reified
|
||||
)
|
||||
result[proto.id] = symbol
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
|
||||
init {
|
||||
for ((index, proto) in typeParameterProtos.withIndex()) {
|
||||
if (!proto.hasId()) continue
|
||||
val symbol = typeParameterDescriptors[proto.id] as FirTypeParameterSymbol
|
||||
val declaration = symbol.firUnsafe<FirTypeParameterImpl>()
|
||||
declaration.apply {
|
||||
proto.upperBoundList.mapTo(bounds) {
|
||||
FirResolvedTypeRefImpl(session, null, type(it), false, emptyList())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val ownTypeParameters: List<ConeTypeParameterSymbol>
|
||||
get() = typeParameterDescriptors.values.toList()
|
||||
|
||||
|
||||
+10
-10
@@ -25,7 +25,7 @@ public abstract class CharIterator : R|kotlin/collections/Iterator<kotlin/Char>|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Collection<E> : R|kotlin/collections/Iterable<E>| {
|
||||
public abstract interface Collection<out E> : R|kotlin/collections/Iterable<E>| {
|
||||
public abstract operator fun contains(element: R|E|): R|kotlin/Boolean|
|
||||
|
||||
public abstract fun containsAll(elements: R|kotlin/collections/Collection<E>|): R|kotlin/Boolean|
|
||||
@@ -63,19 +63,19 @@ public abstract class IntIterator : R|kotlin/collections/Iterator<kotlin/Int>| {
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Iterable<T> : R|kotlin/Any| {
|
||||
public abstract interface Iterable<out T> : R|kotlin/Any| {
|
||||
public abstract operator fun iterator(): R|kotlin/collections/Iterator<T>|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Iterator<T> : R|kotlin/Any| {
|
||||
public abstract interface Iterator<out T> : R|kotlin/Any| {
|
||||
public abstract operator fun hasNext(): R|kotlin/Boolean|
|
||||
|
||||
public abstract operator fun next(): R|T|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface List<E> : R|kotlin/collections/Collection<E>| {
|
||||
public abstract interface List<out E> : R|kotlin/collections/Collection<E>| {
|
||||
public abstract operator fun contains(element: R|E|): R|kotlin/Boolean|
|
||||
|
||||
public abstract fun containsAll(elements: R|kotlin/collections/Collection<E>|): R|kotlin/Boolean|
|
||||
@@ -98,7 +98,7 @@ public abstract interface List<E> : R|kotlin/collections/Collection<E>| {
|
||||
|
||||
}
|
||||
|
||||
public abstract interface ListIterator<T> : R|kotlin/collections/Iterator<T>| {
|
||||
public abstract interface ListIterator<out T> : R|kotlin/collections/Iterator<T>| {
|
||||
public abstract operator fun hasNext(): R|kotlin/Boolean|
|
||||
|
||||
public abstract fun hasPrevious(): R|kotlin/Boolean|
|
||||
@@ -122,7 +122,7 @@ public abstract class LongIterator : R|kotlin/collections/Iterator<kotlin/Long>|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Map<K, V> : R|kotlin/Any| {
|
||||
public abstract interface Map<K, out V> : R|kotlin/Any| {
|
||||
public abstract fun containsKey(key: R|K|): R|kotlin/Boolean|
|
||||
|
||||
public abstract fun containsValue(value: R|V|): R|kotlin/Boolean|
|
||||
@@ -133,7 +133,7 @@ public abstract interface Map<K, V> : R|kotlin/Any| {
|
||||
|
||||
public abstract fun isEmpty(): R|kotlin/Boolean|
|
||||
|
||||
public abstract interface Entry<K, V> : R|kotlin/Any| {
|
||||
public abstract interface Entry<out K, out V> : R|kotlin/Any| {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -155,12 +155,12 @@ public abstract interface MutableCollection<E> : R|kotlin/collections/Collection
|
||||
|
||||
}
|
||||
|
||||
public abstract interface MutableIterable<T> : R|kotlin/collections/Iterable<T>| {
|
||||
public abstract interface MutableIterable<out T> : R|kotlin/collections/Iterable<T>| {
|
||||
public abstract operator fun iterator(): R|kotlin/collections/MutableIterator<T>|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface MutableIterator<T> : R|kotlin/collections/Iterator<T>| {
|
||||
public abstract interface MutableIterator<out T> : R|kotlin/collections/Iterator<T>| {
|
||||
public abstract fun remove(): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
@@ -242,7 +242,7 @@ public abstract interface MutableSet<E> : R|kotlin/collections/Set<E>|, R|kotlin
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Set<E> : R|kotlin/collections/Collection<E>| {
|
||||
public abstract interface Set<out E> : R|kotlin/collections/Collection<E>| {
|
||||
public abstract operator fun contains(element: R|E|): R|kotlin/Boolean|
|
||||
|
||||
public abstract fun containsAll(elements: R|kotlin/collections/Collection<E>|): R|kotlin/Boolean|
|
||||
|
||||
+7
-7
@@ -1,6 +1,6 @@
|
||||
public final inline fun <T> arrayOf(vararg elements: R|kotlin/Array<out T>|): R|kotlin/Array<T>|
|
||||
public final inline fun <reified T> arrayOf(vararg elements: R|kotlin/Array<out T>|): R|kotlin/Array<T>|
|
||||
|
||||
public final fun <T> arrayOfNulls(size: R|kotlin/Int|): R|kotlin/Array<T>|
|
||||
public final fun <reified T> arrayOfNulls(size: R|kotlin/Int|): R|kotlin/Array<T>|
|
||||
|
||||
public final fun booleanArrayOf(vararg elements: R|kotlin/BooleanArray|): R|kotlin/BooleanArray|
|
||||
|
||||
@@ -10,11 +10,11 @@ public final fun charArrayOf(vararg elements: R|kotlin/CharArray|): R|kotlin/Cha
|
||||
|
||||
public final fun doubleArrayOf(vararg elements: R|kotlin/DoubleArray|): R|kotlin/DoubleArray|
|
||||
|
||||
public final inline fun <T> emptyArray(): R|kotlin/Array<T>|
|
||||
public final inline fun <reified T> emptyArray(): R|kotlin/Array<T>|
|
||||
|
||||
public final inline fun <T> enumValueOf(name: R|kotlin/String|): R|T|
|
||||
public final inline fun <reified T> enumValueOf(name: R|kotlin/String|): R|T|
|
||||
|
||||
public final inline fun <T> enumValues(): R|kotlin/Array<T>|
|
||||
public final inline fun <reified T> enumValues(): R|kotlin/Array<T>|
|
||||
|
||||
public final fun floatArrayOf(vararg elements: R|kotlin/FloatArray|): R|kotlin/FloatArray|
|
||||
|
||||
@@ -286,7 +286,7 @@ public abstract interface Cloneable : R|kotlin/Any| {
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Comparable<T> : R|kotlin/Any| {
|
||||
public abstract interface Comparable<in T> : R|kotlin/Any| {
|
||||
public abstract operator fun compareTo(other: R|T|): R|kotlin/Int|
|
||||
|
||||
}
|
||||
@@ -589,7 +589,7 @@ public final class FloatArray : R|kotlin/Any| {
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Function<R> : R|kotlin/Any| {
|
||||
public abstract interface Function<out R> : R|kotlin/Any| {
|
||||
}
|
||||
|
||||
public final class Int : R|kotlin/Number|, R|kotlin/Comparable<kotlin/Int>| {
|
||||
|
||||
Vendored
+1
-1
@@ -24,7 +24,7 @@ public final class Generic<T> : R|kotlin/Any| {
|
||||
public final class InnerGeneric<A, B> : R|kotlin/Any| {
|
||||
public constructor(): R|test/InnerGeneric<A, B>|
|
||||
|
||||
public final inner class Inner<C, D> : R|kotlin/Any| {
|
||||
public final inner class Inner<in C, D : R|A|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/InnerGeneric.Inner<C, D>|
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ public final annotation class A : R|kotlin/Annotation| {
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Foo<T> : R|java/io/Serializable| {
|
||||
public abstract fun <E, F> bar(): R|kotlin/Unit|
|
||||
public abstract interface Foo<T : R|kotlin/Number|> : R|java/io/Serializable| {
|
||||
public abstract fun <E, F : R|E|> bar(): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
public final class Wine<T> : R|kotlin/Any| {
|
||||
public final class Wine<in T> : R|kotlin/Any| {
|
||||
public constructor(): R|test/Wine<T>|
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
public final class Juice<T> : R|kotlin/Any| {
|
||||
public final class Juice<out T> : R|kotlin/Any| {
|
||||
public constructor(): R|test/Juice<T>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class ClassParamReferencesParam<A, B> : R|kotlin/Any| {
|
||||
public final class ClassParamReferencesParam<A, B : R|A|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassParamReferencesParam<A, B>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class ClassParamReferencesParam<A, B> : R|kotlin/Any| {
|
||||
public final class ClassParamReferencesParam<A, in B : R|A|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassParamReferencesParam<A, B>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class ClassParamReferencesSelf<A> : R|kotlin/Any| {
|
||||
public final class ClassParamReferencesSelf<A : R|test/TraitWithP<A>|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassParamReferencesSelf<A>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class Clock<A> : R|kotlin/Any| {
|
||||
public final class Clock<A : R|java/lang/Number|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/Clock<A>|
|
||||
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class Clock<A> : R|kotlin/Any| {
|
||||
public final class Clock<A : R|java/lang/Number|, R|java/io/Serializable|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/Clock<A>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class Clock<A> : R|kotlin/Any| {
|
||||
public final class Clock<A : R|java/io/Serializable|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/Clock<A>|
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
public final class ClassTwoParams<P, Q> : R|kotlin/Any| {
|
||||
public final class ClassTwoParams<out P, Q> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassTwoParams<P, Q>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public abstract interface Rec<R, T> : R|kotlin/Any| {
|
||||
public abstract interface Rec<R, out T : R|test/Rec<R, T>|> : R|kotlin/Any| {
|
||||
public abstract fun t(): R|T|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class ClassParamUsedInFun<T> : R|kotlin/Any| {
|
||||
public final class ClassParamUsedInFun<in T> : R|kotlin/Any| {
|
||||
public final fun f(t: R|T|): R|kotlin/Int|
|
||||
|
||||
public constructor(): R|test/ClassParamUsedInFun<T>|
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class ClassWithTypePP<P, Q> : R|kotlin/Any| {
|
||||
public final class ClassWithTypePP<P, Q : R|P|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassWithTypePP<P, Q>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public open class ClassWithTypePRefNext<R, P> : R|kotlin/Any| {
|
||||
public open class ClassWithTypePRefNext<R : R|kotlin/collections/Iterable<P>|?, P> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassWithTypePRefNext<R, P>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class ClassWithTypePRefSelf<P> : R|kotlin/Any| {
|
||||
public final class ClassWithTypePRefSelf<P : R|kotlin/Enum<P>|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassWithTypePRefSelf<P>|
|
||||
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class ClassWithTypePRefSelfAndClass<P> : R|kotlin/Any| {
|
||||
public final class ClassWithTypePRefSelfAndClass<P : R|test/ClassWithTypePRefSelfAndClass<P>|?> : R|kotlin/Any| {
|
||||
public constructor(): R|test/ClassWithTypePRefSelfAndClass<P>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class MethodTypePOneUpperBound : R|kotlin/Any| {
|
||||
public open fun <T> bar(): R|kotlin/Unit|
|
||||
public open fun <T : R|kotlin/Cloneable|?> bar(): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/MethodTypePOneUpperBound|
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class MethodTypePTwoUpperBounds : R|kotlin/Any| {
|
||||
public open fun <T> foo(): R|kotlin/Unit|
|
||||
public open fun <T : R|kotlin/Cloneable|?, R|java/lang/Runnable|?> foo(): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/MethodTypePTwoUpperBounds|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public final class MethodWithTypePP : R|kotlin/Any| {
|
||||
public final fun <P, Q> f(): R|kotlin/Unit|
|
||||
public final fun <P, Q : R|P|> f(): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/MethodWithTypePP|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class MethodWithTypePRefClassP<P> : R|kotlin/Any| {
|
||||
public final fun <Q> f(): R|kotlin/Unit|
|
||||
public final fun <Q : R|P|> f(): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/MethodWithTypePRefClassP<P>|
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ public final class UnboundWildcard : R|kotlin/Any| {
|
||||
|
||||
public constructor(): R|test/UnboundWildcard|
|
||||
|
||||
public abstract interface MyClass<T> : R|kotlin/Any| {
|
||||
public abstract interface MyClass<T : R|kotlin/CharSequence|?> : R|kotlin/Any| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class AllBoundsInWhen : R|kotlin/Any| {
|
||||
public open fun <T> foo(): R|kotlin/Unit|
|
||||
public open fun <T : R|java/io/Serializable|> foo(): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/AllBoundsInWhen|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class MethodWithTypeParameters : R|kotlin/Any| {
|
||||
public open fun <A, B> foo(a: R|A|, b: R|kotlin/collections/List<B>|, c: R|kotlin/collections/MutableList<in kotlin/String>|): R|kotlin/Unit|
|
||||
public open fun <A, B : R|java/lang/Runnable|, R|kotlin/collections/List<kotlin/Cloneable>|> foo(a: R|A|, b: R|kotlin/collections/List<B>|, c: R|kotlin/collections/MutableList<in kotlin/String>|): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/MethodWithTypeParameters|
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -3,7 +3,7 @@ public final class StarProjection : R|kotlin/Any| {
|
||||
|
||||
public constructor(): R|test/StarProjection|
|
||||
|
||||
public abstract interface MyClass<T> : R|kotlin/Any| {
|
||||
public abstract interface MyClass<T : R|kotlin/CharSequence|?> : R|kotlin/Any| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class ExtraUpperBound : R|kotlin/Any| {
|
||||
public open fun <A> foo(): R|kotlin/String|?
|
||||
public open fun <A : R|java/lang/Runnable|?> foo(): R|kotlin/String|?
|
||||
|
||||
public constructor(): R|test/ExtraUpperBound|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class MissingUpperBound : R|kotlin/Any| {
|
||||
public open fun <A> foo(): R|kotlin/String|?
|
||||
public open fun <A : R|java/lang/Runnable|?, R|kotlin/Cloneable|?> foo(): R|kotlin/String|?
|
||||
|
||||
public constructor(): R|test/MissingUpperBound|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class WrongTypeParameterBoundStructure1 : R|kotlin/Any| {
|
||||
public open fun <A, B> foo(p0: R|A|, p1: R|kotlin/collections/List<B>|?): R|kotlin/Unit|
|
||||
public open fun <A, B : R|java/lang/Runnable|?, R|kotlin/collections/List<kotlin/Cloneable>|?> foo(p0: R|A|, p1: R|kotlin/collections/List<B>|?): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/WrongTypeParameterBoundStructure1|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class WrongTypeParameterBoundStructure2 : R|kotlin/Any| {
|
||||
public open fun <A, B> foo(p0: R|A|, p1: R|kotlin/collections/List<B>|?): R|kotlin/Unit|
|
||||
public open fun <A, B : R|java/lang/Runnable|?, R|kotlin/collections/List<kotlin/Cloneable>|?> foo(p0: R|A|, p1: R|kotlin/collections/List<B>|?): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/WrongTypeParameterBoundStructure2|
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface InheritMutability : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/InheritMutability.Super| {
|
||||
public abstract fun <B> foo(a: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <B : R|kotlin/collections/MutableList<kotlin/String>|> foo(a: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A> foo(a: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <A : R|kotlin/collections/MutableList<kotlin/String>|> foo(a: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface InheritNullability : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/InheritNullability.Super| {
|
||||
public abstract fun <B> foo(a: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <B : R|kotlin/CharSequence|> foo(a: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A> foo(a: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <A : R|kotlin/CharSequence|> foo(a: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface InheritReadOnliness : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/InheritReadOnliness.Super| {
|
||||
public abstract fun <B> foo(a: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <B : R|kotlin/collections/List<kotlin/String>|> foo(a: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A> foo(a: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <A : R|kotlin/collections/List<kotlin/String>|> foo(a: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface TwoBounds : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/TwoBounds.Super| {
|
||||
public abstract fun <B> foo(a: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <B : R|kotlin/CharSequence|, R|kotlin/Cloneable|> foo(a: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A> foo(a: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <A : R|kotlin/CharSequence|, R|kotlin/Cloneable|> foo(a: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -1,16 +1,16 @@
|
||||
public abstract interface TwoSuperclasses : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/TwoSuperclasses.Super1|, R|test/TwoSuperclasses.Super2| {
|
||||
public abstract fun <C> foo(a: R|C|): R|kotlin/Unit|
|
||||
public abstract fun <C : R|kotlin/CharSequence|> foo(a: R|C|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super1 : R|kotlin/Any| {
|
||||
public abstract fun <A> foo(a: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <A : R|kotlin/CharSequence|> foo(a: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super2 : R|kotlin/Any| {
|
||||
public abstract fun <B> foo(a: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <B : R|kotlin/CharSequence|> foo(a: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface TwoTypeParameters : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/TwoTypeParameters.Super| {
|
||||
public abstract fun <B, A> foo(a: R|B|, b: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <B : R|kotlin/CharSequence|, A : R|kotlin/Cloneable|> foo(a: R|B|, b: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A, B> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <A : R|kotlin/CharSequence|, B : R|kotlin/Cloneable|> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface UseParameterAsUpperBound : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/UseParameterAsUpperBound.Super| {
|
||||
public abstract fun <B, A> foo(a: R|B|, b: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <B, A : R|B|> foo(a: R|B|, b: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A, B> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <A, B : R|A|> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface UseParameterInUpperBound : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/UseParameterInUpperBound.Super| {
|
||||
public abstract fun <B, A> foo(a: R|B|, b: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <B, A : R|kotlin/collections/List<B>|> foo(a: R|B|, b: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A, B> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <A, B : R|kotlin/collections/List<A>|> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
public abstract interface UseParameterInUpperBoundWithKotlinSignature : R|kotlin/Any| {
|
||||
public abstract interface Sub : R|test/UseParameterInUpperBoundWithKotlinSignature.Super| {
|
||||
public abstract fun <B, A> foo(b: R|B|, a: R|A|): R|kotlin/Unit|
|
||||
public abstract fun <B, A : R|kotlin/collections/List<B>|> foo(b: R|B|, a: R|A|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
public abstract interface Super : R|kotlin/Any| {
|
||||
public abstract fun <A, B> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
public abstract fun <A, B : R|kotlin/collections/List<A>|> foo(a: R|A|, b: R|B|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class Max : R|kotlin/Any| {
|
||||
public open fun <T> max(p0: R|kotlin/collections/Collection<T>|?): R|T|
|
||||
public open fun <T : R|kotlin/Any|?, R|kotlin/Comparable<T>|?> max(p0: R|kotlin/collections/Collection<T>|?): R|T|
|
||||
|
||||
public constructor(): R|test/Max|
|
||||
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
public final fun <P, Q> funParamReferencesParam(): R|kotlin/Int|
|
||||
public final fun <P, Q : R|P|> funParamReferencesParam(): R|kotlin/Int|
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final fun <T> foo(): R|kotlin/Unit|
|
||||
public final fun <T : R|test/Foo|, R|test/Bar|> foo(): R|kotlin/Unit|
|
||||
|
||||
public abstract interface Bar : R|kotlin/Any| {
|
||||
}
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
public final fun <A> uno(): R|kotlin/Int|
|
||||
public final fun <A : R|java/lang/Number|> uno(): R|kotlin/Int|
|
||||
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
public final fun <A> tres(): R|kotlin/Int|
|
||||
public final fun <A : R|java/lang/Number|, R|java/io/Serializable|> tres(): R|kotlin/Int|
|
||||
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
public final fun <A> dos(): R|kotlin/Int|
|
||||
public final fun <A : R|java/io/Serializable|> dos(): R|kotlin/Int|
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
public final class InnerClassReferencesOuterTP<P> : R|kotlin/Any| {
|
||||
public constructor(): R|test/InnerClassReferencesOuterTP<P>|
|
||||
|
||||
public final inner class Inner<Q> : R|kotlin/Any| {
|
||||
public final inner class Inner<Q : R|P|> : R|kotlin/Any| {
|
||||
public constructor(): R|test/InnerClassReferencesOuterTP.Inner<Q>|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ public final class MembersReferenceOuterTP<P> : R|kotlin/Any| {
|
||||
public constructor(): R|test/MembersReferenceOuterTP<P>|
|
||||
|
||||
public final inner class Inner : R|kotlin/Any| {
|
||||
public final fun <Q> f(): R|kotlin/Unit|
|
||||
public final fun <Q : R|P|> f(): R|kotlin/Unit|
|
||||
|
||||
public final fun g(p: R|P|): R|P|
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public final class A<I> : R|kotlin/Any| {
|
||||
public final class A<in I> : R|kotlin/Any| {
|
||||
private/*private to this*/ final fun bas(): R|I|
|
||||
|
||||
public constructor(): R|test/A<I>|
|
||||
|
||||
Vendored
+7
-7
@@ -4,7 +4,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Double
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test1d (x: kotlin.Double, y: kotlin.Double): IrErrorType declared in <root>'
|
||||
ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Comparable.compareTo]>#' type=IrErrorType
|
||||
ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo]>#' type=IrErrorType
|
||||
GET_VAR 'y: kotlin.Double declared in <root>.test1d' type=kotlin.Double origin=null
|
||||
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Double
|
||||
@@ -16,7 +16,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'y: kotlin.Any declared in <root>.test2d' type=kotlin.Any origin=null
|
||||
then: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Comparable.compareTo]>#' type=IrErrorType
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo, kotlin/Double.compareTo]>#' type=IrErrorType
|
||||
GET_VAR 'y: kotlin.Any declared in <root>.test2d' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Boolean value=0
|
||||
BRANCH
|
||||
@@ -50,7 +50,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
VALUE_PARAMETER name:y index:1 type:kotlin.Float
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test1f (x: kotlin.Float, y: kotlin.Float): IrErrorType declared in <root>'
|
||||
ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Comparable.compareTo]>#' type=IrErrorType
|
||||
ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo]>#' type=IrErrorType
|
||||
GET_VAR 'y: kotlin.Float declared in <root>.test1f' type=kotlin.Float origin=null
|
||||
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float
|
||||
@@ -62,7 +62,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'y: kotlin.Any declared in <root>.test2f' type=kotlin.Any origin=null
|
||||
then: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Comparable.compareTo]>#' type=IrErrorType
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo]>#' type=IrErrorType
|
||||
GET_VAR 'y: kotlin.Any declared in <root>.test2f' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Boolean value=0
|
||||
BRANCH
|
||||
@@ -141,7 +141,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Float
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test1fr (x: kotlin.Float): IrErrorType declared in <root>'
|
||||
ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Comparable.compareTo]>#' type=IrErrorType
|
||||
ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo]>#' type=IrErrorType
|
||||
GET_VAR 'x: kotlin.Float declared in <root>.test1fr' type=kotlin.Float origin=null
|
||||
FUN name:test2fr visibility:public modality:FINAL <> (x:kotlin.Any) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any
|
||||
@@ -152,7 +152,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
|
||||
GET_VAR 'x: kotlin.Any declared in <root>.test2fr' type=kotlin.Any origin=null
|
||||
then: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Comparable.compareTo]>#' type=IrErrorType
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo]>#' type=IrErrorType
|
||||
GET_VAR 'x: kotlin.Any declared in <root>.test2fr' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Boolean value=0
|
||||
BRANCH
|
||||
@@ -167,7 +167,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
|
||||
GET_VAR 'x: kotlin.Any declared in <root>.test3fr' type=kotlin.Any origin=null
|
||||
then: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Comparable.compareTo]>#' type=IrErrorType
|
||||
arg0: ERROR_CALL 'Unresolved reference: <Ambiguity: compareTo, [kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo, kotlin/Float.compareTo]>#' type=IrErrorType
|
||||
GET_VAR 'x: kotlin.Any declared in <root>.test3fr' type=kotlin.Any origin=null
|
||||
arg1: CONST Int type=kotlin.Boolean value=0
|
||||
BRANCH
|
||||
|
||||
+30
-30
@@ -102,87 +102,87 @@ FILE fqName:<root> fileName:/kt30020.kt
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:add visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:E of <uninitialized parent>) returnType:kotlin.Boolean
|
||||
FUN FAKE_OVERRIDE name:add visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:kotlin.Int) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun add (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
|
||||
FUN FAKE_OVERRIDE name:addAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:element index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:addAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun addAll (index: kotlin.Int, elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:index index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:elements index:1 type:kotlin.collections.Collection<E of <uninitialized parent>>
|
||||
VALUE_PARAMETER name:elements index:1 type:kotlin.collections.Collection<kotlin.Int>
|
||||
FUN FAKE_OVERRIDE name:clear visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList) returnType:kotlin.Unit
|
||||
overridden:
|
||||
public abstract fun clear (): kotlin.Unit declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList) returnType:kotlin.collections.MutableListIterator<E of <uninitialized parent>>
|
||||
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList) returnType:kotlin.collections.MutableListIterator<kotlin.Int>
|
||||
overridden:
|
||||
public abstract fun listIterator (): kotlin.collections.MutableListIterator<E of <uninitialized parent>> declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
FUN FAKE_OVERRIDE name:remove visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:E of <uninitialized parent>) returnType:kotlin.Boolean
|
||||
FUN FAKE_OVERRIDE name:remove visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:kotlin.Int) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun remove (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
|
||||
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:element index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun removeAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
|
||||
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int) returnType:E of <uninitialized parent>
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int>
|
||||
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int) returnType:kotlin.Int
|
||||
overridden:
|
||||
public abstract fun removeAt (index: kotlin.Int): E of <uninitialized parent> declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:index index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:retainAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
|
||||
FUN FAKE_OVERRIDE name:retainAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun retainAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
|
||||
FUN FAKE_OVERRIDE name:set visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, element:E of <uninitialized parent>) returnType:E of <uninitialized parent>
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int>
|
||||
FUN FAKE_OVERRIDE name:set visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, element:kotlin.Int) returnType:kotlin.Int
|
||||
overridden:
|
||||
public abstract fun set (index: kotlin.Int, element: E of <uninitialized parent>): E of <uninitialized parent> declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:index index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:element index:1 type:E of <uninitialized parent>
|
||||
FUN FAKE_OVERRIDE name:subList visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, fromIndex:kotlin.Int, toIndex:kotlin.Int) returnType:kotlin.collections.MutableList<E of <uninitialized parent>>
|
||||
VALUE_PARAMETER name:element index:1 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:subList visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, fromIndex:kotlin.Int, toIndex:kotlin.Int) returnType:kotlin.collections.MutableList<kotlin.Int>
|
||||
overridden:
|
||||
public abstract fun subList (fromIndex: kotlin.Int, toIndex: kotlin.Int): kotlin.collections.MutableList<E of <uninitialized parent>> declared in kotlin.collections.MutableList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
|
||||
VALUE_PARAMETER name:fromIndex index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:toIndex index:1 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:E of <uninitialized parent>) returnType:kotlin.Boolean
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in <no parent>.List
|
||||
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
|
||||
VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, element:E of <uninitialized parent>) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:element index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, element:kotlin.Int) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.Collection
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection
|
||||
VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:element index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in <no parent>.List
|
||||
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int>
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.Collection
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, index:kotlin.Int) returnType:E of <uninitialized parent>
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int>
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, index:kotlin.Int) returnType:kotlin.Int
|
||||
overridden:
|
||||
public abstract fun get (index: kotlin.Int): E of <uninitialized parent> declared in <no parent>.List
|
||||
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
|
||||
VALUE_PARAMETER name:index index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:E of <uninitialized parent>) returnType:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Int
|
||||
overridden:
|
||||
public abstract fun indexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List
|
||||
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
|
||||
VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
|
||||
VALUE_PARAMETER name:element index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun isEmpty (): kotlin.Boolean declared in <no parent>.List
|
||||
@@ -191,19 +191,19 @@ FILE fqName:<root> fileName:/kt30020.kt
|
||||
overridden:
|
||||
public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.Collection
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection
|
||||
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.collections.Iterator<E of <uninitialized parent>>
|
||||
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.collections.Iterator<kotlin.Int>
|
||||
overridden:
|
||||
public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in <no parent>.List
|
||||
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
|
||||
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.MutableCollection) returnType:kotlin.collections.MutableIterator<E of <uninitialized parent>>
|
||||
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.MutableCollection) returnType:kotlin.collections.MutableIterator<kotlin.Int>
|
||||
overridden:
|
||||
public abstract fun iterator (): kotlin.collections.MutableIterator<E of <uninitialized parent>> declared in <no parent>.MutableCollection
|
||||
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.MutableCollection
|
||||
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:E of <uninitialized parent>) returnType:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Int
|
||||
overridden:
|
||||
public abstract fun lastIndexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List
|
||||
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
|
||||
VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
|
||||
VALUE_PARAMETER name:element index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
|
||||
|
||||
+4
-4
@@ -44,8 +44,8 @@ FILE fqName:<root> fileName:/when.kt
|
||||
GET_VAR 'val tmp0_subject: kotlin.Any? [val] declared in <root>.testWithSubject' type=kotlin.Any? origin=null
|
||||
then: CONST String type=kotlin.String value="!Number"
|
||||
BRANCH
|
||||
if: ERROR_CALL 'Unresolved reference: <Ambiguity: contains, [kotlin/collections/Set.contains, kotlin/collections/Collection.contains]>#' type=IrErrorType
|
||||
GET_VAR 'val tmp0_subject: kotlin.Any? [val] declared in <root>.testWithSubject' type=kotlin.Any? origin=null
|
||||
if: CALL 'public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.Set' type=kotlin.Boolean origin=null
|
||||
element: GET_VAR 'val tmp0_subject: kotlin.Any? [val] declared in <root>.testWithSubject' type=kotlin.Any? origin=null
|
||||
then: CONST String type=kotlin.String value="nothingness?"
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
@@ -74,8 +74,8 @@ FILE fqName:<root> fileName:/when.kt
|
||||
GET_VAR 'x: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
|
||||
then: CONST String type=kotlin.String value="!Number"
|
||||
BRANCH
|
||||
if: ERROR_CALL 'Unresolved reference: <Ambiguity: contains, [kotlin/collections/Set.contains, kotlin/collections/Collection.contains]>#' type=IrErrorType
|
||||
GET_VAR 'x: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
|
||||
if: CALL 'public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.Set' type=kotlin.Boolean origin=null
|
||||
element: GET_VAR 'x: kotlin.Any? declared in <root>.test' type=kotlin.Any? origin=null
|
||||
then: CONST String type=kotlin.String value="nothingness?"
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
|
||||
Reference in New Issue
Block a user