Add FIR enhancement tests, fix some exceptions / problems around them

Test data and tests themselves are based on
compiler/testData/loadJava/compiledJava
This commit is contained in:
Mikhail Glukhikh
2019-03-04 14:09:48 +03:00
parent f31faafd72
commit 4255c9f774
274 changed files with 2636 additions and 43 deletions
@@ -0,0 +1,6 @@
<T> public abstract interface Comparator : R|java/lang/Object| {
public abstract operator function compare(o1: R|ft<T, T?>|!, o2: R|ft<T, T?>|!): R|kotlin/Int|
public abstract operator function equals(obj: R|ft<java/lang/Object, java/lang/Object?>|!): R|kotlin/Boolean|
}
@@ -0,0 +1,2 @@
public final class DifferentParametersCount : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public final class FakeStaticOverrides : R|java/lang/Object| {
}
@@ -0,0 +1,4 @@
public abstract interface FilenameFilter : R|java/lang/Object| {
public abstract operator function accept(dir: R|ft<java/io/File, java/io/File?>|!, name: R|ft<java/lang/String, java/lang/String?>|!): R|kotlin/Boolean|
}
@@ -0,0 +1,4 @@
<T> public abstract interface GenericInterfaceParameterWithSelfBound : R|java/lang/Object| {
public abstract operator function method(t: R|ft<T, T?>|!): R|ft<T, T?>|!
}
@@ -0,0 +1,4 @@
<A, B> public abstract interface GenericInterfaceParametersWithBounds : R|java/lang/Object| {
public abstract operator function method(a: R|kotlin/Array<ft<A, A?>>|, b: R|ft<B, B?>|!): R|kotlin/Unit|
}
@@ -0,0 +1,4 @@
public abstract interface GenericMethodParameters : R|java/lang/Object| {
public abstract operator function method(a: R|kotlin/Array<ft<A, A?>>|, b: R|ft<B, B?>|!): R|kotlin/Unit|
}
@@ -0,0 +1,4 @@
public abstract interface InterfaceWithObjectMethod : R|java/lang/Object| {
public abstract operator function toString(): R|ft<java/lang/String, java/lang/String?>|!
}
@@ -0,0 +1,2 @@
public abstract interface Nested : R|java/lang/Object| {
}
@@ -0,0 +1,4 @@
public abstract interface Runnable : R|java/lang/Object| {
public abstract operator function run(): R|kotlin/Unit|
}
@@ -0,0 +1,2 @@
public abstract interface SamSubinterfaceOfTwo : R|java/lang/Object| {
}
@@ -0,0 +1,4 @@
public abstract interface SamSubinterfaceOverridding : R|java/lang/Runnable| {
public abstract operator function run(): R|kotlin/Unit|
}
@@ -0,0 +1,2 @@
public final class StaticOverrides : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface SubstitutedSamInterface : R|java/util/Comparator<java/lang/String>| {
}
@@ -0,0 +1,2 @@
public abstract interface SubstitutedSamInterfaceSubclassOfBuiltin : R|java/lang/Comparable<test/SubstitutedSamInterfaceSubclassOfBuiltin>| {
}
@@ -0,0 +1,4 @@
public abstract interface VarargParameter : R|java/lang/Object| {
public abstract operator function f(vararg strings: R|kotlin/Array<ft<java/lang/String, java/lang/String?>>|): R|kotlin/Unit|
}
@@ -0,0 +1,6 @@
public open class AmbiguousAdapters : R|java/lang/Object| {
public open operator function foo(r: R|ft<java/lang/Runnable, java/lang/Runnable?>|!): R|kotlin/Unit|
public open operator function foo(c: R|ft<java/io/Closeable, java/io/Closeable?>|!): R|kotlin/Unit|
}
@@ -0,0 +1,4 @@
public open class Basic : R|java/lang/Object| {
public open operator function foo(r: R|ft<java/lang/Runnable, java/lang/Runnable?>|!): R|kotlin/Unit|
}
@@ -0,0 +1,2 @@
public open class Constructor : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public open class ConstructorWithAnnotations : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface DeepSamLoop : R|java/lang/Object| {
}
@@ -1,3 +1,4 @@
// SKIP_IN_FIR_TEST
package test;
class NoSamForTypeParameter<K extends Runnable> {
@@ -1,3 +1,4 @@
// SKIP_IN_FIR_TEST
package test;
class NoSamForTypeParameter {
@@ -0,0 +1,10 @@
public open class NonTrivialFunctionType : R|java/lang/Object| {
public open operator function foo(filenameFilter: R|ft<java/io/FilenameFilter, java/io/FilenameFilter?>|!): R|kotlin/Unit|
public open operator function foo(comparator: R|ft<java/util/Comparator<ft<java/lang/String, java/lang/String?>>, java/util/Comparator<ft<java/lang/String, java/lang/String?>>>|): R|kotlin/Unit|
public open operator function wildcardUnbound(comparator: R|ft<java/util/Comparator<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:?>, java/util/Comparator<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:?>?>|!): R|kotlin/Unit|
public open operator function wildcardBound(comparator: R|ft<java/util/Comparator<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? super CharSequence>, java/util/Comparator<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? super CharSequence>?>|!): R|kotlin/Unit|
}
@@ -0,0 +1,4 @@
public open class PrivateSamAdapter : R|java/lang/Object| {
private open operator function samAdapter(r: R|ft<test/PrivateSamAdapter.SamInterface, test/PrivateSamAdapter.SamInterface?>|!): R|kotlin/Unit|
}
@@ -0,0 +1,4 @@
public abstract interface SelfAsParameter : R|java/lang/Object| {
public abstract operator function foo(p: R|ft<test/SelfAsParameter, test/SelfAsParameter?>|!): R|kotlin/Unit|
}
@@ -0,0 +1,2 @@
public open class SeveralSamParameters : R|java/lang/Object| {
}
@@ -0,0 +1,4 @@
<T> public open class TypeParameterOfClass : R|java/lang/Object| {
public open operator function foo(comparator: R|ft<java/util/Comparator<ft<T, T?>>, java/util/Comparator<ft<T, T?>>>|): R|kotlin/Unit|
}
@@ -0,0 +1,2 @@
public open class TypeParameterOfMethod : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
<T> public open class TypeParameterOfOuterClass : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface AdapterDoesntOverrideDeclaration : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedAdapterAndDeclaration : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedAmbiguousAdapters : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedAndOverriddenAmbiguousAdapters : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedOverridden : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedOverriddenAdapter : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedSameAdapters : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedSameAdaptersWithSubstitution : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface InheritedSimple : R|java/lang/Object| {
}
@@ -0,0 +1,2 @@
public abstract interface OverriddenAmbiguousAdapters : R|java/lang/Object| {
}