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,2 +1,2 @@
@R|test/AnnotatedAnnotation|() public abstract annotation class AnnotatedAnnotation : R|java/lang/annotation/Annotation| {
@R|test/AnnotatedAnnotation|() public abstract annotation class AnnotatedAnnotation : R|kotlin/Annotation| {
}
@@ -1,4 +1,4 @@
public open class AnnotatedConstructor : R|java/lang/Object| {
public open class AnnotatedConstructor : R|kotlin/Any| {
@R|test/AnnotatedConstructor.Anno|(String(constructor)) public constructor(): R|test/AnnotatedConstructor|
}
@@ -1,4 +1,4 @@
public final enum class AnnotatedEnumEntry : R|java/lang/Enum<test/AnnotatedEnumEntry>| {
public final enum class AnnotatedEnumEntry : R|kotlin/Enum<test/AnnotatedEnumEntry>| {
@R|test/AnnotatedEnumEntry.Anno|(String(a)) public final static val E1: R|ft<test/AnnotatedEnumEntry, test/AnnotatedEnumEntry?>|!
public get(): R|ft<test/AnnotatedEnumEntry, test/AnnotatedEnumEntry?>|!
@@ -1,4 +1,4 @@
public open class AnnotatedField : R|java/lang/Object| {
public open class AnnotatedField : R|kotlin/Any| {
@R|test/AnnotatedField.Anno|(String(static)) public final static val x: R|kotlin/Int|
public get(): R|kotlin/Int|
@@ -1,4 +1,4 @@
public open class AnnotatedMethod : R|java/lang/Object| {
public open class AnnotatedMethod : R|kotlin/Any| {
@R|test/AnnotatedMethod.Anno|(Int(42)) public open operator fun f(): R|kotlin/Unit|
}
@@ -1,2 +1,2 @@
public/*package*/ open class AnnotatedParameterInInnerClassConstructor : R|java/lang/Object| {
public/*package*/ open class AnnotatedParameterInInnerClassConstructor : R|kotlin/Any| {
}
@@ -1,4 +1,4 @@
public/*package*/ open class AnnotatedTypeInFun : R|java/lang/Object| {
public/*package*/ open class AnnotatedTypeInFun : R|kotlin/Any| {
public/*package*/ open operator fun foo(@R|test/AnnotatedTypeInFun.Anno|(String(a)) a: @R|test/AnnotatedTypeInFun.Anno|(String(a)) R|ft<kotlin/String, kotlin/String?>|!, @R|test/AnnotatedTypeInFun.Anno|(String(b)) b: @R|test/AnnotatedTypeInFun.Anno|(String(b)) R|ft<kotlin/String, kotlin/String?>|!): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public open class AnnotatedValueParameter : R|java/lang/Object| {
public open class AnnotatedValueParameter : R|kotlin/Any| {
public open operator fun f(@R|test/AnnotatedValueParameter.Anno|(String(non-empty)) parameter: R|ft<kotlin/collections/MutableList<ft<kotlin/String, kotlin/String?>>, kotlin/collections/List<ft<kotlin/String, kotlin/String?>>?>|!): R|kotlin/Unit|
}
@@ -1,2 +1,2 @@
public abstract interface AnnotationInParam : R|java/lang/Object| {
public abstract interface AnnotationInParam : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public open class AnnotationRetentions : R|java/lang/Object| {
public open class AnnotationRetentions : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public open class AnnotationTargets : R|java/lang/Object| {
public open class AnnotationTargets : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public open class ArithmeticExpressionInParam : R|java/lang/Object| {
public open class ArithmeticExpressionInParam : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface ArrayOfEnumInParam : R|java/lang/Object| {
public abstract interface ArrayOfEnumInParam : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface ArrayOfStringInParam : R|java/lang/Object| {
public abstract interface ArrayOfStringInParam : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public open class ClassObjectArrayInParam : R|java/lang/Object| {
public open class ClassObjectArrayInParam : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public open class ClassObjectInParam : R|java/lang/Object| {
public open class ClassObjectInParam : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public open class ClassObjectInParamRaw : R|java/lang/Object| {
public open class ClassObjectInParamRaw : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public open class ClassObjectInParamVariance : R|java/lang/Object| {
public open class ClassObjectInParamVariance : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface CustomAnnotation : R|java/lang/Object| {
public abstract interface CustomAnnotation : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface CustomAnnotationWithDefaultParameter : R|java/lang/Object| {
public abstract interface CustomAnnotationWithDefaultParameter : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface EmptyArrayInParam : R|java/lang/Object| {
public abstract interface EmptyArrayInParam : R|kotlin/Any| {
}
@@ -1,4 +1,4 @@
public open class EnumArgumentWithCustomToString : R|java/lang/Object| {
public open class EnumArgumentWithCustomToString : R|kotlin/Any| {
@R|test/EnumArgumentWithCustomToString.EnumAnno|(R|test/EnumArgumentWithCustomToString.E.CAKE|()) @R|test/EnumArgumentWithCustomToString.EnumArrayAnno|(<implicitArrayOf>(R|test/EnumArgumentWithCustomToString.E.CAKE|(), R|test/EnumArgumentWithCustomToString.E.CAKE|())) public/*package*/ open operator fun annotated(): R|kotlin/Unit|
}
@@ -1,4 +1,4 @@
public final enum class EnumConstructorParameter : R|java/lang/Enum<test/EnumConstructorParameter>| {
public final enum class EnumConstructorParameter : R|kotlin/Enum<test/EnumConstructorParameter>| {
public final static val INSTANCE: R|ft<test/EnumConstructorParameter, test/EnumConstructorParameter?>|!
public get(): R|ft<test/EnumConstructorParameter, test/EnumConstructorParameter?>|!
@@ -1,2 +1,2 @@
public abstract interface EnumInParam : R|java/lang/Object| {
public abstract interface EnumInParam : R|kotlin/Any| {
}
@@ -1,4 +1,4 @@
public open class JavaDocDeprecated : R|java/lang/Object| {
public open class JavaDocDeprecated : R|kotlin/Any| {
public open operator fun getFoo(text: R|ft<kotlin/String, kotlin/String?>|!): R|ft<kotlin/String, kotlin/String?>|!
}
@@ -1,4 +1,4 @@
public open class NestedEnumArgument : R|java/lang/Object| {
public open class NestedEnumArgument : R|kotlin/Any| {
@R|test/NestedEnumArgument.Anno|(R|test/NestedEnumArgument.E.FIRST|()) public/*package*/ open operator fun foo(): R|kotlin/Unit|
}
@@ -1,2 +1,2 @@
public abstract interface PrimitiveValueInParam : R|java/lang/Object| {
public abstract interface PrimitiveValueInParam : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface RecursiveAnnotation : R|java/lang/Object| {
public abstract interface RecursiveAnnotation : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract interface RecursiveAnnotation2 : R|java/lang/Object| {
public abstract interface RecursiveAnnotation2 : R|kotlin/Any| {
}
@@ -1,2 +1,2 @@
public abstract annotation class SimpleAnnotation : R|java/lang/annotation/Annotation| {
public abstract annotation class SimpleAnnotation : R|kotlin/Annotation| {
}
@@ -1,2 +1,2 @@
public abstract interface StringConcatenationInParam : R|java/lang/Object| {
public abstract interface StringConcatenationInParam : R|kotlin/Any| {
}
@@ -1,4 +1,4 @@
public abstract interface StringConstantInParam : R|java/lang/Object| {
public abstract interface StringConstantInParam : R|kotlin/Any| {
public final static val HEL: R|ft<kotlin/String, kotlin/String?>|!
public get(): R|ft<kotlin/String, kotlin/String?>|!
@@ -1,2 +1,2 @@
public abstract interface StringInParam : R|java/lang/Object| {
public abstract interface StringInParam : R|kotlin/Any| {
}