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

View File

@@ -0,0 +1,4 @@
public open class AllBoundsInWhen : R|java/lang/Object| {
public open operator function foo(): R|kotlin/Unit|
}

View File

@@ -0,0 +1,4 @@
public open class ArrayType : R|java/lang/Object| {
public open operator function foo(): R|kotlin/Array<ft<java/lang/String, java/lang/String?>>|
}

View File

@@ -0,0 +1,2 @@
<T> public open class ConstructorWithNewTypeParams : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
<T> public open class ConstructorWithParentTypeParams : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public open class ConstructorWithSeveralParams : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public open class ConstructorWithoutParams : R|java/lang/Object| {
}

View File

@@ -0,0 +1,4 @@
public open class CustomProjectionKind : R|java/lang/Object| {
public open operator function foo(): R|ft<java/util/List<ft<java/lang/Number, java/lang/Number?>>, java/util/List<ft<java/lang/Number, java/lang/Number?>>>|
}

View File

@@ -0,0 +1,4 @@
public open class MethodWithFunctionTypes : R|java/lang/Object| {
public open operator function foo(f: R|ft<kotlin/jvm/functions/Function1<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>, kotlin/jvm/functions/Function1<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>>|): R|ft<kotlin/jvm/functions/Function0<ft<java/lang/String, java/lang/String?>>, kotlin/jvm/functions/Function0<ft<java/lang/String, java/lang/String?>>>|
}

View File

@@ -0,0 +1,4 @@
public open class MethodWithGenerics : R|java/lang/Object| {
public open operator function foo(a: R|ft<java/lang/String, java/lang/String?>|!, b: R|ft<java/util/List<ft<java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>, java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>>>, java/util/List<ft<java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>, java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>>>>|): R|ft<java/lang/String, java/lang/String?>|!
}

View File

@@ -0,0 +1,6 @@
public open class MethodWithMappedClasses : R|java/lang/Object| {
public open operator function copy(dest: R|ft<java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? super T>, java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? super T>?>|!, src: R|ft<java/util/List<ft<T, T?>>, java/util/List<ft<T, T?>>>|): R|kotlin/Unit|
public open operator function copyMap(dest: R|ft<java/util/Map<ft<java/lang/String, java/lang/String?>, *>, java/util/Map<ft<java/lang/String, java/lang/String?>, *>>|, src: R|ft<java/util/Map<ft<java/lang/String, java/lang/String?>, ft<T, T?>>, java/util/Map<ft<java/lang/String, java/lang/String?>, ft<T, T?>>>|): R|kotlin/Unit|
}

View File

@@ -0,0 +1,4 @@
public open class MethodWithTypeParameters : R|java/lang/Object| {
public open operator function foo(a: R|ft<A, A?>|!, b: R|ft<java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? extends B>, java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? extends B>?>|!, list: R|ft<java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? super String>, java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? super String>?>|!): R|kotlin/Unit|
}

View File

@@ -0,0 +1,4 @@
public open class MethodWithVararg : R|java/lang/Object| {
public open operator function foo(vararg s: R|kotlin/Array<ft<java/lang/String, java/lang/String?>>|): R|kotlin/Unit|
}

View File

@@ -0,0 +1,2 @@
<T> public open class PropertyArrayTypes : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
<T> public open class PropertyComplexTypes : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public open class PropertySimpleType : R|java/lang/Object| {
}

View File

@@ -0,0 +1,4 @@
public final class StarProjection : R|java/lang/Object| {
public final operator function foo(): R|ft<test/StarProjection.MyClass<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:?>, test/StarProjection.MyClass<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:?>?>|!
}

View File

@@ -0,0 +1,4 @@
public open class WrongProjectionKind : R|java/lang/Object| {
public open operator function copy(from: R|kotlin/Array<ft<java/lang/Number, java/lang/Number?>>|, to: R|kotlin/Array<ft<java/lang/Number, java/lang/Number?>>|): R|ft<java/util/List<ft<java/lang/Number, java/lang/Number?>>, java/util/List<ft<java/lang/Number, java/lang/Number?>>>|
}

View File

@@ -0,0 +1,4 @@
public open class WrongReturnTypeStructure : R|java/lang/Object| {
public open operator function foo(a: R|ft<java/lang/String, java/lang/String?>|!, b: R|ft<java/util/List<ft<java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>, java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>>>, java/util/List<ft<java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>, java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>>>>|): R|ft<java/lang/String, java/lang/String?>|!
}

View File

@@ -0,0 +1,4 @@
public open class WrongTypeParameterBoundStructure1 : R|java/lang/Object| {
public open operator function foo(a: R|ft<A, A?>|!, b: R|ft<java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? extends B>, java/util/List<class error: Unexpected type argument: JavaWildcardTypeImpl: PsiType:? extends B>?>|!): R|kotlin/Unit|
}

View File

@@ -0,0 +1,4 @@
public open class WrongValueParameterStructure1 : R|java/lang/Object| {
public open operator function foo(a: R|ft<java/lang/String, java/lang/String?>|!, b: R|ft<java/util/List<ft<java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>, java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>>>, java/util/List<ft<java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>, java/util/Map.Entry<ft<java/lang/String, java/lang/String?>, ft<java/lang/String, java/lang/String?>>>>>|): R|ft<java/lang/String, java/lang/String?>|!
}

View File

@@ -0,0 +1,2 @@
public abstract interface PropagateTypeArgumentNullable : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface ChangeProjectionKind1 : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface DeeplySubstitutedClassParameter : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface DeeplySubstitutedClassParameter2 : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNotVararg : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNotVarargInteger : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNotVarargNotNull : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNotVarargPrimitive : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNullability : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritVararg : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritVarargInteger : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritVarargNotNull : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritVarargPrimitive : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface Kt3302 : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface MutableToReadOnly : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface NotNullToNullable : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface NullableToNotNull : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface NullableToNotNullKotlinSignature : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface OverrideWithErasedParameter : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface ReadOnlyToMutable : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface SubclassFromGenericAndNot : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface SubstitutedClassParameter : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface SubstitutedClassParameters : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface AddNotNullJavaSubtype : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface AddNotNullSameJavaType : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface AddNullabilityJavaSubtype : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface AddNullabilitySameGenericType1 : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface AddNullabilitySameGenericType2 : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface AddNullabilitySameJavaType : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface CantMakeImmutableInSubclass : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface DeeplySubstitutedClassParameter : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface DeeplySubstitutedClassParameter2 : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface HalfSubstitutedTypeParameters : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNullabilityGenericSubclassSimple : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNullabilityJavaSubtype : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNullabilitySameGenericType : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNullabilitySameJavaType : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritProjectionKind : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritReadOnlinessOfArgument : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritReadOnlinessSameClass : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritReadOnlinessSubclass : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface SameProjectionKind : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface SubclassFromGenericAndNot : R|java/lang/Object| {
}

View File

@@ -0,0 +1,4 @@
<E> public abstract interface SubclassOfCollection : R|java/util/Collection<E>| {
public abstract operator function iterator(): R|ft<java/util/Iterator<ft<E, E?>>, java/util/Iterator<ft<E, E?>>>|
}

View File

@@ -0,0 +1,4 @@
<K, V> public abstract interface SubclassOfMapEntry : R|java/util/Map.Entry<K, V>| {
public abstract operator function setValue(value: R|ft<V, V?>|!): R|ft<V, V?>|!
}

View File

@@ -0,0 +1,2 @@
public abstract interface SubstitutedClassParameter : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface SubstitutedClassParameters : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclassesConflictingProjectionKinds : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclassesInvariantAndCovariantInferMutability : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclassesInvariantAndCovariantInferNullability : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclassesMutableAndNot : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclassesReturnJavaSubtype : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclassesReturnSameJavaType : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclassesSupplementNotNull : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TypeParamOfClass : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TypeParamOfClassSubstituted : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TypeParamOfFun : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface InheritNullability : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoBounds : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoSuperclasses : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface TwoTypeParameters : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface UseParameterAsUpperBound : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface UseParameterInUpperBound : R|java/lang/Object| {
}

View File

@@ -0,0 +1,2 @@
public abstract interface UseParameterInUpperBoundWithKotlinSignature : R|java/lang/Object| {
}