FIR Java: map classes to make java type-parameters have correct bounds

Really, this commit implements early J2K mapping for all Java types.
It's questionable and probably wrong at least for super-types,
because, for example, we cannot resolve spliterator() in classes
derived from java.lang.Iterable
This commit is contained in:
Simon Ogorodnik
2019-04-23 04:22:12 +03:00
committed by Mikhail Glukhikh
parent cb91c6b977
commit 3e69838f48
279 changed files with 338 additions and 337 deletions
@@ -1,6 +1,6 @@
public abstract interface Comparator<T> : R|java/lang/Object| {
public abstract interface Comparator<T> : R|kotlin/Any| {
public abstract operator fun compare(o1: R|ft<T, T?>|!, o2: R|ft<T, T?>|!): R|kotlin/Int|
public abstract operator fun equals(obj: R|ft<kotlin/Any, kotlin/Any?>|!): R|kotlin/Boolean|
public abstract operator fun equals(obj: R|kotlin/Any|?): R|kotlin/Boolean|
}
@@ -1,2 +1,2 @@
public final class DifferentParametersCount : R|java/lang/Object| {
public final class DifferentParametersCount : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public final class FakeStaticOverrides : R|java/lang/Object| {
public final class FakeStaticOverrides : R|kotlin/Any| {
}
@@ -1,4 +1,4 @@
public abstract interface FilenameFilter : R|java/lang/Object| {
public abstract interface FilenameFilter : R|kotlin/Any| {
public abstract operator fun accept(dir: R|ft<java/io/File, java/io/File?>|!, name: R|ft<kotlin/String, kotlin/String?>|!): R|kotlin/Boolean|
}
@@ -1,4 +1,4 @@
public abstract interface GenericInterfaceParameterWithSelfBound<T : R|test/GenericInterfaceParameterWithSelfBound<T>|> : R|java/lang/Object| {
public abstract interface GenericInterfaceParameterWithSelfBound<T : R|test/GenericInterfaceParameterWithSelfBound<T>|> : R|kotlin/Any| {
public abstract operator fun method(t: R|ft<T, T?>|!): R|ft<T, T?>|!
}
@@ -1,4 +1,4 @@
public abstract interface GenericInterfaceParametersWithBounds<A : R|java/lang/Comparable<A>|, R|java/lang/Cloneable|, B : R|java/util/List<A>|> : R|java/lang/Object| {
public abstract interface GenericInterfaceParametersWithBounds<A : R|kotlin/Comparable<A>|, R|kotlin/Cloneable|, B : R|kotlin/collections/List<A>|> : R|kotlin/Any| {
public abstract operator fun method(a: R|kotlin/Array<ft<A, A?>>|, b: R|ft<B, B?>|!): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public abstract interface GenericMethodParameters : R|java/lang/Object| {
public abstract operator fun <A : R|java/lang/CharSequence|, B : R|java/util/List<A>|> method(a: R|kotlin/Array<ft<A, A?>>|, b: R|ft<B, B?>|!): R|kotlin/Unit|
public abstract interface GenericMethodParameters : R|kotlin/Any| {
public abstract operator fun <A : R|kotlin/CharSequence|, B : R|kotlin/collections/List<A>|> method(a: R|kotlin/Array<ft<A, A?>>|, b: R|ft<B, B?>|!): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public abstract interface InterfaceWithObjectMethod : R|java/lang/Object| {
public abstract operator fun toString(): R|ft<kotlin/String, kotlin/String?>|!
public abstract interface InterfaceWithObjectMethod : R|kotlin/Any| {
public abstract operator fun toString(): R|kotlin/String|
}
+1 -1
View File
@@ -1,2 +1,2 @@
public abstract interface Nested : R|java/lang/Object| {
public abstract interface Nested : R|kotlin/Any| {
}
@@ -1,4 +1,4 @@
public abstract interface Runnable : R|java/lang/Object| {
public abstract interface Runnable : R|kotlin/Any| {
public abstract operator fun run(): R|kotlin/Unit|
}
@@ -1,2 +1,2 @@
public abstract interface SamSubinterfaceOfTwo : R|java/lang/Object| {
public abstract interface SamSubinterfaceOfTwo : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public final class StaticOverrides : R|java/lang/Object| {
public final class StaticOverrides : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface SubstitutedSamInterface : R|java/util/Comparator<java/lang/String>| {
public abstract interface SubstitutedSamInterface : R|java/util/Comparator<kotlin/String>| {
}
@@ -1,2 +1,2 @@
public abstract interface SubstitutedSamInterfaceSubclassOfBuiltin : R|java/lang/Comparable<test/SubstitutedSamInterfaceSubclassOfBuiltin>| {
public abstract interface SubstitutedSamInterfaceSubclassOfBuiltin : R|kotlin/Comparable<test/SubstitutedSamInterfaceSubclassOfBuiltin>| {
}
@@ -1,4 +1,4 @@
public abstract interface VarargParameter : R|java/lang/Object| {
public abstract operator fun f(vararg strings: R|kotlin/Array<ft<java/lang/String, java/lang/String?>>|): R|kotlin/Unit|
public abstract interface VarargParameter : R|kotlin/Any| {
public abstract operator fun f(vararg strings: R|kotlin/Array<ft<kotlin/String, kotlin/String?>>|): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public open class AmbiguousAdapters : R|java/lang/Object| {
public open class AmbiguousAdapters : R|kotlin/Any| {
public open operator fun foo(r: R|ft<java/lang/Runnable, java/lang/Runnable?>|!): R|kotlin/Unit|
public open operator fun foo(c: R|ft<java/io/Closeable, java/io/Closeable?>|!): R|kotlin/Unit|
@@ -1,4 +1,4 @@
public open class Basic : R|java/lang/Object| {
public open class Basic : R|kotlin/Any| {
public open operator fun foo(r: R|ft<java/lang/Runnable, java/lang/Runnable?>|!): R|kotlin/Unit|
public open static operator fun bar(r: R|ft<java/lang/Runnable, java/lang/Runnable?>|!): R|kotlin/Unit|
@@ -1,4 +1,4 @@
public open class Constructor : R|java/lang/Object| {
public open class Constructor : R|kotlin/Any| {
public constructor(r: R|ft<java/lang/Runnable, java/lang/Runnable?>|!): R|test/Constructor|
}
@@ -1,4 +1,4 @@
public open class ConstructorWithAnnotations : R|java/lang/Object| {
public open class ConstructorWithAnnotations : R|kotlin/Any| {
public constructor(r: R|ft<java/lang/Runnable, java/lang/Runnable?>|!, @R|org/jetbrains/annotations/NotNull|() s: R|kotlin/String|): R|test/ConstructorWithAnnotations|
}
@@ -1,2 +1,2 @@
public abstract interface DeepSamLoop : R|java/lang/Object| {
public abstract interface DeepSamLoop : R|kotlin/Any| {
}
@@ -1,10 +1,10 @@
public open class NonTrivialFunctionType : R|java/lang/Object| {
public open class NonTrivialFunctionType : R|kotlin/Any| {
public open operator fun foo(filenameFilter: R|ft<java/io/FilenameFilter, java/io/FilenameFilter?>|!): R|kotlin/Unit|
public open operator fun foo(comparator: R|ft<java/util/Comparator<ft<kotlin/String, kotlin/String?>>, java/util/Comparator<ft<kotlin/String, kotlin/String?>>?>|!): R|kotlin/Unit|
public open operator fun wildcardUnbound(comparator: R|ft<java/util/Comparator<*>, java/util/Comparator<*>?>|!): R|kotlin/Unit|
public open operator fun wildcardBound(comparator: R|ft<java/util/Comparator<in java/lang/CharSequence>, java/util/Comparator<in java/lang/CharSequence>?>|!): R|kotlin/Unit|
public open operator fun wildcardBound(comparator: R|ft<java/util/Comparator<in kotlin/CharSequence>, java/util/Comparator<in kotlin/CharSequence>?>|!): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public open class PrivateSamAdapter : R|java/lang/Object| {
public open class PrivateSamAdapter : R|kotlin/Any| {
private open operator fun samAdapter(r: R|ft<test/PrivateSamAdapter.SamInterface, test/PrivateSamAdapter.SamInterface?>|!): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public abstract interface SelfAsParameter : R|java/lang/Object| {
public abstract interface SelfAsParameter : R|kotlin/Any| {
public abstract operator fun foo(p: R|ft<test/SelfAsParameter, test/SelfAsParameter?>|!): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public open class SeveralSamParameters : R|java/lang/Object| {
public open class SeveralSamParameters : R|kotlin/Any| {
public open static operator fun findMaxAndInvokeCallback(comparator: R|ft<java/util/Comparator<ft<kotlin/String, kotlin/String?>>, java/util/Comparator<ft<kotlin/String, kotlin/String?>>?>|!, a: R|ft<kotlin/String, kotlin/String?>|!, b: R|ft<kotlin/String, kotlin/String?>|!, afterRunnable: R|ft<java/lang/Runnable, java/lang/Runnable?>|!): R|ft<kotlin/String, kotlin/String?>|!
}
@@ -1,4 +1,4 @@
public open class TypeParameterOfClass<T> : R|java/lang/Object| {
public open class TypeParameterOfClass<T> : R|kotlin/Any| {
public open operator fun foo(comparator: R|ft<java/util/Comparator<ft<T, T?>>, java/util/Comparator<ft<T, T?>>?>|!): R|kotlin/Unit|
}
@@ -1,8 +1,8 @@
public open class TypeParameterOfMethod : R|java/lang/Object| {
public open class TypeParameterOfMethod : R|kotlin/Any| {
public open static operator fun <T> max(comparator: R|ft<java/util/Comparator<ft<T, T?>>, java/util/Comparator<ft<T, T?>>?>|!, value1: R|ft<T, T?>|!, value2: R|ft<T, T?>|!): R|ft<T, T?>|!
public open static operator fun <T : R|java/lang/CharSequence|> max2(comparator: R|ft<java/util/Comparator<ft<T, T?>>, java/util/Comparator<ft<T, T?>>?>|!, value1: R|ft<T, T?>|!, value2: R|ft<T, T?>|!): R|ft<T, T?>|!
public open static operator fun <T : R|kotlin/CharSequence|> max2(comparator: R|ft<java/util/Comparator<ft<T, T?>>, java/util/Comparator<ft<T, T?>>?>|!, value1: R|ft<T, T?>|!, value2: R|ft<T, T?>|!): R|ft<T, T?>|!
public open static operator fun <A : R|java/lang/CharSequence|, B : R|java/util/List<A>|> method(a: R|ft<java/util/Comparator<ft<A, A?>>, java/util/Comparator<ft<A, A?>>?>|!, b: R|ft<B, B?>|!): R|kotlin/Unit|
public open static operator fun <A : R|kotlin/CharSequence|, B : R|kotlin/collections/List<A>|> method(a: R|ft<java/util/Comparator<ft<A, A?>>, java/util/Comparator<ft<A, A?>>?>|!, b: R|ft<B, B?>|!): R|kotlin/Unit|
}
@@ -1,2 +1,2 @@
public open class TypeParameterOfOuterClass<T> : R|java/lang/Object| {
public open class TypeParameterOfOuterClass<T> : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface AdapterDoesntOverrideDeclaration : R|java/lang/Object| {
public abstract interface AdapterDoesntOverrideDeclaration : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedAdapterAndDeclaration : R|java/lang/Object| {
public abstract interface InheritedAdapterAndDeclaration : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedAmbiguousAdapters : R|java/lang/Object| {
public abstract interface InheritedAmbiguousAdapters : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedAndOverriddenAmbiguousAdapters : R|java/lang/Object| {
public abstract interface InheritedAndOverriddenAmbiguousAdapters : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedOverridden : R|java/lang/Object| {
public abstract interface InheritedOverridden : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedOverriddenAdapter : R|java/lang/Object| {
public abstract interface InheritedOverriddenAdapter : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedSameAdapters : R|java/lang/Object| {
public abstract interface InheritedSameAdapters : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedSameAdaptersWithSubstitution : R|java/lang/Object| {
public abstract interface InheritedSameAdaptersWithSubstitution : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface InheritedSimple : R|java/lang/Object| {
public abstract interface InheritedSimple : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface OverriddenAmbiguousAdapters : R|java/lang/Object| {
public abstract interface OverriddenAmbiguousAdapters : R|kotlin/Any| {
}