Raw FIR: add Any/Enum/Annotation to supertypes iff no supertypes exists

This commit is contained in:
Mikhail Glukhikh
2019-04-02 15:16:12 +03:00
parent 7dd89a48f0
commit 33729aaf9b
36 changed files with 75 additions and 63 deletions
+2 -2
View File
@@ -1,9 +1,9 @@
FILE: lists.kt
public abstract class MyStringList : R|kotlin/collections/List<kotlin/String>|, R|kotlin/Any| {
public abstract class MyStringList : R|kotlin/collections/List<kotlin/String>| {
public constructor(): super<R|kotlin/Any|>()
}
public abstract class MyMutableStringList : R|kotlin/collections/MutableList<kotlin/String>|, R|kotlin/Any| {
public abstract class MyMutableStringList : R|kotlin/collections/MutableList<kotlin/String>| {
public constructor(): super<R|kotlin/Any|>()
}
+3 -3
View File
@@ -1,11 +1,11 @@
FILE: enum.kt
public abstract interface Some {
public abstract interface Some : R|kotlin/Any| {
}
public final object O1 : R|Some|, R|kotlin/Any| {
public final object O1 : R|Some| {
public constructor(): super<R|kotlin/Any|>()
}
public final object O2 : R|Some|, R|kotlin/Any| {
public final object O2 : R|Some| {
public constructor(): super<R|kotlin/Any|>()
}
@@ -1,5 +1,5 @@
FILE: dispatchReceiver.kt
public abstract interface Base {
public abstract interface Base : R|kotlin/Any| {
public abstract fun check(): R|kotlin/Unit|
}
@@ -8,7 +8,7 @@ FILE: complexTypes.kt
}
}
public abstract interface Test {
public abstract interface Test : R|kotlin/Any| {
public abstract val x: R|a/b/C.D<out kotlin/CharSequence, *, in kotlin/collections/List<*>, *>|
public get(): R|a/b/C.D<out kotlin/CharSequence, *, in kotlin/collections/List<*>, *>|
@@ -1,5 +1,5 @@
FILE: noPrimaryConstructor.kt
public final class NoPrimary {
public final class NoPrimary : R|kotlin/Any| {
public final val x: R|kotlin/String|
public get(): R|kotlin/String|
@@ -1,12 +1,12 @@
FILE: simpleClass.kt
public abstract interface SomeInterface {
public abstract interface SomeInterface : R|kotlin/Any| {
public abstract fun foo(x: R|kotlin/Int|, y: R|kotlin/String|): R|kotlin/String|
public abstract val bar: R|kotlin/Boolean|
public get(): R|kotlin/Boolean|
}
public final class SomeClass : R|SomeInterface|, R|kotlin/Any| {
public final class SomeClass : R|SomeInterface| {
public constructor(): super<R|kotlin/Any|>()
private final val baz: R|kotlin/Int| = Int(42)
@@ -1,5 +1,5 @@
FILE: typeParameters.kt
<out T : R|kotlin/Any|> public abstract interface List {
<out T : R|kotlin/Any|> public abstract interface List : R|kotlin/Any| {
public abstract operator fun get(index: R|kotlin/Int|): R|T|
public abstract infix fun concat(other: R|List<T>|): R|List<T>|
@@ -7,7 +7,7 @@ FILE: typeParameters.kt
}
public final typealias StringList = R|List<out kotlin/String>|
public final typealias AnyList = R|List<*>|
<out T : R|kotlin/Any|> public abstract class AbstractList : R|List<T>|, R|kotlin/Any| {
<out T : R|kotlin/Any|> public abstract class AbstractList : R|List<T>| {
public constructor(): super<R|kotlin/Any|>()
}
+2 -2
View File
@@ -11,7 +11,7 @@ FILE: functionTypes.kt
}
<T, out R> public abstract interface KProperty1 : R|KProperty<R>|, R|kotlin/Function1| {
}
<out R> public abstract interface KProperty {
<out R> public abstract interface KProperty : R|kotlin/Any| {
}
<R> public abstract interface KMutableProperty {
<R> public abstract interface KMutableProperty : R|kotlin/Any| {
}
+1 -1
View File
@@ -1,5 +1,5 @@
FILE: genericFunctions.kt
public abstract interface Any {
public abstract interface Any : R|kotlin/Any| {
}
<reified T : R|Any|> public final inline fun R|Any|.safeAs(): R|T|? {
^safeAs (this# as? R|T|)
@@ -1,5 +1,5 @@
FILE: ByteArray.kt
public abstract interface My {
public abstract interface My : R|kotlin/Any| {
public abstract val array: R|kotlin/ByteArray|
public get(): R|kotlin/ByteArray|
+1 -1
View File
@@ -6,7 +6,7 @@ FILE: three.kt
}
}
public abstract interface Y {
public abstract interface Y : R|kotlin/Any| {
public open fun baz(): R|kotlin/Unit| {
}
+2 -2
View File
@@ -1,12 +1,12 @@
FILE: simpleClass.kt
public abstract interface SomeInterface {
public abstract interface SomeInterface : R|kotlin/Any| {
public abstract fun foo(x: R|kotlin/Int|, y: R|kotlin/String|): R|kotlin/String|
public abstract val bar: R|kotlin/Boolean|
public get(): R|kotlin/Boolean|
}
public final class SomeClass : R|SomeInterface|, R|kotlin/Any| {
public final class SomeClass : R|SomeInterface| {
public constructor(): super<R|kotlin/Any|>()
private final val baz: R|kotlin/Int| = Int(42)
+2 -2
View File
@@ -1,8 +1,8 @@
FILE: simpleTypeAlias.kt
public abstract interface B {
public abstract interface B : R|kotlin/Any| {
}
public final typealias C = R|B|
public final class D : R|C|, R|kotlin/Any| {
public final class D : R|C| {
public constructor(): super<R|kotlin/Any|>()
}
+1 -1
View File
@@ -15,7 +15,7 @@ FILE: functionX.kt
}
public get(): R|kotlin/Function1<kotlin/String, kotlin/String>|
public final class MyFunction : R|kotlin/Function2<kotlin/Int, kotlin/String, kotlin/Unit>|, R|kotlin/Any| {
public final class MyFunction : R|kotlin/Function2<kotlin/Int, kotlin/String, kotlin/Unit>| {
public constructor(): super<R|kotlin/Any|>()
public final override fun invoke(p1: R|kotlin/Int|, p2: R|kotlin/String|): R|kotlin/Unit| {
@@ -3,9 +3,9 @@ FILE: typeAliasWithGeneric.kt
public constructor(): super<R|kotlin/Any|>()
}
<S, T : R|A|> public abstract interface B {
<S, T : R|A|> public abstract interface B : R|kotlin/Any| {
}
public final class D : R|C<A>|, R|kotlin/Any| {
public final class D : R|C<A>| {
public constructor(): super<R|kotlin/Any|>()
}
@@ -1,5 +1,5 @@
FILE: typeParameterVsNested.kt
public abstract interface Some {
public abstract interface Some : R|kotlin/Any| {
}
<T : R|test/Some|> public abstract class My : R|kotlin/Any| {
public constructor(): super<R|kotlin/Any|>()