From bc074e6d391c4241d5148b3b14aa7d6d710831a5 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Mon, 13 Mar 2017 12:38:08 +0300 Subject: [PATCH] tests: Update external tests (1.1.2-dev-393) --- backend.native/tests/build.gradle | 1 + .../callableReference/bound/simpleFunction.kt | 6 - .../function/equalsIntrinsic.kt | 6 - .../function/local/localFunctionName.kt | 8 - .../controlFlow/returnFromFinally.kt | 47 --- .../codegen/blackbox/intrinsics/kt10131.kt | 7 - .../codegen/blackbox/intrinsics/kt10131a.kt | 7 - .../functions/functionFromStdlib.kt | 10 - .../codegen/blackbox/strings/kt2592.kt | 7 - .../annotations/annotatedEnumEntry.kt | 0 .../annotatedLambda/funExpression.kt | 0 .../annotations/annotatedLambda/lambda.kt | 0 .../annotatedLambda/samFunExpression.kt | 0 .../annotations/annotatedLambda/samLambda.kt | 0 .../annotations/annotatedObjectLiteral.kt | 0 .../annotationWithKotlinProperty.kt | 0 ...ithKotlinPropertyFromInterfaceCompanion.kt | 0 .../annotations/annotationsOnDefault.kt | 0 .../annotations/annotationsOnTypeAliases.kt | 0 .../annotations/defaultParameterValues.kt | 0 .../annotations/delegatedPropertySetter.kt | 0 .../fileClassWithFileAnnotation.kt | 0 .../annotations/jvmAnnotationFlags.kt | 0 ...otlinPropertyFromClassObjectAsParameter.kt | 0 .../kotlinTopLevelPropertyAsParameter.kt | 0 .../{blackbox => box}/annotations/kt10136.kt | 0 .../nestedClassPropertyAsParameter.kt | 0 .../annotations/parameterWithPrimitiveType.kt | 0 ...rtyWithPropertyInInitializerAsParameter.kt | 0 .../resolveWithLowPriorityAnnotation.kt | 0 .../varargInAnnotationParameter.kt | 0 .../argumentOrder/arguments.kt | 3 - .../argumentOrder/captured.kt | 3 - .../box/argumentOrder/capturedInExtension.kt | 30 ++ .../argumentOrder/defaults.kt | 7 +- .../codegen/box/argumentOrder/extension.kt | 30 ++ .../argumentOrder/extensionInClass.kt | 7 +- .../{blackbox => box}/argumentOrder/kt9277.kt | 0 .../argumentOrder/lambdaMigration.kt | 0 .../argumentOrder/lambdaMigrationInClass.kt | 0 .../{blackbox => box}/argumentOrder/simple.kt | 3 - .../argumentOrder/simpleInClass.kt | 3 - .../arrays/arrayConstructorsSimple.kt | 2 +- .../arrays/arrayGetAssignMultiIndex.kt | 0 .../arrays/arrayGetMultiIndex.kt | 0 .../arrays/arrayInstanceOf.kt | 2 +- .../arrays/arrayPlusAssign.kt | 0 .../arrays/arraysAreCloneable.kt | 2 +- .../{blackbox => box}/arrays/cloneArray.kt | 2 +- .../arrays/clonePrimitiveArrays.kt | 2 +- .../arrays/collectionAssignGetMultiIndex.kt | 0 .../arrays/collectionGetMultiIndex.kt | 0 .../arrays/forEachBooleanArray.kt | 0 .../arrays/forEachByteArray.kt | 0 .../arrays/forEachCharArray.kt | 0 .../arrays/forEachDoubleArray.kt | 0 .../arrays/forEachFloatArray.kt | 0 .../arrays/forEachIntArray.kt | 0 .../arrays/forEachLongArray.kt | 0 .../arrays/forEachShortArray.kt | 0 .../genericArrayInObjectLiteralConstructor.kt | 14 + .../{blackbox => box}/arrays/hashMap.kt | 0 .../arrays/inProjectionAsParameter.kt | 0 .../arrays/inProjectionOfArray.kt | 0 .../arrays/inProjectionOfList.kt | 0 .../{blackbox => box}/arrays/indices.kt | 0 .../{blackbox => box}/arrays/indicesChar.kt | 0 .../{blackbox => box}/arrays/iterator.kt | 0 .../arrays/iteratorBooleanArray.kt | 0 .../arrays/iteratorByteArray.kt | 0 .../arrays/iteratorByteArrayNextByte.kt | 2 +- .../arrays/iteratorCharArray.kt | 0 .../arrays/iteratorDoubleArray.kt | 0 .../arrays/iteratorFloatArray.kt | 0 .../arrays/iteratorIntArray.kt | 0 .../arrays/iteratorLongArray.kt | 0 .../arrays/iteratorLongArrayNextLong.kt | 2 +- .../arrays/iteratorShortArray.kt | 0 .../{blackbox => box}/arrays/kt1291.kt | 0 .../codegen/{blackbox => box}/arrays/kt238.kt | 0 .../{blackbox => box}/arrays/kt2997.kt | 2 + .../codegen/{blackbox => box}/arrays/kt33.kt | 0 .../{blackbox => box}/arrays/kt3771.kt | 0 .../{blackbox => box}/arrays/kt4118.kt | 0 .../{blackbox => box}/arrays/kt4348.kt | 2 +- .../{blackbox => box}/arrays/kt4357.kt | 0 .../codegen/{blackbox => box}/arrays/kt503.kt | 2 +- .../codegen/{blackbox => box}/arrays/kt594.kt | 0 .../codegen/{blackbox => box}/arrays/kt602.kt | 0 .../{blackbox => box}/arrays/kt7009.kt | 0 .../{blackbox => box}/arrays/kt7288.kt | 3 - .../{blackbox => box}/arrays/kt7338.kt | 2 +- .../codegen/{blackbox => box}/arrays/kt779.kt | 0 .../codegen/{blackbox => box}/arrays/kt945.kt | 0 .../codegen/{blackbox => box}/arrays/kt950.kt | 0 .../{blackbox => box}/arrays/longAsIndex.kt | 0 .../arrays/multiArrayConstructors.kt | 0 .../arrays/multiDecl/MultiDeclFor.kt | 0 .../MultiDeclForComponentExtensions.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../multiDecl/MultiDeclForValCaptured.kt | 0 .../int/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../codegen/box/arrays/multiDecl/kt15560.kt | 9 + .../codegen/box/arrays/multiDecl/kt15568.kt | 13 + .../codegen/box/arrays/multiDecl/kt15575.kt | 9 + .../long/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../arrays/nonLocalReturnArrayConstructor.kt | 2 +- .../{blackbox => box}/arrays/nonNullArray.kt | 0 .../{blackbox => box}/arrays/stdlib.kt | 0 .../codegen/box/arrays/varargsWithJava.kt | 21 ++ .../{blackbox => box}/binaryOp/bitwiseOp.kt | 3 + .../binaryOp/bitwiseOpAny.kt | 3 + .../binaryOp/bitwiseOpNullable.kt | 3 + .../{blackbox => box}/binaryOp/call.kt | 0 .../{blackbox => box}/binaryOp/callAny.kt | 0 .../binaryOp/callNullable.kt | 0 .../codegen/box/binaryOp/compareBoxedChars.kt | 16 + .../binaryOp/compareWithBoxedDouble.kt | 7 +- .../binaryOp/compareWithBoxedLong.kt | 7 +- .../binaryOp/divisionByZero.kt | 0 .../{blackbox => box}/binaryOp/intrinsic.kt | 0 .../binaryOp/intrinsicAny.kt | 0 .../binaryOp/intrinsicNullable.kt | 0 .../{blackbox => box}/binaryOp/kt11163.kt | 0 .../binaryOp/kt6747_identityEquals.kt | 0 .../binaryOp/overflowChar.kt | 0 .../{blackbox => box}/binaryOp/overflowInt.kt | 0 .../binaryOp/overflowLong.kt | 0 .../boxingOptimization/casts.kt | 0 .../checkcastAndInstanceOf.kt | 0 .../boxingOptimization/fold.kt | 0 .../boxingOptimization/foldRange.kt | 0 .../boxingOptimization/kt5493.kt | 0 .../boxingOptimization/kt5588.kt | 0 .../boxingOptimization/kt5844.kt | 0 .../boxingOptimization/kt6047.kt | 0 .../boxingOptimization/kt6842.kt | 0 .../boxingOptimization/nullCheck.kt | 0 .../boxingOptimization/progressions.kt | 0 .../boxingOptimization/safeCallWithElvis.kt | 0 .../boxingOptimization/simple.kt | 0 .../simpleUninitializedMerge.kt | 0 .../box/boxingOptimization/taintedValues.kt | 11 + .../boxingOptimization/taintedValuesBox.kt | 49 +++ .../boxingOptimization/unsafeRemoving.kt | 0 .../boxingOptimization/variables.kt | 0 .../bridges/complexMultiInheritance.kt | 0 .../bridges/complexTraitImpl.kt | 0 .../{blackbox => box}/bridges/delegation.kt | 0 .../bridges/delegationComplex.kt | 0 .../bridges/delegationComplexWithList.kt | 0 .../bridges/delegationProperty.kt | 0 .../{blackbox => box}/bridges/diamond.kt | 0 .../bridges/fakeCovariantOverride.kt | 0 .../bridges/fakeGenericCovariantOverride.kt | 0 ...eGenericCovariantOverrideWithDelegation.kt | 0 .../bridges/fakeOverrideOfTraitImpl.kt | 0 ...akeOverrideWithSeveralSuperDeclarations.kt | 0 ...keOverrideWithSynthesizedImplementation.kt | 0 .../bridges/genericProperty.kt | 0 .../{blackbox => box}/bridges/jsName.kt | 0 .../{blackbox => box}/bridges/jsNative.kt | 0 .../{blackbox => box}/bridges/kt12416.kt | 0 .../{blackbox => box}/bridges/kt1939.kt | 0 .../{blackbox => box}/bridges/kt1959.kt | 2 +- .../{blackbox => box}/bridges/kt2498.kt | 0 .../{blackbox => box}/bridges/kt2702.kt | 0 .../{blackbox => box}/bridges/kt2833.kt | 0 .../{blackbox => box}/bridges/kt2920.kt | 0 .../{blackbox => box}/bridges/kt318.kt | 0 .../bridges/longChainOneBridge.kt | 0 ...anyTypeArgumentsSubstitutedSuccessively.kt | 0 .../bridges/methodFromTrait.kt | 0 .../noBridgeOnMutableCollectionInheritance.kt | 0 .../{blackbox => box}/bridges/objectClone.kt | 0 .../bridges/overrideAbstractProperty.kt | 0 .../bridges/overrideReturnType.kt | 0 .../bridges/propertyAccessorsWithoutBody.kt | 0 .../bridges/propertyDiamond.kt | 0 .../bridges/propertyInConstructor.kt | 0 .../bridges/propertySetter.kt | 0 .../{blackbox => box}/bridges/simple.kt | 0 .../{blackbox => box}/bridges/simpleEnum.kt | 0 .../bridges/simpleGenericMethod.kt | 0 .../{blackbox => box}/bridges/simpleObject.kt | 0 .../bridges/simpleReturnType.kt | 0 .../bridges/simpleTraitImpl.kt | 0 .../bridges/simpleUpperBound.kt | 0 .../bridges/strListContains.kt | 2 + .../substitutionInSuperClass/abstractFun.kt | 0 .../boundedTypeArguments.kt | 0 .../substitutionInSuperClass/delegation.kt | 0 .../differentErasureInSuperClass.kt | 0 .../differentErasureInSuperClassComplex.kt | 0 .../bridges/substitutionInSuperClass/enum.kt | 0 .../substitutionInSuperClass/genericMethod.kt | 0 .../substitutionInSuperClass/object.kt | 0 .../substitutionInSuperClass/property.kt | 0 .../substitutionInSuperClass/simple.kt | 0 .../substitutionInSuperClass/upperBound.kt | 0 .../bridges/traitImplInheritsTraitImpl.kt | 0 ...woParentsWithDifferentMethodsTwoBridges.kt | 0 ...oParentsWithDifferentMethodsTwoBridges2.kt | 0 .../twoParentsWithTheSameMethodOneBridge.kt | 0 .../builtinStubMethods/Collection.kt | 2 +- .../builtinStubMethods/Iterator.kt | 2 +- .../builtinStubMethods/IteratorWithRemove.kt | 0 .../builtinStubMethods/List.kt | 2 +- .../builtinStubMethods/ListIterator.kt | 0 .../ListWithAllImplementations.kt | 2 +- .../ListWithAllInheritedImplementations.kt | 2 +- .../builtinStubMethods/Map.kt | 0 .../builtinStubMethods/MapEntry.kt | 0 .../MapEntryWithSetValue.kt | 0 .../MapWithAllImplementations.kt | 0 .../builtinStubMethods/SubstitutedList.kt | 2 +- .../builtinStubMethods/abstractMember.kt | 0 .../customReadOnlyIterator.kt | 0 .../delegationToArrayList.kt | 0 .../extendJavaCollections/abstractList.kt | 0 .../extendJavaCollections/abstractMap.kt | 0 .../extendJavaCollections/abstractSet.kt | 0 .../extendJavaCollections/arrayList.kt | 0 .../extendJavaCollections/hashMap.kt | 0 .../extendJavaCollections/hashSet.kt | 0 .../extendJavaCollections/mapEntry.kt | 0 .../builtinStubMethods/immutableRemove.kt | 0 .../implementationInTrait.kt | 0 .../inheritedImplementations.kt | 0 .../manyTypeParametersWithUpperBounds.kt | 0 .../nonTrivialSubstitution.kt | 0 .../nonTrivialUpperBound.kt | 0 .../builtinStubMethods/substitutedIterable.kt | 0 .../substitutedListWithExtraSuperInterface.kt | 0 .../callableReference/bound/array.kt | 0 .../bound/companionObjectReceiver.kt | 0 .../bound/enumEntryMember.kt | 2 +- .../bound/equals/nullableReceiverInEquals.kt | 2 +- .../bound/equals/propertyAccessors.kt | 2 +- .../bound/equals/receiverInEquals.kt | 2 +- .../bound/equals/reflectionReference.kt | 2 +- .../callableReference/bound/inline/simple.kt | 0 .../bound/inline/simpleVal.kt | 0 .../bound/kCallableNameIntrinsic.kt | 2 - .../callableReference/bound/kt12738.kt | 2 - .../callableReference/bound/kt15446.kt | 1 - .../callableReference/bound/multiCase.kt | 0 .../callableReference/bound/nullReceiver.kt | 0 .../callableReference/bound/objectReceiver.kt | 0 .../bound/primitiveReceiver.kt | 0 .../callableReference/bound/simpleFunction.kt | 4 + .../callableReference/bound/simpleProperty.kt | 3 - .../bound/syntheticExtensionOnLHS.kt | 0 .../function/abstractClassMember.kt | 0 .../function/booleanNotIntrinsic.kt | 3 - .../function/classMemberFromClass.kt | 0 .../function/classMemberFromExtension.kt | 0 .../classMemberFromTopLevelStringNoArgs.kt | 0 ...assMemberFromTopLevelStringOneStringArg.kt | 0 .../classMemberFromTopLevelUnitNoArgs.kt | 0 ...classMemberFromTopLevelUnitOneStringArg.kt | 0 .../function/constructorFromTopLevelNoArgs.kt | 0 .../constructorFromTopLevelOneStringArg.kt | 0 .../function/enumValueOfMethod.kt | 3 - .../function/equalsIntrinsic.kt | 3 + .../function/extensionFromClass.kt | 0 .../function/extensionFromExtension.kt | 0 .../extensionFromTopLevelStringNoArgs.kt | 0 ...extensionFromTopLevelStringOneStringArg.kt | 0 .../extensionFromTopLevelUnitNoArgs.kt | 0 .../extensionFromTopLevelUnitOneStringArg.kt | 0 .../genericCallableReferenceArguments.kt | 29 ++ ...ericCallableReferencesWithNullableTypes.kt | 30 ++ .../genericCallableReferencesWithOverload.kt | 23 ++ .../function/genericMember.kt | 0 .../function/genericWithDependentType.kt | 8 + .../function/getArityViaFunctionImpl.kt | 4 +- .../function/innerConstructorFromClass.kt | 0 .../function/innerConstructorFromExtension.kt | 0 .../innerConstructorFromTopLevelNoArgs.kt | 0 ...nnerConstructorFromTopLevelOneStringArg.kt | 0 .../function/javaCollectionsStaticMethod.kt | 0 .../function/local/captureOuter.kt | 0 .../function/local/classMember.kt | 0 .../function/local/closureWithSideEffect.kt | 0 .../function/local/constructor.kt | 0 .../local/constructorWithInitializer.kt | 0 .../function/local/enumExtendsTrait.kt | 0 .../function/local/extension.kt | 0 .../function/local/extensionToLocalClass.kt | 0 .../function/local/extensionToPrimitive.kt | 0 .../function/local/extensionWithClosure.kt | 0 .../function/local/genericMember.kt | 0 .../function/local/localClassMember.kt | 0 .../function/local/localFunctionName.kt | 5 + .../function/local/localLocal.kt | 0 .../function/local/recursiveClosure.kt | 0 .../function/local/simple.kt | 0 .../function/local/simpleClosure.kt | 0 .../function/local/simpleWithArg.kt | 0 .../function/local/unitWithSideEffect.kt | 0 .../function/nestedConstructorFromClass.kt | 0 .../nestedConstructorFromTopLevelNoArgs.kt | 0 ...stedConstructorFromTopLevelOneStringArg.kt | 0 .../callableReference/function/newArray.kt | 3 - .../function/overloadedFun.kt | 0 .../function/overloadedFunVsVal.kt | 2 +- .../function/privateClassMember.kt | 0 .../function/sortListOfStrings.kt | 0 .../function/specialCalls.kt | 29 ++ .../function/topLevelFromClass.kt | 0 .../function/topLevelFromExtension.kt | 0 .../topLevelFromTopLevelStringNoArgs.kt | 0 .../topLevelFromTopLevelStringOneStringArg.kt | 0 .../topLevelFromTopLevelUnitNoArgs.kt | 0 .../topLevelFromTopLevelUnitOneStringArg.kt | 0 .../traitImplMethodWithClassReceiver.kt | 0 .../callableReference/function/traitMember.kt | 0 .../property/accessViaSubclass.kt | 0 .../callableReference/property/delegated.kt | 0 .../property/delegatedMutable.kt | 0 .../property/enumNameOrdinal.kt | 0 .../property/extensionToArray.kt | 0 .../property/genericProperty.kt | 0 .../property/invokePropertyReference.kt | 0 .../property/javaBeanConvention.kt | 0 .../kClassInstanceIsInitializedFirst.kt | 0 .../callableReference/property/kt12044.kt | 0 .../kt12982_protectedPropertyReference.kt | 0 .../callableReference/property/kt14330.kt | 0 .../callableReference/property/kt14330_2.kt | 0 .../callableReference/property/kt15447.kt | 0 .../kt6870_privatePropertyReference.kt | 0 .../property/listOfStringsMapLength.kt | 3 - .../property/localClassVar.kt | 0 .../property/overriddenInSubclass.kt | 0 .../property/privateSetOuterClass.kt | 31 ++ .../property/privateSetterInsideClass.kt | 0 .../property/privateSetterOutsideClass.kt | 3 - .../property/simpleExtension.kt | 0 .../property/simpleMember.kt | 0 .../property/simpleMutableExtension.kt | 0 .../property/simpleMutableMember.kt | 0 .../property/simpleMutableTopLevel.kt | 0 .../property/simpleTopLevel.kt | 0 .../boundWithNotSerializableReceiver.kt | 19 ++ .../boundWithSerializableReceiver.kt | 21 ++ .../serializability/noReflect.kt | 27 ++ .../reflectedIsNotSerialized.kt | 25 ++ .../serializability/withReflect.kt | 27 ++ .../codegen/{blackbox => box}/casts/as.kt | 0 .../{blackbox => box}/casts/asForConstants.kt | 2 +- .../codegen/{blackbox => box}/casts/asSafe.kt | 0 .../{blackbox => box}/casts/asSafeFail.kt | 0 .../casts/asSafeForConstants.kt | 2 +- .../codegen/{blackbox => box}/casts/asUnit.kt | 0 .../{blackbox => box}/casts/asWithGeneric.kt | 2 +- .../casts/castGenericNull.kt | 0 .../casts/functions/asFunKBig.kt | 0 .../casts/functions/asFunKSmall.kt | 2 +- .../casts/functions/isFunKBig.kt | 2 +- .../casts/functions/isFunKSmall.kt | 0 .../casts/functions/javaTypeIsFunK.kt | 0 .../casts/functions/reifiedAsFunKBig.kt | 0 .../casts/functions/reifiedAsFunKSmall.kt | 2 +- .../casts/functions/reifiedIsFunKBig.kt | 2 +- .../casts/functions/reifiedIsFunKSmall.kt | 2 +- .../casts/functions/reifiedSafeAsFunKBig.kt | 2 +- .../casts/functions/reifiedSafeAsFunKSmall.kt | 2 +- .../casts/functions/safeAsFunKBig.kt | 2 +- .../casts/functions/safeAsFunKSmall.kt | 2 +- .../casts/intersectionTypeMultipleBounds.kt | 0 ...ctionTypeMultipleBoundsImplicitReceiver.kt | 0 .../casts/intersectionTypeSmartcast.kt | 0 ...sectionTypeWithMultipleBoundsAsReceiver.kt | 0 ...tersectionTypeWithoutGenericsAsReceiver.kt | 0 .../codegen/{blackbox => box}/casts/is.kt | 0 .../casts/lambdaToUnitCast.kt | 2 +- .../binaryExpressionCast.kt | 0 .../javaBox.kt | 0 .../labeledExpressionCast.kt | 0 .../parenthesizedExpressionCast.kt | 0 .../superConstructor.kt | 0 .../unaryExpressionCast.kt | 0 .../vararg.kt | 0 .../casts/mutableCollections/asWithMutable.kt | 1 + .../casts/mutableCollections/isWithMutable.kt | 1 + .../mutabilityMarkerInterfaces.kt | 0 .../reifiedAsWithMutable.kt | 1 + .../reifiedIsWithMutable.kt | 1 + .../reifiedSafeAsWithMutable.kt | 1 + .../mutableCollections/safeAsWithMutable.kt | 1 + .../mutableCollections/weirdMutableCasts.kt | 0 .../codegen/{blackbox => box}/casts/notIs.kt | 0 .../{blackbox => box}/casts/unitAsAny.kt | 2 +- .../{blackbox => box}/casts/unitAsInt.kt | 0 .../{blackbox => box}/casts/unitAsSafeAny.kt | 2 +- .../casts/unitNullableCast.kt | 0 .../bound/javaIntrinsicWithSideEffect.kt | 0 .../classLiteral/bound/primitives.kt | 3 +- .../classLiteral/bound/sideEffect.kt | 0 .../classLiteral/bound/simple.kt | 3 +- .../box/classLiteral/bound/smartCast.kt | 12 + .../classLiteral/java/java.kt | 0 .../classLiteral/java/javaObjectType.kt | 0 .../java/javaObjectTypeReified.kt | 0 .../classLiteral/java/javaPrimitiveType.kt | 0 .../java/javaPrimitiveTypeReified.kt | 0 .../classLiteral/java/javaReified.kt | 0 .../classLiteral/java/kt11943.kt | 0 .../java/objectSuperConstructorCall.kt | 0 .../classLiteral/primitiveKClassEquality.kt | 0 .../boxPrimitiveTypeInClinitOfClassObject.kt | 0 .../classCompanionInitializationWithJava.kt | 0 .../classes/classNamedAsOldPackageFacade.kt | 0 .../{blackbox => box}/classes/classObject.kt | 0 .../classes/classObjectAsExtensionReceiver.kt | 0 .../classes/classObjectAsStaticInitializer.kt | 0 .../classes/classObjectField.kt | 0 .../classes/classObjectInTrait.kt | 0 .../classes/classObjectNotOfEnum.kt | 0 .../classes/classObjectToString.kt | 0 .../classObjectWithPrivateGenericMember.kt | 0 .../classes/classObjectsWithParentClasses.kt | 0 .../defaultObjectSameNamesAsInOuter.kt | 0 .../{blackbox => box}/classes/delegation2.kt | 0 .../{blackbox => box}/classes/delegation3.kt | 0 .../{blackbox => box}/classes/delegation4.kt | 0 .../classes/delegationGenericArg.kt | 0 .../classes/delegationGenericArgUpperBound.kt | 0 .../classes/delegationGenericLongArg.kt | 0 .../classes/delegationJava.kt | 0 .../classes/delegationMethodsWithArgs.kt | 0 .../classes/exceptionConstructor.kt | 0 .../classes/extensionOnNamedClassObject.kt | 0 .../classes/funDelegation.kt | 0 .../classes/implementComparableInSubclass.kt | 0 .../classes/inheritSetAndHashSet.kt | 0 .../{blackbox => box}/classes/inheritance.kt | 0 .../classes/inheritedInnerClass.kt | 0 .../classes/inheritedMethod.kt | 0 .../classes/initializerBlock.kt | 0 .../classes/initializerBlockDImpl.kt | 0 .../classes/inner/instantiateInDerived.kt | 0 .../inner/instantiateInDerivedLabeled.kt | 0 .../classes/inner/instantiateInSameClass.kt | 0 .../{blackbox => box}/classes/inner/kt6708.kt | 0 .../classes/inner/properOuter.kt | 0 .../classes/inner/properSuperLinking.kt | 0 .../{blackbox => box}/classes/innerClass.kt | 0 ...nterfaceCompanionInitializationWithJava.kt | 0 .../{blackbox => box}/classes/kt1018.kt | 0 .../{blackbox => box}/classes/kt1120.kt | 0 .../{blackbox => box}/classes/kt1134.kt | 0 .../{blackbox => box}/classes/kt1157.kt | 1 + .../{blackbox => box}/classes/kt1247.kt | 0 .../{blackbox => box}/classes/kt1345.kt | 0 .../{blackbox => box}/classes/kt1439.kt | 0 .../{blackbox => box}/classes/kt1535.kt | 2 +- .../{blackbox => box}/classes/kt1538.kt | 0 .../{blackbox => box}/classes/kt1578.kt | 0 .../{blackbox => box}/classes/kt1611.kt | 0 .../{blackbox => box}/classes/kt1721.kt | 0 .../{blackbox => box}/classes/kt1726.kt | 0 .../{blackbox => box}/classes/kt1759.kt | 0 .../{blackbox => box}/classes/kt1891.kt | 0 .../{blackbox => box}/classes/kt1918.kt | 0 .../{blackbox => box}/classes/kt1976.kt | 0 .../{blackbox => box}/classes/kt1980.kt | 0 .../{blackbox => box}/classes/kt2224.kt | 0 .../{blackbox => box}/classes/kt2288.kt | 0 .../{blackbox => box}/classes/kt2384.kt | 0 .../{blackbox => box}/classes/kt2390.kt | 0 .../{blackbox => box}/classes/kt2391.kt | 0 .../{blackbox => box}/classes/kt2395.kt | 0 .../{blackbox => box}/classes/kt2417.kt | 0 .../{blackbox => box}/classes/kt2477.kt | 0 .../{blackbox => box}/classes/kt2480.kt | 0 .../{blackbox => box}/classes/kt2482.kt | 0 .../{blackbox => box}/classes/kt2485.kt | 0 .../{blackbox => box}/classes/kt249.kt | 0 .../{blackbox => box}/classes/kt2532.kt | 0 .../{blackbox => box}/classes/kt2566.kt | 0 .../{blackbox => box}/classes/kt2566_2.kt | 0 .../{blackbox => box}/classes/kt2607.kt | 0 .../{blackbox => box}/classes/kt2626.kt | 0 .../{blackbox => box}/classes/kt2711.kt | 0 .../{blackbox => box}/classes/kt2784.kt | 0 .../{blackbox => box}/classes/kt285.kt | 0 .../{blackbox => box}/classes/kt3001.kt | 0 .../{blackbox => box}/classes/kt3114.kt | 0 .../{blackbox => box}/classes/kt3414.kt | 0 .../{blackbox => box}/classes/kt343.kt | 0 .../{blackbox => box}/classes/kt3546.kt | 0 .../{blackbox => box}/classes/kt454.kt | 0 .../{blackbox => box}/classes/kt471.kt | 0 .../codegen/{blackbox => box}/classes/kt48.kt | 0 .../{blackbox => box}/classes/kt496.kt | 0 .../{blackbox => box}/classes/kt500.kt | 0 .../{blackbox => box}/classes/kt501.kt | 0 .../{blackbox => box}/classes/kt504.kt | 0 .../{blackbox => box}/classes/kt508.kt | 2 +- .../{blackbox => box}/classes/kt5347.kt | 0 .../{blackbox => box}/classes/kt6136.kt | 0 .../{blackbox => box}/classes/kt633.kt | 0 .../{blackbox => box}/classes/kt6816.kt | 0 .../{blackbox => box}/classes/kt707.kt | 0 .../{blackbox => box}/classes/kt723.kt | 0 .../{blackbox => box}/classes/kt725.kt | 0 .../{blackbox => box}/classes/kt8011.kt | 0 .../{blackbox => box}/classes/kt8011a.kt | 0 .../{blackbox => box}/classes/kt903.kt | 2 +- .../{blackbox => box}/classes/kt940.kt | 0 .../{blackbox => box}/classes/kt9642.kt | 0 .../classes/namedClassObject.kt | 0 .../{blackbox => box}/classes/outerThis.kt | 0 .../classes/overloadBinaryOperator.kt | 0 .../classes/overloadPlusAssign.kt | 0 .../classes/overloadPlusAssignReturn.kt | 0 .../classes/overloadPlusToPlusAssign.kt | 0 .../classes/overloadUnaryOperator.kt | 0 .../classes/privateOuterFunctions.kt | 1 + .../classes/privateOuterProperty.kt | 1 + .../classes/privateToThis.kt | 0 .../classes/propertyDelegation.kt | 0 .../classes/propertyInInitializer.kt | 0 .../classes/rightHandOverride.kt | 0 .../classes/sealedInSameFile.kt | 0 .../{blackbox => box}/classes/selfcreate.kt | 0 .../{blackbox => box}/classes/simpleBox.kt | 0 .../superConstructorCallWithComplexArg.kt | 0 .../classes/typedDelegation.kt | 0 .../closures/captureExtensionReceiver.kt | 0 .../captureFunctionInProperty.kt | 0 .../captureOuterProperty/inFunction.kt | 0 .../captureOuterProperty/inProperty.kt | 0 .../inPropertyDeepObjectChain.kt | 0 .../inPropertyFromSuperClass.kt | 0 .../inPropertyFromSuperSuperClass.kt | 0 .../closures/captureOuterProperty/kt4176.kt | 0 .../closures/captureOuterProperty/kt4656.kt | 0 .../closures/capturedLocalGenericFun.kt | 0 .../localFunInsideLocalFun.kt | 0 ...calFunInsideLocalFunDifferentSignatures.kt | 0 .../propertyAndFunctionNameClash.kt | 0 .../closureInsideClosure/threeLevels.kt | 0 .../threeLevelsDifferentSignatures.kt | 0 .../varAsFunInsideLocalFun.kt | 0 .../closures/closureInsideConstrucor.kt | 0 .../closures/closureOnTopLevel1.kt | 2 +- .../closures/closureOnTopLevel2.kt | 2 +- .../closures/closureWithParameter.kt | 0 .../closures/closureWithParameterAndBoxing.kt | 0 .../closures/doubleEnclosedLocalVariable.kt | 0 .../closures/enclosingLocalVariable.kt | 0 .../closures/enclosingThis.kt | 0 .../closures/extensionClosure.kt | 0 .../{blackbox => box}/closures/kt10044.kt | 0 .../{blackbox => box}/closures/kt11634.kt | 0 .../{blackbox => box}/closures/kt11634_2.kt | 0 .../{blackbox => box}/closures/kt11634_3.kt | 0 .../{blackbox => box}/closures/kt11634_4.kt | 0 .../{blackbox => box}/closures/kt2151.kt | 0 .../{blackbox => box}/closures/kt3152.kt | 0 .../{blackbox => box}/closures/kt3523.kt | 0 .../{blackbox => box}/closures/kt3738.kt | 0 .../{blackbox => box}/closures/kt3905.kt | 0 .../{blackbox => box}/closures/kt4106.kt | 0 .../{blackbox => box}/closures/kt4137.kt | 0 .../{blackbox => box}/closures/kt5589.kt | 0 .../closures/localClassFunClosure.kt | 0 .../closures/localClassLambdaClosure.kt | 0 .../closures/localFunctionInFunction.kt | 0 .../closures/localFunctionInInitializer.kt | 0 .../closures/localGenericFun.kt | 0 .../{blackbox => box}/closures/localReturn.kt | 0 .../closures/localReturnWithAutolabel.kt | 0 .../closures/noRefToOuter.kt | 0 .../closures/recursiveClosure.kt | 0 .../box/closures/refsAreSerializable.kt | 34 ++ .../closures/simplestClosure.kt | 0 .../closures/simplestClosureAndBoxing.kt | 0 .../closures/subclosuresWithinInitializers.kt | 0 .../closures/underscoreParameters.kt | 0 .../collections/charSequence.kt | 0 .../implementCollectionThroughKotlin.kt | 0 .../collections/inSetWithSmartCast.kt | 0 .../collections/irrelevantImplCharSequence.kt | 0 .../irrelevantImplCharSequenceKotlin.kt | 0 .../collections/irrelevantImplMutableList.kt | 0 .../irrelevantImplMutableListKotlin.kt | 0 .../irrelevantImplMutableListSubstitution.kt | 0 .../irrelevantRemoveAtOverrideInJava.kt | 0 .../irrelevantSizeOverrideInJava.kt | 0 .../collections/mutableList.kt | 0 .../collections/noStubsInJavaSuperClass.kt | 0 .../collections/platformValueContains.kt | 0 .../collections/readOnlyList.kt | 0 .../collections/readOnlyMap.kt | 0 .../collections/removeAtInt.kt | 0 .../{blackbox => box}/collections/strList.kt | 0 .../collections/toArrayInJavaClass.kt | 0 .../dataClassEqualsHashCodeToString.kt | 0 .../constants/constantsInWhen.kt | 0 .../{blackbox => box}/constants/float.kt | 0 .../{blackbox => box}/constants/kt9532.kt | 2 +- .../{blackbox => box}/constants/long.kt | 0 .../constants/privateConst.kt | 0 .../controlStructures/bottles.kt | 0 .../breakFromOuter.kt | 3 - .../breakInDoWhile.kt | 0 .../breakContinueInExpressions/breakInExpr.kt | 0 .../continueInDoWhile.kt | 0 .../continueInExpr.kt | 0 .../inlineWithStack.kt | 0 .../innerLoopWithStack.kt | 0 .../breakContinueInExpressions/kt14581.kt | 0 .../breakContinueInExpressions/kt16713.kt | 30 ++ .../breakContinueInExpressions/kt16713_2.kt | 32 ++ .../breakContinueInExpressions/kt9022And.kt | 0 .../breakContinueInExpressions/kt9022Or.kt | 0 .../pathologicalDoWhile.kt | 8 + .../breakContinueInExpressions/popSizes.kt | 0 .../breakContinueInExpressions/tryFinally1.kt | 0 .../breakContinueInExpressions/tryFinally2.kt | 0 .../whileTrueBreak.kt | 0 .../controlStructures/breakInFinally.kt | 0 .../compareBoxedIntegerToZero.kt | 0 .../controlStructures/conditionOfEmptyIf.kt | 0 .../controlStructures/continueInExpr.kt | 0 .../controlStructures/continueInFor.kt | 0 .../continueInForCondition.kt | 0 .../controlStructures/continueInWhile.kt | 0 .../controlStructures/continueToLabelInFor.kt | 0 .../controlStructures/doWhile.kt | 0 .../controlStructures/doWhileFib.kt | 0 .../controlStructures/doWhileWithContinue.kt | 0 .../controlStructures/emptyDoWhile.kt | 0 .../controlStructures/emptyFor.kt | 0 .../controlStructures/emptyWhile.kt | 0 .../controlStructures/factorialTest.kt | 0 .../controlStructures/finallyOnEmptyReturn.kt | 0 .../controlStructures/forArrayList.kt | 0 .../forArrayListMultiDecl.kt | 0 .../forInSmartCastToArray.kt | 0 .../controlStructures/forIntArray.kt | 0 .../forLoopMemberExtensionAll.kt | 0 .../forLoopMemberExtensionHasNext.kt | 0 .../forLoopMemberExtensionNext.kt | 2 +- .../controlStructures/forNullableIntArray.kt | 0 .../controlStructures/forPrimitiveIntArray.kt | 0 .../controlStructures/forUserType.kt | 0 .../inRangeConditionsInWhen.kt | 0 .../controlStructures/kt12908.kt | 0 .../controlStructures/kt12908_2.kt | 0 .../controlStructures/kt1441.kt | 0 .../controlStructures/kt14839.kt | 0 .../codegen/box/controlStructures/kt15726.kt | 26 ++ .../controlStructures/kt1688.kt | 0 .../controlStructures/kt1742.kt | 0 .../controlStructures/kt1899.kt | 0 .../controlStructures/kt2147.kt | 0 .../controlStructures/kt2259.kt | 2 +- .../controlStructures/kt2291.kt | 0 .../controlStructures/kt237.kt | 4 +- .../controlStructures/kt2416.kt | 0 .../controlStructures/kt2423.kt | 0 .../controlStructures/kt2577.kt | 0 .../controlStructures/kt2597.kt | 0 .../controlStructures/kt299.kt | 0 .../controlStructures/kt3087.kt | 0 .../controlStructures/kt3203_1.kt | 0 .../controlStructures/kt3203_2.kt | 0 .../controlStructures/kt3273.kt | 0 .../controlStructures/kt3280.kt | 0 .../controlStructures/kt3574.kt | 0 .../controlStructures/kt416.kt | 0 .../controlStructures/kt513.kt | 0 .../controlStructures/kt628.kt | 0 .../controlStructures/kt769.kt | 0 .../controlStructures/kt772.kt | 0 .../controlStructures/kt773.kt | 0 .../controlStructures/kt8148.kt | 2 +- .../controlStructures/kt8148_break.kt | 2 +- .../controlStructures/kt8148_continue.kt | 2 +- .../controlStructures/kt870.kt | 0 .../controlStructures/kt9022Return.kt | 3 - .../controlStructures/kt9022Throw.kt | 2 +- .../controlStructures/kt910.kt | 0 .../controlStructures/kt958.kt | 0 .../controlStructures/longRange.kt | 0 .../controlStructures/quicksort.kt | 0 .../returnsNothing/ifElse.kt | 0 .../returnsNothing/inlineMethod.kt | 0 .../returnsNothing/propertyGetter.kt | 0 .../returnsNothing/tryCatch.kt | 0 .../controlStructures/returnsNothing/when.kt | 0 .../controlStructures/tryCatchFinallyChain.kt | 0 .../tryCatchInExpressions/catch.kt | 0 .../tryCatchInExpressions/complexChain.kt | 0 .../tryCatchInExpressions/deadTryCatch.kt | 0 .../tryCatchInExpressions/differentTypes.kt | 2 +- .../tryCatchInExpressions/expectException.kt | 0 .../tryCatchInExpressions/finally.kt | 0 .../tryCatchInExpressions/inlineTryCatch.kt | 0 .../tryCatchInExpressions/inlineTryExpr.kt | 0 .../tryCatchInExpressions/inlineTryFinally.kt | 0 .../tryCatchInExpressions/kt8608.kt | 0 .../tryCatchInExpressions/kt9644try.kt | 0 .../multipleCatchBlocks.kt | 0 .../tryCatchInExpressions/splitTry.kt | 0 .../tryCatchInExpressions/splitTryCorner1.kt | 0 .../tryCatchInExpressions/splitTryCorner2.kt | 0 .../tryCatchInExpressions/try.kt | 0 .../tryCatchInExpressions/tryAfterTry.kt | 0 .../tryCatchInExpressions/tryAndBreak.kt | 0 .../tryCatchInExpressions/tryAndContinue.kt | 0 .../tryCatchInExpressions/tryInsideCatch.kt | 0 .../tryCatchInExpressions/tryInsideTry.kt | 0 .../unmatchedInlineMarkers.kt | 0 .../32defaultParametersInSuspend.kt | 81 +++++ .../box/coroutines/accessorForSuspend.kt | 35 ++ .../coroutines/asyncIterator.kt | 17 +- .../box/coroutines/asyncIteratorToList.kt | 131 ++++++++ .../{blackbox => box}/coroutines/await.kt | 10 +- .../coroutines/beginWithException.kt | 7 +- .../beginWithExceptionNoHandleException.kt | 5 +- .../coroutines/coercionToUnit.kt | 7 +- .../coroutines/controlFlow/breakFinally.kt | 7 +- .../coroutines/controlFlow/breakStatement.kt | 7 +- .../controlFlow/doWhileStatement.kt | 7 +- .../coroutines/controlFlow/forContinue.kt | 7 +- .../coroutines/controlFlow/forStatement.kt | 7 +- .../coroutines/controlFlow/ifStatement.kt | 7 +- .../controlFlow/returnFromFinally.kt | 66 ++++ .../coroutines/controlFlow/switchLikeWhen.kt | 7 +- .../coroutines/controlFlow/throwFromCatch.kt | 13 +- .../controlFlow/throwInTryWithHandleResult.kt | 9 +- .../coroutines/controlFlow/whileStatement.kt | 7 +- .../controllerAccessFromInnerLambda.kt | 7 +- .../box/coroutines/createCoroutineSafe.kt | 26 ++ .../createCoroutinesOnManualInstances.kt | 93 ++++++ .../coroutines/defaultParametersInSuspend.kt | 7 +- .../coroutines/dispatchResume.kt | 38 ++- .../coroutines/emptyClosure.kt | 7 +- .../coroutines/falseUnitCoercion.kt | 7 +- .../destructuringInLambdas.kt | 23 ++ .../safeCallOnTwoReceivers.kt | 49 +++ .../safeCallOnTwoReceiversLong.kt | 52 +++ .../suspendDestructuringInLambdas.kt | 26 ++ .../coroutines/featureIntersection/tailrec.kt | 35 ++ .../{blackbox => box}/coroutines/generate.kt | 9 +- .../coroutines/handleException.kt | 11 +- .../coroutines/handleResultCallEmptyBody.kt | 3 +- .../handleResultNonUnitExpression.kt | 7 +- .../coroutines/handleResultSuspended.kt | 7 +- .../coroutines/illegalState.kt | 16 +- .../coroutines/inlineSuspendFunction.kt | 7 +- .../coroutines/inlinedTryCatchFinally.kt | 11 +- .../coroutines/innerSuspensionCalls.kt | 7 +- .../coroutines/instanceOfContinuation.kt | 11 +- .../intLikeVarSpilling/complicatedMerge.kt | 7 +- .../intLikeVarSpilling/i2bResult.kt | 7 +- .../loadFromBooleanArray.kt | 7 +- .../intLikeVarSpilling/loadFromByteArray.kt | 7 +- .../intLikeVarSpilling/noVariableInTable.kt | 7 +- .../intLikeVarSpilling/sameIconst1ManyVars.kt | 7 +- .../intLikeVarSpilling/usedInArrayStore.kt | 7 +- .../intLikeVarSpilling/usedInMethodCall.kt | 7 +- .../intLikeVarSpilling/usedInPutfield.kt | 7 +- .../intLikeVarSpilling/usedInVarStore.kt | 7 +- .../intrinsicSemantics/startCoroutine.kt | 45 +++ .../startCoroutineUninterceptedOrReturn.kt | 56 ++++ ...outineUninterceptedOrReturnInterception.kt | 80 +++++ .../coroutines/iterateOverArray.kt | 7 +- .../{blackbox => box}/coroutines/kt12958.kt | 7 +- .../codegen/box/coroutines/kt15016.kt | 48 +++ .../codegen/box/coroutines/kt15017.kt | 26 ++ .../coroutines/lastExpressionIsLoop.kt | 7 +- .../coroutines/lastStatementInc.kt | 7 +- .../coroutines/lastStementAssignment.kt | 7 +- .../coroutines/lastUnitExpression.kt | 7 +- .../box/coroutines/localCallableRef.kt | 24 ++ .../codegen/box/coroutines/localDelegate.kt | 30 ++ .../box/coroutines/mergeNullAndString.kt | 39 +++ .../inlineFunctionWithOptionalParam.kt | 4 +- .../coroutines/multiModule/simple.kt | 10 +- .../coroutines/multipleInvokeCalls.kt | 7 +- .../multipleInvokeCallsInsideInlineLambda1.kt | 7 +- .../multipleInvokeCallsInsideInlineLambda2.kt | 7 +- .../multipleInvokeCallsInsideInlineLambda3.kt | 7 +- .../coroutines/nestedTryCatch.kt | 11 +- .../coroutines/noSuspensionPoints.kt | 3 +- .../nonLocalReturnFromInlineLambda.kt | 7 +- .../nonLocalReturnFromInlineLambdaDeep.kt | 7 +- .../coroutines/returnByLabel.kt | 7 +- .../{blackbox => box}/coroutines/simple.kt | 7 +- .../coroutines/simpleException.kt | 7 +- .../coroutines/simpleWithHandleResult.kt | 9 +- .../coroutines/stackUnwinding/exception.kt | 3 +- .../stackUnwinding/inlineSuspendFunction.kt | 3 +- .../coroutines/stackUnwinding/simple.kt | 3 +- .../stackUnwinding/suspendInCycle.kt | 7 +- .../coroutines/statementLikeLastExpression.kt | 7 +- .../box/coroutines/suspendDefaultImpl.kt | 31 ++ .../coroutines/suspendDelegation.kt | 7 +- .../coroutines/suspendFromInlineLambda.kt | 7 +- .../suspendFunImportedFromObject.kt | 35 ++ .../augmentedAssignment.kt | 32 ++ .../dispatchResume.kt | 106 ++++++ .../handleException.kt | 113 +++++++ .../suspendFunctionAsCoroutine/inline.kt | 33 ++ .../inlineTwoReceivers.kt | 37 +++ .../suspendFunctionAsCoroutine/member.kt | 28 ++ .../noinlineTwoReceivers.kt | 36 ++ .../suspendFunctionAsCoroutine/operators.kt | 139 ++++++++ .../privateFunctions.kt | 44 +++ .../privateInFile.kt | 31 ++ .../returnNoSuspend.kt | 29 ++ .../suspendFunctionAsCoroutine/simple.kt | 26 ++ .../withVariables.kt | 32 ++ .../suspendFunctionTypeCall/localVal.kt | 35 ++ .../suspendFunctionTypeCall/manyParameters.kt | 7 +- .../suspendFunctionTypeCall/simple.kt | 7 +- .../coroutines/suspendInCycle.kt | 11 +- .../suspendInTheMiddleOfObjectConstruction.kt | 15 +- .../coroutines/suspensionInsideSafeCall.kt | 40 +++ .../suspensionInsideSafeCallWithElvis.kt | 37 +++ .../tailOperations/suspendWithIf.kt | 30 ++ .../tailOperations/suspendWithTryCatch.kt | 34 ++ .../tailOperations/suspendWithWhen.kt | 33 ++ .../tryCatchFinallyWithHandleResult.kt | 11 +- .../coroutines/tryCatchWithHandleResult.kt | 11 +- .../tryFinallyInsideInlineLambda.kt | 7 +- .../coroutines/tryFinallyWithHandleResult.kt | 11 +- .../unitTypeReturn/coroutineNonLocalReturn.kt | 9 +- .../unitTypeReturn/coroutineReturn.kt | 9 +- .../unitTypeReturn/suspendNonLocalReturn.kt | 8 +- .../unitTypeReturn/suspendReturn.kt | 7 +- .../coroutines/varSpilling/nullSpilling.kt | 46 +++ .../coroutines/varValueConflictsWithTable.kt | 7 +- .../varValueConflictsWithTableSameSort.kt | 7 +- .../dataClasses/arrayParams.kt | 0 .../dataClasses/changingVarParam.kt | 0 .../copy/constructorWithDefaultParam.kt | 0 .../copy/copyInObjectNestedDataClass.kt | 0 .../dataClasses/copy/kt12708.kt | 0 .../dataClasses/copy/kt3033.kt | 0 .../copy/valInConstructorParams.kt | 0 .../copy/varInConstructorParams.kt | 0 .../dataClasses/copy/withGenericParameter.kt | 0 .../dataClasses/doubleParam.kt | 2 +- .../dataClasses/equals/alreadyDeclared.kt | 0 .../equals/alreadyDeclaredWrongSignature.kt | 0 .../dataClasses/equals/genericarray.kt | 0 .../dataClasses/equals/intarray.kt | 0 .../dataClasses/equals/nullother.kt | 0 .../dataClasses/equals/sameinstance.kt | 0 .../dataClasses/floatParam.kt | 2 +- .../dataClasses/genericParam.kt | 0 .../dataClasses/hashCode/alreadyDeclared.kt | 0 .../hashCode/alreadyDeclaredWrongSignature.kt | 0 .../dataClasses/hashCode/array.kt | 0 .../dataClasses/hashCode/boolean.kt | 0 .../dataClasses/hashCode/byte.kt | 0 .../dataClasses/hashCode/char.kt | 0 .../dataClasses/hashCode/double.kt | 0 .../dataClasses/hashCode/float.kt | 0 .../dataClasses/hashCode/genericNull.kt | 0 .../dataClasses/hashCode/int.kt | 0 .../dataClasses/hashCode/long.kt | 0 .../dataClasses/hashCode/null.kt | 0 .../dataClasses/hashCode/short.kt | 0 .../{blackbox => box}/dataClasses/kt5002.kt | 0 .../dataClasses/mixedParams.kt | 0 .../dataClasses/multiDeclaration.kt | 0 .../dataClasses/multiDeclarationFor.kt | 0 .../nonTrivialFinalMemberInSuperClass.kt | 0 .../nonTrivialMemberInSuperClass.kt | 0 .../dataClasses/privateValParams.kt | 0 .../dataClasses/toString/alreadyDeclared.kt | 0 .../toString/alreadyDeclaredWrongSignature.kt | 0 .../dataClasses/toString/arrayParams.kt | 2 +- .../dataClasses/toString/changingVarParam.kt | 0 .../dataClasses/toString/genericParam.kt | 0 .../dataClasses/toString/mixedParams.kt | 0 .../dataClasses/toString/unitComponent.kt | 0 .../dataClasses/twoValParams.kt | 0 .../dataClasses/twoVarParams.kt | 0 .../dataClasses/unitComponent.kt | 0 .../deadCodeElimination/emptyVariableRange.kt | 0 .../intersectingVariableRange.kt | 0 .../intersectingVariableRangeInFinally.kt | 0 .../deadCodeElimination/kt14357.kt | 0 .../constructor/annotation.kt | 0 .../constructor/annotationWithEmptyArray.kt | 8 + .../checkIfConstructorIsSynthetic.kt | 0 .../defaultArguments/constructor/defArgs1.kt | 0 .../constructor/defArgs1InnerClass.kt | 0 .../defaultArguments/constructor/defArgs2.kt | 0 .../constructor/doubleDefArgs1InnerClass.kt | 0 .../defaultArguments/constructor/enum.kt | 0 .../constructor/enumWithOneDefArg.kt | 0 .../constructor/enumWithTwoDefArgs.kt | 0 .../constructor/enumWithTwoDoubleDefArgs.kt | 0 .../defaultArguments/constructor/kt2852.kt | 0 .../defaultArguments/constructor/kt3060.kt | 0 .../defaultArguments/constructor/manyArgs.kt | 0 .../convention/incWithDefaultInGetter.kt | 0 .../defaultArguments/convention/kt9140.kt | 0 .../plusAssignWithDefaultInGetter.kt | 0 .../function/abstractClass.kt | 0 .../function/covariantOverride.kt | 0 .../function/covariantOverrideGeneric.kt | 0 .../function/extensionFunctionManyArgs.kt | 0 .../function/extentionFunction.kt | 0 .../function/extentionFunctionDouble.kt | 0 .../extentionFunctionDoubleTwoArgs.kt | 0 .../extentionFunctionInClassObject.kt | 0 .../function/extentionFunctionInObject.kt | 0 .../extentionFunctionWithOneDefArg.kt | 0 .../defaultArguments/function/funInTrait.kt | 0 .../function/innerExtentionFunction.kt | 0 .../function/innerExtentionFunctionDouble.kt | 0 .../innerExtentionFunctionDoubleTwoArgs.kt | 0 .../innerExtentionFunctionManyArgs.kt | 0 .../defaultArguments/function/kt5232.kt | 0 .../function/memberFunctionManyArgs.kt | 0 .../function/mixingNamedAndPositioned.kt | 0 .../function/topLevelManyArgs.kt | 0 .../defaultArguments/function/trait.kt | 0 .../box/defaultArguments/implementedByFake.kt | 42 +++ .../defaultArguments/kt6382.kt | 0 .../private/memberExtensionFunction.kt | 0 .../private/memberFunction.kt | 0 .../private/primaryConstructor.kt | 0 .../private/secondaryConstructor.kt | 0 .../defaultArguments/protected.kt | 0 .../defaultArguments/signature/kt2789.kt | 0 .../defaultArguments/signature/kt9428.kt | 0 .../defaultArguments/signature/kt9924.kt | 0 .../defaultArguments/simpleFromOtherFile.kt | 0 .../defaultArguments/superCallCheck.kt | 0 ...accessTopLevelDelegatedPropertyInClinit.kt | 0 .../capturePropertyInClosure.kt | 0 .../delegatedProperty/castGetReturnType.kt | 0 .../delegatedProperty/castSetParameter.kt | 0 .../delegatedProperty/delegateAsInnerClass.kt | 0 .../delegateByOtherProperty.kt | 0 .../delegateByTopLevelFun.kt | 0 .../delegateByTopLevelProperty.kt | 0 .../delegateForExtProperty.kt | 0 .../delegateForExtPropertyInClass.kt | 0 .../delegateWithPrivateSet.kt | 0 .../extensionDelegatesWithSameNames.kt | 0 .../extensionPropertyAndExtensionGetValue.kt | 0 .../delegatedProperty/genericDelegate.kt | 0 .../delegatedProperty/getAsExtensionFun.kt | 0 .../getAsExtensionFunInClass.kt | 0 .../getDelegateWithoutReflection.kt | 22 ++ .../delegatedProperty/inClassVal.kt | 0 .../delegatedProperty/inClassVar.kt | 0 .../delegatedProperty/inTrait.kt | 0 .../delegatedProperty/inferredPropertyType.kt | 0 .../delegatedProperty/kt4138.kt | 0 .../delegatedProperty/kt6722.kt | 0 .../delegatedProperty/kt9712.kt | 0 .../local/capturedLocalVal.kt | 0 .../local/capturedLocalValNoInline.kt | 0 .../local/capturedLocalVar.kt | 0 .../local/capturedLocalVarNoInline.kt | 0 .../delegatedProperty/local/inlineGetValue.kt | 0 .../local/inlineOperators.kt | 0 .../delegatedProperty/local/kt12891.kt | 0 .../delegatedProperty/local/kt13557.kt | 0 .../delegatedProperty/local/localVal.kt | 0 .../local/localValNoExplicitType.kt | 0 .../delegatedProperty/local/localVar.kt | 0 .../local/localVarNoExplicitType.kt | 0 .../privateSetterKPropertyIsNotMutable.kt | 0 .../delegatedProperty/privateVar.kt | 0 .../propertyMetadataShouldBeCached.kt | 0 .../protectedVarWithPrivateSet.kt | 0 .../provideDelegate/differentReceivers.kt | 0 .../provideDelegate/evaluationOrder.kt | 0 .../provideDelegate/evaluationOrderVar.kt | 0 .../provideDelegate/extensionDelegated.kt | 0 .../provideDelegate/generic.kt | 0 .../provideDelegate/hostCheck.kt | 0 .../provideDelegate/inClass.kt | 0 .../provideDelegate/inlineProvideDelegate.kt | 0 .../provideDelegate/jvmStaticInObject.kt | 0 .../provideDelegate/kt15437.kt | 0 .../provideDelegate/kt16441.kt | 16 + .../provideDelegate/local.kt | 0 .../provideDelegate/localCaptured.kt | 0 .../localDifferentReceivers.kt | 0 .../provideDelegate/memberExtension.kt | 0 .../provideDelegate/propertyMetadata.kt | 0 .../delegatedProperty/setAsExtensionFun.kt | 0 .../setAsExtensionFunInClass.kt | 0 .../stackOverflowOnCallFromGetValue.kt | 0 .../delegatedProperty/topLevelVal.kt | 0 .../delegatedProperty/topLevelVar.kt | 0 .../delegatedProperty/twoPropByOneDelegete.kt | 0 .../delegatedProperty/useKPropertyLater.kt | 1 - .../useReflectionOnKProperty.kt | 0 .../delegatedProperty/valInInnerClass.kt | 0 .../delegatedProperty/varInInnerClass.kt | 0 .../delegation/delegationToVal.kt | 0 .../delegationWithPrivateConstructor.kt | 17 + .../delegation/hiddenSuperOverrideIn1.0.kt | 20 ++ .../{blackbox => box}/delegation/kt8154.kt | 0 .../extensionComponents.kt | 0 .../destructuringDeclInLambdaParam/generic.kt | 0 .../destructuringDeclInLambdaParam/inline.kt | 0 .../otherParameters.kt | 0 .../destructuringDeclInLambdaParam/simple.kt | 0 .../stdlibUsages.kt | 0 .../underscoreNames.kt | 0 .../withIndexed.kt | 0 .../diagnostics/functions/inference/kt6176.kt | 0 .../functions/inference/kt6176.txt | 0 .../invoke/onObjects/invokeOnClassObject1.kt | 0 .../invoke/onObjects/invokeOnClassObject1.txt | 0 .../invoke/onObjects/invokeOnClassObject2.kt | 0 .../invoke/onObjects/invokeOnClassObject2.txt | 0 .../invokeOnClassObjectOfNestedClass1.kt | 0 .../invokeOnClassObjectOfNestedClass1.txt | 0 .../invokeOnClassObjectOfNestedClass2.kt | 0 .../invokeOnClassObjectOfNestedClass2.txt | 0 .../invoke/onObjects/invokeOnEnum1.kt | 0 .../invoke/onObjects/invokeOnEnum1.txt | 0 .../invoke/onObjects/invokeOnEnum2.kt | 0 .../invoke/onObjects/invokeOnEnum2.txt | 0 .../invoke/onObjects/invokeOnImportedEnum1.kt | 0 .../onObjects/invokeOnImportedEnum1.txt | 0 .../invoke/onObjects/invokeOnImportedEnum2.kt | 0 .../onObjects/invokeOnImportedEnum2.txt | 0 .../invoke/onObjects/invokeOnObject1.kt | 0 .../invoke/onObjects/invokeOnObject1.txt | 0 .../invoke/onObjects/invokeOnObject2.kt | 0 .../invoke/onObjects/invokeOnObject2.txt | 0 .../functions/tailRecursion/defaultArgs.kt | 0 .../functions/tailRecursion/defaultArgs.txt | 0 .../tailRecursion/defaultArgsOverridden.kt | 0 .../tailRecursion/defaultArgsOverridden.txt | 0 .../tailRecursion/extensionTailCall.kt | 0 .../tailRecursion/extensionTailCall.txt | 0 .../tailRecursion/functionWithNoTails.kt | 0 .../tailRecursion/functionWithNoTails.txt | 0 .../functionWithNonTailRecursions.kt | 0 .../functionWithNonTailRecursions.txt | 0 .../functionWithoutAnnotation.kt | 0 .../functionWithoutAnnotation.txt | 0 .../functions/tailRecursion/infixCall.kt | 0 .../functions/tailRecursion/infixCall.txt | 0 .../tailRecursion/infixRecursiveCall.kt | 0 .../tailRecursion/infixRecursiveCall.txt | 0 .../functions/tailRecursion/insideElvis.kt | 0 .../functions/tailRecursion/insideElvis.txt | 0 .../tailRecursion/labeledThisReferences.kt | 0 .../tailRecursion/labeledThisReferences.txt | 0 .../functions/tailRecursion/loops.kt | 0 .../functions/tailRecursion/loops.txt | 0 .../tailRecursion/multilevelBlocks.kt | 0 .../tailRecursion/multilevelBlocks.txt | 0 .../tailRecursion/realIteratorFoldl.kt | 0 .../tailRecursion/realIteratorFoldl.txt | 0 .../tailRecursion/realStringEscape.kt | 0 .../tailRecursion/realStringEscape.txt | 0 .../tailRecursion/realStringRepeat.kt | 0 .../tailRecursion/realStringRepeat.txt | 0 .../tailRecursion/recursiveCallInLambda.kt | 0 .../tailRecursion/recursiveCallInLambda.txt | 0 .../recursiveCallInLocalFunction.kt | 0 .../recursiveCallInLocalFunction.txt | 0 .../tailRecursion/recursiveInnerFunction.kt | 0 .../tailRecursion/recursiveInnerFunction.txt | 0 .../functions/tailRecursion/returnIf.kt | 0 .../functions/tailRecursion/returnIf.txt | 0 .../functions/tailRecursion/returnInCatch.kt | 0 .../functions/tailRecursion/returnInCatch.txt | 0 .../tailRecursion/returnInFinally.kt | 0 .../tailRecursion/returnInFinally.txt | 0 .../tailRecursion/returnInIfInFinally.kt | 0 .../tailRecursion/returnInIfInFinally.txt | 0 .../tailRecursion/returnInParentheses.kt | 0 .../tailRecursion/returnInParentheses.txt | 0 .../functions/tailRecursion/returnInTry.kt | 0 .../functions/tailRecursion/returnInTry.txt | 0 .../functions/tailRecursion/simpleBlock.kt | 0 .../functions/tailRecursion/simpleBlock.txt | 0 .../functions/tailRecursion/simpleReturn.kt | 0 .../functions/tailRecursion/simpleReturn.txt | 0 .../tailRecursion/simpleReturnWithElse.kt | 0 .../tailRecursion/simpleReturnWithElse.txt | 0 .../functions/tailRecursion/sum.kt | 0 .../functions/tailRecursion/sum.txt | 0 .../tailCallInBlockInParentheses.kt | 0 .../tailCallInBlockInParentheses.txt | 0 .../tailRecursion/tailCallInParentheses.kt | 0 .../tailRecursion/tailCallInParentheses.txt | 0 .../tailRecursion/tailRecursionInFinally.kt | 0 .../tailRecursion/tailRecursionInFinally.txt | 0 .../functions/tailRecursion/thisReferences.kt | 0 .../tailRecursion/thisReferences.txt | 0 .../functions/tailRecursion/unitBlocks.kt | 0 .../functions/tailRecursion/unitBlocks.txt | 0 .../tailRecursion/whenWithCondition.kt | 0 .../tailRecursion/whenWithCondition.txt | 0 .../tailRecursion/whenWithInRange.kt | 0 .../tailRecursion/whenWithInRange.txt | 0 .../functions/tailRecursion/whenWithIs.kt | 0 .../functions/tailRecursion/whenWithIs.txt | 0 .../tailRecursion/whenWithoutCondition.kt | 0 .../tailRecursion/whenWithoutCondition.txt | 0 .../diagnostics/vararg/kt4172.kt | 4 +- .../diagnostics/vararg/kt4172.txt | 0 .../{blackbox => box}/elvis/genericNull.kt | 0 .../elvis/kt6694ExactAnnotationForElvis.kt | 0 .../{blackbox => box}/elvis/nullNullOk.kt | 0 .../{blackbox => box}/elvis/primitive.kt | 0 .../enum/abstractMethodInEnum.kt | 0 .../enum/abstractNestedClass.kt | 0 .../enum/asReturnExpression.kt | 0 .../enum/classForEnumEntry.kt | 0 .../enum/companionObjectInEnum.kt | 0 .../constructorWithDefaultArguments.kt | 6 + .../enum/defaultCtor/constructorWithVararg.kt | 7 + ...econdaryConstructorWithDefaultArguments.kt | 7 + .../secondaryConstructorWithVararg.kt | 10 + .../enum/emptyConstructor.kt | 3 - .../enum/emptyEnumValuesValueOf.kt | 0 .../enum/enumInheritedFromTrait.kt | 0 .../{blackbox => box}/enum/enumShort.kt | 0 .../enum/enumWithLambdaParameter.kt | 0 .../{blackbox => box}/enum/inPackage.kt | 0 .../{blackbox => box}/enum/inclassobj.kt | 0 .../codegen/{blackbox => box}/enum/inner.kt | 0 .../enum/innerWithExistingClassObject.kt | 0 .../codegen/{blackbox => box}/enum/kt1119.kt | 0 .../codegen/{blackbox => box}/enum/kt2350.kt | 0 .../codegen/{blackbox => box}/enum/kt9711.kt | 0 .../{blackbox => box}/enum/kt9711_2.kt | 0 .../codegen/box/enum/manyDefaultParameters.kt | 55 +++ .../{blackbox => box}/enum/modifierFlags.kt | 0 .../enum/noClassForSimpleEnum.kt | 0 .../{blackbox => box}/enum/objectInEnum.kt | 0 .../codegen/{blackbox => box}/enum/ordinal.kt | 0 .../codegen/{blackbox => box}/enum/simple.kt | 0 .../{blackbox => box}/enum/sortEnumEntries.kt | 0 .../enum/superCallInEnumLiteral.kt | 0 .../{blackbox => box}/enum/toString.kt | 0 .../codegen/{blackbox => box}/enum/valueof.kt | 0 .../{blackbox => box}/evaluate/char.kt | 0 .../{blackbox => box}/evaluate/divide.kt | 0 .../{blackbox => box}/evaluate/intrinsics.kt | 0 .../{blackbox => box}/evaluate/kt9443.kt | 0 .../{blackbox => box}/evaluate/maxValue.kt | 0 .../evaluate/maxValueByte.kt | 0 .../{blackbox => box}/evaluate/maxValueInt.kt | 0 .../{blackbox => box}/evaluate/minus.kt | 0 .../codegen/{blackbox => box}/evaluate/mod.kt | 0 .../{blackbox => box}/evaluate/multiply.kt | 0 .../evaluate/parenthesized.kt | 0 .../{blackbox => box}/evaluate/plus.kt | 0 .../evaluate/simpleCallBinary.kt | 0 .../{blackbox => box}/evaluate/unaryMinus.kt | 0 .../{blackbox => box}/evaluate/unaryPlus.kt | 0 .../{blackbox => box}/exclExcl/genericNull.kt | 0 .../{blackbox => box}/exclExcl/primitive.kt | 0 .../extensionFunctions/executionOrder.kt | 0 .../extensionFunctions/kt1061.kt | 0 .../extensionFunctions/kt1249.kt | 0 .../extensionFunctions/kt1290.kt | 0 .../codegen/box/extensionFunctions/kt13312.kt | 23 ++ .../extensionFunctions/kt1776.kt | 0 .../extensionFunctions/kt1953.kt | 0 .../extensionFunctions/kt1953_class.kt | 0 .../extensionFunctions/kt3285.kt | 0 .../extensionFunctions/kt3298.kt | 0 .../extensionFunctions/kt3646.kt | 3 - .../extensionFunctions/kt3969.kt | 0 .../extensionFunctions/kt4228.kt | 0 .../extensionFunctions/kt475.kt | 0 .../extensionFunctions/kt5467.kt | 0 .../extensionFunctions/kt606.kt | 0 .../extensionFunctions/kt865.kt | 0 .../extensionFunctions/nested2.kt | 0 .../extensionFunctions/shared.kt | 0 .../extensionFunctions/simple.kt | 0 .../thisMethodInObjectLiteral.kt | 0 .../extensionFunctions/virtual.kt | 0 .../extensionFunctions/whenFail.kt | 2 +- .../accessorForPrivateSetter.kt | 0 .../genericValForPrimitiveType.kt | 0 .../genericValMultipleUpperBounds.kt | 0 .../genericVarForPrimitiveType.kt | 0 .../extensionProperties/inClass.kt | 0 .../inClassLongTypeInReceiver.kt | 0 .../extensionProperties/inClassWithGetter.kt | 0 .../inClassWithPrivateGetter.kt | 0 .../inClassWithPrivateSetter.kt | 0 .../extensionProperties/inClassWithSetter.kt | 0 .../extensionProperties/kt9897.kt | 0 .../extensionProperties/kt9897_topLevel.kt | 0 .../extensionProperties/topLevel.kt | 0 .../topLevelLongTypeInReceiver.kt | 0 .../external/jvmStaticExternal.kt | 0 .../external/jvmStaticExternalPrivate.kt | 0 .../external/withDefaultArg.kt | 0 .../fakeOverride/diamondFunction.kt | 0 .../fakeOverride/function.kt | 0 .../fakeOverride/propertyGetter.kt | 0 .../fakeOverride/propertySetter.kt | 0 .../fieldRename/constructorAndClassObject.kt | 0 .../fieldRename/delegates.kt | 0 .../fieldRename/genericPropertyWithItself.kt | 0 .../finally/finallyAndFinally.kt | 0 .../{blackbox => box}/finally/kt3549.kt | 0 .../{blackbox => box}/finally/kt3706.kt | 0 .../{blackbox => box}/finally/kt3867.kt | 0 .../{blackbox => box}/finally/kt3874.kt | 0 .../{blackbox => box}/finally/kt3894.kt | 0 .../{blackbox => box}/finally/kt4134.kt | 0 .../finally/loopAndFinally.kt | 0 .../finally/notChainCatch.kt | 0 .../{blackbox => box}/finally/tryFinally.kt | 0 .../{blackbox => box}/finally/tryLoopTry.kt | 0 .../{blackbox => box}/fullJdk/charBuffer.kt | 0 .../{blackbox => box}/fullJdk/classpath.kt | 0 .../{blackbox => box}/fullJdk/ifInWhile.kt | 0 .../fullJdk/intCountDownLatchExtension.kt | 0 .../{blackbox => box}/fullJdk/kt434.kt | 0 .../fullJdk/native/nativePropertyAccessors.kt | 0 .../fullJdk/native/simpleNative.kt | 0 .../fullJdk/native/topLevel.kt | 0 .../platformTypeAssertionStackTrace.kt | 0 .../box/fullJdk/regressions/kt15112.kt | 29 ++ .../fullJdk/regressions/kt1770.kt | 0 .../functions/coerceVoidToArray.kt | 0 .../functions/coerceVoidToObject.kt | 0 .../functions/dataLocalVariable.kt | 0 .../functions/defaultargs.kt | 0 .../functions/defaultargs1.kt | 0 .../functions/defaultargs2.kt | 0 .../functions/defaultargs3.kt | 0 .../functions/defaultargs4.kt | 0 .../functions/defaultargs5.kt | 0 .../functions/defaultargs6.kt | 0 .../functions/defaultargs7.kt | 0 .../{blackbox => box}/functions/ea33909.kt | 0 .../fakeDescriptorWithSeveralOverridenOne.kt | 0 .../functionExpression/functionExpression.kt | 0 .../functionExpressionWithThisReference.kt | 0 .../functionLiteralExpression.kt | 0 .../underscoreParameters.kt | 0 .../functions/functionNtoString.kt | 0 .../functions/functionNtoStringGeneric.kt | 0 .../functions/functionNtoStringNoReflect.kt | 0 .../functions/infixRecursiveCall.kt | 0 .../invoke/castFunctionToExtension.kt | 3 - .../functions/invoke/extensionInvokeOnExpr.kt | 0 ...InCompanionObjectWithFunctionalArgument.kt | 0 ...plicitInvokeWithFunctionLiteralArgument.kt | 0 .../functions/invoke/invoke.kt | 0 .../invoke/invokeOnExprByConvention.kt | 0 .../invoke/invokeOnSyntheticProperty.kt | 0 .../functions/invoke/kt3189.kt | 0 .../functions/invoke/kt3190.kt | 2 +- .../functions/invoke/kt3297.kt | 0 .../functions/invoke/kt3450getAndInvoke.kt | 0 .../functions/invoke/kt3631invokeOnString.kt | 0 .../functions/invoke/kt3772.kt | 0 .../functions/invoke/kt3821invokeOnThis.kt | 0 .../functions/invoke/kt3822invokeOnThis.kt | 2 +- .../{blackbox => box}/functions/kt1038.kt | 0 .../{blackbox => box}/functions/kt1199.kt | 0 .../{blackbox => box}/functions/kt1413.kt | 0 .../{blackbox => box}/functions/kt1649_1.kt | 0 .../{blackbox => box}/functions/kt1649_2.kt | 0 .../{blackbox => box}/functions/kt1739.kt | 0 .../{blackbox => box}/functions/kt2270.kt | 0 .../{blackbox => box}/functions/kt2271.kt | 0 .../{blackbox => box}/functions/kt2280.kt | 0 .../{blackbox => box}/functions/kt2481.kt | 0 .../{blackbox => box}/functions/kt2716.kt | 0 .../{blackbox => box}/functions/kt2739.kt | 0 .../{blackbox => box}/functions/kt2929.kt | 0 .../{blackbox => box}/functions/kt3214.kt | 0 .../{blackbox => box}/functions/kt3313.kt | 0 .../{blackbox => box}/functions/kt3573.kt | 0 .../{blackbox => box}/functions/kt3724.kt | 0 .../{blackbox => box}/functions/kt395.kt | 0 .../{blackbox => box}/functions/kt785.kt | 0 .../{blackbox => box}/functions/kt873.kt | 0 .../functions/localFunction.kt | 0 .../localFunctions/callInlineLocalInLambda.kt | 0 .../localFunctions/definedWithinLambda.kt | 0 .../definedWithinLambdaInnerUsage1.kt | 0 .../definedWithinLambdaInnerUsage2.kt | 0 .../functions/localFunctions/kt2895.kt | 0 .../functions/localFunctions/kt3308.kt | 0 .../functions/localFunctions/kt3978.kt | 0 .../functions/localFunctions/kt4119.kt | 0 .../functions/localFunctions/kt4119_2.kt | 0 .../functions/localFunctions/kt4514.kt | 0 .../functions/localFunctions/kt4777.kt | 0 .../functions/localFunctions/kt4783.kt | 0 .../functions/localFunctions/kt4784.kt | 0 .../functions/localFunctions/kt4989.kt | 3 - .../localExtensionOnNullableParameter.kt | 0 .../localFunctionInConstructor.kt | 0 .../localReturnInsideFunctionExpression.kt | 0 .../functions/nothisnoclosure.kt | 0 .../functions/prefixRecursiveCall.kt | 0 .../functions/recursiveCompareTo.kt | 0 .../functions/recursiveIncrementCall.kt | 0 .../{blackbox => box}/hashPMap/empty.kt | 0 .../{blackbox => box}/hashPMap/manyNumbers.kt | 0 .../hashPMap/rewriteWithDifferent.kt | 0 .../hashPMap/rewriteWithEqual.kt | 0 .../hashPMap/simplePlusGet.kt | 0 .../hashPMap/simplePlusMinus.kt | 0 .../{blackbox => box}/ieee754/anyToReal.kt | 0 .../ieee754/comparableTypeCast.kt | 2 +- .../{blackbox => box}/ieee754/dataClass.kt | 1 - .../{blackbox => box}/ieee754/equalsDouble.kt | 0 .../{blackbox => box}/ieee754/equalsFloat.kt | 0 .../external/codegen/box/ieee754/equalsNaN.kt | 223 +++++++++++++ .../ieee754/equalsNullableDouble.kt | 4 + .../box/ieee754/equalsNullableFloat.kt | 34 ++ .../ieee754/explicitCompareCall.kt | 2 +- .../ieee754/explicitEqualsCall.kt | 2 +- .../{blackbox => box}/ieee754/generic.kt | 0 .../ieee754/greaterDouble.kt | 0 .../{blackbox => box}/ieee754/greaterFloat.kt | 0 .../{blackbox => box}/ieee754/inline.kt | 2 +- .../{blackbox => box}/ieee754/lessDouble.kt | 0 .../{blackbox => box}/ieee754/lessFloat.kt | 0 .../ieee754/nullableAnyToReal.kt | 0 .../box/ieee754/nullableDoubleEquals.kt | 25 ++ .../box/ieee754/nullableDoubleEquals10.kt | 26 ++ .../box/ieee754/nullableDoubleNotEquals.kt | 25 ++ .../box/ieee754/nullableDoubleNotEquals10.kt | 26 ++ .../box/ieee754/nullableFloatEquals.kt | 25 ++ .../box/ieee754/nullableFloatEquals10.kt | 26 ++ .../box/ieee754/nullableFloatNotEquals.kt | 25 ++ .../box/ieee754/nullableFloatNotEquals10.kt | 26 ++ .../codegen/box/ieee754/nullableIntEquals.kt | 26 ++ .../{blackbox => box}/ieee754/safeCall.kt | 2 +- .../ieee754/smartCastToDifferentTypes.kt | 2 +- .../codegen/{blackbox => box}/ieee754/when.kt | 11 +- .../external/codegen/box/ieee754/when10.kt | 29 ++ .../ieee754/whenNoSubject.kt | 0 .../box/ieee754/whenNullableSmartCast.kt | 27 ++ .../box/ieee754/whenNullableSmartCast10.kt | 28 ++ .../increment/arrayElement.kt | 0 .../increment/assignPlusOnSmartCast.kt | 0 .../augmentedAssignmentWithComplexRhs.kt | 0 .../increment/classNaryGetSet.kt | 0 .../increment/classWithGetSet.kt | 0 .../{blackbox => box}/increment/extOnLong.kt | 0 .../increment/genericClassWithGetSet.kt | 0 .../increment/memberExtOnLong.kt | 0 .../increment/mutableListElement.kt | 0 .../{blackbox => box}/increment/nullable.kt | 0 .../postfixIncrementDoubleSmartCast.kt | 0 .../increment/postfixIncrementOnClass.kt | 0 .../postfixIncrementOnClassSmartCast.kt | 0 .../postfixIncrementOnShortSmartCast.kt | 0 .../increment/postfixIncrementOnSmartCast.kt | 0 .../postfixNullableClassIncrement.kt | 0 .../increment/postfixNullableIncrement.kt | 0 .../increment/prefixIncrementOnClass.kt | 0 .../prefixIncrementOnClassSmartCast.kt | 0 .../increment/prefixIncrementOnSmartCast.kt | 0 .../increment/prefixNullableClassIncrement.kt | 0 .../increment/prefixNullableIncrement.kt | 0 .../innerNested/createNestedClass.kt | 0 .../innerNested/createdNestedInOuterMember.kt | 0 .../innerNested/extensionFun.kt | 0 .../innerNested/extensionToNested.kt | 0 .../innerNested/importNestedClass.kt | 0 .../innerNested/innerGeneric.kt | 0 .../innerNested/innerGenericClassFromJava.kt | 0 .../innerNested/innerJavaClass.kt | 0 .../innerNested/innerLabeledThis.kt | 0 .../innerNested/innerSimple.kt | 0 .../{blackbox => box}/innerNested/kt3132.kt | 0 .../{blackbox => box}/innerNested/kt3927.kt | 0 .../{blackbox => box}/innerNested/kt5363.kt | 0 .../{blackbox => box}/innerNested/kt6804.kt | 0 .../innerNested/nestedClassInObject.kt | 0 .../innerNested/nestedClassObject.kt | 0 .../innerNested/nestedEnumConstant.kt | 0 .../innerNested/nestedGeneric.kt | 0 .../innerNested/nestedInPackage.kt | 0 .../innerNested/nestedObjects.kt | 0 .../innerNested/nestedSimple.kt | 0 .../innerNested/protectedNestedClass.kt | 0 .../protectedNestedClassFromJava.kt | 0 .../deepInnerHierarchy.kt | 0 .../deepLocalHierarchy.kt | 0 ...innerExtendsInnerViaSecondaryConstuctor.kt | 0 ...innerExtendsInnerWithProperOuterCapture.kt | 0 .../superConstructorCall/innerExtendsOuter.kt | 2 +- .../superConstructorCall/kt11833_1.kt | 0 .../superConstructorCall/kt11833_2.kt | 0 .../localClassOuterDiffersFromInnerOuter.kt | 0 .../superConstructorCall/localExtendsInner.kt | 0 .../localExtendsLocalWithClosure.kt | 0 ...localWithClosureExtendsLocalWithClosure.kt | 0 .../objectExtendsClassDefaultArgument.kt | 0 .../objectExtendsClassVararg.kt | 0 .../objectExtendsInner.kt | 0 .../objectExtendsInnerDefaultArgument.kt | 0 ...jectExtendsInnerOfLocalVarargAndDefault.kt | 0 .../objectExtendsInnerOfLocalWithCapture.kt | 0 .../objectExtendsLocalCaptureInSuperCall.kt | 0 .../objectExtendsLocalWithClosure.kt | 0 .../objectOuterDiffersFromInnerOuter.kt | 0 .../swap/swapRefToSharedVarInt.kt | 0 .../swap/swapRefToSharedVarLong.kt | 0 .../{blackbox => box}/intrinsics/charToInt.kt | 0 .../intrinsics/defaultObjectMapping.kt | 0 .../{blackbox => box}/intrinsics/ea35953.kt | 0 .../intrinsics/incWithLabel.kt | 0 .../codegen/box/intrinsics/kt10131.kt | 4 + .../codegen/box/intrinsics/kt10131a.kt | 4 + .../{blackbox => box}/intrinsics/kt12125.kt | 0 .../{blackbox => box}/intrinsics/kt12125_2.kt | 0 .../intrinsics/kt12125_inc.kt | 0 .../intrinsics/kt12125_inc_2.kt | 0 .../{blackbox => box}/intrinsics/kt5937.kt | 0 .../external/codegen/box/intrinsics/kt8666.kt | 18 + .../intrinsics/longRangeWithExplicitDot.kt | 0 .../intrinsics/prefixIncDec.kt | 0 .../intrinsics/rangeFromCollection.kt | 0 .../intrinsics/stringFromCollection.kt | 0 .../{blackbox => box}/intrinsics/throwable.kt | 2 +- .../intrinsics/throwableCallableReference.kt | 2 +- .../intrinsics/throwableParamOrder.kt | 3 - .../{blackbox => box}/intrinsics/tostring.kt | 2 +- .../generics/allWildcardsOnClass.kt | 0 ...ntOverrideWithDeclarationSiteProjection.kt | 0 .../generics/invariantArgumentsNoWildcard.kt | 0 .../javaInterop/lambdaInstanceOf.kt | 0 .../extensionReceiverParameter.kt | 0 .../javaInterop/notNullAssertions/mapPut.kt | 1 + .../objectMethods/cloneCallsConstructor.kt | 0 .../objectMethods/cloneCallsSuper.kt | 0 .../cloneCallsSuperAndModifies.kt | 0 .../javaInterop/objectMethods/cloneHashSet.kt | 0 .../objectMethods/cloneHierarchy.kt | 0 .../cloneableClassWithoutClone.kt | 0 .../{blackbox => box}/jdk/arrayList.kt | 0 .../codegen/{blackbox => box}/jdk/hashMap.kt | 0 .../jdk/iteratingOverHashMap.kt | 0 .../codegen/{blackbox => box}/jdk/kt1397.kt | 0 .../jvmField/captureClassFields.kt | 0 .../jvmField/capturePackageFields.kt | 0 .../jvmField/checkNoAccessors.kt | 0 .../jvmField/classFieldReference.kt | 0 .../jvmField/classFieldReflection.kt | 0 .../jvmField/constructorProperty.kt | 0 .../{blackbox => box}/jvmField/publicField.kt | 0 .../jvmField/simpleMemberProperty.kt | 0 .../{blackbox => box}/jvmField/superCall.kt | 0 .../{blackbox => box}/jvmField/superCall2.kt | 0 .../jvmField/topLevelFieldReference.kt | 0 .../jvmField/topLevelFieldReflection.kt | 0 .../{blackbox => box}/jvmField/visibility.kt | 0 .../jvmField/writeFieldReference.kt | 0 .../jvmName/callableReference.kt | 0 .../jvmName/clashingErasure.kt | 0 .../{blackbox => box}/jvmName/classMembers.kt | 0 .../jvmName/fakeJvmNameInJava.kt | 0 .../jvmName/fileFacades/differentFiles.kt | 0 .../fileFacades/javaAnnotationOnFileFacade.kt | 0 .../jvmName/fileFacades/simple.kt | 0 .../{blackbox => box}/jvmName/functionName.kt | 0 .../jvmName/multifileClass.kt | 0 .../jvmName/multifileClassWithLocalClass.kt | 0 .../jvmName/multifileClassWithLocalGeneric.kt | 0 .../jvmName/propertyAccessorsUseSite.kt | 0 .../{blackbox => box}/jvmName/propertyName.kt | 0 .../jvmName/renamedFileClass.kt | 0 .../jvmOverloads/companionObject.kt | 0 .../jvmOverloads/defaultsNotAtEnd.kt | 0 .../jvmOverloads/doubleParameters.kt | 0 .../jvmOverloads/extensionMethod.kt | 0 .../jvmOverloads/generics.kt | 0 .../jvmOverloads/innerClass.kt | 0 .../jvmOverloads/multipleDefaultParameters.kt | 0 .../box/jvmOverloads/noRedundantVarargs.kt | 48 +++ .../jvmOverloads/nonDefaultParameter.kt | 0 .../jvmOverloads/primaryConstructor.kt | 0 .../jvmOverloads/privateClass.kt | 0 .../jvmOverloads/secondaryConstructor.kt | 0 .../{blackbox => box}/jvmOverloads/simple.kt | 0 .../jvmOverloads/simpleJavaCall.kt | 0 .../{blackbox => box}/jvmOverloads/varargs.kt | 0 .../jvmStatic/annotations.kt | 0 .../{blackbox => box}/jvmStatic/closure.kt | 0 .../jvmStatic/companionObject.kt | 0 .../{blackbox => box}/jvmStatic/convention.kt | 0 .../{blackbox => box}/jvmStatic/default.kt | 0 .../jvmStatic/enumCompanion.kt | 0 .../jvmStatic/explicitObject.kt | 0 .../{blackbox => box}/jvmStatic/funAccess.kt | 0 .../jvmStatic/importStaticMemberFromObject.kt | 0 .../{blackbox => box}/jvmStatic/inline.kt | 0 .../jvmStatic/inlinePropertyAccessors.kt | 0 .../jvmStatic/kt9897_static.kt | 0 .../{blackbox => box}/jvmStatic/object.kt | 0 .../{blackbox => box}/jvmStatic/postfixInc.kt | 0 .../{blackbox => box}/jvmStatic/prefixInc.kt | 0 .../jvmStatic/privateMethod.kt | 0 .../jvmStatic/privateSetter.kt | 2 +- .../jvmStatic/propertyAccess.kt | 0 .../jvmStatic/propertyAccessorsCompanion.kt | 0 .../jvmStatic/propertyAccessorsObject.kt | 0 .../jvmStatic/propertyAsDefault.kt | 0 .../propertyGetterDelegatesToAnother.kt | 12 + .../{blackbox => box}/jvmStatic/simple.kt | 0 .../jvmStatic/syntheticAccessor.kt | 0 .../labels/labeledDeclarations.kt | 0 .../labels/propertyAccessor.kt | 0 .../labels/propertyAccessorFunctionLiteral.kt | 0 .../propertyAccessorInnerExtensionFun.kt | 0 .../labels/propertyAccessorObject.kt | 0 .../labels/propertyInClassAccessor.kt | 0 .../exceptionInFieldInitializer.kt | 0 .../{blackbox => box}/lazyCodegen/ifElse.kt | 0 .../lazyCodegen/increment.kt | 0 .../optimizations/negateConstantCompare.kt | 0 .../lazyCodegen/optimizations/negateFalse.kt | 0 .../optimizations/negateFalseVar.kt | 0 .../optimizations/negateFalseVarChain.kt | 0 .../optimizations/negateObjectComp.kt | 0 .../optimizations/negateObjectComp2.kt | 0 .../lazyCodegen/optimizations/negateTrue.kt | 0 .../optimizations/negateTrueVar.kt | 0 .../optimizations/noOptimization.kt | 0 .../lazyCodegen/safeAssign.kt | 0 .../lazyCodegen/safeAssignComplex.kt | 0 .../lazyCodegen/safeCallAndArray.kt | 0 .../{blackbox => box}/lazyCodegen/toString.kt | 0 .../lazyCodegen/tryCatchExpression.kt | 0 .../{blackbox => box}/lazyCodegen/when.kt | 0 .../anonymousObjectInInitializer.kt | 0 .../anonymousObjectInParameterInitializer.kt | 0 .../localClasses/closureOfInnerLocalClass.kt | 0 .../closureOfLambdaInLocalClass.kt | 0 .../closureWithSelfInstantiation.kt | 0 .../localClasses/inExtensionFunction.kt | 0 .../localClasses/inExtensionProperty.kt | 0 .../localClasses/inLocalExtensionFunction.kt | 0 .../localClasses/inLocalExtensionProperty.kt | 0 .../localClasses/innerClassInLocalClass.kt | 0 .../innerOfLocalCaptureExtensionReceiver.kt | 0 .../{blackbox => box}/localClasses/kt2700.kt | 0 .../{blackbox => box}/localClasses/kt2873.kt | 4 + .../{blackbox => box}/localClasses/kt3210.kt | 0 .../{blackbox => box}/localClasses/kt3389.kt | 0 .../{blackbox => box}/localClasses/kt3584.kt | 0 .../{blackbox => box}/localClasses/kt4174.kt | 0 .../localClasses/localClass.kt | 0 .../localClassCaptureExtensionReceiver.kt | 0 .../localClasses/localClassInInitializer.kt | 0 .../localClassInParameterInitializer.kt | 0 .../localClasses/localDataClass.kt | 0 ...calExtendsInnerAndReferencesOuterMember.kt | 0 .../localClasses/noclosure.kt | 0 .../{blackbox => box}/localClasses/object.kt | 0 .../ownClosureOfInnerLocalClass.kt | 0 .../localClasses/withclosure.kt | 0 .../{blackbox => box}/mangling/field.kt | 0 .../codegen/{blackbox => box}/mangling/fun.kt | 0 .../mangling/internalOverride.kt | 0 .../mangling/internalOverrideSuperCall.kt | 0 .../mangling/noOverrideWithJava.kt | 0 .../mangling/publicOverride.kt | 0 .../mangling/publicOverrideSuperCall.kt | 0 .../multiDecl/ComplexInitializer.kt | 0 .../{blackbox => box}/multiDecl/SimpleVals.kt | 0 .../multiDecl/SimpleValsExtensions.kt | 0 .../multiDecl/SimpleVarsExtensions.kt | 0 .../multiDecl/UnderscoreNames.kt | 0 .../multiDecl/ValCapturedInFunctionLiteral.kt | 0 .../multiDecl/ValCapturedInLocalFunction.kt | 0 .../multiDecl/ValCapturedInObjectLiteral.kt | 0 .../multiDecl/VarCapturedInFunctionLiteral.kt | 0 .../multiDecl/VarCapturedInLocalFunction.kt | 0 .../multiDecl/VarCapturedInObjectLiteral.kt | 0 .../{blackbox => box}/multiDecl/component.kt | 0 .../multiDecl/forIterator/MultiDeclFor.kt | 0 .../MultiDeclForComponentExtensions.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../forIterator/MultiDeclForValCaptured.kt | 0 .../MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../multiDecl/forRange/MultiDeclFor.kt | 0 .../MultiDeclForComponentExtensions.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../forRange/MultiDeclForValCaptured.kt | 0 .../multiDecl/forRange/UnderscoreNames.kt | 0 .../UnderscoreNamesDontCallComponent.kt | 0 .../forRange/explicitRangeTo/MultiDeclFor.kt | 0 .../MultiDeclForComponentExtensions.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../MultiDeclForValCaptured.kt | 0 .../int/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../long/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../explicitRangeToWithDot/MultiDeclFor.kt | 0 .../MultiDeclForComponentExtensions.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../MultiDeclForValCaptured.kt | 0 .../int/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../long/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../int/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../long/MultiDeclForComponentExtensions.kt | 0 ...tiDeclForComponentExtensionsValCaptured.kt | 0 .../MultiDeclForComponentMemberExtensions.kt | 0 ...nentMemberExtensionsInExtensionFunction.kt | 0 .../multiDecl/kt9828_hashMap.kt | 0 .../multiDecl/returnInElvis.kt | 0 ...allMultifileClassMemberFromOtherPackage.kt | 3 +- .../callsToMultifileClassFromOtherPackage.kt | 4 +- ...onstPropertyReferenceFromMultifileClass.kt | 4 +- ...ineMultifileClassMemberFromOtherPackage.kt | 4 +- .../codegen/box/multifileClasses/kt16077.kt | 11 + .../multifileClassPartsInitialization.kt | 4 +- .../multifileClassWith2Files.kt | 4 +- .../multifileClassWithCrossCall.kt | 4 +- .../multifileClassWithPrivate.kt | 4 +- .../optimized/callableRefToFun.kt | 6 +- .../callableRefToInternalValInline.kt | 6 +- .../optimized/callableRefToPrivateVal.kt | 6 +- .../optimized/callableRefToVal.kt | 6 +- .../multifileClasses/optimized/calls.kt | 4 +- .../optimized/deferredStaticInitialization.kt | 6 +- .../optimized/delegatedVal.kt | 6 +- .../optimized/initializePrivateVal.kt | 6 +- .../optimized/initializePublicVal.kt | 4 +- .../optimized/overlappingFuns.kt | 4 +- .../optimized/overlappingVals.kt | 4 +- .../valAccessFromInlineFunCalledFromJava.kt | 6 +- .../valAccessFromInlinedToDifferentPackage.kt | 6 +- .../optimized/valWithAccessor.kt | 4 +- .../multifileClasses/privateConstVal.kt | 6 +- .../samePartNameDifferentFacades.kt | 4 +- .../nonLocalReturns/kt6895.kt | 0 .../nonLocalReturns/kt9644let.kt | 0 .../{blackbox => box}/nonLocalReturns/use.kt | 0 .../nonLocalReturns/useWithException.kt | 0 .../objectIntrinsics/objects.kt | 0 .../anonymousObjectPropertyInitialization.kt | 0 ...classCallsProtectedInheritedByCompanion.kt | 0 .../{blackbox => box}/objects/flist.kt | 0 .../objects/initializationOrder.kt | 0 .../{blackbox => box}/objects/kt1047.kt | 0 .../{blackbox => box}/objects/kt11117.kt | 0 .../{blackbox => box}/objects/kt1136.kt | 0 .../{blackbox => box}/objects/kt1186.kt | 0 .../{blackbox => box}/objects/kt1600.kt | 0 .../{blackbox => box}/objects/kt1737.kt | 0 .../{blackbox => box}/objects/kt2398.kt | 0 .../{blackbox => box}/objects/kt2663.kt | 0 .../{blackbox => box}/objects/kt2663_2.kt | 0 .../{blackbox => box}/objects/kt2675.kt | 0 .../{blackbox => box}/objects/kt2719.kt | 0 .../{blackbox => box}/objects/kt2822.kt | 0 .../{blackbox => box}/objects/kt3238.kt | 0 .../{blackbox => box}/objects/kt3684.kt | 0 .../{blackbox => box}/objects/kt4086.kt | 0 .../{blackbox => box}/objects/kt535.kt | 0 .../{blackbox => box}/objects/kt560.kt | 0 .../{blackbox => box}/objects/kt694.kt | 0 ...localFunctionInObjectInitializer_kt4516.kt | 0 .../objects/methodOnObject.kt | 0 ...DerivedClassCallsProtectedFromCompanion.kt | 0 .../objects/nestedObjectWithSuperclass.kt | 0 ...ectExtendsInnerAndReferencesOuterMember.kt | 0 .../objects/objectInLocalAnonymousObject.kt | 0 .../objects/objectInitialization_kt5523.kt | 0 .../objects/objectLiteral.kt | 0 .../objects/objectLiteralInClosure.kt | 0 .../objectVsClassInitialization_kt5291.kt | 0 .../objects/objectWithSuperclass.kt | 0 .../objects/objectWithSuperclassAndTrait.kt | 0 .../privateExtensionFromInitializer_kt4543.kt | 0 ...FunctionFromClosureInInitializer_kt5582.kt | 0 .../objects/receiverInConstructor.kt | 0 .../{blackbox => box}/objects/safeAccess.kt | 0 .../{blackbox => box}/objects/simpleObject.kt | 0 .../objects/thisInConstructor.kt | 0 .../objects/useAnonymousObjectAsIterator.kt | 0 .../objects/useImportedMember.kt | 0 .../objects/useImportedMemberFromCompanion.kt | 0 .../annotatedAssignment.kt | 0 .../assignmentOperations.kt | 0 .../augmentedAssignmentInInitializer.kt | 45 +++ .../augmentedAssignmentWithArrayLHS.kt | 0 .../operatorConventions/compareTo/boolean.kt | 2 +- .../compareTo/comparable.kt | 0 .../compareTo/doubleInt.kt | 0 .../compareTo/doubleLong.kt | 0 .../compareTo/extensionArray.kt | 0 .../compareTo/extensionObject.kt | 0 .../compareTo/intDouble.kt | 0 .../operatorConventions/compareTo/intLong.kt | 0 .../compareTo/longDouble.kt | 0 .../operatorConventions/compareTo/longInt.kt | 0 .../operatorConventions/incDecOnObject.kt | 0 .../infixFunctionOverBuiltinMember.kt | 18 + .../operatorConventions/kt14201.kt | 0 .../operatorConventions/kt14201_2.kt | 0 .../operatorConventions/kt4152.kt | 0 .../operatorConventions/kt4987.kt | 3 - .../operatorConventions/nestedMaps.kt | 0 .../operatorConventions/operatorSetLambda.kt | 0 .../operatorConventions/overloadedSet.kt | 0 .../percentAsModOnBigIntegerWithoutRem.kt | 0 .../box/operatorConventions/plusExplicit.kt | 29 ++ .../remAssignmentOperation.kt | 0 .../remOverModOperation.kt | 0 .../package/boxPrimitiveTypeInClinit.kt | 0 .../{blackbox => box}/package/checkCast.kt | 0 .../package/incrementProperty.kt | 0 .../package/initializationOrder.kt | 0 .../package/invokespecial.kt | 2 +- .../{blackbox => box}/package/mainInFiles.kt | 0 .../nullablePrimitiveNoFieldInitializer.kt | 0 ...eLocalClassNotImportedWithDefaultImport.kt | 0 .../package/packageQualifiedMethod.kt | 0 .../privateTopLevelPropAndVarInInner.kt | 0 .../platformTypes/primitives/assign.kt | 0 .../platformTypes/primitives/compareTo.kt | 0 .../platformTypes/primitives/dec.kt | 0 .../platformTypes/primitives/div.kt | 0 .../platformTypes/primitives/equals.kt | 0 .../platformTypes/primitives/hashCode.kt | 0 .../primitives/identityEquals.kt | 0 .../platformTypes/primitives/inc.kt | 0 .../platformTypes/primitives/minus.kt | 0 .../platformTypes/primitives/mod.kt | 0 .../platformTypes/primitives/not.kt | 0 .../platformTypes/primitives/notEquals.kt | 0 .../platformTypes/primitives/plus.kt | 0 .../platformTypes/primitives/plusAssign.kt | 0 .../platformTypes/primitives/rangeTo.kt | 0 .../platformTypes/primitives/times.kt | 0 .../platformTypes/primitives/toShort.kt | 0 .../platformTypes/primitives/toString.kt | 0 .../platformTypes/primitives/unaryMinus.kt | 0 .../platformTypes/primitives/unaryPlus.kt | 0 .../primitiveTypes/comparisonWithNaN.kt | 0 .../comparisonWithNullCallsFun.kt | 0 .../primitiveTypes/ea35963.kt | 0 .../primitiveTypes/equalsHashCodeToString.kt | 0 .../primitiveTypes/incrementByteCharShort.kt | 0 .../primitiveTypes/intLiteralIsNotNull.kt | 0 .../primitiveTypes/kt1054.kt | 0 .../primitiveTypes/kt1055.kt | 0 .../primitiveTypes/kt1093.kt | 0 .../primitiveTypes/kt13023.kt | 0 .../primitiveTypes/kt14868.kt | 0 .../primitiveTypes/kt1508.kt | 0 .../primitiveTypes/kt1634.kt | 0 .../codegen/box/primitiveTypes/kt16732.kt | 15 + .../primitiveTypes/kt2251.kt | 0 .../primitiveTypes/kt2269.kt | 0 .../primitiveTypes/kt2275.kt | 0 .../{blackbox => box}/primitiveTypes/kt239.kt | 0 .../{blackbox => box}/primitiveTypes/kt242.kt | 0 .../{blackbox => box}/primitiveTypes/kt243.kt | 0 .../{blackbox => box}/primitiveTypes/kt248.kt | 0 .../primitiveTypes/kt2768.kt | 0 .../primitiveTypes/kt2794.kt | 0 .../primitiveTypes/kt3078.kt | 0 .../primitiveTypes/kt3517.kt | 0 .../primitiveTypes/kt3576.kt | 0 .../primitiveTypes/kt3613.kt | 0 .../primitiveTypes/kt4097.kt | 0 .../primitiveTypes/kt4098.kt | 0 .../primitiveTypes/kt4210.kt | 0 .../primitiveTypes/kt4251.kt | 0 .../{blackbox => box}/primitiveTypes/kt446.kt | 0 .../{blackbox => box}/primitiveTypes/kt518.kt | 0 .../primitiveTypes/kt6590_identityEquals.kt | 0 .../{blackbox => box}/primitiveTypes/kt665.kt | 0 .../{blackbox => box}/primitiveTypes/kt684.kt | 0 .../{blackbox => box}/primitiveTypes/kt711.kt | 0 .../{blackbox => box}/primitiveTypes/kt737.kt | 0 .../{blackbox => box}/primitiveTypes/kt752.kt | 0 .../{blackbox => box}/primitiveTypes/kt753.kt | 0 .../{blackbox => box}/primitiveTypes/kt756.kt | 0 .../{blackbox => box}/primitiveTypes/kt757.kt | 0 .../{blackbox => box}/primitiveTypes/kt828.kt | 0 .../{blackbox => box}/primitiveTypes/kt877.kt | 0 .../{blackbox => box}/primitiveTypes/kt882.kt | 0 .../{blackbox => box}/primitiveTypes/kt887.kt | 0 .../{blackbox => box}/primitiveTypes/kt935.kt | 0 .../primitiveTypes/nullAsNullableIntIsNull.kt | 0 .../primitiveTypes/nullableCharBoolean.kt | 0 .../primitiveTypes/number.kt | 0 .../primitiveTypes/rangeTo.kt | 0 .../primitiveTypes/substituteIntForGeneric.kt | 0 .../primitiveTypes/unboxComparable.kt | 0 .../private/arrayConvention.kt | 0 .../{blackbox => box}/private/kt9855.kt | 0 .../privateConstructors/base.kt | 0 .../privateConstructors/captured.kt | 0 .../privateConstructors/companion.kt | 0 .../privateConstructors/inline.kt | 0 .../privateConstructors/inner.kt | 0 .../privateConstructors/kt4860.kt | 0 .../privateConstructors/secondary.kt | 0 .../privateConstructors/synthetic.kt | 0 .../privateConstructors/withArguments.kt | 0 .../privateConstructors/withDefault.kt | 0 .../privateConstructors/withLinkedClasses.kt | 0 .../privateConstructors/withLinkedObjects.kt | 0 .../privateConstructors/withVarargs.kt | 0 .../properties/accessToPrivateProperty.kt | 0 .../properties/accessToPrivateSetter.kt | 2 +- .../augmentedAssignmentsAndIncrements.kt | 0 .../classArtificialFieldInsideNested.kt | 0 .../properties/classFieldInsideLambda.kt | 0 .../classFieldInsideLocalInSetter.kt | 0 .../properties/classFieldInsideNested.kt | 0 .../properties/classObjectProperties.kt | 0 ...classPrivateArtificialFieldInsideNested.kt | 0 .../properties/collectionSize.kt | 0 .../properties/commonPropertiesKJK.kt | 0 .../properties/companionFieldInsideLambda.kt | 0 .../properties/companionObjectAccessor.kt | 0 .../companionObjectPropertiesFromJava.kt | 0 .../properties/companionPrivateField.kt | 0 .../companionPrivateFieldInsideLambda.kt | 0 .../properties/const/constFlags.kt | 0 .../const/constValInAnnotationDefault.kt | 0 .../properties/const/interfaceCompanion.kt | 0 .../{blackbox => box}/properties/field.kt | 0 .../properties/fieldInClass.kt | 0 .../properties/fieldInsideField.kt | 0 .../properties/fieldInsideLambda.kt | 0 .../properties/fieldInsideNested.kt | 0 .../properties/fieldSimple.kt | 0 .../properties/generalAccess.kt | 0 .../properties/javaPropertyBoxedGetter.kt | 0 .../properties/javaPropertyBoxedSetter.kt | 0 .../{blackbox => box}/properties/kt10715.kt | 0 .../{blackbox => box}/properties/kt10729.kt | 0 .../{blackbox => box}/properties/kt1159.kt | 0 .../{blackbox => box}/properties/kt1165.kt | 0 .../{blackbox => box}/properties/kt1168.kt | 0 .../{blackbox => box}/properties/kt1170.kt | 0 .../{blackbox => box}/properties/kt12200.kt | 2 +- .../{blackbox => box}/properties/kt1398.kt | 0 .../{blackbox => box}/properties/kt1417.kt | 0 .../properties/kt1482_2279.kt | 0 .../{blackbox => box}/properties/kt1714.kt | 0 .../properties/kt1714_minimal.kt | 0 .../{blackbox => box}/properties/kt1892.kt | 0 .../{blackbox => box}/properties/kt2331.kt | 0 .../{blackbox => box}/properties/kt257.kt | 0 .../{blackbox => box}/properties/kt2655.kt | 0 .../{blackbox => box}/properties/kt2786.kt | 0 .../{blackbox => box}/properties/kt2892.kt | 0 .../{blackbox => box}/properties/kt3118.kt | 0 .../{blackbox => box}/properties/kt3524.kt | 0 .../{blackbox => box}/properties/kt3551.kt | 0 .../{blackbox => box}/properties/kt3556.kt | 0 .../{blackbox => box}/properties/kt3930.kt | 0 .../{blackbox => box}/properties/kt4140.kt | 0 .../{blackbox => box}/properties/kt4252.kt | 0 .../{blackbox => box}/properties/kt4252_2.kt | 0 .../{blackbox => box}/properties/kt4340.kt | 0 .../{blackbox => box}/properties/kt4373.kt | 0 .../{blackbox => box}/properties/kt4383.kt | 2 +- .../{blackbox => box}/properties/kt613.kt | 0 .../{blackbox => box}/properties/kt8928.kt | 0 .../{blackbox => box}/properties/kt9603.kt | 0 .../properties/lateinit/accessor.kt | 0 .../properties/lateinit/accessorException.kt | 2 +- .../properties/lateinit/exceptionField.kt | 2 +- .../properties/lateinit/exceptionGetter.kt | 2 +- .../properties/lateinit/override.kt | 0 .../properties/lateinit/overrideException.kt | 2 +- .../properties/lateinit/privateSetter.kt | 0 .../lateinit/privateSetterFromLambda.kt | 0 .../properties/lateinit/simpleVar.kt | 0 .../properties/lateinit/visibility.kt | 0 .../primitiveOverrideDefaultAccessor.kt | 0 .../primitiveOverrideDelegateAccessor.kt | 0 .../privatePropertyInConstructor.kt | 0 .../privatePropertyWithoutBackingField.kt | 0 .../properties/protectedJavaFieldInInline.kt | 0 .../properties/protectedJavaProperty.kt | 0 .../protectedJavaPropertyInCompanion.kt | 0 .../properties/substituteJavaSuperField.kt | 0 ...ExtensionPropertiesWithoutBackingFields.kt | 0 .../properties/typeInferredFromGetter.kt | 0 .../publishedApi/noMangling.kt | 2 +- .../{blackbox => box}/publishedApi/simple.kt | 0 .../publishedApi/topLevel.kt | 0 .../ranges/contains/inComparableRange.kt | 2 +- .../ranges/contains/inExtensionRange.kt | 2 +- .../ranges/contains/inIntRange.kt | 2 +- .../contains/inOptimizableDoubleRange.kt | 2 +- .../contains/inOptimizableFloatRange.kt | 2 +- .../ranges/contains/inOptimizableIntRange.kt | 2 +- .../ranges/contains/inOptimizableLongRange.kt | 2 +- .../contains/inRangeWithCustomContains.kt | 2 +- .../contains/inRangeWithImplicitReceiver.kt | 2 +- .../inRangeWithNonmatchingArguments.kt | 2 +- .../ranges/contains/inRangeWithSmartCast.kt | 0 .../ranges/contains/rangeContainsString.kt | 0 .../ranges/expression/emptyDownto.kt | 0 .../ranges/expression/emptyRange.kt | 0 .../expression/inexactDownToMinValue.kt | 0 .../ranges/expression/inexactSteppedDownTo.kt | 0 .../ranges/expression/inexactSteppedRange.kt | 0 .../ranges/expression/inexactToMaxValue.kt | 0 .../expression/maxValueMinusTwoToMaxValue.kt | 0 .../ranges/expression/maxValueToMaxValue.kt | 0 .../ranges/expression/maxValueToMinValue.kt | 0 .../ranges/expression/oneElementDownTo.kt | 0 .../ranges/expression/oneElementRange.kt | 0 .../ranges/expression/openRange.kt | 0 .../expression/progressionDownToMinValue.kt | 0 .../progressionMaxValueMinusTwoToMaxValue.kt | 0 .../progressionMaxValueToMaxValue.kt | 0 .../progressionMaxValueToMinValue.kt | 0 .../progressionMinValueToMinValue.kt | 0 .../ranges/expression/reversedBackSequence.kt | 0 .../expression/reversedEmptyBackSequence.kt | 0 .../ranges/expression/reversedEmptyRange.kt | 0 .../reversedInexactSteppedDownTo.kt | 0 .../ranges/expression/reversedRange.kt | 0 .../expression/reversedSimpleSteppedRange.kt | 0 .../ranges/expression/simpleDownTo.kt | 0 .../ranges/expression/simpleRange.kt | 0 .../simpleRangeWithNonConstantEnds.kt | 0 .../ranges/expression/simpleSteppedDownTo.kt | 0 .../ranges/expression/simpleSteppedRange.kt | 0 .../forByteProgressionWithIntIncrement.kt | 0 .../ranges/forInDownTo/forIntInDownTo.kt | 0 .../forInDownTo/forIntInNonOptimizedDownTo.kt | 0 .../ranges/forInDownTo/forLongInDownTo.kt | 0 .../forInDownTo/forNullableIntInDownTo.kt | 0 .../forInIndices/forInCharSequenceIndices.kt | 0 .../forInCollectionImplicitReceiverIndices.kt | 0 .../forInIndices/forInCollectionIndices.kt | 0 .../forInIndices/forInNonOptimizedIndices.kt | 0 .../forInIndices/forInObjectArrayIndices.kt | 0 .../forInPrimitiveArrayIndices.kt | 0 .../forNullableIntInArrayIndices.kt | 0 .../forNullableIntInCollectionIndices.kt | 0 .../kt12983_forInGenericArrayIndices.kt | 0 .../kt12983_forInGenericCollectionIndices.kt | 0 .../kt12983_forInSpecificArrayIndices.kt | 0 .../kt12983_forInSpecificCollectionIndices.kt | 0 .../ranges/forInIndices/kt13241_Array.kt | 3 - .../forInIndices/kt13241_CharSequence.kt | 0 .../ranges/forInIndices/kt13241_Collection.kt | 0 .../ranges/forInRangeWithImplicitReceiver.kt | 0 .../{blackbox => box}/ranges/forIntRange.kt | 0 ...rNullableIntInRangeWithImplicitReceiver.kt | 0 .../ranges/literal/emptyDownto.kt | 0 .../ranges/literal/emptyRange.kt | 0 .../ranges/literal/inexactDownToMinValue.kt | 0 .../ranges/literal/inexactSteppedDownTo.kt | 0 .../ranges/literal/inexactSteppedRange.kt | 0 .../ranges/literal/inexactToMaxValue.kt | 0 .../literal/maxValueMinusTwoToMaxValue.kt | 0 .../ranges/literal/maxValueToMaxValue.kt | 0 .../ranges/literal/maxValueToMinValue.kt | 0 .../ranges/literal/oneElementDownTo.kt | 0 .../ranges/literal/oneElementRange.kt | 0 .../ranges/literal/openRange.kt | 0 .../literal/progressionDownToMinValue.kt | 0 .../progressionMaxValueMinusTwoToMaxValue.kt | 0 .../literal/progressionMaxValueToMaxValue.kt | 0 .../literal/progressionMaxValueToMinValue.kt | 0 .../literal/progressionMinValueToMinValue.kt | 0 .../ranges/literal/reversedBackSequence.kt | 0 .../literal/reversedEmptyBackSequence.kt | 0 .../ranges/literal/reversedEmptyRange.kt | 0 .../literal/reversedInexactSteppedDownTo.kt | 0 .../ranges/literal/reversedRange.kt | 0 .../literal/reversedSimpleSteppedRange.kt | 0 .../ranges/literal/simpleDownTo.kt | 0 .../ranges/literal/simpleRange.kt | 0 .../literal/simpleRangeWithNonConstantEnds.kt | 0 .../ranges/literal/simpleSteppedDownTo.kt | 0 .../ranges/literal/simpleSteppedRange.kt | 0 .../multiAssignmentIterationOverIntRange.kt | 0 .../progressionExpression.kt | 0 .../nullableLoopParameter/rangeExpression.kt | 0 .../nullableLoopParameter/rangeLiteral.kt | 0 .../ranges/safeCallRangeTo.kt | 0 .../annotationRetentionAnnotation.kt | 0 .../annotations/annotationsOnJavaMembers.kt | 0 .../reflection/annotations/findAnnotation.kt | 2 +- .../annotations/propertyAccessors.kt | 0 .../propertyWithoutBackingField.kt | 0 .../reflection/annotations/retentions.kt | 0 .../annotations/simpleClassAnnotation.kt | 0 .../simpleConstructorAnnotation.kt | 0 .../annotations/simpleFunAnnotation.kt | 0 .../annotations/simpleParamAnnotation.kt | 0 .../annotations/simpleValAnnotation.kt | 0 .../bound/companionObjectPropertyAccessors.kt | 2 +- .../call/bound/extensionFunction.kt | 2 +- .../call/bound/extensionPropertyAccessors.kt | 2 +- .../call/bound/innerClassConstructor.kt | 2 +- .../call/bound/javaInstanceField.kt | 0 .../call/bound/javaInstanceMethod.kt | 0 ...mStaticCompanionObjectPropertyAccessors.kt | 2 +- .../call/bound/jvmStaticObjectFunction.kt | 2 +- .../bound/jvmStaticObjectPropertyAccessors.kt | 2 +- .../reflection/call/bound/memberFunction.kt | 0 .../call/bound/memberPropertyAccessors.kt | 2 +- .../reflection/call/bound/objectFunction.kt | 0 .../call/bound/objectPropertyAccessors.kt | 2 +- .../reflection/call/callInstanceJavaMethod.kt | 0 .../reflection/call/callPrivateJavaMethod.kt | 0 .../reflection/call/callStaticJavaMethod.kt | 0 .../call/cannotCallEnumConstructor.kt | 0 .../call/disallowNullValueForNotNullField.kt | 0 .../reflection/call/equalsHashCodeToString.kt | 0 .../reflection/call/exceptionHappened.kt | 0 .../reflection/call/fakeOverride.kt | 0 .../call/fakeOverrideSubstituted.kt | 0 .../call/incorrectNumberOfArguments.kt | 0 .../reflection/call/innerClassConstructor.kt | 0 .../reflection/call/jvmStatic.kt | 0 .../jvmStaticInObjectIncorrectReceiver.kt | 0 .../reflection/call/localClassMember.kt | 0 .../reflection/call/memberOfGenericClass.kt | 0 .../reflection/call/privateProperty.kt | 0 .../reflection/call/propertyAccessors.kt | 0 ...GetterAndGetFunctionDifferentReturnType.kt | 0 .../reflection/call/returnUnit.kt | 0 .../reflection/call/simpleConstructor.kt | 0 .../reflection/call/simpleMemberFunction.kt | 0 .../call/simpleTopLevelFunctions.kt | 0 .../callBy/boundExtensionFunction.kt | 2 +- .../callBy/boundExtensionPropertyAcessor.kt | 2 +- .../callBy/boundJvmStaticInObject.kt | 2 +- .../reflection/callBy/companionObject.kt | 0 .../callBy/defaultAndNonDefaultIntertwined.kt | 0 .../reflection/callBy/extensionFunction.kt | 0 .../callBy/jvmStaticInCompanionObject.kt | 0 .../reflection/callBy/jvmStaticInObject.kt | 0 .../callBy/manyArgumentsOnlyOneDefault.kt | 0 .../reflection/callBy/manyMaskArguments.kt | 0 .../callBy/nonDefaultParameterOmitted.kt | 0 .../reflection/callBy/nullValue.kt | 0 ...thodIsInvokedWhenNoDefaultValuesAreUsed.kt | 0 .../callBy/primitiveDefaultValues.kt | 0 .../callBy/privateMemberFunction.kt | 0 .../reflection/callBy/simpleConstructor.kt | 0 .../reflection/callBy/simpleMemberFunciton.kt | 0 .../callBy/simpleTopLevelFunction.kt | 0 .../classLiterals/annotationClassLiteral.kt | 0 .../reflection/classLiterals/arrays.kt | 0 .../classLiterals/builtinClassLiterals.kt | 0 .../reflection/classLiterals/genericArrays.kt | 0 .../reflection/classLiterals/genericClass.kt | 0 .../classLiterals/reifiedTypeClassLiteral.kt | 0 .../classLiterals/simpleClassLiteral.kt | 0 .../reflection/classes/classSimpleName.kt | 0 .../reflection/classes/companionObject.kt | 0 .../reflection/classes/createInstance.kt | 0 .../reflection/classes/declaredMembers.kt | 0 .../reflection/classes/jvmName.kt | 0 .../classes/localClassSimpleName.kt | 0 .../reflection/classes/nestedClasses.kt | 0 .../reflection/classes/nestedClassesJava.kt | 0 .../reflection/classes/objectInstance.kt | 0 .../classes/primitiveKClassEquality.kt | 0 .../reflection/classes/qualifiedName.kt | 0 .../reflection/classes/starProjectedType.kt | 0 .../constructors/annotationClass.kt | 0 .../classesWithoutConstructors.kt | 0 .../constructors/constructorName.kt | 0 .../constructors/primaryConstructor.kt | 0 .../constructors/simpleGetConstructors.kt | 0 .../createAnnotation/annotationType.kt | 0 .../createAnnotation/arrayOfKClasses.kt | 2 +- .../reflection/createAnnotation/callByJava.kt | 0 .../createAnnotation/callByKotlin.kt | 2 +- .../reflection/createAnnotation/callJava.kt | 0 .../reflection/createAnnotation/callKotlin.kt | 2 +- .../createJdkAnnotationInstance.kt | 0 .../createAnnotation/enumKClassAnnotation.kt | 0 .../equalsHashCodeToString.kt | 0 .../floatingPointParameters.kt | 0 .../createAnnotation/parameterNamedEquals.kt | 0 .../createAnnotation/primitivesAndArrays.kt | 0 .../anonymousObjectInInlinedLambda.kt | 0 .../reflection/enclosing/classInLambda.kt | 0 .../enclosing/functionExpressionInProperty.kt | 0 .../reflection/enclosing/kt11969.kt | 0 .../reflection/enclosing/kt6368.kt | 0 .../kt6691_lambdaInSamConstructor.kt | 0 .../enclosing/lambdaInClassObject.kt | 0 .../enclosing/lambdaInConstructor.kt | 0 .../reflection/enclosing/lambdaInFunction.kt | 0 .../reflection/enclosing/lambdaInLambda.kt | 0 .../lambdaInLocalClassConstructor.kt | 0 .../enclosing/lambdaInLocalClassSuperCall.kt | 0 .../enclosing/lambdaInLocalFunction.kt | 0 .../enclosing/lambdaInMemberFunction.kt | 0 .../lambdaInMemberFunctionInLocalClass.kt | 0 .../lambdaInMemberFunctionInNestedClass.kt | 0 .../enclosing/lambdaInObjectDeclaration.kt | 0 .../enclosing/lambdaInObjectExpression.kt | 0 .../lambdaInObjectLiteralSuperCall.kt | 0 .../reflection/enclosing/lambdaInPackage.kt | 0 .../enclosing/lambdaInPropertyGetter.kt | 0 .../enclosing/lambdaInPropertySetter.kt | 0 .../enclosing/localClassInTopLevelFunction.kt | 0 .../reflection/enclosing/objectInLambda.kt | 0 .../functions/declaredVsInheritedFunctions.kt | 0 .../functions/functionFromStdlib.kt | 11 + .../functionReferenceErasedToKFunction.kt | 0 .../functions/genericOverriddenFunction.kt | 0 .../functions/instanceOfFunction.kt | 0 .../functions/javaClassGetFunctions.kt | 0 .../functions/javaMethodsSmokeTest.kt | 0 .../reflection/functions/platformName.kt | 0 .../functions/privateMemberFunction.kt | 0 .../functions/simpleGetFunctions.kt | 0 .../reflection/functions/simpleNames.kt | 3 - .../genericSignature/covariantOverride.kt | 0 .../defaultImplsGenericSignature.kt | 0 .../functionLiteralGenericSignature.kt | 0 .../genericBackingFieldSignature.kt | 0 .../genericMethodSignature.kt | 0 .../reflection/genericSignature/kt11121.kt | 0 .../reflection/genericSignature/kt5112.kt | 0 .../reflection/genericSignature/kt6106.kt | 0 .../isInstance/isInstanceCastAndSafeCast.kt | 0 .../reflection/kClassInAnnotation/array.kt | 0 .../kClassInAnnotation/arrayInJava.kt | 0 .../reflection/kClassInAnnotation/basic.kt | 0 .../kClassInAnnotation/basicInJava.kt | 0 .../kClassInAnnotation/checkcast.kt | 0 .../kClassInAnnotation/forceWrapping.kt | 22 ++ .../reflection/kClassInAnnotation/vararg.kt | 0 .../kClassInAnnotation/varargInJava.kt | 0 .../wrappingForCallableReferences.kt | 41 +++ .../parameterNamesAndNullability.kt | 0 .../reflection/mapping/constructor.kt | 0 .../reflection/mapping/extensionProperty.kt | 0 .../fakeOverrides/javaFieldGetterSetter.kt | 0 .../mapping/fakeOverrides/javaMethod.kt | 0 .../reflection/mapping/functions.kt | 0 .../reflection/mapping/inlineReifiedFun.kt | 0 .../jvmStatic/companionObjectFunction.kt | 0 .../mapping/jvmStatic/objectFunction.kt | 0 .../mappedClassIsEqualToClassLiteral.kt | 0 .../reflection/mapping/memberProperty.kt | 0 .../reflection/mapping/propertyAccessors.kt | 0 .../mapping/propertyAccessorsWithJvmName.kt | 0 .../reflection/mapping/syntheticFields.kt | 0 .../mapping/topLevelFunctionOtherFile.kt | 0 .../reflection/mapping/topLevelProperty.kt | 0 .../types/annotationConstructorParameters.kt | 0 .../reflection/mapping/types/array.kt | 0 .../reflection/mapping/types/constructors.kt | 0 .../mapping/types/genericArrayElementType.kt | 0 .../mapping/types/innerGenericTypeArgument.kt | 0 .../mapping/types/memberFunctions.kt | 0 .../mapping/types/overrideAnyWithPrimitive.kt | 0 .../types/parameterizedTypeArgument.kt | 0 .../mapping/types/parameterizedTypes.kt | 0 .../mapping/types/propertyAccessors.kt | 0 .../mapping/types/rawTypeArgument.kt | 0 .../reflection/mapping/types/supertypes.kt | 0 .../mapping/types/topLevelFunctions.kt | 0 .../mapping/types/typeParameters.kt | 0 .../reflection/mapping/types/unit.kt | 0 .../mapping/types/withNullability.kt | 0 ...llableReferencesEqualToCallablesFromAPI.kt | 0 .../methodsFromAny/classToString.kt | 0 .../extensionPropertyReceiverToString.kt | 0 .../methodsFromAny/functionEqualsHashCode.kt | 0 .../functionFromStdlibMultiFileFacade.kt | 13 + .../functionFromStdlibSingleFileFacade.kt | 13 + .../methodsFromAny/functionToString.kt | 0 .../methodsFromAny/memberExtensionToString.kt | 0 .../parametersEqualsHashCode.kt | 0 .../methodsFromAny/parametersToString.kt | 0 .../methodsFromAny/propertyEqualsHashCode.kt | 0 .../methodsFromAny/propertyToString.kt | 0 .../methodsFromAny/typeEqualsHashCode.kt | 0 .../typeParametersEqualsHashCode.kt | 0 .../methodsFromAny/typeParametersToString.kt | 0 .../reflection/methodsFromAny/typeToString.kt | 0 .../typeToStringInnerGeneric.kt | 0 .../reflection/modifiers/callableModality.kt | 0 .../modifiers/callableVisibility.kt | 0 .../reflection/modifiers/classModality.kt | 0 .../reflection/modifiers/classVisibility.kt | 0 .../reflection/modifiers/classes.kt | 0 .../reflection/modifiers/functions.kt | 0 .../reflection/modifiers/javaVisibility.kt | 0 .../reflection/modifiers/properties.kt | 0 .../reflection/modifiers/typeParameters.kt | 0 .../callFunctionsInMultifileClass.kt | 0 .../callPropertiesInMultifileClass.kt | 0 .../javaFieldForVarAndConstVal.kt | 0 .../noReflectAtRuntime/javaClass.kt | 0 .../methodsFromAny/callableReferences.kt | 11 +- .../methodsFromAny/classReference.kt | 0 .../methodsFromAny/delegatedProperty.kt | 28 ++ .../noReflectAtRuntime/primitiveJavaClass.kt | 0 .../noReflectAtRuntime/propertyGetSetName.kt | 0 .../noReflectAtRuntime/propertyInstanceof.kt | 0 .../reifiedTypeJavaClass.kt | 0 .../noReflectAtRuntime/simpleClassLiterals.kt | 3 +- .../parameters/boundInnerClassConstructor.kt | 0 .../parameters/boundObjectMemberReferences.kt | 0 .../reflection/parameters/boundReferences.kt | 0 .../parameters/findParameterByName.kt | 0 .../functionParameterNameAndIndex.kt | 0 ...anceExtensionReceiverAndValueParameters.kt | 0 .../reflection/parameters/isMarkedNullable.kt | 0 .../reflection/parameters/isOptional.kt | 0 .../parameters/javaAnnotationConstructor.kt | 0 .../parameters/javaParametersHaveNoNames.kt | 0 .../reflection/parameters/kinds.kt | 0 .../reflection/parameters/propertySetter.kt | 0 .../properties/accessors/accessorNames.kt | 0 .../accessors/extensionPropertyAccessors.kt | 0 .../properties/accessors/memberExtensions.kt | 0 .../accessors/memberPropertyAccessors.kt | 0 .../accessors/topLevelPropertyAccessors.kt | 0 .../reflection/properties/allVsDeclared.kt | 0 .../callPrivatePropertyFromGetProperties.kt | 0 .../declaredVsInheritedProperties.kt | 0 .../properties/fakeOverridesInSubclass.kt | 0 ...nericClassLiteralPropertyReceiverIsStar.kt | 0 .../properties/genericOverriddenProperty.kt | 0 .../reflection/properties/genericProperty.kt | 0 .../booleanPropertyNameStartsWithIs.kt | 21 ++ .../getDelegate/boundExtensionProperty.kt | 26 ++ .../getDelegate/boundMemberProperty.kt | 26 ++ .../getDelegate/extensionProperty.kt | 25 ++ .../properties/getDelegate/fakeOverride.kt | 25 ++ .../getDelegate/getExtensionDelegate.kt | 38 +++ .../kPropertyForDelegatedProperty.kt | 32 ++ .../getDelegate/memberExtensionProperty.kt | 29 ++ .../properties/getDelegate/memberProperty.kt | 25 ++ .../getDelegate/nameClashClassAndCompanion.kt | 26 ++ .../nameClashExtensionProperties.kt | 42 +++ .../getDelegate/noSetAccessibleTrue.kt | 44 +++ .../getDelegate/notDelegatedProperty.kt | 29 ++ .../overrideDelegatedByDelegated.kt | 37 +++ .../getDelegate/topLevelProperty.kt | 23 ++ ...getExtensionPropertiesMutableVsReadonly.kt | 0 .../getPropertiesMutableVsReadonly.kt | 0 .../reflection/properties/invokeKProperty.kt | 0 .../javaPropertyInheritedInKotlin.kt | 0 .../reflection/properties/javaStaticField.kt | 0 .../kotlinPropertyInheritedInJava.kt | 0 .../memberAndMemberExtensionWithSameName.kt | 0 .../mutatePrivateJavaInstanceField.kt | 0 .../mutatePrivateJavaStaticField.kt | 0 .../noConflictOnKotlinGetterAndJavaField.kt | 0 .../overrideKotlinPropertyByJavaMethod.kt | 0 .../reflection/properties/privateClassVal.kt | 0 .../reflection/properties/privateClassVar.kt | 0 .../privateFakeOverrideFromSuperclass.kt | 0 .../properties/privateJvmStaticVarInObject.kt | 0 ...vatePropertyCallIsAccessibleOnAccessors.kt | 0 .../properties/privateToThisAccessors.kt | 0 .../propertyOfNestedClassAndArrayType.kt | 0 .../properties/protectedClassVar.kt | 0 .../properties/publicClassValAccessible.kt | 0 .../referenceToJavaFieldOfKotlinSubclass.kt | 0 .../properties/simpleGetProperties.kt | 0 .../getMembersOfStandardJavaClasses.kt | 0 .../supertypes/builtInClassSupertypes.kt | 0 .../supertypes/genericSubstitution.kt | 0 .../supertypes/isSubclassOfIsSuperclassOf.kt | 0 .../reflection/supertypes/primitives.kt | 0 .../reflection/supertypes/simpleSupertypes.kt | 0 .../typeParameters/declarationSiteVariance.kt | 0 .../typeParameters/typeParametersAndNames.kt | 0 .../reflection/typeParameters/upperBounds.kt | 0 .../reflection/types/classifierIsClass.kt | 0 .../types/classifierIsTypeParameter.kt | 0 .../types/classifiersOfBuiltInTypes.kt | 0 .../reflection/types/createType/equality.kt | 0 .../types/createType/innerGeneric.kt | 0 .../types/createType/simpleCreateType.kt | 0 .../types/createType/typeParameter.kt | 0 .../createType/wrongNumberOfArguments.kt | 0 .../reflection/types/innerGenericArguments.kt | 0 .../reflection/types/jvmErasureOfClass.kt | 0 .../types/jvmErasureOfTypeParameter.kt | 0 .../types/platformTypeClassifier.kt | 0 .../types/platformTypeNotEqualToKotlinType.kt | 0 .../reflection/types/platformTypeToString.kt | 0 .../types/subtyping/platformType.kt | 0 .../types/subtyping/simpleGenericTypes.kt | 0 .../types/subtyping/simpleSubtypeSupertype.kt | 0 .../types/subtyping/typeProjection.kt | 0 .../reflection/types/typeArguments.kt | 0 .../reflection/types/useSiteVariance.kt | 0 .../reflection/types/withNullability.kt | 0 .../{blackbox => box}/regressions/Kt1149.kt | 0 .../regressions/Kt1619Test.kt | 0 .../regressions/Kt2495Test.kt | 0 .../regressions/arrayLengthNPE.kt | 0 .../regressions/collections.kt | 0 .../commonSupertypeContravariant.kt | 0 .../commonSupertypeContravariant2.kt | 0 .../regressions/doubleMerge.kt | 0 .../regressions/floatMerge.kt | 0 .../{blackbox => box}/regressions/generic.kt | 0 .../regressions/getGenericInterfaces.kt | 0 .../regressions/hashCodeNPE.kt | 0 .../internalTopLevelOtherPackage.kt | 0 .../{blackbox => box}/regressions/kt10143.kt | 0 .../{blackbox => box}/regressions/kt10934.kt | 0 .../{blackbox => box}/regressions/kt1172.kt | 0 .../{blackbox => box}/regressions/kt1202.kt | 0 .../{blackbox => box}/regressions/kt13381.kt | 0 .../{blackbox => box}/regressions/kt1406.kt | 0 .../{blackbox => box}/regressions/kt14447.kt | 0 .../{blackbox => box}/regressions/kt1515.kt | 0 .../codegen/box/regressions/kt15196.kt | 10 + .../{blackbox => box}/regressions/kt1528.kt | 0 .../{blackbox => box}/regressions/kt1568.kt | 0 .../{blackbox => box}/regressions/kt1779.kt | 0 .../{blackbox => box}/regressions/kt1800.kt | 0 .../{blackbox => box}/regressions/kt1845.kt | 0 .../{blackbox => box}/regressions/kt1932.kt | 0 .../{blackbox => box}/regressions/kt2017.kt | 0 .../{blackbox => box}/regressions/kt2060.kt | 0 .../{blackbox => box}/regressions/kt2210.kt | 0 .../{blackbox => box}/regressions/kt2246.kt | 2 +- .../{blackbox => box}/regressions/kt2318.kt | 0 .../{blackbox => box}/regressions/kt2509.kt | 0 .../{blackbox => box}/regressions/kt2593.kt | 0 .../{blackbox => box}/regressions/kt274.kt | 0 .../{blackbox => box}/regressions/kt3046.kt | 0 .../{blackbox => box}/regressions/kt3107.kt | 0 .../{blackbox => box}/regressions/kt3421.kt | 0 .../{blackbox => box}/regressions/kt344.kt | 0 .../{blackbox => box}/regressions/kt3442.kt | 0 .../{blackbox => box}/regressions/kt3587.kt | 0 .../{blackbox => box}/regressions/kt3850.kt | 0 .../{blackbox => box}/regressions/kt3903.kt | 0 .../{blackbox => box}/regressions/kt4142.kt | 0 .../{blackbox => box}/regressions/kt4259.kt | 0 .../{blackbox => box}/regressions/kt4262.kt | 0 .../{blackbox => box}/regressions/kt4281.kt | 0 .../{blackbox => box}/regressions/kt5056.kt | 0 .../{blackbox => box}/regressions/kt528.kt | 0 .../{blackbox => box}/regressions/kt529.kt | 0 .../{blackbox => box}/regressions/kt533.kt | 0 .../{blackbox => box}/regressions/kt5395.kt | 0 .../{blackbox => box}/regressions/kt5445.kt | 0 .../{blackbox => box}/regressions/kt5445_2.kt | 0 .../regressions/kt5786_privateWithDefault.kt | 0 .../{blackbox => box}/regressions/kt5953.kt | 0 .../{blackbox => box}/regressions/kt6153.kt | 0 .../{blackbox => box}/regressions/kt6434.kt | 0 .../{blackbox => box}/regressions/kt6434_2.kt | 0 .../{blackbox => box}/regressions/kt6485.kt | 0 .../{blackbox => box}/regressions/kt715.kt | 0 .../{blackbox => box}/regressions/kt7401.kt | 0 .../{blackbox => box}/regressions/kt789.kt | 0 .../{blackbox => box}/regressions/kt864.kt | 0 .../{blackbox => box}/regressions/kt998.kt | 0 .../regressions/nestedIntersection.kt | 0 .../objectCaptureOuterConstructorProperty.kt | 0 .../regressions/referenceToSelfInLocal.kt | 0 .../regressions/typeCastException.kt | 0 .../{blackbox => box}/reified/DIExample.kt | 0 .../reified/anonymousObject.kt | 0 .../reified/anonymousObjectNoPropagate.kt | 0 .../anonymousObjectReifiedSupertype.kt | 0 .../reified/approximateCapturedTypes.kt | 2 +- .../reified/arraysReification/instanceOf.kt | 2 +- .../arraysReification/instanceOfArrays.kt | 2 +- .../reified/arraysReification/jClass.kt | 0 .../reified/arraysReification/jaggedArray.kt | 0 .../arraysReification/jaggedArrayOfNulls.kt | 0 .../reified/arraysReification/jaggedDeep.kt | 0 .../reified/asOnPlatformType.kt | 0 .../{blackbox => box}/reified/checkcast.kt | 0 .../{blackbox => box}/reified/copyToArray.kt | 0 .../reified/defaultJavaClass.kt | 0 .../reified/filterIsInstance.kt | 2 +- .../reified/innerAnonymousObject.kt | 0 .../{blackbox => box}/reified/instanceof.kt | 2 +- .../reified/isOnPlatformType.kt | 0 .../{blackbox => box}/reified/javaClass.kt | 0 .../reified/nestedReified.kt | 0 .../reified/nestedReifiedSignature.kt | 0 .../{blackbox => box}/reified/newArrayInt.kt | 2 +- .../nonInlineableLambdaInReifiedFunction.kt | 0 .../reified/recursiveInnerAnonymousObject.kt | 0 .../reified/recursiveNewArray.kt | 2 +- .../reified/recursiveNonInlineableLambda.kt | 0 .../{blackbox => box}/reified/reifiedChain.kt | 0 .../reified/reifiedInlineFunOfObject.kt | 0 .../reifiedInlineFunOfObjectWithinReified.kt | 0 .../reifiedInlineIntoNonInlineableLambda.kt | 0 .../{blackbox => box}/reified/safecast.kt | 0 .../reified/sameIndexRecursive.kt | 2 +- .../{blackbox => box}/reified/spreads.kt | 0 .../{blackbox => box}/reified/varargs.kt | 0 .../{blackbox => box}/safeCall/genericNull.kt | 0 .../{blackbox => box}/safeCall/kt1572.kt | 0 .../{blackbox => box}/safeCall/kt232.kt | 0 .../{blackbox => box}/safeCall/kt245.kt | 0 .../{blackbox => box}/safeCall/kt247.kt | 0 .../{blackbox => box}/safeCall/kt3430.kt | 0 .../{blackbox => box}/safeCall/kt4733.kt | 0 .../{blackbox => box}/safeCall/primitive.kt | 0 .../safeCall/safeCallOnLong.kt | 0 .../sam/constructors/comparator.kt | 0 .../sam/constructors/filenameFilter.kt | 0 .../sam/constructors/nonLiteralComparator.kt | 0 .../constructors/nonLiteralFilenameFilter.kt | 0 .../sam/constructors/nonLiteralRunnable.kt | 0 .../sam/constructors/nonTrivialRunnable.kt | 0 .../sam/constructors/runnable.kt | 0 .../constructors/runnableAccessingClosure1.kt | 0 .../constructors/runnableAccessingClosure2.kt | 0 .../constructors/samWrappersDifferentFiles.kt | 0 .../sam/constructors/sameWrapperClass.kt | 0 .../sam/constructors/syntheticVsReal.kt | 0 .../{blackbox => box}/sealed/objects.kt | 0 .../{blackbox => box}/sealed/simple.kt | 0 .../accessToCompanion.kt | 0 .../accessToNestedObject.kt | 0 .../basicNoPrimaryManySinks.kt | 0 .../basicNoPrimaryOneSink.kt | 0 .../secondaryConstructors/basicPrimary.kt | 0 .../callFromLocalSubClass.kt | 0 .../callFromPrimaryWithNamedArgs.kt | 0 .../callFromPrimaryWithOptionalArgs.kt | 0 .../secondaryConstructors/callFromSubClass.kt | 0 .../clashingDefaultConstructors.kt | 0 .../secondaryConstructors/dataClasses.kt | 0 .../secondaryConstructors/defaultArgs.kt | 0 .../defaultParametersNotDuplicated.kt | 0 .../delegateWithComplexExpression.kt | 0 .../delegatedThisWithLambda.kt | 0 .../delegationWithPrimary.kt | 0 .../secondaryConstructors/enums.kt | 0 .../secondaryConstructors/generics.kt | 0 .../secondaryConstructors/innerClasses.kt | 0 .../innerClassesInheritance.kt | 0 .../secondaryConstructors/localClasses.kt | 0 .../secondaryConstructors/superCallPrimary.kt | 0 .../superCallSecondary.kt | 0 .../secondaryConstructors/varargs.kt | 0 .../secondaryConstructors/withGenerics.kt | 0 .../withNonLocalReturn.kt | 2 +- .../secondaryConstructors/withPrimary.kt | 0 .../secondaryConstructors/withReturn.kt | 0 .../secondaryConstructors/withReturnUnit.kt | 0 .../secondaryConstructors/withVarargs.kt | 0 .../secondaryConstructors/withoutPrimary.kt | 0 .../{blackbox => box}/smap/chainCalls.kt | 0 .../{blackbox => box}/smap/infixCalls.kt | 0 .../smap/simpleCallWithParams.kt | 0 .../smartCasts/falseSmartCast.kt | 0 .../smartCasts/genericIntersection.kt | 0 .../smartCasts/genericSet.kt | 0 .../smartCasts/implicitExtensionReceiver.kt | 0 .../smartCasts/implicitMemberReceiver.kt | 0 .../smartCasts/implicitReceiver.kt | 0 .../smartCasts/implicitReceiverInWhen.kt | 0 .../smartCasts/implicitToGrandSon.kt | 0 .../smartCasts/lambdaArgumentWithoutType.kt | 2 +- .../smartCasts/nullSmartCast.kt | 0 .../smartCasts/smartCastInsideIf.kt | 0 .../smartCasts/whenSmartCast.kt | 0 .../specialBuiltins/bridgeNotEmptyMap.kt | 2 +- .../specialBuiltins/bridges.kt | 0 .../specialBuiltins/collectionImpl.kt | 0 .../specialBuiltins/commonBridgesTarget.kt | 0 .../specialBuiltins/emptyList.kt | 2 +- .../specialBuiltins/emptyMap.kt | 0 .../specialBuiltins/emptyStringMap.kt | 0 .../specialBuiltins/entrySetSOE.kt | 0 .../specialBuiltins/enumAsOrdinaled.kt | 0 .../box/specialBuiltins/exceptionCause.kt | 25 ++ .../specialBuiltins/explicitSuperCall.kt | 0 .../irrelevantRemoveAtOverride.kt | 2 + .../{blackbox => box}/specialBuiltins/maps.kt | 2 + .../noSpecialBridgeInSuperClass.kt | 2 + .../specialBuiltins/notEmptyListAny.kt | 2 +- .../specialBuiltins/notEmptyMap.kt | 2 +- .../specialBuiltins/redundantStubForSize.kt | 0 .../removeAtTwoSpecialBridges.kt | 2 + .../specialBuiltins/throwable.kt | 0 .../box/specialBuiltins/throwableCause.kt | 15 + .../specialBuiltins/throwableImpl.kt | 2 +- .../throwableImplWithSecondaryConstructor.kt | 21 ++ .../specialBuiltins/valuesInsideEnum.kt | 0 .../statics/anonymousInitializerIObject.kt | 0 .../anonymousInitializerInClassObject.kt | 0 .../{blackbox => box}/statics/fields.kt | 0 .../{blackbox => box}/statics/functions.kt | 0 .../statics/hidePrivateByPublic.kt | 0 .../statics/incInClassObject.kt | 0 .../{blackbox => box}/statics/incInObject.kt | 0 .../statics/inheritedPropertyInClassObject.kt | 0 .../statics/inheritedPropertyInObject.kt | 0 .../statics/inlineCallsStaticMethod.kt | 0 .../{blackbox => box}/statics/kt8089.kt | 0 .../statics/protectedSamConstructor.kt | 0 .../statics/protectedStatic.kt | 0 .../statics/protectedStatic2.kt | 0 .../statics/protectedStaticAndInline.kt | 0 .../statics/syntheticAccessor.kt | 0 .../storeStackBeforeInline/differentTypes.kt | 0 .../storeStackBeforeInline/primitiveMerge.kt | 0 .../storeStackBeforeInline/simple.kt | 0 .../unreachableMarker.kt | 0 .../storeStackBeforeInline/withLambda.kt | 0 .../{blackbox => box}/strings/ea35743.kt | 0 .../{blackbox => box}/strings/forInString.kt | 0 .../strings/interpolation.kt | 0 .../external/codegen/box/strings/kt2592.kt | 4 + .../{blackbox => box}/strings/kt3571.kt | 0 .../{blackbox => box}/strings/kt3652.kt | 0 .../strings/kt5389_stringBuilderGet.kt | 0 .../{blackbox => box}/strings/kt5956.kt | 0 .../{blackbox => box}/strings/kt881.kt | 0 .../{blackbox => box}/strings/kt889.kt | 0 .../{blackbox => box}/strings/kt894.kt | 2 +- .../strings/multilineStringsWithTemplates.kt | 0 .../{blackbox => box}/strings/rawStrings.kt | 0 .../strings/rawStringsWithManyQuotes.kt | 0 .../strings/stringBuilderAppend.kt | 2 +- .../strings/stringPlusOnlyWorksOnString.kt | 0 .../super/basicmethodSuperClass.kt | 0 .../super/basicmethodSuperTrait.kt | 0 .../{blackbox => box}/super/basicproperty.kt | 0 .../{blackbox => box}/super/enclosedFun.kt | 0 .../{blackbox => box}/super/enclosedVar.kt | 0 .../super/innerClassLabeledSuper.kt | 0 .../super/innerClassLabeledSuper2.kt | 0 .../super/innerClassLabeledSuperProperty.kt | 0 .../super/innerClassLabeledSuperProperty2.kt | 0 .../super/innerClassQualifiedFunctionCall.kt | 0 .../innerClassQualifiedPropertyAccess.kt | 0 .../{blackbox => box}/super/kt14243.kt | 0 .../{blackbox => box}/super/kt14243_2.kt | 0 .../{blackbox => box}/super/kt14243_class.kt | 0 .../{blackbox => box}/super/kt14243_prop.kt | 0 .../{blackbox => box}/super/kt3492ClassFun.kt | 0 .../super/kt3492ClassProperty.kt | 0 .../{blackbox => box}/super/kt3492TraitFun.kt | 0 .../super/kt3492TraitProperty.kt | 0 .../codegen/{blackbox => box}/super/kt4173.kt | 0 .../{blackbox => box}/super/kt4173_2.kt | 0 .../{blackbox => box}/super/kt4173_3.kt | 0 .../codegen/{blackbox => box}/super/kt4982.kt | 0 .../super/multipleSuperTraits.kt | 0 .../{blackbox => box}/super/traitproperty.kt | 0 .../super/unqualifiedSuper.kt | 0 .../unqualifiedSuperWithDeeperHierarchies.kt | 0 .../super/unqualifiedSuperWithMethodsOfAny.kt | 0 .../synchronized/changeMonitor.kt | 0 .../exceptionInMonitorExpression.kt | 0 .../{blackbox => box}/synchronized/finally.kt | 0 .../synchronized/longValue.kt | 0 .../synchronized/nestedDifferentObjects.kt | 0 .../synchronized/nestedSameObject.kt | 0 .../synchronized/nonLocalReturn.kt | 0 .../synchronized/objectValue.kt | 0 .../{blackbox => box}/synchronized/sync.kt | 0 .../{blackbox => box}/synchronized/value.kt | 0 .../{blackbox => box}/synchronized/wait.kt | 0 .../accessorForProtected.kt | 0 .../accessorForProtectedInvokeVirtual.kt | 0 .../syntheticAccessors/kt10047.kt | 0 .../syntheticAccessors/kt9717.kt | 0 .../kt9717DifferentPackages.kt | 0 .../syntheticAccessors/kt9958.kt | 0 .../syntheticAccessors/kt9958Interface.kt | 0 .../syntheticAccessors/protectedFromLambda.kt | 0 .../syntheticAccessorNames.kt | 0 .../toArray/kt3177-toTypedArray.kt | 0 .../toArray/returnToTypedArray.kt | 0 .../{blackbox => box}/toArray/toArray.kt | 0 .../toArray/toArrayAlreadyPresent.kt | 0 .../toArray/toArrayShouldBePublic.kt | 4 +- .../toArray/toArrayShouldBePublicWithJava.kt | 4 +- .../{blackbox => box}/toArray/toTypedArray.kt | 2 +- .../noPrivateNoAccessorsInMultiFileFacade.kt | 0 .../noPrivateNoAccessorsInMultiFileFacade2.kt | 0 .../topLevelPrivate/privateInInlineNested.kt | 0 .../topLevelPrivate/privateVisibility.kt | 0 .../topLevelPrivate/syntheticAccessor.kt | 0 .../syntheticAccessorInMultiFile.kt | 0 .../abstractClassInheritsFromInterface.kt | 0 .../traits/diamondPropertyAccessors.kt | 2 +- .../{blackbox => box}/traits/genericMethod.kt | 0 .../traits/indirectlyInheritPropertyGetter.kt | 0 .../traits/inheritJavaInterface.kt | 0 .../{blackbox => box}/traits/inheritedFun.kt | 0 .../{blackbox => box}/traits/inheritedVar.kt | 0 .../traits/interfaceDefaultImpls.kt | 0 .../{blackbox => box}/traits/kt1936.kt | 0 .../{blackbox => box}/traits/kt1936_1.kt | 0 .../{blackbox => box}/traits/kt2260.kt | 0 .../{blackbox => box}/traits/kt2399.kt | 2 +- .../{blackbox => box}/traits/kt2541.kt | 0 .../{blackbox => box}/traits/kt3315.kt | 0 .../{blackbox => box}/traits/kt3500.kt | 2 +- .../{blackbox => box}/traits/kt3579.kt | 0 .../{blackbox => box}/traits/kt3579_2.kt | 0 .../{blackbox => box}/traits/kt5393.kt | 0 .../traits/kt5393_property.kt | 0 .../{blackbox => box}/traits/multiple.kt | 0 .../traits/noPrivateDelegation.kt | 0 .../traits/syntheticAccessor.kt | 0 ...raitImplDelegationWithCovariantOverride.kt | 0 .../traits/traitImplDiamond.kt | 2 +- .../traits/traitImplGenericDelegation.kt | 1 + .../traits/traitWithPrivateExtension.kt | 0 .../traits/traitWithPrivateMember.kt | 0 .../traitWithPrivateMemberAccessFromLambda.kt | 0 .../{blackbox => box}/typeInfo/asInLoop.kt | 0 .../typeInfo/ifOrWhenSpecialCall.kt | 0 .../typeInfo/implicitSmartCastThis.kt | 0 .../{blackbox => box}/typeInfo/inheritance.kt | 0 .../{blackbox => box}/typeInfo/kt2811.kt | 0 .../typeInfo/primitiveTypeInfo.kt | 0 .../typeInfo/smartCastThis.kt | 0 .../typeMapping/enhancedPrimitives.kt | 0 .../typeMapping/genericTypeWithNothing.kt | 0 .../{blackbox => box}/typeMapping/kt2831.kt | 0 .../{blackbox => box}/typeMapping/kt309.kt | 0 .../{blackbox => box}/typeMapping/kt3286.kt | 0 .../{blackbox => box}/typeMapping/kt3863.kt | 0 .../{blackbox => box}/typeMapping/kt3976.kt | 0 .../{blackbox => box}/typeMapping/nothing.kt | 0 .../typeMapping/nullableNothing.kt | 0 .../typeParameterMultipleBounds.kt | 0 .../box/typealias/enumEntryQualifier.kt | 10 + .../typealias/genericTypeAliasConstructor.kt | 0 .../typealias/genericTypeAliasConstructor2.kt | 8 + .../innerClassTypeAliasConstructor.kt | 0 ...erClassTypeAliasConstructorInSupertypes.kt | 0 .../external/codegen/box/typealias/kt15109.kt | 9 + .../box/typealias/objectLiteralConstructor.kt | 10 + .../{blackbox => box}/typealias/simple.kt | 0 .../typealias/typeAliasAsBareType.kt | 0 .../typealias/typeAliasCompanion.kt | 0 .../typealias/typeAliasConstructor.kt | 0 .../typealias/typeAliasConstructorAccessor.kt | 0 .../typealias/typeAliasConstructorForArray.kt | 16 + .../typeAliasConstructorInSuperCall.kt | 0 .../typeAliasInAnonymousObjectType.kt | 0 .../typealias/typeAliasObject.kt | 0 .../typealias/typeAliasObjectCallable.kt | 0 .../typeAliasSecondaryConstructor.kt | 0 .../codegen/{blackbox => box}/unaryOp/call.kt | 0 .../{blackbox => box}/unaryOp/callNullable.kt | 0 .../unaryOp/callWithCommonType.kt | 0 .../{blackbox => box}/unaryOp/intrinsic.kt | 0 .../unaryOp/intrinsicNullable.kt | 0 .../{blackbox => box}/unaryOp/longOverflow.kt | 0 .../{blackbox => box}/unit/UnitValue.kt | 2 +- .../unit/closureReturnsNullableUnit.kt | 0 .../codegen/{blackbox => box}/unit/ifElse.kt | 0 .../codegen/{blackbox => box}/unit/kt3634.kt | 0 .../codegen/{blackbox => box}/unit/kt4212.kt | 2 +- .../codegen/{blackbox => box}/unit/kt4265.kt | 0 .../{blackbox => box}/unit/nullableUnit.kt | 0 .../unit/nullableUnitInWhen1.kt | 0 .../unit/nullableUnitInWhen2.kt | 0 .../unit/nullableUnitInWhen3.kt | 0 .../{blackbox => box}/unit/unitClassObject.kt | 0 .../{blackbox => box}/vararg/kt1978.kt | 0 .../codegen/{blackbox => box}/vararg/kt581.kt | 0 .../{blackbox => box}/vararg/kt6192.kt | 0 .../{blackbox => box}/vararg/kt796_797.kt | 0 .../vararg/spreadCopiesArray.kt | 0 .../vararg/varargInFunParam.kt | 0 .../{blackbox => box}/vararg/varargInJava.kt | 0 .../vararg/varargsAndFunctionLiterals.kt | 0 .../{blackbox => box}/when/callProperty.kt | 0 .../{blackbox => box}/when/emptyWhen.kt | 0 .../when/enumOptimization/bigEnum.kt | 0 .../when/enumOptimization/duplicatingItems.kt | 0 .../enumOptimization/enumInsideClassObject.kt | 0 .../when/enumOptimization/expression.kt | 0 .../functionLiteralInTopLevel.kt | 0 .../box/when/enumOptimization/kt14597.kt | 22 ++ .../box/when/enumOptimization/kt14597_full.kt | 60 ++++ .../box/when/enumOptimization/kt14802.kt | 25 ++ .../box/when/enumOptimization/kt15806.kt | 25 ++ .../enumOptimization/manyWhensWithinClass.kt | 0 .../when/enumOptimization/nonConstantEnum.kt | 0 .../when/enumOptimization/nullability.kt | 0 .../when/enumOptimization/nullableEnum.kt | 0 .../when/enumOptimization/subjectAny.kt | 0 .../when/enumOptimization/withoutElse.kt | 0 .../when/exceptionOnNoMatch.kt | 0 .../when/exhaustiveBoolean.kt | 0 .../when/exhaustiveBreakContinue.kt | 0 .../when/exhaustiveWhenInitialization.kt | 0 .../when/exhaustiveWhenReturn.kt | 0 .../when/implicitExhaustiveAndReturn.kt | 0 .../integralWhenWithNoInlinedConstants.kt | 0 .../codegen/{blackbox => box}/when/is.kt | 0 .../codegen/{blackbox => box}/when/kt2457.kt | 0 .../codegen/{blackbox => box}/when/kt2466.kt | 0 .../codegen/{blackbox => box}/when/kt5307.kt | 0 .../codegen/{blackbox => box}/when/kt5448.kt | 0 .../{blackbox => box}/when/longInRange.kt | 0 .../when/matchNotNullAgainstNullable.kt | 0 .../{blackbox => box}/when/multipleEntries.kt | 0 .../when/noElseExhaustive.kt | 0 .../when/noElseExhaustiveStatement.kt | 0 .../when/noElseExhaustiveUnitExpected.kt | 0 .../when/noElseInStatement.kt | 0 .../{blackbox => box}/when/noElseNoMatch.kt | 0 .../{blackbox => box}/when/nullableWhen.kt | 0 .../codegen/{blackbox => box}/when/range.kt | 0 .../when/sealedWhenInitialization.kt | 0 .../stringOptimization/duplicatingItems.kt | 0 .../duplicatingItemsSameHashCode.kt | 2 +- .../when/stringOptimization/expression.kt | 0 .../when/stringOptimization/nullability.kt | 0 .../when/stringOptimization/sameHashCode.kt | 2 +- .../when/stringOptimization/statement.kt | 0 .../when/switchOptimizationDense.kt | 0 .../switchOptimizationMultipleConditions.kt | 0 .../when/switchOptimizationSparse.kt | 0 .../when/switchOptimizationStatement.kt | 0 .../when/switchOptimizationTypes.kt | 0 .../when/switchOptimizationUnordered.kt | 0 .../{blackbox => box}/when/typeDisjunction.kt | 0 .../when/whenArgumentIsEvaluatedOnlyOnce.kt | 0 .../anonymousObjectOnCallSite.kt | 45 +++ .../anonymousObjectOnCallSiteSuperParams.kt | 41 +++ .../anonymousObjectOnDeclarationSite.kt | 85 +++++ ...ymousObjectOnDeclarationSiteSuperParams.kt | 72 ++++ .../anonymousObject/capturedLambdaInInline.kt | 18 + .../capturedLambdaInInline2.kt | 18 + .../capturedLambdaInInline3.kt | 24 ++ .../capturedLambdaInInlineObject.kt | 28 ++ .../anonymousObject/changingReturnType.kt | 30 ++ .../anonymousObject/constructorVisibility.kt | 23 ++ .../constructorVisibilityInConstLambda.kt | 19 ++ .../constructorVisibilityInLambda.kt | 19 ++ .../boxInline/anonymousObject/defineClass.kt | 54 +++ .../anonymousObject/enumWhen/callSite.kt | 30 ++ .../anonymousObject/enumWhen/declSite.kt | 22 ++ .../enumWhen/declSiteSeveralMappings.kt | 34 ++ .../declSiteSeveralMappingsDifOrder.kt | 34 ++ .../boxInline/anonymousObject/kt13133.kt | 34 ++ .../boxInline/anonymousObject/kt13182.kt | 25 ++ .../boxInline/anonymousObject/kt13374.kt | 37 +++ .../boxInline/anonymousObject/kt14011.kt | 21 ++ .../boxInline/anonymousObject/kt14011_2.kt | 21 ++ .../boxInline/anonymousObject/kt14011_3.kt | 25 ++ .../boxInline/anonymousObject/kt16193.kt | 30 ++ .../boxInline/anonymousObject/kt6552.kt | 18 + .../boxInline/anonymousObject/kt8133.kt | 23 ++ .../boxInline/anonymousObject/kt9064.kt | 31 ++ .../boxInline/anonymousObject/kt9064v2.kt | 35 ++ .../boxInline/anonymousObject/kt9591.kt | 29 ++ .../boxInline/anonymousObject/kt9877.kt | 33 ++ .../boxInline/anonymousObject/kt9877_2.kt | 28 ++ .../objectInLambdaCapturesAnotherObject.kt | 27 ++ .../properRecapturing/inlineChain.kt | 29 ++ .../properRecapturing/lambdaChain.kt | 30 ++ .../properRecapturing/lambdaChainSimple.kt | 27 ++ .../properRecapturing/lambdaChain_2.kt | 31 ++ .../properRecapturing/lambdaChain_3.kt | 29 ++ .../properRecapturing/noInlineLambda.kt | 29 ++ .../properRecapturingInClass/inlineChain.kt | 34 ++ .../inlinelambdaChain.kt | 41 +++ .../properRecapturingInClass/lambdaChain.kt | 39 +++ .../lambdaChainSimple.kt | 35 ++ .../lambdaChainSimple_2.kt | 37 +++ .../properRecapturingInClass/lambdaChain_2.kt | 40 +++ .../properRecapturingInClass/lambdaChain_3.kt | 40 +++ .../noCapturedThisOnCallSite.kt | 33 ++ .../noInlineLambda.kt | 35 ++ .../twoInlineLambda.kt | 34 ++ .../twoInlineLambdaComplex.kt | 43 +++ .../twoInlineLambdaComplex_2.kt | 44 +++ .../boxInline/anonymousObject/safeCall.kt | 24 ++ .../boxInline/anonymousObject/safeCall_2.kt | 26 ++ .../codegen/boxInline/anonymousObject/sam.kt | 20 ++ .../twoCapturedReceivers/kt8668.kt | 31 ++ .../twoCapturedReceivers/kt8668_2.kt | 25 ++ .../twoCapturedReceivers/kt8668_3.kt | 28 ++ .../twoDifferentDispatchReceivers.kt | 28 ++ .../twoExtensionReceivers.kt | 24 ++ .../argumentOrder/boundFunctionReference.kt | 41 +++ .../argumentOrder/boundFunctionReference2.kt | 41 +++ .../boxInline/argumentOrder/captured.kt | 39 +++ .../argumentOrder/capturedInExtension.kt | 18 +- .../argumentOrder/extension.kt | 18 +- .../argumentOrder/extensionInClass.kt | 43 +++ .../argumentOrder/lambdaMigration.kt | 30 ++ .../argumentOrder/lambdaMigrationInClass.kt | 34 ++ .../codegen/boxInline/argumentOrder/simple.kt | 30 ++ .../boxInline/argumentOrder/simpleInClass.kt | 32 ++ .../boxInline/arrayConvention/simpleAccess.kt | 29 ++ .../arrayConvention/simpleAccessInClass.kt | 35 ++ .../simpleAccessWithDefault.kt | 30 ++ .../simpleAccessWithDefaultInClass.kt | 36 ++ .../arrayConvention/simpleAccessWithLambda.kt | 30 ++ .../simpleAccessWithLambdaInClass.kt | 37 +++ .../codegen/boxInline/builders/builders.kt | 288 ++++++++++++++++ .../builders/buildersAndLambdaCapturing.kt | 292 ++++++++++++++++ .../callableReference/bound/classProperty.kt | 17 + .../callableReference/bound/expression.kt | 17 + .../bound/extensionReceiver.kt | 20 ++ .../callableReference/bound/filter.kt | 21 ++ .../callableReference/bound/intrinsic.kt | 17 + .../boxInline/callableReference/bound/map.kt | 21 ++ .../callableReference/bound/objectProperty.kt | 19 ++ .../bound/propertyImportedFromObject.kt | 20 ++ .../callableReference/bound/simple.kt | 17 + .../bound/topLevelExtensionProperty.kt | 20 ++ .../boxInline/callableReference/classLevel.kt | 20 ++ .../callableReference/classLevel2.kt | 22 ++ .../callableReference/constructor.kt | 20 ++ .../boxInline/callableReference/intrinsic.kt | 16 + .../boxInline/callableReference/kt15449.kt | 40 +++ .../boxInline/callableReference/kt16411.kt | 17 + .../callableReference/propertyIntrinsic.kt | 16 + .../callableReference/propertyReference.kt | 17 + .../boxInline/callableReference/topLevel.kt | 19 ++ .../callableReference/topLevelExtension.kt | 19 ++ .../callableReference/topLevelProperty.kt | 18 + .../boxInline/capture/captureInlinable.kt | 27 ++ .../capture/captureInlinableAndOther.kt | 28 ++ .../capture/captureThisAndReceiver.kt | 38 +++ .../codegen/boxInline/capture/generics.kt | 31 ++ .../capture/simpleCapturingInClass.kt | 82 +++++ .../capture/simpleCapturingInPackage.kt | 71 ++++ .../codegen/boxInline/complex/closureChain.kt | 21 ++ .../codegen/boxInline/complex/forEachLine.kt | 48 +++ .../boxInline/complex/lambdaInLambda.kt | 48 +++ .../codegen/boxInline/complex/swapAndWith.kt | 20 ++ .../codegen/boxInline/complex/swapAndWith2.kt | 19 ++ .../external/codegen/boxInline/complex/use.kt | 65 ++++ .../codegen/boxInline/complex/with.kt | 80 +++++ .../codegen/boxInline/complexStack/asCheck.kt | 28 ++ .../boxInline/complexStack/asCheck2.kt | 28 ++ .../codegen/boxInline/complexStack/simple.kt | 15 + .../codegen/boxInline/complexStack/simple2.kt | 21 ++ .../codegen/boxInline/complexStack/simple3.kt | 23 ++ .../codegen/boxInline/complexStack/simple4.kt | 20 ++ .../boxInline/complexStack/simpleExtension.kt | 15 + .../defaultValues/defaultInExtension.kt | 61 ++++ .../boxInline/defaultValues/defaultMethod.kt | 38 +++ .../defaultValues/defaultMethodInClass.kt | 31 ++ .../defaultValues/defaultParamRemapping.kt | 19 ++ .../defaultValues/inlineInDefaultParameter.kt | 36 ++ .../boxInline/defaultValues/kt11479.kt | 25 ++ .../kt11479InlinedDefaultParameter.kt | 30 ++ .../codegen/boxInline/defaultValues/kt5685.kt | 24 ++ .../defaultValues/simpleDefaultMethod.kt | 46 +++ .../boxInline/delegatedProperty/local.kt | 21 ++ .../enclosingInfo/anonymousInLambda.kt | 25 ++ .../boxInline/enclosingInfo/inlineChain.kt | 38 +++ .../boxInline/enclosingInfo/inlineChain2.kt | 38 +++ .../enclosingInfo/objectInInlineFun.kt | 31 ++ .../enclosingInfo/transformedConstructor.kt | 42 +++ ...nsformedConstructorWithAdditionalObject.kt | 52 +++ .../transformedConstructorWithNestedInline.kt | 48 +++ .../codegen/boxInline/enum/kt10569.kt | 31 ++ .../codegen/boxInline/enum/valueOf.kt | 20 ++ .../boxInline/enum/valueOfCapturedType.kt | 20 ++ .../codegen/boxInline/enum/valueOfChain.kt | 25 ++ .../enum/valueOfChainCapturedType.kt | 25 ++ .../boxInline/enum/valueOfNonReified.kt | 20 ++ .../external/codegen/boxInline/enum/values.kt | 21 ++ .../codegen/boxInline/enum/valuesAsArray.kt | 26 ++ .../boxInline/enum/valuesCapturedType.kt | 21 ++ .../codegen/boxInline/enum/valuesChain.kt | 25 ++ .../boxInline/enum/valuesChainCapturedType.kt | 25 ++ .../boxInline/enum/valuesNonReified.kt | 21 ++ .../boxInline/functionExpression/extension.kt | 71 ++++ .../boxInline/innerClasses/innerLambda.kt | 33 ++ .../codegen/boxInline/innerClasses/kt10259.kt | 34 ++ .../lambdaClassClash/lambdaClassClash.kt | 28 ++ .../lambdaClassClash/noInlineLambdaX2.kt | 26 ++ .../lambdaTransformation/lambdaCloning.kt | 34 ++ .../lambdaTransformation/lambdaInLambda2.kt | 38 +++ .../lambdaInLambdaNoInline.kt | 72 ++++ .../regeneratedLambdaName.kt | 35 ++ .../lambdaTransformation/sameCaptured.kt | 44 +++ .../lambdaInLambdaCapturesAnotherFun.kt | 27 ++ .../localFunInLambda/localFunInLambda.kt | 38 +++ .../localFunInLambdaCapturesAnotherFun.kt | 26 ++ .../inlineFromOptimizedMultifileClass.kt | 23 ++ .../inlineFromOtherPackage.kt | 21 ++ .../boxInline/noInline/extensionReceiver.kt | 20 ++ .../boxInline/noInline/lambdaAsGeneric.kt | 14 + .../boxInline/noInline/lambdaAsNonFunction.kt | 14 + .../codegen/boxInline/noInline/noInline.kt | 26 ++ .../boxInline/noInline/noInlineLambdaChain.kt | 71 ++++ .../noInlineLambdaChainWithCapturedInline.kt | 83 +++++ .../boxInline/noInline/withoutInline.kt | 23 ++ .../nonLocalReturns/deparenthesize/bracket.kt | 39 +++ .../nonLocalReturns/deparenthesize/labeled.kt | 39 +++ .../nonLocalReturns/explicitLocalReturn.kt | 39 +++ .../nonLocalReturns/justReturnInLambda.kt | 27 ++ .../boxInline/nonLocalReturns/kt5199.kt | 24 ++ .../boxInline/nonLocalReturns/kt8948.kt | 27 ++ .../boxInline/nonLocalReturns/kt8948v2.kt | 36 ++ .../nonLocalReturns/nestedNonLocals.kt | 81 +++++ .../nonLocalReturns/noInlineLocalReturn.kt | 39 +++ .../nonLocalReturnFromOuterLambda.kt | 59 ++++ .../nonLocalReturns/propertyAccessors.kt | 40 +++ .../nonLocalReturns/returnFromFunctionExpr.kt | 26 ++ .../boxInline/nonLocalReturns/simple.kt | 61 ++++ .../nonLocalReturns/simpleFunctional.kt | 87 +++++ .../boxInline/nonLocalReturns/simpleVoid.kt | 40 +++ .../tryFinally/callSite/callSite.kt | 108 ++++++ .../tryFinally/callSite/callSiteComplex.kt | 112 +++++++ .../callSite/exceptionTableSplit.kt | 139 ++++++++ .../callSite/exceptionTableSplitNoReturn.kt | 139 ++++++++ .../tryFinally/callSite/finallyInFinally.kt | 83 +++++ .../tryFinally/callSite/wrongVarInterval.kt | 45 +++ .../tryFinally/chained/finallyInFinally.kt | 98 ++++++ .../tryFinally/chained/finallyInFinally2.kt | 96 ++++++ .../tryFinally/chained/intReturn.kt | 67 ++++ .../tryFinally/chained/intReturnComplex.kt | 71 ++++ .../tryFinally/chained/intReturnComplex2.kt | 79 +++++ .../tryFinally/chained/intReturnComplex3.kt | 81 +++++ .../tryFinally/chained/intReturnComplex4.kt | 85 +++++ .../tryFinally/chained/nestedLambda.kt | 86 +++++ .../tryFinally/declSite/complex.kt | 114 +++++++ .../tryFinally/declSite/intReturn.kt | 157 +++++++++ .../tryFinally/declSite/intReturnComplex.kt | 171 ++++++++++ .../tryFinally/declSite/longReturn.kt | 157 +++++++++ .../tryFinally/declSite/nested.kt | 132 ++++++++ .../tryFinally/declSite/returnInFinally.kt | 94 ++++++ .../tryFinally/declSite/returnInTry.kt | 72 ++++ .../declSite/returnInTryAndFinally.kt | 95 ++++++ .../tryFinally/declSite/severalInTry.kt | 90 +++++ .../declSite/severalInTryComplex.kt | 96 ++++++ .../tryFinally/declSite/voidInlineFun.kt | 72 ++++ .../tryFinally/declSite/voidNonLocal.kt | 71 ++++ .../tryFinally/exceptionTable/break.kt | 95 ++++++ .../tryFinally/exceptionTable/continue.kt | 94 ++++++ .../exceptionTable/exceptionInFinally.kt | 82 +++++ .../tryFinally/exceptionTable/forInFinally.kt | 60 ++++ .../exceptionTable/innerAndExternal.kt | 154 +++++++++ .../exceptionTable/innerAndExternalNested.kt | 152 +++++++++ .../exceptionTable/innerAndExternalSimple.kt | 55 +++ .../tryFinally/exceptionTable/nested.kt | 128 +++++++ .../exceptionTable/nestedWithReturns.kt | 165 +++++++++ .../exceptionTable/nestedWithReturnsSimple.kt | 76 +++++ .../tryFinally/exceptionTable/noFinally.kt | 120 +++++++ .../exceptionTable/severalCatchClause.kt | 312 ++++++++++++++++++ .../tryFinally/exceptionTable/simpleThrow.kt | 213 ++++++++++++ .../tryFinally/exceptionTable/synchonized.kt | 34 ++ .../exceptionTable/throwInFinally.kt | 195 +++++++++++ .../exceptionTable/tryCatchInFinally.kt | 90 +++++ .../nonLocalReturns/tryFinally/kt6956.kt | 36 ++ .../nonLocalReturns/tryFinally/kt7273.kt | 23 ++ .../nonLocalReturnFromOuterLambda.kt | 81 +++++ .../tryFinally/variables/kt7792.kt | 59 ++++ .../boxInline/private/accessorForConst.kt | 22 ++ .../boxInline/private/accessorStability.kt | 29 ++ .../private/accessorStabilityInClass.kt | 33 ++ .../boxInline/private/effectivePrivate.kt | 31 ++ .../codegen/boxInline/private/kt6453.kt | 20 ++ .../codegen/boxInline/private/kt8094.kt | 23 ++ .../codegen/boxInline/private/kt8095.kt | 19 ++ .../boxInline/private/nestedInPrivateClass.kt | 30 ++ .../codegen/boxInline/private/privateClass.kt | 35 ++ .../private/privateClassExtensionLambda.kt | 35 ++ .../privateInInlineInMultiFileFacade.kt | 26 ++ .../boxInline/private/privateInline.kt | 22 ++ .../boxInline/property/augAssignmentAndInc.kt | 28 ++ .../property/augAssignmentAndIncInClass.kt | 32 ++ ...augAssignmentAndIncInClassViaConvention.kt | 42 +++ .../augAssignmentAndIncOnExtension.kt | 28 ++ .../augAssignmentAndIncOnExtensionInClass.kt | 34 ++ .../augAssignmentAndIncViaConvention.kt | 39 +++ .../codegen/boxInline/property/property.kt | 162 +++++++++ .../codegen/boxInline/property/reifiedVal.kt | 17 + .../codegen/boxInline/property/reifiedVar.kt | 27 ++ .../codegen/boxInline/property/simple.kt | 25 ++ .../boxInline/property/simpleExtension.kt | 25 ++ .../boxInline/reified/capturedLambda.kt | 22 ++ .../boxInline/reified/capturedLambda2.kt | 22 ++ .../boxInline/reified/checkCast/chain.kt | 51 +++ .../boxInline/reified/checkCast/kt8043.kt | 26 ++ .../boxInline/reified/checkCast/maxStack.kt | 27 ++ .../boxInline/reified/checkCast/nullable.kt | 56 ++++ .../boxInline/reified/checkCast/simple.kt | 56 ++++ .../boxInline/reified/checkCast/simpleSafe.kt | 56 ++++ .../boxInline/reified/isCheck/chain.kt | 39 +++ .../boxInline/reified/isCheck/nullable.kt | 35 ++ .../boxInline/reified/isCheck/simple.kt | 35 ++ .../codegen/boxInline/reified/kt11081.kt | 44 +++ .../codegen/boxInline/reified/kt11677.kt | 34 ++ .../codegen/boxInline/reified/kt6988.kt | 27 ++ .../codegen/boxInline/reified/kt6988_2.kt | 22 ++ .../codegen/boxInline/reified/kt6990.kt | 23 ++ .../codegen/boxInline/reified/kt7017.kt | 23 ++ .../codegen/boxInline/reified/kt8047.kt | 16 + .../codegen/boxInline/reified/kt9637.kt | 37 +++ .../codegen/boxInline/reified/kt9637_2.kt | 22 ++ .../codegen/boxInline/reified/packages.kt | 40 +++ .../signature/inProjectionSubstitution.kt | 35 ++ .../signature/outProjectionSubstitution.kt | 35 ++ .../codegen/boxInline/signature/recursion.kt | 29 ++ .../signature/sameFormalParameterName.kt | 44 +++ .../sameReifiedFormalParameterName.kt | 44 +++ .../signature/starProjectionSubstitution.kt | 35 ++ .../signature/typeParameterInLambda.kt | 39 +++ .../signature/typeParametersSubstitution.kt | 55 +++ .../signature/typeParametersSubstitution2.kt | 55 +++ .../codegen/boxInline/simple/classObject.kt | 44 +++ .../codegen/boxInline/simple/destructuring.kt | 20 ++ .../simple/destructuringIndexClash.kt | 35 ++ .../codegen/boxInline/simple/extension.kt | 71 ++++ .../boxInline/simple/extensionLambda.kt | 17 + .../boxInline/simple/funImportedFromObject.kt | 19 ++ .../codegen/boxInline/simple/params.kt | 50 +++ .../simple/propImportedFromObject.kt | 21 ++ .../boxInline/simple/rootConstructor.kt | 25 ++ .../codegen/boxInline/simple/safeCall.kt | 22 ++ .../boxInline/simple/severalClosures.kt | 38 +++ .../codegen/boxInline/simple/severalUsage.kt | 21 ++ .../codegen/boxInline/simple/simpleDouble.kt | 76 +++++ .../codegen/boxInline/simple/simpleEnum.kt | 27 ++ .../boxInline/simple/simpleGenerics.kt | 22 ++ .../codegen/boxInline/simple/simpleInt.kt | 76 +++++ .../codegen/boxInline/simple/simpleLambda.kt | 40 +++ .../codegen/boxInline/simple/simpleObject.kt | 77 +++++ .../codegen/boxInline/simple/vararg.kt | 22 ++ .../boxInline/smap/anonymous/lambda.kt | 79 +++++ .../smap/anonymous/lambdaOnCallSite.kt | 55 +++ .../smap/anonymous/lambdaOnInlineCallSite.kt | 87 +++++ .../boxInline/smap/anonymous/object.kt | 82 +++++ .../smap/anonymous/objectOnCallSite.kt | 58 ++++ .../smap/anonymous/objectOnInlineCallSite.kt | 88 +++++ .../smap/anonymous/objectOnInlineCallSite2.kt | 84 +++++ .../objectOnInlineCallSiteWithCapture.kt | 34 ++ .../severalMappingsForDefaultFile.kt | 79 +++++ .../codegen/boxInline/smap/assertion.kt | 75 +++++ .../boxInline/smap/classFromDefaultPackage.kt | 36 ++ .../boxInline/smap/inlineOnly/noSmap.kt | 25 ++ .../smap/inlineOnly/noSmapWithProperty.kt | 30 ++ .../boxInline/smap/inlineOnly/reified.kt | 40 +++ .../smap/inlineOnly/reifiedProperty.kt | 40 +++ .../smap/newsmap/differentMapping.kt | 54 +++ .../smap/newsmap/mappingInInlineFunLambda.kt | 94 ++++++ .../smap/newsmap/mappingInSubInlineLambda.kt | 80 +++++ .../mappingInSubInlineLambdaSameFileInline.kt | 80 +++++ .../codegen/boxInline/smap/oneFile.kt | 43 +++ .../boxInline/smap/resolve/inlineComponent.kt | 46 +++ .../boxInline/smap/resolve/inlineIterator.kt | 45 +++ .../external/codegen/boxInline/smap/smap.kt | 118 +++++++ .../boxInline/special/identityCheck.kt | 33 ++ .../codegen/boxInline/special/ifBranches.kt | 73 ++++ .../codegen/boxInline/special/iinc.kt | 25 ++ .../codegen/boxInline/special/inlineChain.kt | 43 +++ .../codegen/boxInline/special/plusAssign.kt | 26 ++ .../boxInline/special/stackHeightBug.kt | 19 ++ .../codegen/boxInline/stackOnReturn/elvis.kt | 10 + .../boxInline/stackOnReturn/ifThenElse.kt | 10 + .../boxInline/stackOnReturn/kt11499.kt | 12 + .../stackOnReturn/mixedTypesOnStack1.kt | 10 + .../stackOnReturn/mixedTypesOnStack2.kt | 10 + .../stackOnReturn/mixedTypesOnStack3.kt | 10 + .../stackOnReturn/nonLocalReturn1.kt | 15 + .../stackOnReturn/nonLocalReturn2.kt | 15 + .../stackOnReturn/nonLocalReturn3.kt | 17 + .../boxInline/stackOnReturn/returnLong.kt | 12 + .../boxInline/stackOnReturn/tryFinally.kt | 17 + .../syntheticAccessors/constField.kt | 27 ++ .../packagePrivateMembers.kt | 29 ++ .../syntheticAccessors/propertyModifiers.kt | 38 +++ .../syntheticAccessors/protectedMembers.kt | 35 ++ .../protectedMembersFromSuper.kt | 38 +++ .../boxInline/syntheticAccessors/superCall.kt | 25 ++ .../syntheticAccessors/superProperty.kt | 24 ++ .../withinInlineLambda/directFieldAccess.kt | 35 ++ .../directFieldAccessInCrossInline.kt | 36 ++ .../withinInlineLambda/privateCall.kt | 38 +++ .../privateInCrossInline.kt | 41 +++ .../withinInlineLambda/superCall.kt | 45 +++ .../withinInlineLambda/superInCrossInline.kt | 48 +++ .../external/codegen/boxInline/trait/trait.kt | 44 +++ .../boxInline/tryCatchFinally/kt5863.kt | 19 ++ .../boxInline/tryCatchFinally/tryCatch.kt | 66 ++++ .../boxInline/tryCatchFinally/tryCatch2.kt | 132 ++++++++ .../tryCatchFinally/tryCatchFinally.kt | 101 ++++++ .../annotationInInterface.kt | 25 ++ .../annotationsOnTypeAliases.kt | 29 ++ .../callsToMultifileClassFromOtherPackage.kt | 23 ++ .../classInObject.kt | 18 + .../companionObjectInEnum.kt | 19 ++ .../companionObjectMember.kt | 15 + ...onstPropertyReferenceFromMultifileClass.kt | 28 ++ .../constructorVararg.kt | 14 + .../coroutinesBinary.kt | 36 ++ .../defaultConstructor.kt | 12 + .../doublyNestedClass.kt | 18 + .../compileKotlinAgainstKotlin/enum.kt | 17 + .../inlinedConstants.kt | 34 ++ .../innerClassConstructor.kt | 21 ++ .../compileKotlinAgainstKotlin/jvmField.kt | 25 ++ .../jvmFieldInConstructor.kt | 21 ++ .../compileKotlinAgainstKotlin/jvmNames.kt | 31 ++ .../jvmStaticInObject.kt | 17 + .../kotlinPropertyAsAnnotationParameter.kt | 54 +++ .../compileKotlinAgainstKotlin/kt14012.kt | 18 + .../kt14012_multi.kt | 21 ++ ...ileClassInlineFunctionAccessingProperty.kt | 15 + .../compileKotlinAgainstKotlin/nestedClass.kt | 15 + .../compileKotlinAgainstKotlin/nestedEnum.kt | 19 ++ .../nestedObject.kt | 15 + .../platformTypes.kt | 37 +++ .../propertyReference.kt | 27 ++ .../recursiveGeneric.kt | 27 ++ .../compileKotlinAgainstKotlin/sealedClass.kt | 38 +++ .../secondaryConstructors.kt | 38 +++ .../compileKotlinAgainstKotlin/simple.kt | 15 + .../simpleValAnonymousObject.kt | 20 ++ .../starImportEnum.kt | 22 ++ .../typeAliasesKt13181.kt | 18 + 3178 files changed, 22396 insertions(+), 696 deletions(-) delete mode 100644 backend.native/tests/external/codegen/blackbox/callableReference/bound/simpleFunction.kt delete mode 100644 backend.native/tests/external/codegen/blackbox/callableReference/function/equalsIntrinsic.kt delete mode 100644 backend.native/tests/external/codegen/blackbox/callableReference/function/local/localFunctionName.kt delete mode 100644 backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/returnFromFinally.kt delete mode 100644 backend.native/tests/external/codegen/blackbox/intrinsics/kt10131.kt delete mode 100644 backend.native/tests/external/codegen/blackbox/intrinsics/kt10131a.kt delete mode 100644 backend.native/tests/external/codegen/blackbox/reflection/functions/functionFromStdlib.kt delete mode 100644 backend.native/tests/external/codegen/blackbox/strings/kt2592.kt rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotatedEnumEntry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotatedLambda/funExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotatedLambda/lambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotatedLambda/samFunExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotatedLambda/samLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotatedObjectLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotationWithKotlinProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotationWithKotlinPropertyFromInterfaceCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotationsOnDefault.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/annotationsOnTypeAliases.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/defaultParameterValues.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/delegatedPropertySetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/fileClassWithFileAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/jvmAnnotationFlags.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/kotlinPropertyFromClassObjectAsParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/kotlinTopLevelPropertyAsParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/kt10136.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/nestedClassPropertyAsParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/parameterWithPrimitiveType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/propertyWithPropertyInInitializerAsParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/resolveWithLowPriorityAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/annotations/varargInAnnotationParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/arguments.kt (71%) rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/captured.kt (93%) create mode 100644 backend.native/tests/external/codegen/box/argumentOrder/capturedInExtension.kt rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/defaults.kt (53%) create mode 100644 backend.native/tests/external/codegen/box/argumentOrder/extension.kt rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/extensionInClass.kt (88%) rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/kt9277.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/lambdaMigration.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/lambdaMigrationInClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/simple.kt (86%) rename backend.native/tests/external/codegen/{blackbox => box}/argumentOrder/simpleInClass.kt (87%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/arrayConstructorsSimple.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/arrayGetAssignMultiIndex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/arrayGetMultiIndex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/arrayInstanceOf.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/arrayPlusAssign.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/arraysAreCloneable.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/cloneArray.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/clonePrimitiveArrays.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/collectionAssignGetMultiIndex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/collectionGetMultiIndex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachBooleanArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachByteArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachCharArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachDoubleArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachFloatArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachIntArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachLongArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/forEachShortArray.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/arrays/genericArrayInObjectLiteralConstructor.kt rename backend.native/tests/external/codegen/{blackbox => box}/arrays/hashMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/inProjectionAsParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/inProjectionOfArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/inProjectionOfList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/indices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/indicesChar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iterator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorBooleanArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorByteArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorByteArrayNextByte.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorCharArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorDoubleArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorFloatArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorIntArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorLongArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorLongArrayNextLong.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/iteratorShortArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt1291.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt238.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt2997.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt33.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt3771.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt4118.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt4348.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt4357.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt503.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt594.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt602.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt7009.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt7288.kt (86%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt7338.kt (89%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt779.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt945.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/kt950.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/longAsIndex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiArrayConstructors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/MultiDeclFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/MultiDeclForValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/int/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/int/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/int/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/arrays/multiDecl/kt15560.kt create mode 100644 backend.native/tests/external/codegen/box/arrays/multiDecl/kt15568.kt create mode 100644 backend.native/tests/external/codegen/box/arrays/multiDecl/kt15575.kt rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/long/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/long/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/long/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/multiDecl/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/nonLocalReturnArrayConstructor.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/nonNullArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/arrays/stdlib.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/arrays/varargsWithJava.kt rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/bitwiseOp.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/bitwiseOpAny.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/bitwiseOpNullable.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/call.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/callAny.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/callNullable.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/binaryOp/compareBoxedChars.kt rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/compareWithBoxedDouble.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/compareWithBoxedLong.kt (77%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/divisionByZero.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/intrinsic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/intrinsicAny.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/intrinsicNullable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/kt11163.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/kt6747_identityEquals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/overflowChar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/overflowInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/binaryOp/overflowLong.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/casts.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/checkcastAndInstanceOf.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/fold.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/foldRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/kt5493.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/kt5588.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/kt5844.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/kt6047.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/kt6842.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/nullCheck.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/progressions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/safeCallWithElvis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/simpleUninitializedMerge.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/boxingOptimization/taintedValues.kt create mode 100644 backend.native/tests/external/codegen/box/boxingOptimization/taintedValuesBox.kt rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/unsafeRemoving.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/boxingOptimization/variables.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/complexMultiInheritance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/complexTraitImpl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/delegation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/delegationComplex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/delegationComplexWithList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/delegationProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/diamond.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/fakeCovariantOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/fakeGenericCovariantOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/fakeGenericCovariantOverrideWithDelegation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/fakeOverrideOfTraitImpl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/fakeOverrideWithSeveralSuperDeclarations.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/fakeOverrideWithSynthesizedImplementation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/genericProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/jsName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/jsNative.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt12416.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt1939.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt1959.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt2498.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt2702.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt2833.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt2920.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/kt318.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/longChainOneBridge.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/manyTypeArgumentsSubstitutedSuccessively.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/methodFromTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/noBridgeOnMutableCollectionInheritance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/objectClone.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/overrideAbstractProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/overrideReturnType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/propertyAccessorsWithoutBody.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/propertyDiamond.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/propertyInConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/propertySetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/simpleEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/simpleGenericMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/simpleObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/simpleReturnType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/simpleTraitImpl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/simpleUpperBound.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/strListContains.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/abstractFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/boundedTypeArguments.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/delegation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/differentErasureInSuperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/differentErasureInSuperClassComplex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/enum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/genericMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/object.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/property.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/substitutionInSuperClass/upperBound.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/traitImplInheritsTraitImpl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/twoParentsWithDifferentMethodsTwoBridges.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/twoParentsWithDifferentMethodsTwoBridges2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/bridges/twoParentsWithTheSameMethodOneBridge.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/Collection.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/Iterator.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/IteratorWithRemove.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/List.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/ListIterator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/ListWithAllImplementations.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/ListWithAllInheritedImplementations.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/Map.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/MapEntry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/MapEntryWithSetValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/MapWithAllImplementations.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/SubstitutedList.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/abstractMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/customReadOnlyIterator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/delegationToArrayList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/extendJavaCollections/abstractList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/extendJavaCollections/abstractMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/extendJavaCollections/abstractSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/extendJavaCollections/arrayList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/extendJavaCollections/hashMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/extendJavaCollections/hashSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/extendJavaCollections/mapEntry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/immutableRemove.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/implementationInTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/inheritedImplementations.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/manyTypeParametersWithUpperBounds.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/nonTrivialSubstitution.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/nonTrivialUpperBound.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/substitutedIterable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/builtinStubMethods/substitutedListWithExtraSuperInterface.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/array.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/companionObjectReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/enumEntryMember.kt (89%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/equals/nullableReceiverInEquals.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/equals/propertyAccessors.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/equals/receiverInEquals.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/equals/reflectionReference.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/inline/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/inline/simpleVal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/kCallableNameIntrinsic.kt (66%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/kt12738.kt (63%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/kt15446.kt (88%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/multiCase.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/nullReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/objectReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/primitiveReceiver.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/bound/simpleFunction.kt rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/simpleProperty.kt (56%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/bound/syntheticExtensionOnLHS.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/abstractClassMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/booleanNotIntrinsic.kt (58%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/classMemberFromClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/classMemberFromExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/classMemberFromTopLevelStringNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/classMemberFromTopLevelStringOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/classMemberFromTopLevelUnitNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/classMemberFromTopLevelUnitOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/constructorFromTopLevelNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/constructorFromTopLevelOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/enumValueOfMethod.kt (60%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/function/equalsIntrinsic.kt rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/extensionFromClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/extensionFromExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/extensionFromTopLevelStringNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/extensionFromTopLevelStringOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/extensionFromTopLevelUnitNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/extensionFromTopLevelUnitOneStringArg.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferenceArguments.kt create mode 100644 backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt create mode 100644 backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/genericMember.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/function/genericWithDependentType.kt rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/getArityViaFunctionImpl.kt (85%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/innerConstructorFromClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/innerConstructorFromExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/innerConstructorFromTopLevelNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/innerConstructorFromTopLevelOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/javaCollectionsStaticMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/captureOuter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/classMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/closureWithSideEffect.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/constructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/constructorWithInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/enumExtendsTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/extension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/extensionToLocalClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/extensionToPrimitive.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/extensionWithClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/genericMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/localClassMember.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/function/local/localFunctionName.kt rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/localLocal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/recursiveClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/simpleClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/simpleWithArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/local/unitWithSideEffect.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/nestedConstructorFromClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/nestedConstructorFromTopLevelNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/nestedConstructorFromTopLevelOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/newArray.kt (80%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/overloadedFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/overloadedFunVsVal.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/privateClassMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/sortListOfStrings.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/function/specialCalls.kt rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/topLevelFromClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/topLevelFromExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/topLevelFromTopLevelStringNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/topLevelFromTopLevelStringOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/topLevelFromTopLevelUnitNoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/topLevelFromTopLevelUnitOneStringArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/traitImplMethodWithClassReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/function/traitMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/accessViaSubclass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/delegated.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/delegatedMutable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/enumNameOrdinal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/extensionToArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/genericProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/invokePropertyReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/javaBeanConvention.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/kClassInstanceIsInitializedFirst.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/kt12044.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/kt12982_protectedPropertyReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/kt14330.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/kt14330_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/kt15447.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/kt6870_privatePropertyReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/listOfStringsMapLength.kt (55%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/localClassVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/overriddenInSubclass.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/property/privateSetOuterClass.kt rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/privateSetterInsideClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/privateSetterOutsideClass.kt (86%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/simpleExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/simpleMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/simpleMutableExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/simpleMutableMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/simpleMutableTopLevel.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/callableReference/property/simpleTopLevel.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/callableReference/serializability/boundWithNotSerializableReceiver.kt create mode 100644 backend.native/tests/external/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt create mode 100644 backend.native/tests/external/codegen/box/callableReference/serializability/noReflect.kt create mode 100644 backend.native/tests/external/codegen/box/callableReference/serializability/reflectedIsNotSerialized.kt create mode 100644 backend.native/tests/external/codegen/box/callableReference/serializability/withReflect.kt rename backend.native/tests/external/codegen/{blackbox => box}/casts/as.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/asForConstants.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/asSafe.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/asSafeFail.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/asSafeForConstants.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/asUnit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/asWithGeneric.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/castGenericNull.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/asFunKBig.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/asFunKSmall.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/isFunKBig.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/isFunKSmall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/javaTypeIsFunK.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/reifiedAsFunKBig.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/reifiedAsFunKSmall.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/reifiedIsFunKBig.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/reifiedIsFunKSmall.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/reifiedSafeAsFunKBig.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/reifiedSafeAsFunKSmall.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/safeAsFunKBig.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/functions/safeAsFunKSmall.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/intersectionTypeMultipleBounds.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/intersectionTypeMultipleBoundsImplicitReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/intersectionTypeSmartcast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/intersectionTypeWithMultipleBoundsAsReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/intersectionTypeWithoutGenericsAsReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/is.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/lambdaToUnitCast.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/literalExpressionAsGenericArgument/binaryExpressionCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/literalExpressionAsGenericArgument/javaBox.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/literalExpressionAsGenericArgument/labeledExpressionCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/literalExpressionAsGenericArgument/parenthesizedExpressionCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/literalExpressionAsGenericArgument/superConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/literalExpressionAsGenericArgument/unaryExpressionCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/literalExpressionAsGenericArgument/vararg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/asWithMutable.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/isWithMutable.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/mutabilityMarkerInterfaces.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/reifiedAsWithMutable.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/reifiedIsWithMutable.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/reifiedSafeAsWithMutable.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/safeAsWithMutable.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/mutableCollections/weirdMutableCasts.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/notIs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/unitAsAny.kt (87%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/unitAsInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/unitAsSafeAny.kt (87%) rename backend.native/tests/external/codegen/{blackbox => box}/casts/unitNullableCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/bound/javaIntrinsicWithSideEffect.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/bound/primitives.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/bound/sideEffect.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/bound/simple.kt (57%) create mode 100644 backend.native/tests/external/codegen/box/classLiteral/bound/smartCast.kt rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/java.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/javaObjectType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/javaObjectTypeReified.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/javaPrimitiveType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/javaPrimitiveTypeReified.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/javaReified.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/kt11943.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/java/objectSuperConstructorCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classLiteral/primitiveKClassEquality.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/boxPrimitiveTypeInClinitOfClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classCompanionInitializationWithJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classNamedAsOldPackageFacade.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectAsExtensionReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectAsStaticInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectInTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectNotOfEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectWithPrivateGenericMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/classObjectsWithParentClasses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/defaultObjectSameNamesAsInOuter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegation2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegation3.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegation4.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegationGenericArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegationGenericArgUpperBound.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegationGenericLongArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegationJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/delegationMethodsWithArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/exceptionConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/extensionOnNamedClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/funDelegation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/implementComparableInSubclass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inheritSetAndHashSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inheritance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inheritedInnerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inheritedMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/initializerBlock.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/initializerBlockDImpl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inner/instantiateInDerived.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inner/instantiateInDerivedLabeled.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inner/instantiateInSameClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inner/kt6708.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inner/properOuter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/inner/properSuperLinking.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/innerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/interfaceCompanionInitializationWithJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1018.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1120.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1134.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1157.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1247.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1345.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1439.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1535.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1538.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1578.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1611.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1721.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1726.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1759.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1891.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1918.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1976.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt1980.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2224.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2288.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2384.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2390.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2391.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2395.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2417.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2477.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2480.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2482.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2485.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt249.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2532.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2566.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2566_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2607.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2626.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2711.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt2784.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt285.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt3001.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt3114.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt3414.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt343.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt3546.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt454.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt471.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt48.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt496.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt500.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt501.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt504.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt508.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt5347.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt6136.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt633.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt6816.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt707.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt723.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt725.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt8011.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt8011a.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt903.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt940.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/kt9642.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/namedClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/outerThis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/overloadBinaryOperator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/overloadPlusAssign.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/overloadPlusAssignReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/overloadPlusToPlusAssign.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/overloadUnaryOperator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/privateOuterFunctions.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/privateOuterProperty.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/privateToThis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/propertyDelegation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/propertyInInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/rightHandOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/sealedInSameFile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/selfcreate.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/simpleBox.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/superConstructorCallWithComplexArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/classes/typedDelegation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureExtensionReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/captureFunctionInProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/inFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/inProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/inPropertyDeepObjectChain.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/inPropertyFromSuperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/inPropertyFromSuperSuperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/kt4176.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/captureOuterProperty/kt4656.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/capturedLocalGenericFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureInsideClosure/localFunInsideLocalFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureInsideClosure/localFunInsideLocalFunDifferentSignatures.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureInsideClosure/propertyAndFunctionNameClash.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureInsideClosure/threeLevels.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureInsideClosure/threeLevelsDifferentSignatures.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureInsideClosure/varAsFunInsideLocalFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureInsideConstrucor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureOnTopLevel1.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureOnTopLevel2.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureWithParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/closureWithParameterAndBoxing.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/doubleEnclosedLocalVariable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/enclosingLocalVariable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/enclosingThis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/extensionClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt10044.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt11634.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt11634_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt11634_3.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt11634_4.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt2151.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt3152.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt3523.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt3738.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt3905.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt4106.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt4137.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/kt5589.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/localClassFunClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/localClassLambdaClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/localFunctionInFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/localFunctionInInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/localGenericFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/localReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/localReturnWithAutolabel.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/noRefToOuter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/recursiveClosure.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/closures/refsAreSerializable.kt rename backend.native/tests/external/codegen/{blackbox => box}/closures/simplestClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/simplestClosureAndBoxing.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/subclosuresWithinInitializers.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/closures/underscoreParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/charSequence.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/implementCollectionThroughKotlin.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/inSetWithSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/irrelevantImplCharSequence.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/irrelevantImplCharSequenceKotlin.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/irrelevantImplMutableList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/irrelevantImplMutableListKotlin.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/irrelevantImplMutableListSubstitution.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/irrelevantRemoveAtOverrideInJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/irrelevantSizeOverrideInJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/mutableList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/noStubsInJavaSuperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/platformValueContains.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/readOnlyList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/readOnlyMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/removeAtInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/strList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/collections/toArrayInJavaClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/compatibility/dataClassEqualsHashCodeToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/constants/constantsInWhen.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/constants/float.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/constants/kt9532.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/constants/long.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/constants/privateConst.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/bottles.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/breakFromOuter.kt (67%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/breakInDoWhile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/breakInExpr.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/continueInDoWhile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/continueInExpr.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/inlineWithStack.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/innerLoopWithStack.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/kt14581.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713.kt create mode 100644 backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713_2.kt rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/kt9022And.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/kt9022Or.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/pathologicalDoWhile.kt rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/popSizes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/tryFinally1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/tryFinally2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakContinueInExpressions/whileTrueBreak.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/breakInFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/compareBoxedIntegerToZero.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/conditionOfEmptyIf.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/continueInExpr.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/continueInFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/continueInForCondition.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/continueInWhile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/continueToLabelInFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/doWhile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/doWhileFib.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/doWhileWithContinue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/emptyDoWhile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/emptyFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/emptyWhile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/factorialTest.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/finallyOnEmptyReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forArrayList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forArrayListMultiDecl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forInSmartCastToArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forIntArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forLoopMemberExtensionAll.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forLoopMemberExtensionHasNext.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forLoopMemberExtensionNext.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forNullableIntArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forPrimitiveIntArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/forUserType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/inRangeConditionsInWhen.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt12908.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt12908_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt1441.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt14839.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/controlStructures/kt15726.kt rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt1688.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt1742.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt1899.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt2147.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt2259.kt (77%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt2291.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt237.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt2416.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt2423.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt2577.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt2597.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt299.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt3087.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt3203_1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt3203_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt3273.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt3280.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt3574.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt416.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt513.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt628.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt769.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt772.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt773.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt8148.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt8148_break.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt8148_continue.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt870.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt9022Return.kt (84%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt9022Throw.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt910.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/kt958.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/longRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/quicksort.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/returnsNothing/ifElse.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/returnsNothing/inlineMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/returnsNothing/propertyGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/returnsNothing/tryCatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/returnsNothing/when.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchFinallyChain.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/catch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/complexChain.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/deadTryCatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/differentTypes.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/expectException.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/finally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/inlineTryCatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/inlineTryExpr.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/inlineTryFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/kt8608.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/kt9644try.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/multipleCatchBlocks.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/splitTry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/splitTryCorner1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/splitTryCorner2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/try.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/tryAfterTry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/tryAndBreak.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/tryAndContinue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/tryInsideCatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/tryInsideTry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/controlStructures/tryCatchInExpressions/unmatchedInlineMarkers.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/32defaultParametersInSuspend.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/accessorForSuspend.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/asyncIterator.kt (86%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/asyncIteratorToList.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/await.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/beginWithException.kt (76%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/beginWithExceptionNoHandleException.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/coercionToUnit.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/breakFinally.kt (86%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/breakStatement.kt (84%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/doWhileStatement.kt (80%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/forContinue.kt (74%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/forStatement.kt (73%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/ifStatement.kt (89%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/controlFlow/returnFromFinally.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/switchLikeWhen.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/throwFromCatch.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/throwInTryWithHandleResult.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controlFlow/whileStatement.kt (80%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/controllerAccessFromInnerLambda.kt (79%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/createCoroutineSafe.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/createCoroutinesOnManualInstances.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/defaultParametersInSuspend.kt (86%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/dispatchResume.kt (53%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/emptyClosure.kt (70%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/falseUnitCoercion.kt (68%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/featureIntersection/destructuringInLambdas.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceivers.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceiversLong.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/featureIntersection/suspendDestructuringInLambdas.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/featureIntersection/tailrec.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/generate.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/handleException.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/handleResultCallEmptyBody.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/handleResultNonUnitExpression.kt (68%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/handleResultSuspended.kt (73%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/illegalState.kt (71%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/inlineSuspendFunction.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/inlinedTryCatchFinally.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/innerSuspensionCalls.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/instanceOfContinuation.kt (66%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/complicatedMerge.kt (73%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/i2bResult.kt (72%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/loadFromBooleanArray.kt (73%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/loadFromByteArray.kt (72%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/noVariableInTable.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/sameIconst1ManyVars.kt (74%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/usedInArrayStore.kt (88%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/usedInMethodCall.kt (87%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/usedInPutfield.kt (85%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/intLikeVarSpilling/usedInVarStore.kt (84%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/iterateOverArray.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/kt12958.kt (81%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/kt15016.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/kt15017.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/lastExpressionIsLoop.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/lastStatementInc.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/lastStementAssignment.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/lastUnitExpression.kt (72%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/localCallableRef.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/localDelegate.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/mergeNullAndString.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/multiModule/inlineFunctionWithOptionalParam.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/multiModule/simple.kt (61%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/multipleInvokeCalls.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/multipleInvokeCallsInsideInlineLambda1.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/multipleInvokeCallsInsideInlineLambda2.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/multipleInvokeCallsInsideInlineLambda3.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/nestedTryCatch.kt (88%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/noSuspensionPoints.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/nonLocalReturnFromInlineLambda.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/nonLocalReturnFromInlineLambdaDeep.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/returnByLabel.kt (71%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/simple.kt (60%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/simpleException.kt (71%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/simpleWithHandleResult.kt (72%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/stackUnwinding/exception.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/stackUnwinding/inlineSuspendFunction.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/stackUnwinding/simple.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/stackUnwinding/suspendInCycle.kt (77%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/statementLikeLastExpression.kt (69%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendDefaultImpl.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/suspendDelegation.kt (66%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/suspendFromInlineLambda.kt (73%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunImportedFromObject.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/augmentedAssignment.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/handleException.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inline.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inlineTwoReceivers.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/member.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/noinlineTwoReceivers.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/operators.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateFunctions.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateInFile.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/returnNoSuspend.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/simple.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/withVariables.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/localVal.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/suspendFunctionTypeCall/manyParameters.kt (74%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/suspendFunctionTypeCall/simple.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/suspendInCycle.kt (69%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/suspendInTheMiddleOfObjectConstruction.kt (83%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCall.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCallWithElvis.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithIf.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithTryCatch.kt create mode 100644 backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithWhen.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/tryCatchFinallyWithHandleResult.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/tryCatchWithHandleResult.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/tryFinallyInsideInlineLambda.kt (71%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/tryFinallyWithHandleResult.kt (86%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt (77%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/unitTypeReturn/coroutineReturn.kt (75%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/unitTypeReturn/suspendNonLocalReturn.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/unitTypeReturn/suspendReturn.kt (70%) create mode 100644 backend.native/tests/external/codegen/box/coroutines/varSpilling/nullSpilling.kt rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/varValueConflictsWithTable.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/coroutines/varValueConflictsWithTableSameSort.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/arrayParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/changingVarParam.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/copy/constructorWithDefaultParam.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/copy/copyInObjectNestedDataClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/copy/kt12708.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/copy/kt3033.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/copy/valInConstructorParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/copy/varInConstructorParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/copy/withGenericParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/doubleParam.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/equals/alreadyDeclared.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/equals/alreadyDeclaredWrongSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/equals/genericarray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/equals/intarray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/equals/nullother.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/equals/sameinstance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/floatParam.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/genericParam.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/alreadyDeclared.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/alreadyDeclaredWrongSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/array.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/boolean.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/byte.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/char.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/double.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/float.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/genericNull.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/int.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/long.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/null.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/hashCode/short.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/kt5002.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/mixedParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/multiDeclaration.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/multiDeclarationFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/nonTrivialFinalMemberInSuperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/nonTrivialMemberInSuperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/privateValParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/toString/alreadyDeclared.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/toString/alreadyDeclaredWrongSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/toString/arrayParams.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/toString/changingVarParam.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/toString/genericParam.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/toString/mixedParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/toString/unitComponent.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/twoValParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/twoVarParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/dataClasses/unitComponent.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/deadCodeElimination/emptyVariableRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/deadCodeElimination/intersectingVariableRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/deadCodeElimination/intersectingVariableRangeInFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/deadCodeElimination/kt14357.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/annotation.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/defaultArguments/constructor/annotationWithEmptyArray.kt rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/checkIfConstructorIsSynthetic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/defArgs1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/defArgs1InnerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/defArgs2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/doubleDefArgs1InnerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/enum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/enumWithOneDefArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/enumWithTwoDefArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/enumWithTwoDoubleDefArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/kt2852.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/kt3060.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/constructor/manyArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/convention/incWithDefaultInGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/convention/kt9140.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/convention/plusAssignWithDefaultInGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/abstractClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/covariantOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/covariantOverrideGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/extensionFunctionManyArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/extentionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/extentionFunctionDouble.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/extentionFunctionDoubleTwoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/extentionFunctionInClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/extentionFunctionInObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/extentionFunctionWithOneDefArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/funInTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/innerExtentionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/innerExtentionFunctionDouble.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/innerExtentionFunctionDoubleTwoArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/innerExtentionFunctionManyArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/kt5232.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/memberFunctionManyArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/mixingNamedAndPositioned.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/topLevelManyArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/function/trait.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/defaultArguments/implementedByFake.kt rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/kt6382.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/private/memberExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/private/memberFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/private/primaryConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/private/secondaryConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/protected.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/signature/kt2789.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/signature/kt9428.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/signature/kt9924.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/simpleFromOtherFile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/defaultArguments/superCallCheck.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/capturePropertyInClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/castGetReturnType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/castSetParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/delegateAsInnerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/delegateByOtherProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/delegateByTopLevelFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/delegateByTopLevelProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/delegateForExtProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/delegateForExtPropertyInClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/delegateWithPrivateSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/extensionDelegatesWithSameNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/extensionPropertyAndExtensionGetValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/genericDelegate.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/getAsExtensionFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/getAsExtensionFunInClass.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/delegatedProperty/getDelegateWithoutReflection.kt rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/inClassVal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/inClassVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/inTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/inferredPropertyType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/kt4138.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/kt6722.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/kt9712.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/capturedLocalVal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/capturedLocalValNoInline.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/capturedLocalVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/capturedLocalVarNoInline.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/inlineGetValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/inlineOperators.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/kt12891.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/kt13557.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/localVal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/localValNoExplicitType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/localVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/local/localVarNoExplicitType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/privateSetterKPropertyIsNotMutable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/privateVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/propertyMetadataShouldBeCached.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/protectedVarWithPrivateSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/differentReceivers.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/evaluationOrder.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/evaluationOrderVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/extensionDelegated.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/generic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/hostCheck.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/inClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/inlineProvideDelegate.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/jvmStaticInObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/kt15437.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/kt16441.kt rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/local.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/localCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/localDifferentReceivers.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/memberExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/provideDelegate/propertyMetadata.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/setAsExtensionFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/setAsExtensionFunInClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/stackOverflowOnCallFromGetValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/topLevelVal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/topLevelVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/twoPropByOneDelegete.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/useKPropertyLater.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/useReflectionOnKProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/valInInnerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegatedProperty/varInInnerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/delegation/delegationToVal.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/delegation/delegationWithPrivateConstructor.kt create mode 100644 backend.native/tests/external/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt rename backend.native/tests/external/codegen/{blackbox => box}/delegation/kt8154.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/extensionComponents.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/generic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/inline.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/otherParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/stdlibUsages.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/underscoreNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/destructuringDeclInLambdaParam/withIndexed.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/inference/kt6176.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/inference/kt6176.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnEnum1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnEnum1.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnEnum2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnEnum2.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnObject1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnObject1.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnObject2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/invoke/onObjects/invokeOnObject2.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/defaultArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/defaultArgs.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/defaultArgsOverridden.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/defaultArgsOverridden.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/extensionTailCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/extensionTailCall.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/functionWithNoTails.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/functionWithNoTails.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/functionWithoutAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/functionWithoutAnnotation.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/infixCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/infixCall.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/infixRecursiveCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/infixRecursiveCall.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/insideElvis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/insideElvis.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/labeledThisReferences.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/labeledThisReferences.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/loops.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/loops.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/multilevelBlocks.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/multilevelBlocks.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/realIteratorFoldl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/realIteratorFoldl.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/realStringEscape.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/realStringEscape.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/realStringRepeat.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/realStringRepeat.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/recursiveCallInLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/recursiveCallInLambda.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/recursiveInnerFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/recursiveInnerFunction.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnIf.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnIf.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInCatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInCatch.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInFinally.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInIfInFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInIfInFinally.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInParentheses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInParentheses.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInTry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/returnInTry.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/simpleBlock.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/simpleBlock.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/simpleReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/simpleReturn.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/simpleReturnWithElse.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/simpleReturnWithElse.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/sum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/sum.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/tailCallInParentheses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/tailCallInParentheses.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/tailRecursionInFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/tailRecursionInFinally.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/thisReferences.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/thisReferences.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/unitBlocks.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/unitBlocks.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithCondition.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithCondition.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithInRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithInRange.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithIs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithIs.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithoutCondition.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/functions/tailRecursion/whenWithoutCondition.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/vararg/kt4172.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/diagnostics/vararg/kt4172.txt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/elvis/genericNull.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/elvis/kt6694ExactAnnotationForElvis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/elvis/nullNullOk.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/elvis/primitive.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/abstractMethodInEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/abstractNestedClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/asReturnExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/classForEnumEntry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/companionObjectInEnum.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithDefaultArguments.kt create mode 100644 backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithVararg.kt create mode 100644 backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithDefaultArguments.kt create mode 100644 backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithVararg.kt rename backend.native/tests/external/codegen/{blackbox => box}/enum/emptyConstructor.kt (53%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/emptyEnumValuesValueOf.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/enumInheritedFromTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/enumShort.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/enumWithLambdaParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/inPackage.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/inclassobj.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/inner.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/innerWithExistingClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/kt1119.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/kt2350.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/kt9711.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/kt9711_2.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/enum/manyDefaultParameters.kt rename backend.native/tests/external/codegen/{blackbox => box}/enum/modifierFlags.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/noClassForSimpleEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/objectInEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/ordinal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/sortEnumEntries.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/superCallInEnumLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/toString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/enum/valueof.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/char.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/divide.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/intrinsics.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/kt9443.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/maxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/maxValueByte.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/maxValueInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/minus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/mod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/multiply.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/parenthesized.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/plus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/simpleCallBinary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/unaryMinus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/evaluate/unaryPlus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/exclExcl/genericNull.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/exclExcl/primitive.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/executionOrder.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt1061.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt1249.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt1290.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/extensionFunctions/kt13312.kt rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt1776.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt1953.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt1953_class.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt3285.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt3298.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt3646.kt (60%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt3969.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt4228.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt475.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt5467.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt606.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/kt865.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/nested2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/shared.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/thisMethodInObjectLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/virtual.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionFunctions/whenFail.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/accessorForPrivateSetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/genericValForPrimitiveType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/genericValMultipleUpperBounds.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/genericVarForPrimitiveType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/inClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/inClassLongTypeInReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/inClassWithGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/inClassWithPrivateGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/inClassWithPrivateSetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/inClassWithSetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/kt9897.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/kt9897_topLevel.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/topLevel.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/extensionProperties/topLevelLongTypeInReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/external/jvmStaticExternal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/external/jvmStaticExternalPrivate.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/external/withDefaultArg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fakeOverride/diamondFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fakeOverride/function.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fakeOverride/propertyGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fakeOverride/propertySetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fieldRename/constructorAndClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fieldRename/delegates.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fieldRename/genericPropertyWithItself.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/finallyAndFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/kt3549.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/kt3706.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/kt3867.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/kt3874.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/kt3894.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/kt4134.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/loopAndFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/notChainCatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/tryFinally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/finally/tryLoopTry.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/charBuffer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/classpath.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/ifInWhile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/intCountDownLatchExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/kt434.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/native/nativePropertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/native/simpleNative.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/native/topLevel.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/platformTypeAssertionStackTrace.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/fullJdk/regressions/kt15112.kt rename backend.native/tests/external/codegen/{blackbox => box}/fullJdk/regressions/kt1770.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/coerceVoidToArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/coerceVoidToObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/dataLocalVariable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs3.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs4.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs5.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs6.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/defaultargs7.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/ea33909.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/fakeDescriptorWithSeveralOverridenOne.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/functionExpression/functionExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/functionExpression/functionExpressionWithThisReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/functionExpression/functionLiteralExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/functionExpression/underscoreParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/functionNtoString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/functionNtoStringGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/functionNtoStringNoReflect.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/infixRecursiveCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/castFunctionToExtension.kt (72%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/extensionInvokeOnExpr.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/implicitInvokeInCompanionObjectWithFunctionalArgument.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/implicitInvokeWithFunctionLiteralArgument.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/invoke.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/invokeOnExprByConvention.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/invokeOnSyntheticProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3189.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3190.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3297.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3450getAndInvoke.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3631invokeOnString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3772.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3821invokeOnThis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/invoke/kt3822invokeOnThis.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt1038.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt1199.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt1413.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt1649_1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt1649_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt1739.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt2270.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt2271.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt2280.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt2481.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt2716.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt2739.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt2929.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt3214.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt3313.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt3573.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt3724.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt395.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt785.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/kt873.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/callInlineLocalInLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/definedWithinLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/definedWithinLambdaInnerUsage1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/definedWithinLambdaInnerUsage2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt2895.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt3308.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt3978.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt4119.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt4119_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt4514.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt4777.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt4783.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt4784.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/kt4989.kt (87%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/localExtensionOnNullableParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localFunctions/localFunctionInConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/localReturnInsideFunctionExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/nothisnoclosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/prefixRecursiveCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/recursiveCompareTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/functions/recursiveIncrementCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/hashPMap/empty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/hashPMap/manyNumbers.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/hashPMap/rewriteWithDifferent.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/hashPMap/rewriteWithEqual.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/hashPMap/simplePlusGet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/hashPMap/simplePlusMinus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/anyToReal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/comparableTypeCast.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/dataClass.kt (86%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/equalsDouble.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/equalsFloat.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/ieee754/equalsNaN.kt rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/equalsNullableDouble.kt (87%) create mode 100644 backend.native/tests/external/codegen/box/ieee754/equalsNullableFloat.kt rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/explicitCompareCall.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/explicitEqualsCall.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/generic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/greaterDouble.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/greaterFloat.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/inline.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/lessDouble.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/lessFloat.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/nullableAnyToReal.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals10.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals10.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals10.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals10.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/nullableIntEquals.kt rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/safeCall.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/smartCastToDifferentTypes.kt (89%) rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/when.kt (55%) create mode 100644 backend.native/tests/external/codegen/box/ieee754/when10.kt rename backend.native/tests/external/codegen/{blackbox => box}/ieee754/whenNoSubject.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast.kt create mode 100644 backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast10.kt rename backend.native/tests/external/codegen/{blackbox => box}/increment/arrayElement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/assignPlusOnSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/augmentedAssignmentWithComplexRhs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/classNaryGetSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/classWithGetSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/extOnLong.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/genericClassWithGetSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/memberExtOnLong.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/mutableListElement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/nullable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/postfixIncrementDoubleSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/postfixIncrementOnClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/postfixIncrementOnClassSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/postfixIncrementOnShortSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/postfixIncrementOnSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/postfixNullableClassIncrement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/postfixNullableIncrement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/prefixIncrementOnClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/prefixIncrementOnClassSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/prefixIncrementOnSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/prefixNullableClassIncrement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/increment/prefixNullableIncrement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/createNestedClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/createdNestedInOuterMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/extensionFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/extensionToNested.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/importNestedClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/innerGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/innerGenericClassFromJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/innerJavaClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/innerLabeledThis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/innerSimple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/kt3132.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/kt3927.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/kt5363.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/kt6804.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/nestedClassInObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/nestedClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/nestedEnumConstant.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/nestedGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/nestedInPackage.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/nestedObjects.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/nestedSimple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/protectedNestedClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/protectedNestedClassFromJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/deepInnerHierarchy.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/deepLocalHierarchy.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/innerExtendsInnerViaSecondaryConstuctor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/innerExtendsInnerWithProperOuterCapture.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/innerExtendsOuter.kt (88%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/kt11833_1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/kt11833_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/localClassOuterDiffersFromInnerOuter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/localExtendsInner.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/localExtendsLocalWithClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/localWithClosureExtendsLocalWithClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsClassDefaultArgument.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsClassVararg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsInner.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsInnerDefaultArgument.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsInnerOfLocalVarargAndDefault.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsInnerOfLocalWithCapture.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsLocalCaptureInSuperCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/innerNested/superConstructorCall/objectOuterDiffersFromInnerOuter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/instructions/swap/swapRefToSharedVarInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/instructions/swap/swapRefToSharedVarLong.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/charToInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/defaultObjectMapping.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/ea35953.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/incWithLabel.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/intrinsics/kt10131.kt create mode 100644 backend.native/tests/external/codegen/box/intrinsics/kt10131a.kt rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/kt12125.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/kt12125_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/kt12125_inc.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/kt12125_inc_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/kt5937.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/intrinsics/kt8666.kt rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/longRangeWithExplicitDot.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/prefixIncDec.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/rangeFromCollection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/stringFromCollection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/throwable.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/throwableCallableReference.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/throwableParamOrder.kt (75%) rename backend.native/tests/external/codegen/{blackbox => box}/intrinsics/tostring.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/generics/allWildcardsOnClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/generics/covariantOverrideWithDeclarationSiteProjection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/generics/invariantArgumentsNoWildcard.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/lambdaInstanceOf.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/notNullAssertions/extensionReceiverParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/notNullAssertions/mapPut.kt (85%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/objectMethods/cloneCallsConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/objectMethods/cloneCallsSuper.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/objectMethods/cloneCallsSuperAndModifies.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/objectMethods/cloneHashSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/objectMethods/cloneHierarchy.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/javaInterop/objectMethods/cloneableClassWithoutClone.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jdk/arrayList.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jdk/hashMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jdk/iteratingOverHashMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jdk/kt1397.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/captureClassFields.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/capturePackageFields.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/checkNoAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/classFieldReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/classFieldReflection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/constructorProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/publicField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/simpleMemberProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/superCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/superCall2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/topLevelFieldReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/topLevelFieldReflection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/visibility.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmField/writeFieldReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/callableReference.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/clashingErasure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/classMembers.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/fakeJvmNameInJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/fileFacades/differentFiles.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/fileFacades/javaAnnotationOnFileFacade.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/fileFacades/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/functionName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/multifileClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/multifileClassWithLocalClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/multifileClassWithLocalGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/propertyAccessorsUseSite.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/propertyName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmName/renamedFileClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/companionObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/defaultsNotAtEnd.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/doubleParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/extensionMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/generics.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/innerClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/multipleDefaultParameters.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/jvmOverloads/noRedundantVarargs.kt rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/nonDefaultParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/primaryConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/privateClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/secondaryConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/simpleJavaCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmOverloads/varargs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/annotations.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/closure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/companionObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/convention.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/default.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/enumCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/explicitObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/funAccess.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/importStaticMemberFromObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/inline.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/inlinePropertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/kt9897_static.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/object.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/postfixInc.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/prefixInc.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/privateMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/privateSetter.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/propertyAccess.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/propertyAccessorsCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/propertyAccessorsObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/propertyAsDefault.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/jvmStatic/propertyGetterDelegatesToAnother.kt rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/jvmStatic/syntheticAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/labels/labeledDeclarations.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/labels/propertyAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/labels/propertyAccessorFunctionLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/labels/propertyAccessorInnerExtensionFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/labels/propertyAccessorObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/labels/propertyInClassAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/exceptionInFieldInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/ifElse.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/increment.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateConstantCompare.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateFalse.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateFalseVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateFalseVarChain.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateObjectComp.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateObjectComp2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateTrue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/negateTrueVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/optimizations/noOptimization.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/safeAssign.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/safeAssignComplex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/safeCallAndArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/toString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/tryCatchExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/lazyCodegen/when.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/anonymousObjectInInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/anonymousObjectInParameterInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/closureOfInnerLocalClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/closureOfLambdaInLocalClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/closureWithSelfInstantiation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/inExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/inExtensionProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/inLocalExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/inLocalExtensionProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/innerClassInLocalClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/innerOfLocalCaptureExtensionReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/kt2700.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/kt2873.kt (77%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/kt3210.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/kt3389.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/kt3584.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/kt4174.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/localClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/localClassCaptureExtensionReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/localClassInInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/localClassInParameterInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/localDataClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/localExtendsInnerAndReferencesOuterMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/noclosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/object.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/ownClosureOfInnerLocalClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/localClasses/withclosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/mangling/field.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/mangling/fun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/mangling/internalOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/mangling/internalOverrideSuperCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/mangling/noOverrideWithJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/mangling/publicOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/mangling/publicOverrideSuperCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/ComplexInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/SimpleVals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/SimpleValsExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/SimpleVarsExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/UnderscoreNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/ValCapturedInFunctionLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/ValCapturedInLocalFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/ValCapturedInObjectLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/VarCapturedInFunctionLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/VarCapturedInLocalFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/VarCapturedInObjectLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/component.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/MultiDeclFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/MultiDeclForValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/MultiDeclFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/MultiDeclForValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/UnderscoreNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/UnderscoreNamesDontCallComponent.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/MultiDeclFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/MultiDeclForValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/MultiDeclFor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/int/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/int/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/int/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/long/MultiDeclForComponentExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/long/MultiDeclForComponentExtensionsValCaptured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/long/MultiDeclForComponentMemberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/forRange/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/kt9828_hashMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multiDecl/returnInElvis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/callMultifileClassMemberFromOtherPackage.kt (72%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/callsToMultifileClassFromOtherPackage.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/constPropertyReferenceFromMultifileClass.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/inlineMultifileClassMemberFromOtherPackage.kt (75%) create mode 100644 backend.native/tests/external/codegen/box/multifileClasses/kt16077.kt rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/multifileClassPartsInitialization.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/multifileClassWith2Files.kt (78%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/multifileClassWithCrossCall.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/multifileClassWithPrivate.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/callableRefToFun.kt (64%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/callableRefToInternalValInline.kt (69%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/callableRefToPrivateVal.kt (73%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/callableRefToVal.kt (63%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/calls.kt (82%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/deferredStaticInitialization.kt (81%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/delegatedVal.kt (60%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/initializePrivateVal.kt (67%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/initializePublicVal.kt (69%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/overlappingFuns.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/overlappingVals.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/valAccessFromInlineFunCalledFromJava.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/valAccessFromInlinedToDifferentPackage.kt (75%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/optimized/valWithAccessor.kt (73%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/privateConstVal.kt (67%) rename backend.native/tests/external/codegen/{blackbox => box}/multifileClasses/samePartNameDifferentFacades.kt (73%) rename backend.native/tests/external/codegen/{blackbox => box}/nonLocalReturns/kt6895.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/nonLocalReturns/kt9644let.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/nonLocalReturns/use.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/nonLocalReturns/useWithException.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objectIntrinsics/objects.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/anonymousObjectPropertyInitialization.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/classCallsProtectedInheritedByCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/flist.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/initializationOrder.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt1047.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt11117.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt1136.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt1186.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt1600.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt1737.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt2398.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt2663.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt2663_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt2675.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt2719.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt2822.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt3238.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt3684.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt4086.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt535.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt560.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/kt694.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/localFunctionInObjectInitializer_kt4516.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/methodOnObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/nestedDerivedClassCallsProtectedFromCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/nestedObjectWithSuperclass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectExtendsInnerAndReferencesOuterMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectInLocalAnonymousObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectInitialization_kt5523.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectLiteralInClosure.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectVsClassInitialization_kt5291.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectWithSuperclass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/objectWithSuperclassAndTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/privateExtensionFromInitializer_kt4543.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/privateFunctionFromClosureInInitializer_kt5582.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/receiverInConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/safeAccess.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/simpleObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/thisInConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/useAnonymousObjectAsIterator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/useImportedMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/objects/useImportedMemberFromCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/annotatedAssignment.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/assignmentOperations.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/operatorConventions/augmentedAssignmentInInitializer.kt rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/augmentedAssignmentWithArrayLHS.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/boolean.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/comparable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/doubleInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/doubleLong.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/extensionArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/extensionObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/intDouble.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/intLong.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/longDouble.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/compareTo/longInt.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/incDecOnObject.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/operatorConventions/infixFunctionOverBuiltinMember.kt rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/kt14201.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/kt14201_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/kt4152.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/kt4987.kt (61%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/nestedMaps.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/operatorSetLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/overloadedSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/operatorConventions/plusExplicit.kt rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/remAssignmentOperation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/operatorConventions/remOverModOperation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/boxPrimitiveTypeInClinit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/checkCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/incrementProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/initializationOrder.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/invokespecial.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/package/mainInFiles.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/nullablePrimitiveNoFieldInitializer.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/packageLocalClassNotImportedWithDefaultImport.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/packageQualifiedMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/package/privateTopLevelPropAndVarInInner.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/assign.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/compareTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/dec.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/div.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/equals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/hashCode.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/identityEquals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/inc.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/minus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/mod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/not.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/notEquals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/plus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/plusAssign.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/rangeTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/times.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/toShort.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/toString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/unaryMinus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/platformTypes/primitives/unaryPlus.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/comparisonWithNaN.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/comparisonWithNullCallsFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/ea35963.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/equalsHashCodeToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/incrementByteCharShort.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/intLiteralIsNotNull.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt1054.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt1055.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt1093.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt13023.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt14868.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt1508.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt1634.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/primitiveTypes/kt16732.kt rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt2251.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt2269.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt2275.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt239.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt242.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt243.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt248.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt2768.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt2794.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt3078.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt3517.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt3576.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt3613.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt4097.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt4098.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt4210.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt4251.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt446.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt518.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt6590_identityEquals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt665.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt684.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt711.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt737.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt752.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt753.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt756.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt757.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt828.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt877.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt882.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt887.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/kt935.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/nullAsNullableIntIsNull.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/nullableCharBoolean.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/number.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/rangeTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/substituteIntForGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/primitiveTypes/unboxComparable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/private/arrayConvention.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/private/kt9855.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/base.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/captured.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/companion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/inline.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/inner.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/kt4860.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/secondary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/synthetic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/withArguments.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/withDefault.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/withLinkedClasses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/withLinkedObjects.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/privateConstructors/withVarargs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/accessToPrivateProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/accessToPrivateSetter.kt (87%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/augmentedAssignmentsAndIncrements.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/classArtificialFieldInsideNested.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/classFieldInsideLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/classFieldInsideLocalInSetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/classFieldInsideNested.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/classObjectProperties.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/classPrivateArtificialFieldInsideNested.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/collectionSize.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/commonPropertiesKJK.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/companionFieldInsideLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/companionObjectAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/companionObjectPropertiesFromJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/companionPrivateField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/companionPrivateFieldInsideLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/const/constFlags.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/const/constValInAnnotationDefault.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/const/interfaceCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/field.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/fieldInClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/fieldInsideField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/fieldInsideLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/fieldInsideNested.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/fieldSimple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/generalAccess.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/javaPropertyBoxedGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/javaPropertyBoxedSetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt10715.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt10729.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1159.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1165.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1168.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1170.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt12200.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1398.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1417.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1482_2279.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1714.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1714_minimal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt1892.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt2331.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt257.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt2655.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt2786.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt2892.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt3118.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt3524.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt3551.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt3556.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt3930.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt4140.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt4252.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt4252_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt4340.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt4373.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt4383.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt613.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt8928.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/kt9603.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/accessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/accessorException.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/exceptionField.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/exceptionGetter.kt (89%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/override.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/overrideException.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/privateSetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/privateSetterFromLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/simpleVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/lateinit/visibility.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/primitiveOverrideDefaultAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/primitiveOverrideDelegateAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/privatePropertyInConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/privatePropertyWithoutBackingField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/protectedJavaFieldInInline.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/protectedJavaProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/protectedJavaPropertyInCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/substituteJavaSuperField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/twoAnnotatedExtensionPropertiesWithoutBackingFields.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/properties/typeInferredFromGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/publishedApi/noMangling.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/publishedApi/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/publishedApi/topLevel.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inComparableRange.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inExtensionRange.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inIntRange.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inOptimizableDoubleRange.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inOptimizableFloatRange.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inOptimizableIntRange.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inOptimizableLongRange.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inRangeWithCustomContains.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inRangeWithImplicitReceiver.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inRangeWithNonmatchingArguments.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/inRangeWithSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/contains/rangeContainsString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/emptyDownto.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/emptyRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/inexactDownToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/inexactSteppedDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/inexactSteppedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/inexactToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/maxValueMinusTwoToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/maxValueToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/maxValueToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/oneElementDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/oneElementRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/openRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/progressionDownToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/progressionMaxValueMinusTwoToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/progressionMaxValueToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/progressionMaxValueToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/progressionMinValueToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/reversedBackSequence.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/reversedEmptyBackSequence.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/reversedEmptyRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/reversedInexactSteppedDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/reversedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/reversedSimpleSteppedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/simpleDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/simpleRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/simpleRangeWithNonConstantEnds.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/simpleSteppedDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/expression/simpleSteppedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forByteProgressionWithIntIncrement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInDownTo/forIntInDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInDownTo/forIntInNonOptimizedDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInDownTo/forLongInDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInDownTo/forNullableIntInDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forInCharSequenceIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forInCollectionImplicitReceiverIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forInCollectionIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forInNonOptimizedIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forInObjectArrayIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forInPrimitiveArrayIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forNullableIntInArrayIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/forNullableIntInCollectionIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/kt12983_forInGenericArrayIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/kt12983_forInGenericCollectionIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/kt12983_forInSpecificArrayIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/kt12983_forInSpecificCollectionIndices.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/kt13241_Array.kt (74%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/kt13241_CharSequence.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInIndices/kt13241_Collection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forInRangeWithImplicitReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forIntRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/forNullableIntInRangeWithImplicitReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/emptyDownto.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/emptyRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/inexactDownToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/inexactSteppedDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/inexactSteppedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/inexactToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/maxValueMinusTwoToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/maxValueToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/maxValueToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/oneElementDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/oneElementRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/openRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/progressionDownToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/progressionMaxValueMinusTwoToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/progressionMaxValueToMaxValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/progressionMaxValueToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/progressionMinValueToMinValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/reversedBackSequence.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/reversedEmptyBackSequence.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/reversedEmptyRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/reversedInexactSteppedDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/reversedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/reversedSimpleSteppedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/simpleDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/simpleRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/simpleRangeWithNonConstantEnds.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/simpleSteppedDownTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/literal/simpleSteppedRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/multiAssignmentIterationOverIntRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/nullableLoopParameter/progressionExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/nullableLoopParameter/rangeExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/nullableLoopParameter/rangeLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/ranges/safeCallRangeTo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/annotationRetentionAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/annotationsOnJavaMembers.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/findAnnotation.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/propertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/propertyWithoutBackingField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/retentions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/simpleClassAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/simpleConstructorAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/simpleFunAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/simpleParamAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/annotations/simpleValAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/companionObjectPropertyAccessors.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/extensionFunction.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/extensionPropertyAccessors.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/innerClassConstructor.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/javaInstanceField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/javaInstanceMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/jvmStaticCompanionObjectPropertyAccessors.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/jvmStaticObjectFunction.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/jvmStaticObjectPropertyAccessors.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/memberFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/memberPropertyAccessors.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/objectFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/bound/objectPropertyAccessors.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/callInstanceJavaMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/callPrivateJavaMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/callStaticJavaMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/cannotCallEnumConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/disallowNullValueForNotNullField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/equalsHashCodeToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/exceptionHappened.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/fakeOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/fakeOverrideSubstituted.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/incorrectNumberOfArguments.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/innerClassConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/jvmStatic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/jvmStaticInObjectIncorrectReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/localClassMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/memberOfGenericClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/privateProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/propertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/propertyGetterAndGetFunctionDifferentReturnType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/returnUnit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/simpleConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/simpleMemberFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/call/simpleTopLevelFunctions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/boundExtensionFunction.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/boundExtensionPropertyAcessor.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/boundJvmStaticInObject.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/companionObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/defaultAndNonDefaultIntertwined.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/extensionFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/jvmStaticInCompanionObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/jvmStaticInObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/manyArgumentsOnlyOneDefault.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/manyMaskArguments.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/nonDefaultParameterOmitted.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/nullValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/ordinaryMethodIsInvokedWhenNoDefaultValuesAreUsed.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/primitiveDefaultValues.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/privateMemberFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/simpleConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/simpleMemberFunciton.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/callBy/simpleTopLevelFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classLiterals/annotationClassLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classLiterals/arrays.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classLiterals/builtinClassLiterals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classLiterals/genericArrays.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classLiterals/genericClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classLiterals/reifiedTypeClassLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classLiterals/simpleClassLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/classSimpleName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/companionObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/createInstance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/declaredMembers.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/jvmName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/localClassSimpleName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/nestedClasses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/nestedClassesJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/objectInstance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/primitiveKClassEquality.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/qualifiedName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/classes/starProjectedType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/constructors/annotationClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/constructors/classesWithoutConstructors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/constructors/constructorName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/constructors/primaryConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/constructors/simpleGetConstructors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/annotationType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/arrayOfKClasses.kt (79%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/callByJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/callByKotlin.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/callJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/callKotlin.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/createJdkAnnotationInstance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/enumKClassAnnotation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/equalsHashCodeToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/floatingPointParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/parameterNamedEquals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/createAnnotation/primitivesAndArrays.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/anonymousObjectInInlinedLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/classInLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/functionExpressionInProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/kt11969.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/kt6368.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/kt6691_lambdaInSamConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInLocalClassConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInLocalClassSuperCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInLocalFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInMemberFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInMemberFunctionInLocalClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInMemberFunctionInNestedClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInObjectDeclaration.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInObjectExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInObjectLiteralSuperCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInPackage.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInPropertyGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/lambdaInPropertySetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/localClassInTopLevelFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/enclosing/objectInLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/declaredVsInheritedFunctions.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/reflection/functions/functionFromStdlib.kt rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/functionReferenceErasedToKFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/genericOverriddenFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/instanceOfFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/javaClassGetFunctions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/javaMethodsSmokeTest.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/platformName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/privateMemberFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/simpleGetFunctions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/functions/simpleNames.kt (72%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/covariantOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/defaultImplsGenericSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/functionLiteralGenericSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/genericBackingFieldSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/genericMethodSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/kt11121.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/kt5112.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/genericSignature/kt6106.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/isInstance/isInstanceCastAndSafeCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/kClassInAnnotation/array.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/kClassInAnnotation/arrayInJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/kClassInAnnotation/basic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/kClassInAnnotation/basicInJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/kClassInAnnotation/checkcast.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/forceWrapping.kt rename backend.native/tests/external/codegen/{blackbox => box}/reflection/kClassInAnnotation/vararg.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/kClassInAnnotation/varargInJava.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/wrappingForCallableReferences.kt rename backend.native/tests/external/codegen/{blackbox => box}/reflection/lambdaClasses/parameterNamesAndNullability.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/constructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/extensionProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/fakeOverrides/javaFieldGetterSetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/fakeOverrides/javaMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/functions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/inlineReifiedFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/jvmStatic/companionObjectFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/jvmStatic/objectFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/mappedClassIsEqualToClassLiteral.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/memberProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/propertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/propertyAccessorsWithJvmName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/syntheticFields.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/topLevelFunctionOtherFile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/topLevelProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/annotationConstructorParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/array.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/constructors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/genericArrayElementType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/innerGenericTypeArgument.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/memberFunctions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/overrideAnyWithPrimitive.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/parameterizedTypeArgument.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/parameterizedTypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/propertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/rawTypeArgument.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/supertypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/topLevelFunctions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/typeParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/unit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/mapping/types/withNullability.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/callableReferencesEqualToCallablesFromAPI.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/classToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/extensionPropertyReceiverToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/functionEqualsHashCode.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibMultiFileFacade.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibSingleFileFacade.kt rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/functionToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/memberExtensionToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/parametersEqualsHashCode.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/parametersToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/propertyEqualsHashCode.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/propertyToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/typeEqualsHashCode.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/typeParametersEqualsHashCode.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/typeParametersToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/typeToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/methodsFromAny/typeToStringInnerGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/callableModality.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/callableVisibility.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/classModality.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/classVisibility.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/classes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/functions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/javaVisibility.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/properties.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/modifiers/typeParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/multifileClasses/callFunctionsInMultifileClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/multifileClasses/callPropertiesInMultifileClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/multifileClasses/javaFieldForVarAndConstVal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/javaClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/methodsFromAny/callableReferences.kt (72%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/methodsFromAny/classReference.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/delegatedProperty.kt rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/primitiveJavaClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/propertyGetSetName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/propertyInstanceof.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/reifiedTypeJavaClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/noReflectAtRuntime/simpleClassLiterals.kt (69%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/boundInnerClassConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/boundObjectMemberReferences.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/boundReferences.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/findParameterByName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/functionParameterNameAndIndex.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/instanceExtensionReceiverAndValueParameters.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/isMarkedNullable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/isOptional.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/javaAnnotationConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/javaParametersHaveNoNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/kinds.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/parameters/propertySetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/accessors/accessorNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/accessors/extensionPropertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/accessors/memberExtensions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/accessors/memberPropertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/accessors/topLevelPropertyAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/allVsDeclared.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/callPrivatePropertyFromGetProperties.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/declaredVsInheritedProperties.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/fakeOverridesInSubclass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/genericClassLiteralPropertyReceiverIsStar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/genericOverriddenProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/genericProperty.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/booleanPropertyNameStartsWithIs.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundExtensionProperty.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundMemberProperty.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/extensionProperty.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/fakeOverride.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/getExtensionDelegate.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/kPropertyForDelegatedProperty.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberProperty.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashClassAndCompanion.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashExtensionProperties.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/noSetAccessibleTrue.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/notDelegatedProperty.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/overrideDelegatedByDelegated.kt create mode 100644 backend.native/tests/external/codegen/box/reflection/properties/getDelegate/topLevelProperty.kt rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/getExtensionPropertiesMutableVsReadonly.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/getPropertiesMutableVsReadonly.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/invokeKProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/javaPropertyInheritedInKotlin.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/javaStaticField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/kotlinPropertyInheritedInJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/memberAndMemberExtensionWithSameName.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/mutatePrivateJavaInstanceField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/mutatePrivateJavaStaticField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/noConflictOnKotlinGetterAndJavaField.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/overrideKotlinPropertyByJavaMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/privateClassVal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/privateClassVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/privateFakeOverrideFromSuperclass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/privateJvmStaticVarInObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/privatePropertyCallIsAccessibleOnAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/privateToThisAccessors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/propertyOfNestedClassAndArrayType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/protectedClassVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/publicClassValAccessible.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/referenceToJavaFieldOfKotlinSubclass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/properties/simpleGetProperties.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/specialBuiltIns/getMembersOfStandardJavaClasses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/supertypes/builtInClassSupertypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/supertypes/genericSubstitution.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/supertypes/isSubclassOfIsSuperclassOf.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/supertypes/primitives.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/supertypes/simpleSupertypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/typeParameters/declarationSiteVariance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/typeParameters/typeParametersAndNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/typeParameters/upperBounds.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/classifierIsClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/classifierIsTypeParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/classifiersOfBuiltInTypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/createType/equality.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/createType/innerGeneric.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/createType/simpleCreateType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/createType/typeParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/createType/wrongNumberOfArguments.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/innerGenericArguments.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/jvmErasureOfClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/jvmErasureOfTypeParameter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/platformTypeClassifier.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/platformTypeNotEqualToKotlinType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/platformTypeToString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/subtyping/platformType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/subtyping/simpleGenericTypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/subtyping/simpleSubtypeSupertype.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/subtyping/typeProjection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/typeArguments.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/useSiteVariance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reflection/types/withNullability.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/Kt1149.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/Kt1619Test.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/Kt2495Test.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/arrayLengthNPE.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/collections.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/commonSupertypeContravariant.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/commonSupertypeContravariant2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/doubleMerge.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/floatMerge.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/generic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/getGenericInterfaces.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/hashCodeNPE.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/internalTopLevelOtherPackage.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt10143.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt10934.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1172.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1202.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt13381.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1406.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt14447.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1515.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/regressions/kt15196.kt rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1528.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1568.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1779.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1800.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1845.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt1932.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt2017.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt2060.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt2210.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt2246.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt2318.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt2509.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt2593.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt274.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt3046.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt3107.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt3421.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt344.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt3442.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt3587.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt3850.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt3903.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt4142.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt4259.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt4262.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt4281.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt5056.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt528.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt529.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt533.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt5395.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt5445.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt5445_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt5786_privateWithDefault.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt5953.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt6153.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt6434.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt6434_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt6485.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt715.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt7401.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt789.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt864.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/kt998.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/nestedIntersection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/objectCaptureOuterConstructorProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/referenceToSelfInLocal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/regressions/typeCastException.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/DIExample.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/anonymousObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/anonymousObjectNoPropagate.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/anonymousObjectReifiedSupertype.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/approximateCapturedTypes.kt (84%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/arraysReification/instanceOf.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/arraysReification/instanceOfArrays.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/arraysReification/jClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/arraysReification/jaggedArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/arraysReification/jaggedArrayOfNulls.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/arraysReification/jaggedDeep.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/asOnPlatformType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/checkcast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/copyToArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/defaultJavaClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/filterIsInstance.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/innerAnonymousObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/instanceof.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/isOnPlatformType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/javaClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/nestedReified.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/nestedReifiedSignature.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/newArrayInt.kt (91%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/nonInlineableLambdaInReifiedFunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/recursiveInnerAnonymousObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/recursiveNewArray.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/recursiveNonInlineableLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/reifiedChain.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/reifiedInlineFunOfObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/reifiedInlineFunOfObjectWithinReified.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/reifiedInlineIntoNonInlineableLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/safecast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/sameIndexRecursive.kt (96%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/spreads.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/reified/varargs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/genericNull.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/kt1572.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/kt232.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/kt245.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/kt247.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/kt3430.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/kt4733.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/primitive.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/safeCall/safeCallOnLong.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/comparator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/filenameFilter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/nonLiteralComparator.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/nonLiteralFilenameFilter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/nonLiteralRunnable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/nonTrivialRunnable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/runnable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/runnableAccessingClosure1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/runnableAccessingClosure2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/samWrappersDifferentFiles.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/sameWrapperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sam/constructors/syntheticVsReal.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sealed/objects.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/sealed/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/accessToCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/accessToNestedObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/basicNoPrimaryManySinks.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/basicNoPrimaryOneSink.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/basicPrimary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/callFromLocalSubClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/callFromPrimaryWithNamedArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/callFromPrimaryWithOptionalArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/callFromSubClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/clashingDefaultConstructors.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/dataClasses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/defaultArgs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/defaultParametersNotDuplicated.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/delegateWithComplexExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/delegatedThisWithLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/delegationWithPrimary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/enums.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/generics.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/innerClasses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/innerClassesInheritance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/localClasses.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/superCallPrimary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/superCallSecondary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/varargs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/withGenerics.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/withNonLocalReturn.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/withPrimary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/withReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/withReturnUnit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/withVarargs.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/secondaryConstructors/withoutPrimary.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smap/chainCalls.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smap/infixCalls.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smap/simpleCallWithParams.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/falseSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/genericIntersection.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/genericSet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/implicitExtensionReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/implicitMemberReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/implicitReceiver.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/implicitReceiverInWhen.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/implicitToGrandSon.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/lambdaArgumentWithoutType.kt (89%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/nullSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/smartCastInsideIf.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/smartCasts/whenSmartCast.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/bridgeNotEmptyMap.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/bridges.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/collectionImpl.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/commonBridgesTarget.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/emptyList.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/emptyMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/emptyStringMap.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/entrySetSOE.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/enumAsOrdinaled.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/specialBuiltins/exceptionCause.kt rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/explicitSuperCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/irrelevantRemoveAtOverride.kt (99%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/maps.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/noSpecialBridgeInSuperClass.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/notEmptyListAny.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/notEmptyMap.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/redundantStubForSize.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/removeAtTwoSpecialBridges.kt (98%) rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/throwable.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/specialBuiltins/throwableCause.kt rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/throwableImpl.kt (91%) create mode 100644 backend.native/tests/external/codegen/box/specialBuiltins/throwableImplWithSecondaryConstructor.kt rename backend.native/tests/external/codegen/{blackbox => box}/specialBuiltins/valuesInsideEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/anonymousInitializerIObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/anonymousInitializerInClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/fields.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/functions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/hidePrivateByPublic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/incInClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/incInObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/inheritedPropertyInClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/inheritedPropertyInObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/inlineCallsStaticMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/kt8089.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/protectedSamConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/protectedStatic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/protectedStatic2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/protectedStaticAndInline.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/statics/syntheticAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/storeStackBeforeInline/differentTypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/storeStackBeforeInline/primitiveMerge.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/storeStackBeforeInline/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/storeStackBeforeInline/unreachableMarker.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/storeStackBeforeInline/withLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/ea35743.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/forInString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/interpolation.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/strings/kt2592.kt rename backend.native/tests/external/codegen/{blackbox => box}/strings/kt3571.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/kt3652.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/kt5389_stringBuilderGet.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/kt5956.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/kt881.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/kt889.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/kt894.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/multilineStringsWithTemplates.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/rawStrings.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/rawStringsWithManyQuotes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/stringBuilderAppend.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/strings/stringPlusOnlyWorksOnString.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/basicmethodSuperClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/basicmethodSuperTrait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/basicproperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/enclosedFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/enclosedVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/innerClassLabeledSuper.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/innerClassLabeledSuper2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/innerClassLabeledSuperProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/innerClassLabeledSuperProperty2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/innerClassQualifiedFunctionCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/innerClassQualifiedPropertyAccess.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt14243.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt14243_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt14243_class.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt14243_prop.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt3492ClassFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt3492ClassProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt3492TraitFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt3492TraitProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt4173.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt4173_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt4173_3.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/kt4982.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/multipleSuperTraits.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/traitproperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/unqualifiedSuper.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/unqualifiedSuperWithDeeperHierarchies.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/super/unqualifiedSuperWithMethodsOfAny.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/changeMonitor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/exceptionInMonitorExpression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/finally.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/longValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/nestedDifferentObjects.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/nestedSameObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/nonLocalReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/objectValue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/sync.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/value.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/synchronized/wait.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/accessorForProtected.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/accessorForProtectedInvokeVirtual.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/kt10047.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/kt9717.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/kt9717DifferentPackages.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/kt9958.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/kt9958Interface.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/protectedFromLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/syntheticAccessors/syntheticAccessorNames.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/toArray/kt3177-toTypedArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/toArray/returnToTypedArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/toArray/toArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/toArray/toArrayAlreadyPresent.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/toArray/toArrayShouldBePublic.kt (89%) rename backend.native/tests/external/codegen/{blackbox => box}/toArray/toArrayShouldBePublicWithJava.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/toArray/toTypedArray.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/topLevelPrivate/privateInInlineNested.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/topLevelPrivate/privateVisibility.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/topLevelPrivate/syntheticAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/topLevelPrivate/syntheticAccessorInMultiFile.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/abstractClassInheritsFromInterface.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/diamondPropertyAccessors.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/genericMethod.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/indirectlyInheritPropertyGetter.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/inheritJavaInterface.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/inheritedFun.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/inheritedVar.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/interfaceDefaultImpls.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt1936.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt1936_1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt2260.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt2399.kt (97%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt2541.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt3315.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt3500.kt (90%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt3579.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt3579_2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt5393.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/kt5393_property.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/multiple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/noPrivateDelegation.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/syntheticAccessor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/traitImplDelegationWithCovariantOverride.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/traitImplDiamond.kt (89%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/traitImplGenericDelegation.kt (93%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/traitWithPrivateExtension.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/traitWithPrivateMember.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/traits/traitWithPrivateMemberAccessFromLambda.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeInfo/asInLoop.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeInfo/ifOrWhenSpecialCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeInfo/implicitSmartCastThis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeInfo/inheritance.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeInfo/kt2811.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeInfo/primitiveTypeInfo.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeInfo/smartCastThis.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/enhancedPrimitives.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/genericTypeWithNothing.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/kt2831.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/kt309.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/kt3286.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/kt3863.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/kt3976.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/nothing.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/nullableNothing.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typeMapping/typeParameterMultipleBounds.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/typealias/enumEntryQualifier.kt rename backend.native/tests/external/codegen/{blackbox => box}/typealias/genericTypeAliasConstructor.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/typealias/genericTypeAliasConstructor2.kt rename backend.native/tests/external/codegen/{blackbox => box}/typealias/innerClassTypeAliasConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/innerClassTypeAliasConstructorInSupertypes.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/typealias/kt15109.kt create mode 100644 backend.native/tests/external/codegen/box/typealias/objectLiteralConstructor.kt rename backend.native/tests/external/codegen/{blackbox => box}/typealias/simple.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasAsBareType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasCompanion.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasConstructorAccessor.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/typealias/typeAliasConstructorForArray.kt rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasConstructorInSuperCall.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasInAnonymousObjectType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasObjectCallable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/typealias/typeAliasSecondaryConstructor.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unaryOp/call.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unaryOp/callNullable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unaryOp/callWithCommonType.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unaryOp/intrinsic.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unaryOp/intrinsicNullable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unaryOp/longOverflow.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/UnitValue.kt (83%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/closureReturnsNullableUnit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/ifElse.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/kt3634.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/kt4212.kt (92%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/kt4265.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/nullableUnit.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/nullableUnitInWhen1.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/nullableUnitInWhen2.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/nullableUnitInWhen3.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/unit/unitClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/kt1978.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/kt581.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/kt6192.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/kt796_797.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/spreadCopiesArray.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/varargInFunParam.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/varargInJava.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/vararg/varargsAndFunctionLiterals.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/callProperty.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/emptyWhen.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/bigEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/duplicatingItems.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/enumInsideClassObject.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/expression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/functionLiteralInTopLevel.kt (100%) create mode 100644 backend.native/tests/external/codegen/box/when/enumOptimization/kt14597.kt create mode 100644 backend.native/tests/external/codegen/box/when/enumOptimization/kt14597_full.kt create mode 100644 backend.native/tests/external/codegen/box/when/enumOptimization/kt14802.kt create mode 100644 backend.native/tests/external/codegen/box/when/enumOptimization/kt15806.kt rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/manyWhensWithinClass.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/nonConstantEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/nullability.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/nullableEnum.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/subjectAny.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/enumOptimization/withoutElse.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/exceptionOnNoMatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/exhaustiveBoolean.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/exhaustiveBreakContinue.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/exhaustiveWhenInitialization.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/exhaustiveWhenReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/implicitExhaustiveAndReturn.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/integralWhenWithNoInlinedConstants.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/is.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/kt2457.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/kt2466.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/kt5307.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/kt5448.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/longInRange.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/matchNotNullAgainstNullable.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/multipleEntries.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/noElseExhaustive.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/noElseExhaustiveStatement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/noElseExhaustiveUnitExpected.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/noElseInStatement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/noElseNoMatch.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/nullableWhen.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/range.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/sealedWhenInitialization.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/stringOptimization/duplicatingItems.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/stringOptimization/duplicatingItemsSameHashCode.kt (94%) rename backend.native/tests/external/codegen/{blackbox => box}/when/stringOptimization/expression.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/stringOptimization/nullability.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/stringOptimization/sameHashCode.kt (95%) rename backend.native/tests/external/codegen/{blackbox => box}/when/stringOptimization/statement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/switchOptimizationDense.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/switchOptimizationMultipleConditions.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/switchOptimizationSparse.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/switchOptimizationStatement.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/switchOptimizationTypes.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/switchOptimizationUnordered.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/typeDisjunction.kt (100%) rename backend.native/tests/external/codegen/{blackbox => box}/when/whenArgumentIsEvaluatedOnlyOnce.kt (100%) create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSiteSuperParams.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInlineObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/changingReturnType.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibility.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInConstLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/defineClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/callSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappings.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappingsDifOrder.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt13133.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt13182.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt13374.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt16193.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt6552.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt8133.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064v2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt9591.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/inlineChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChainSimple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/noInlineLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlineChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlinelambdaChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noCapturedThisOnCallSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noInlineLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/sam.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoDifferentDispatchReceivers.kt create mode 100644 backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoExtensionReceivers.kt create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference.kt create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/captured.kt rename backend.native/tests/external/codegen/{blackbox => boxInline}/argumentOrder/capturedInExtension.kt (89%) rename backend.native/tests/external/codegen/{blackbox => boxInline}/argumentOrder/extension.kt (89%) create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/extensionInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigration.kt create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigrationInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/simple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/argumentOrder/simpleInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccess.kt create mode 100644 backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefault.kt create mode 100644 backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefaultInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambdaInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/builders/builders.kt create mode 100644 backend.native/tests/external/codegen/boxInline/builders/buildersAndLambdaCapturing.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/classProperty.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/expression.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/extensionReceiver.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/filter.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/intrinsic.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/map.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/objectProperty.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/propertyImportedFromObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/simple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/bound/topLevelExtensionProperty.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/classLevel.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/classLevel2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/constructor.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/intrinsic.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/kt15449.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/kt16411.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/propertyIntrinsic.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/propertyReference.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/topLevel.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/topLevelExtension.kt create mode 100644 backend.native/tests/external/codegen/boxInline/callableReference/topLevelProperty.kt create mode 100644 backend.native/tests/external/codegen/boxInline/capture/captureInlinable.kt create mode 100644 backend.native/tests/external/codegen/boxInline/capture/captureInlinableAndOther.kt create mode 100644 backend.native/tests/external/codegen/boxInline/capture/captureThisAndReceiver.kt create mode 100644 backend.native/tests/external/codegen/boxInline/capture/generics.kt create mode 100644 backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInPackage.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complex/closureChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complex/forEachLine.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complex/lambdaInLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complex/swapAndWith.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complex/swapAndWith2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complex/use.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complex/with.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complexStack/asCheck.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complexStack/asCheck2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complexStack/simple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complexStack/simple2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complexStack/simple3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complexStack/simple4.kt create mode 100644 backend.native/tests/external/codegen/boxInline/complexStack/simpleExtension.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/defaultInExtension.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethod.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethodInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/defaultParamRemapping.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/inlineInDefaultParameter.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/kt11479.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/kt11479InlinedDefaultParameter.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/kt5685.kt create mode 100644 backend.native/tests/external/codegen/boxInline/defaultValues/simpleDefaultMethod.kt create mode 100644 backend.native/tests/external/codegen/boxInline/delegatedProperty/local.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enclosingInfo/anonymousInLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enclosingInfo/objectInInlineFun.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructor.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithAdditionalObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithNestedInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/kt10569.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valueOf.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valueOfCapturedType.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valueOfChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valueOfChainCapturedType.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valueOfNonReified.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/values.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valuesAsArray.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valuesCapturedType.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valuesChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valuesChainCapturedType.kt create mode 100644 backend.native/tests/external/codegen/boxInline/enum/valuesNonReified.kt create mode 100644 backend.native/tests/external/codegen/boxInline/functionExpression/extension.kt create mode 100644 backend.native/tests/external/codegen/boxInline/innerClasses/innerLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/innerClasses/kt10259.kt create mode 100644 backend.native/tests/external/codegen/boxInline/lambdaClassClash/lambdaClassClash.kt create mode 100644 backend.native/tests/external/codegen/boxInline/lambdaClassClash/noInlineLambdaX2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaCloning.kt create mode 100644 backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambda2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.kt create mode 100644 backend.native/tests/external/codegen/boxInline/lambdaTransformation/sameCaptured.kt create mode 100644 backend.native/tests/external/codegen/boxInline/localFunInLambda/lambdaInLambdaCapturesAnotherFun.kt create mode 100644 backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambdaCapturesAnotherFun.kt create mode 100644 backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOptimizedMultifileClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOtherPackage.kt create mode 100644 backend.native/tests/external/codegen/boxInline/noInline/extensionReceiver.kt create mode 100644 backend.native/tests/external/codegen/boxInline/noInline/lambdaAsGeneric.kt create mode 100644 backend.native/tests/external/codegen/boxInline/noInline/lambdaAsNonFunction.kt create mode 100644 backend.native/tests/external/codegen/boxInline/noInline/noInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/noInline/withoutInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/bracket.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/labeled.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/explicitLocalReturn.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/justReturnInLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt5199.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948v2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/nestedNonLocals.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/noInlineLocalReturn.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/nonLocalReturnFromOuterLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/propertyAccessors.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/returnFromFunctionExpr.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/simple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleFunctional.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleVoid.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSiteComplex.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplit.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplitNoReturn.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/finallyInFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/wrongVarInterval.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturn.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex4.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/nestedLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/complex.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturn.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturnComplex.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/longReturn.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/nested.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTry.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTryAndFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTry.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTryComplex.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidInlineFun.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidNonLocal.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/break.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/continue.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/exceptionInFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/forInFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternal.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalNested.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalSimple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nested.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturns.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturnsSimple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/noFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/severalCatchClause.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/simpleThrow.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/synchonized.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/throwInFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/tryCatchInFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt6956.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt7273.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/nonLocalReturnFromOuterLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/variables/kt7792.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/accessorForConst.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/accessorStability.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/accessorStabilityInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/effectivePrivate.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/kt6453.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/kt8094.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/kt8095.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/nestedInPrivateClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/privateClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/privateClassExtensionLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/privateInInlineInMultiFileFacade.kt create mode 100644 backend.native/tests/external/codegen/boxInline/private/privateInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/augAssignmentAndInc.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClassViaConvention.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtension.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtensionInClass.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncViaConvention.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/property.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/reifiedVal.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/reifiedVar.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/simple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/property/simpleExtension.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/capturedLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/capturedLambda2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/checkCast/chain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/checkCast/kt8043.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/checkCast/maxStack.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/checkCast/nullable.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/checkCast/simple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/checkCast/simpleSafe.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/isCheck/chain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/isCheck/nullable.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/isCheck/simple.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt11081.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt11677.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt6988.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt6988_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt6990.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt7017.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt8047.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt9637.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/kt9637_2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/reified/packages.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/inProjectionSubstitution.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/outProjectionSubstitution.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/recursion.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/sameFormalParameterName.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/sameReifiedFormalParameterName.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/starProjectionSubstitution.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/typeParameterInLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution.kt create mode 100644 backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/classObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/destructuring.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/destructuringIndexClash.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/extension.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/extensionLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/funImportedFromObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/params.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/propImportedFromObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/rootConstructor.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/safeCall.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/severalClosures.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/severalUsage.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/simpleDouble.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/simpleEnum.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/simpleGenerics.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/simpleInt.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/simpleLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/simpleObject.kt create mode 100644 backend.native/tests/external/codegen/boxInline/simple/vararg.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/lambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnCallSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/object.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnCallSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/anonymous/severalMappingsForDefaultFile.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/assertion.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/classFromDefaultPackage.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmap.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmapWithProperty.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reified.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reifiedProperty.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/newsmap/differentMapping.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInInlineFunLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambda.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambdaSameFileInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/oneFile.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/resolve/inlineComponent.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/resolve/inlineIterator.kt create mode 100644 backend.native/tests/external/codegen/boxInline/smap/smap.kt create mode 100644 backend.native/tests/external/codegen/boxInline/special/identityCheck.kt create mode 100644 backend.native/tests/external/codegen/boxInline/special/ifBranches.kt create mode 100644 backend.native/tests/external/codegen/boxInline/special/iinc.kt create mode 100644 backend.native/tests/external/codegen/boxInline/special/inlineChain.kt create mode 100644 backend.native/tests/external/codegen/boxInline/special/plusAssign.kt create mode 100644 backend.native/tests/external/codegen/boxInline/special/stackHeightBug.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/elvis.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/ifThenElse.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/kt11499.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack1.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn1.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn3.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/returnLong.kt create mode 100644 backend.native/tests/external/codegen/boxInline/stackOnReturn/tryFinally.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/constField.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/packagePrivateMembers.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/propertyModifiers.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembers.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembersFromSuper.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/superCall.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/superProperty.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccess.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccessInCrossInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateCall.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateInCrossInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superCall.kt create mode 100644 backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superInCrossInline.kt create mode 100644 backend.native/tests/external/codegen/boxInline/trait/trait.kt create mode 100644 backend.native/tests/external/codegen/boxInline/tryCatchFinally/kt5863.kt create mode 100644 backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch.kt create mode 100644 backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch2.kt create mode 100644 backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatchFinally.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/annotationInInterface.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/annotationsOnTypeAliases.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/callsToMultifileClassFromOtherPackage.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/classInObject.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectInEnum.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectMember.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/constPropertyReferenceFromMultifileClass.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/constructorVararg.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/coroutinesBinary.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/defaultConstructor.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/doublyNestedClass.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/enum.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/inlinedConstants.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/innerClassConstructor.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/jvmField.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/jvmFieldInConstructor.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/jvmNames.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/jvmStaticInObject.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/kotlinPropertyAsAnnotationParameter.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/kt14012.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/kt14012_multi.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/multifileClassInlineFunctionAccessingProperty.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/nestedClass.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/nestedEnum.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/nestedObject.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/platformTypes.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/propertyReference.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/recursiveGeneric.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/sealedClass.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/secondaryConstructors.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/simple.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/simpleValAnonymousObject.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/starImportEnum.kt create mode 100644 backend.native/tests/external/compileKotlinAgainstKotlin/typeAliasesKt13181.kt diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 60864bb9f4f..35de3a12a1d 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -27,6 +27,7 @@ dependencies { def testOutputRoot = rootProject.file("test.output").absolutePath def externalTestsDir = project.file("external") +externalTestsDir.mkdirs() allprojects { // Root directories for test output (logs, compiled files, statistics etc). Only single path must be in each set. diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/simpleFunction.kt b/backend.native/tests/external/codegen/blackbox/callableReference/bound/simpleFunction.kt deleted file mode 100644 index 7d19c68d0d1..00000000000 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/simpleFunction.kt +++ /dev/null @@ -1,6 +0,0 @@ -// Enable when callable references to builtin members is supported -// IGNORE_BACKEND: JS, NATIVE -fun box(): String { - val f = "KOTLIN"::get - return "${f(1)}${f(0)}" -} diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/equalsIntrinsic.kt b/backend.native/tests/external/codegen/blackbox/callableReference/function/equalsIntrinsic.kt deleted file mode 100644 index 742fceab72b..00000000000 --- a/backend.native/tests/external/codegen/blackbox/callableReference/function/equalsIntrinsic.kt +++ /dev/null @@ -1,6 +0,0 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - -class A - -fun box() = if ((A::equals)(A(), A())) "Fail" else "OK" diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/localFunctionName.kt b/backend.native/tests/external/codegen/blackbox/callableReference/function/local/localFunctionName.kt deleted file mode 100644 index 8575e9707a9..00000000000 --- a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/localFunctionName.kt +++ /dev/null @@ -1,8 +0,0 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - -fun box(): String { - fun OK() {} - - return ::OK.name -} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/returnFromFinally.kt b/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/returnFromFinally.kt deleted file mode 100644 index 99fa7a2a56f..00000000000 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/returnFromFinally.kt +++ /dev/null @@ -1,47 +0,0 @@ -// IGNORE_BACKEND: NATIVE -// WITH_RUNTIME -// WITH_COROUTINES -import kotlin.coroutines.* - - -// Does not work in JVM backend, probably due to bug. It's not clear which behaviour is right. -// TODO: fix the bug and enable for JVM backend -// TARGET_BACKEND: JS - -class Controller { - var result = "" - - suspend fun suspendAndLog(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> - result += "suspend($value);" - c.resume(value) - CoroutineIntrinsics.SUSPENDED - } -} - -fun builder(c: suspend Controller.() -> String): String { - val controller = Controller() - c.startCoroutine(controller, handleResultContinuation { - controller.result += "return($it);" - }) - return controller.result -} - -fun id(value: T) = value - -fun box(): String { - val value = builder { - try { - if (id(23) == 23) { - return@builder suspendAndLog("OK") - } - } - finally { - result += "finally;" - } - result += "afterFinally;" - "shouldNotReach" - } - if (value != "suspend(OK);finally;return(OK);") return "fail: $value" - - return "OK" -} diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/kt10131.kt b/backend.native/tests/external/codegen/blackbox/intrinsics/kt10131.kt deleted file mode 100644 index 0977be5cb27..00000000000 --- a/backend.native/tests/external/codegen/blackbox/intrinsics/kt10131.kt +++ /dev/null @@ -1,7 +0,0 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - -// WITH_RUNTIME - -fun box(): String = - listOf('O', 'K').fold("", String::plus) diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/kt10131a.kt b/backend.native/tests/external/codegen/blackbox/intrinsics/kt10131a.kt deleted file mode 100644 index 47eb9d0c65d..00000000000 --- a/backend.native/tests/external/codegen/blackbox/intrinsics/kt10131a.kt +++ /dev/null @@ -1,7 +0,0 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - -// WITH_RUNTIME - -fun box(): String = - charArrayOf('O', 'K').fold("", String::plus) diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/functionFromStdlib.kt b/backend.native/tests/external/codegen/blackbox/reflection/functions/functionFromStdlib.kt deleted file mode 100644 index fa08ad98955..00000000000 --- a/backend.native/tests/external/codegen/blackbox/reflection/functions/functionFromStdlib.kt +++ /dev/null @@ -1,10 +0,0 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - -// WITH_REFLECT - -fun doStuff(fn: String.() -> String) = "ok".fn() - -fun box(): String { - return doStuff(String::toUpperCase) -} diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt2592.kt b/backend.native/tests/external/codegen/blackbox/strings/kt2592.kt deleted file mode 100644 index 589d5ab8586..00000000000 --- a/backend.native/tests/external/codegen/blackbox/strings/kt2592.kt +++ /dev/null @@ -1,7 +0,0 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - -fun box(): String { - String() - return String() + "OK" + String() -} diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotatedEnumEntry.kt b/backend.native/tests/external/codegen/box/annotations/annotatedEnumEntry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotatedEnumEntry.kt rename to backend.native/tests/external/codegen/box/annotations/annotatedEnumEntry.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/funExpression.kt b/backend.native/tests/external/codegen/box/annotations/annotatedLambda/funExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/funExpression.kt rename to backend.native/tests/external/codegen/box/annotations/annotatedLambda/funExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/lambda.kt b/backend.native/tests/external/codegen/box/annotations/annotatedLambda/lambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/lambda.kt rename to backend.native/tests/external/codegen/box/annotations/annotatedLambda/lambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/samFunExpression.kt b/backend.native/tests/external/codegen/box/annotations/annotatedLambda/samFunExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/samFunExpression.kt rename to backend.native/tests/external/codegen/box/annotations/annotatedLambda/samFunExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/samLambda.kt b/backend.native/tests/external/codegen/box/annotations/annotatedLambda/samLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotatedLambda/samLambda.kt rename to backend.native/tests/external/codegen/box/annotations/annotatedLambda/samLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotatedObjectLiteral.kt b/backend.native/tests/external/codegen/box/annotations/annotatedObjectLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotatedObjectLiteral.kt rename to backend.native/tests/external/codegen/box/annotations/annotatedObjectLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotationWithKotlinProperty.kt b/backend.native/tests/external/codegen/box/annotations/annotationWithKotlinProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotationWithKotlinProperty.kt rename to backend.native/tests/external/codegen/box/annotations/annotationWithKotlinProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotationWithKotlinPropertyFromInterfaceCompanion.kt b/backend.native/tests/external/codegen/box/annotations/annotationWithKotlinPropertyFromInterfaceCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotationWithKotlinPropertyFromInterfaceCompanion.kt rename to backend.native/tests/external/codegen/box/annotations/annotationWithKotlinPropertyFromInterfaceCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotationsOnDefault.kt b/backend.native/tests/external/codegen/box/annotations/annotationsOnDefault.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotationsOnDefault.kt rename to backend.native/tests/external/codegen/box/annotations/annotationsOnDefault.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/annotationsOnTypeAliases.kt b/backend.native/tests/external/codegen/box/annotations/annotationsOnTypeAliases.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/annotationsOnTypeAliases.kt rename to backend.native/tests/external/codegen/box/annotations/annotationsOnTypeAliases.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/defaultParameterValues.kt b/backend.native/tests/external/codegen/box/annotations/defaultParameterValues.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/defaultParameterValues.kt rename to backend.native/tests/external/codegen/box/annotations/defaultParameterValues.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/delegatedPropertySetter.kt b/backend.native/tests/external/codegen/box/annotations/delegatedPropertySetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/delegatedPropertySetter.kt rename to backend.native/tests/external/codegen/box/annotations/delegatedPropertySetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/fileClassWithFileAnnotation.kt b/backend.native/tests/external/codegen/box/annotations/fileClassWithFileAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/fileClassWithFileAnnotation.kt rename to backend.native/tests/external/codegen/box/annotations/fileClassWithFileAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/jvmAnnotationFlags.kt b/backend.native/tests/external/codegen/box/annotations/jvmAnnotationFlags.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/jvmAnnotationFlags.kt rename to backend.native/tests/external/codegen/box/annotations/jvmAnnotationFlags.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/kotlinPropertyFromClassObjectAsParameter.kt b/backend.native/tests/external/codegen/box/annotations/kotlinPropertyFromClassObjectAsParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/kotlinPropertyFromClassObjectAsParameter.kt rename to backend.native/tests/external/codegen/box/annotations/kotlinPropertyFromClassObjectAsParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/kotlinTopLevelPropertyAsParameter.kt b/backend.native/tests/external/codegen/box/annotations/kotlinTopLevelPropertyAsParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/kotlinTopLevelPropertyAsParameter.kt rename to backend.native/tests/external/codegen/box/annotations/kotlinTopLevelPropertyAsParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/kt10136.kt b/backend.native/tests/external/codegen/box/annotations/kt10136.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/kt10136.kt rename to backend.native/tests/external/codegen/box/annotations/kt10136.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/nestedClassPropertyAsParameter.kt b/backend.native/tests/external/codegen/box/annotations/nestedClassPropertyAsParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/nestedClassPropertyAsParameter.kt rename to backend.native/tests/external/codegen/box/annotations/nestedClassPropertyAsParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/parameterWithPrimitiveType.kt b/backend.native/tests/external/codegen/box/annotations/parameterWithPrimitiveType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/parameterWithPrimitiveType.kt rename to backend.native/tests/external/codegen/box/annotations/parameterWithPrimitiveType.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/propertyWithPropertyInInitializerAsParameter.kt b/backend.native/tests/external/codegen/box/annotations/propertyWithPropertyInInitializerAsParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/propertyWithPropertyInInitializerAsParameter.kt rename to backend.native/tests/external/codegen/box/annotations/propertyWithPropertyInInitializerAsParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/resolveWithLowPriorityAnnotation.kt b/backend.native/tests/external/codegen/box/annotations/resolveWithLowPriorityAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/resolveWithLowPriorityAnnotation.kt rename to backend.native/tests/external/codegen/box/annotations/resolveWithLowPriorityAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/annotations/varargInAnnotationParameter.kt b/backend.native/tests/external/codegen/box/annotations/varargInAnnotationParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/annotations/varargInAnnotationParameter.kt rename to backend.native/tests/external/codegen/box/annotations/varargInAnnotationParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/arguments.kt b/backend.native/tests/external/codegen/box/argumentOrder/arguments.kt similarity index 71% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/arguments.kt rename to backend.native/tests/external/codegen/box/argumentOrder/arguments.kt index d686101b1c7..f3d4d9b9b33 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/arguments.kt +++ b/backend.native/tests/external/codegen/box/argumentOrder/arguments.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun test(a: String, b: String): String { return a + b; diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/captured.kt b/backend.native/tests/external/codegen/box/argumentOrder/captured.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/captured.kt rename to backend.native/tests/external/codegen/box/argumentOrder/captured.kt index 99792dc416c..f4f35913a07 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/captured.kt +++ b/backend.native/tests/external/codegen/box/argumentOrder/captured.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { var invokeOrder = ""; val expectedResult = "0_1_9" diff --git a/backend.native/tests/external/codegen/box/argumentOrder/capturedInExtension.kt b/backend.native/tests/external/codegen/box/argumentOrder/capturedInExtension.kt new file mode 100644 index 00000000000..cfd5329d520 --- /dev/null +++ b/backend.native/tests/external/codegen/box/argumentOrder/capturedInExtension.kt @@ -0,0 +1,30 @@ +fun box(): String { + var invokeOrder = ""; + val expectedResult = "1_0_1_9" + val expectedInvokeOrder = "1_0_9" + var l = 1L + var i = 0 + val captured = 9L + + var result = 1.0.test(b = {invokeOrder += "1_"; l}(), a = {invokeOrder+="0_"; i}(), c = {invokeOrder += "$captured"; "$captured"}) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 1: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + invokeOrder = ""; + result = 1.0.test(b = {invokeOrder += "1_"; l}(), c = {invokeOrder += "${captured}"; "${captured}"}, a = {invokeOrder+="0_"; i}()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 2: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + + invokeOrder = ""; + result = 1.0.test(c = {invokeOrder += "${captured}"; "${captured}"}, b = {invokeOrder += "1_"; l}(), a = {invokeOrder+="0_"; i}()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 3: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + invokeOrder = ""; + result = 1.0.test(a = {invokeOrder+="0_"; i}(), c = {invokeOrder += "${captured}"; "${captured}"}, b = {invokeOrder += "1_"; l}()) + if (invokeOrder != "0_1_9" || result != expectedResult) return "fail 4: $invokeOrder != 0_1_9 or $result != $expectedResult" + + return "OK" +} + +fun Double.test(a: Int, b: Long, c: () -> String): String { + return { "${this.toInt()}_${a}_${b}_${c()}"} () +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/defaults.kt b/backend.native/tests/external/codegen/box/argumentOrder/defaults.kt similarity index 53% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/defaults.kt rename to backend.native/tests/external/codegen/box/argumentOrder/defaults.kt index 7498df2eefc..ebf9b4d7d19 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/defaults.kt +++ b/backend.native/tests/external/codegen/box/argumentOrder/defaults.kt @@ -1,16 +1,13 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - var invokeOrder: String = "" fun test(x: Double = { invokeOrder += "x"; 1.0 }(), a: String, y: Long = { invokeOrder += "y"; 1 }(), b: String): String { - return "" + x + a + b + y; + return "" + x.toInt() + a + b + y; } fun box(): String { val funResult = test(b = { invokeOrder += "K"; "K" }(), a = { invokeOrder += "O"; "O" }()) - if (invokeOrder != "KOxy" || funResult != "1.0OK1") return "fail: $invokeOrder != KOxy or $funResult != 1.0OK1" + if (invokeOrder != "KOxy" || funResult != "1OK1") return "fail: $invokeOrder != KOxy or $funResult != 1OK1" return "OK" } \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/argumentOrder/extension.kt b/backend.native/tests/external/codegen/box/argumentOrder/extension.kt new file mode 100644 index 00000000000..86fff0d8e1f --- /dev/null +++ b/backend.native/tests/external/codegen/box/argumentOrder/extension.kt @@ -0,0 +1,30 @@ +fun box(): String { + var invokeOrder = ""; + val expectedResult = "1_0_1_L" + val expectedInvokeOrder = "1_0_L" + var l = 1L + var i = 0 + + var result = 1.0.test(b = {invokeOrder += "1_"; l}(), a = {invokeOrder+="0_"; i}(), c = {invokeOrder += "L"; "L"}) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 1: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + invokeOrder = ""; + result = 1.0.test(b = {invokeOrder += "1_"; l}(), c = {invokeOrder += "L"; "L"}, a = {invokeOrder+="0_"; i}()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 2: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + + invokeOrder = ""; + result = 1.0.test(c = {invokeOrder += "L"; "L"}, b = {invokeOrder += "1_"; l}(), a = {invokeOrder+="0_"; i}()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 3: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + + invokeOrder = ""; + result = 1.0.test(a = {invokeOrder+="0_"; i}(), c = {invokeOrder += "L"; "L"}, b = {invokeOrder += "1_"; l}()) + if (invokeOrder != "0_1_L" || result != expectedResult) return "fail 4: $invokeOrder != 0_1_L or $result != $expectedResult" + + return "OK" +} + +fun Double.test(a: Int, b: Long, c: () -> String): String { + return "${this.toInt()}_${a}_${b}_${c()}" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/extensionInClass.kt b/backend.native/tests/external/codegen/box/argumentOrder/extensionInClass.kt similarity index 88% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/extensionInClass.kt rename to backend.native/tests/external/codegen/box/argumentOrder/extensionInClass.kt index 01b3a736735..ed025997c74 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/extensionInClass.kt +++ b/backend.native/tests/external/codegen/box/argumentOrder/extensionInClass.kt @@ -1,19 +1,16 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { return Z().test() } class Z { fun Double.test(a: Int, b: Long, c: () -> String): String { - return "${this}_${a}_${b}_${c()}" + return "${this.toInt()}_${a}_${b}_${c()}" } fun test(): String { var invokeOrder = ""; - val expectedResult = "1.0_0_1_L" + val expectedResult = "1_0_1_L" val expectedInvokeOrder = "1_0_L" var l = 1L var i = 0 diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/kt9277.kt b/backend.native/tests/external/codegen/box/argumentOrder/kt9277.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/kt9277.kt rename to backend.native/tests/external/codegen/box/argumentOrder/kt9277.kt diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/lambdaMigration.kt b/backend.native/tests/external/codegen/box/argumentOrder/lambdaMigration.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/lambdaMigration.kt rename to backend.native/tests/external/codegen/box/argumentOrder/lambdaMigration.kt diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/lambdaMigrationInClass.kt b/backend.native/tests/external/codegen/box/argumentOrder/lambdaMigrationInClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/lambdaMigrationInClass.kt rename to backend.native/tests/external/codegen/box/argumentOrder/lambdaMigrationInClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/simple.kt b/backend.native/tests/external/codegen/box/argumentOrder/simple.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/simple.kt rename to backend.native/tests/external/codegen/box/argumentOrder/simple.kt index 101a18974ca..112891c4d9a 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/simple.kt +++ b/backend.native/tests/external/codegen/box/argumentOrder/simple.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { var res = ""; var call = test(b = {res += "K"; "K"}(), a = {res+="O"; "O"}(), c = {res += "L"; "L"}) diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/simpleInClass.kt b/backend.native/tests/external/codegen/box/argumentOrder/simpleInClass.kt similarity index 87% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/simpleInClass.kt rename to backend.native/tests/external/codegen/box/argumentOrder/simpleInClass.kt index 9bd916da6e0..71bc1f7452c 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/simpleInClass.kt +++ b/backend.native/tests/external/codegen/box/argumentOrder/simpleInClass.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { var res = ""; var call = Z("Z").test(b = {res += "K"; "K"}(), a = {res+="O"; "O"}(), c = {res += "L"; "L"}) diff --git a/backend.native/tests/external/codegen/blackbox/arrays/arrayConstructorsSimple.kt b/backend.native/tests/external/codegen/box/arrays/arrayConstructorsSimple.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/arrays/arrayConstructorsSimple.kt rename to backend.native/tests/external/codegen/box/arrays/arrayConstructorsSimple.kt index bb2fd78e5f3..1c28cf17aa0 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/arrayConstructorsSimple.kt +++ b/backend.native/tests/external/codegen/box/arrays/arrayConstructorsSimple.kt @@ -23,4 +23,4 @@ fun box(): String { assertEquals("2", sa[2]) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/arrays/arrayGetAssignMultiIndex.kt b/backend.native/tests/external/codegen/box/arrays/arrayGetAssignMultiIndex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/arrayGetAssignMultiIndex.kt rename to backend.native/tests/external/codegen/box/arrays/arrayGetAssignMultiIndex.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/arrayGetMultiIndex.kt b/backend.native/tests/external/codegen/box/arrays/arrayGetMultiIndex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/arrayGetMultiIndex.kt rename to backend.native/tests/external/codegen/box/arrays/arrayGetMultiIndex.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/arrayInstanceOf.kt b/backend.native/tests/external/codegen/box/arrays/arrayInstanceOf.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/arrays/arrayInstanceOf.kt rename to backend.native/tests/external/codegen/box/arrays/arrayInstanceOf.kt index 67206754e5a..d5323fbbdbb 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/arrayInstanceOf.kt +++ b/backend.native/tests/external/codegen/box/arrays/arrayInstanceOf.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS //test [], get and iterator calls fun test(createIntNotLong: Boolean): String { diff --git a/backend.native/tests/external/codegen/blackbox/arrays/arrayPlusAssign.kt b/backend.native/tests/external/codegen/box/arrays/arrayPlusAssign.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/arrayPlusAssign.kt rename to backend.native/tests/external/codegen/box/arrays/arrayPlusAssign.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/arraysAreCloneable.kt b/backend.native/tests/external/codegen/box/arrays/arraysAreCloneable.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/arrays/arraysAreCloneable.kt rename to backend.native/tests/external/codegen/box/arrays/arraysAreCloneable.kt index f0860dadc0a..52075d459d7 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/arraysAreCloneable.kt +++ b/backend.native/tests/external/codegen/box/arrays/arraysAreCloneable.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun foo(x: Cloneable) = x diff --git a/backend.native/tests/external/codegen/blackbox/arrays/cloneArray.kt b/backend.native/tests/external/codegen/box/arrays/cloneArray.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/arrays/cloneArray.kt rename to backend.native/tests/external/codegen/box/arrays/cloneArray.kt index fe7ae5ff309..8e29271c7d7 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/cloneArray.kt +++ b/backend.native/tests/external/codegen/box/arrays/cloneArray.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/arrays/clonePrimitiveArrays.kt b/backend.native/tests/external/codegen/box/arrays/clonePrimitiveArrays.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/arrays/clonePrimitiveArrays.kt rename to backend.native/tests/external/codegen/box/arrays/clonePrimitiveArrays.kt index 578c79c0d3c..dc6646587d6 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/clonePrimitiveArrays.kt +++ b/backend.native/tests/external/codegen/box/arrays/clonePrimitiveArrays.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/arrays/collectionAssignGetMultiIndex.kt b/backend.native/tests/external/codegen/box/arrays/collectionAssignGetMultiIndex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/collectionAssignGetMultiIndex.kt rename to backend.native/tests/external/codegen/box/arrays/collectionAssignGetMultiIndex.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/collectionGetMultiIndex.kt b/backend.native/tests/external/codegen/box/arrays/collectionGetMultiIndex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/collectionGetMultiIndex.kt rename to backend.native/tests/external/codegen/box/arrays/collectionGetMultiIndex.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachBooleanArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachBooleanArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachBooleanArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachBooleanArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachByteArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachByteArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachByteArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachByteArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachCharArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachCharArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachCharArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachCharArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachDoubleArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachDoubleArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachDoubleArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachDoubleArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachFloatArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachFloatArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachFloatArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachFloatArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachIntArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachIntArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachIntArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachIntArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachLongArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachLongArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachLongArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachLongArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/forEachShortArray.kt b/backend.native/tests/external/codegen/box/arrays/forEachShortArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/forEachShortArray.kt rename to backend.native/tests/external/codegen/box/arrays/forEachShortArray.kt diff --git a/backend.native/tests/external/codegen/box/arrays/genericArrayInObjectLiteralConstructor.kt b/backend.native/tests/external/codegen/box/arrays/genericArrayInObjectLiteralConstructor.kt new file mode 100644 index 00000000000..0493164e585 --- /dev/null +++ b/backend.native/tests/external/codegen/box/arrays/genericArrayInObjectLiteralConstructor.kt @@ -0,0 +1,14 @@ +// WITH_RUNTIME +abstract class Table( + val content: Array> +) + +fun box(): String { + val x = object : Table( + Array(1, { + x-> Array(1, {y -> "OK"}) + }) + ) {} + + return x.content[0][0] +} diff --git a/backend.native/tests/external/codegen/blackbox/arrays/hashMap.kt b/backend.native/tests/external/codegen/box/arrays/hashMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/hashMap.kt rename to backend.native/tests/external/codegen/box/arrays/hashMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/inProjectionAsParameter.kt b/backend.native/tests/external/codegen/box/arrays/inProjectionAsParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/inProjectionAsParameter.kt rename to backend.native/tests/external/codegen/box/arrays/inProjectionAsParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/inProjectionOfArray.kt b/backend.native/tests/external/codegen/box/arrays/inProjectionOfArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/inProjectionOfArray.kt rename to backend.native/tests/external/codegen/box/arrays/inProjectionOfArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/inProjectionOfList.kt b/backend.native/tests/external/codegen/box/arrays/inProjectionOfList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/inProjectionOfList.kt rename to backend.native/tests/external/codegen/box/arrays/inProjectionOfList.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/indices.kt b/backend.native/tests/external/codegen/box/arrays/indices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/indices.kt rename to backend.native/tests/external/codegen/box/arrays/indices.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/indicesChar.kt b/backend.native/tests/external/codegen/box/arrays/indicesChar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/indicesChar.kt rename to backend.native/tests/external/codegen/box/arrays/indicesChar.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iterator.kt b/backend.native/tests/external/codegen/box/arrays/iterator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iterator.kt rename to backend.native/tests/external/codegen/box/arrays/iterator.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorBooleanArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorBooleanArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorBooleanArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorBooleanArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorByteArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorByteArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorByteArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorByteArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorByteArrayNextByte.kt b/backend.native/tests/external/codegen/box/arrays/iteratorByteArrayNextByte.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorByteArrayNextByte.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorByteArrayNextByte.kt index 4970504900c..19bf8463026 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/iteratorByteArrayNextByte.kt +++ b/backend.native/tests/external/codegen/box/arrays/iteratorByteArrayNextByte.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { val a = ByteArray(5) diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorCharArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorCharArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorCharArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorCharArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorDoubleArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorDoubleArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorDoubleArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorDoubleArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorFloatArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorFloatArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorFloatArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorFloatArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorIntArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorIntArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorIntArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorIntArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorLongArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorLongArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorLongArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorLongArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorLongArrayNextLong.kt b/backend.native/tests/external/codegen/box/arrays/iteratorLongArrayNextLong.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorLongArrayNextLong.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorLongArrayNextLong.kt index ef44f5426d0..74bf8c9f4a4 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/iteratorLongArrayNextLong.kt +++ b/backend.native/tests/external/codegen/box/arrays/iteratorLongArrayNextLong.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { val a = LongArray(5) diff --git a/backend.native/tests/external/codegen/blackbox/arrays/iteratorShortArray.kt b/backend.native/tests/external/codegen/box/arrays/iteratorShortArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/iteratorShortArray.kt rename to backend.native/tests/external/codegen/box/arrays/iteratorShortArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt1291.kt b/backend.native/tests/external/codegen/box/arrays/kt1291.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt1291.kt rename to backend.native/tests/external/codegen/box/arrays/kt1291.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt238.kt b/backend.native/tests/external/codegen/box/arrays/kt238.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt238.kt rename to backend.native/tests/external/codegen/box/arrays/kt238.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt2997.kt b/backend.native/tests/external/codegen/box/arrays/kt2997.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/arrays/kt2997.kt rename to backend.native/tests/external/codegen/box/arrays/kt2997.kt index f42acc4a2e9..6ccce13d01d 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/kt2997.kt +++ b/backend.native/tests/external/codegen/box/arrays/kt2997.kt @@ -1,4 +1,6 @@ //KT-2997 Automatically cast error (Array) +// IGNORE_BACKEND: JS +// Unmute when JS implements primitive arrays via TypeArray fun foo(a: Any): Int { if (a is IntArray) { diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt33.kt b/backend.native/tests/external/codegen/box/arrays/kt33.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt33.kt rename to backend.native/tests/external/codegen/box/arrays/kt33.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt3771.kt b/backend.native/tests/external/codegen/box/arrays/kt3771.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt3771.kt rename to backend.native/tests/external/codegen/box/arrays/kt3771.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt4118.kt b/backend.native/tests/external/codegen/box/arrays/kt4118.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt4118.kt rename to backend.native/tests/external/codegen/box/arrays/kt4118.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt4348.kt b/backend.native/tests/external/codegen/box/arrays/kt4348.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/arrays/kt4348.kt rename to backend.native/tests/external/codegen/box/arrays/kt4348.kt index a189ddb6720..4ea639148ca 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/kt4348.kt +++ b/backend.native/tests/external/codegen/box/arrays/kt4348.kt @@ -5,7 +5,7 @@ operator fun String.get(vararg value: Any) : String { operator fun Int.get(vararg value: Any) : Int { return if (value[0] == 44 && value[1] == "example") 1 else 0 } -fun foo(args: Array) { +fun main(args: Array) { 12 [44, "example"] } diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt4357.kt b/backend.native/tests/external/codegen/box/arrays/kt4357.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt4357.kt rename to backend.native/tests/external/codegen/box/arrays/kt4357.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt503.kt b/backend.native/tests/external/codegen/box/arrays/kt503.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/arrays/kt503.kt rename to backend.native/tests/external/codegen/box/arrays/kt503.kt index d42e3e112a3..bdad1a98add 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/kt503.kt +++ b/backend.native/tests/external/codegen/box/arrays/kt503.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun iarr(vararg a : Int) = a fun array(vararg a : T) = a diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt594.kt b/backend.native/tests/external/codegen/box/arrays/kt594.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt594.kt rename to backend.native/tests/external/codegen/box/arrays/kt594.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt602.kt b/backend.native/tests/external/codegen/box/arrays/kt602.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt602.kt rename to backend.native/tests/external/codegen/box/arrays/kt602.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt7009.kt b/backend.native/tests/external/codegen/box/arrays/kt7009.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt7009.kt rename to backend.native/tests/external/codegen/box/arrays/kt7009.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt7288.kt b/backend.native/tests/external/codegen/box/arrays/kt7288.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/arrays/kt7288.kt rename to backend.native/tests/external/codegen/box/arrays/kt7288.kt index 80060cd39f8..12cd2e6c591 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/kt7288.kt +++ b/backend.native/tests/external/codegen/box/arrays/kt7288.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun test(b: Boolean): String { val a = if (b) IntArray(5) else LongArray(5) if (a is IntArray) { diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt7338.kt b/backend.native/tests/external/codegen/box/arrays/kt7338.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/arrays/kt7338.kt rename to backend.native/tests/external/codegen/box/arrays/kt7338.kt index 848764b3f57..48e9b499598 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/kt7338.kt +++ b/backend.native/tests/external/codegen/box/arrays/kt7338.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt779.kt b/backend.native/tests/external/codegen/box/arrays/kt779.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt779.kt rename to backend.native/tests/external/codegen/box/arrays/kt779.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt945.kt b/backend.native/tests/external/codegen/box/arrays/kt945.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt945.kt rename to backend.native/tests/external/codegen/box/arrays/kt945.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/kt950.kt b/backend.native/tests/external/codegen/box/arrays/kt950.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/kt950.kt rename to backend.native/tests/external/codegen/box/arrays/kt950.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/longAsIndex.kt b/backend.native/tests/external/codegen/box/arrays/longAsIndex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/longAsIndex.kt rename to backend.native/tests/external/codegen/box/arrays/longAsIndex.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiArrayConstructors.kt b/backend.native/tests/external/codegen/box/arrays/multiArrayConstructors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiArrayConstructors.kt rename to backend.native/tests/external/codegen/box/arrays/multiArrayConstructors.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclFor.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclFor.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForValCaptured.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/MultiDeclForValCaptured.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/MultiDeclForValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15560.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15560.kt new file mode 100644 index 00000000000..552a6653a97 --- /dev/null +++ b/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15560.kt @@ -0,0 +1,9 @@ +fun box(): String { + val array = arrayOf(doubleArrayOf(-1.0)) + for (node in array) { + node[0] += 1.0 + } + if (array[0][0] != 0.0) return "fail ${array[0][0]}" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15568.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15568.kt new file mode 100644 index 00000000000..c030c22b217 --- /dev/null +++ b/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15568.kt @@ -0,0 +1,13 @@ +fun box(): String { + val a = Array(2) { DoubleArray(3) } + + for (i in 1..1) { + for (j in 0..2) { + a[i][j] += a[i - 1][j] + } + } + + if (a[0][0] != 0.0) return "fail ${a[0][0]}" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15575.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15575.kt new file mode 100644 index 00000000000..16a7300358b --- /dev/null +++ b/backend.native/tests/external/codegen/box/arrays/multiDecl/kt15575.kt @@ -0,0 +1,9 @@ +fun box(): String { + val transform = transform(Array(1) { BooleanArray(1) }) + if (!transform[0][0]) return "OK" + return "fail" +} + +fun transform(screen: Array) = Array(1) { x -> + screen[x] +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/multiDecl/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/arrays/multiDecl/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/nonLocalReturnArrayConstructor.kt b/backend.native/tests/external/codegen/box/arrays/nonLocalReturnArrayConstructor.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/arrays/nonLocalReturnArrayConstructor.kt rename to backend.native/tests/external/codegen/box/arrays/nonLocalReturnArrayConstructor.kt index 6c9158aa1a5..350d4cfe176 100644 --- a/backend.native/tests/external/codegen/blackbox/arrays/nonLocalReturnArrayConstructor.kt +++ b/backend.native/tests/external/codegen/box/arrays/nonLocalReturnArrayConstructor.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun testArray() { Array(5) { i -> diff --git a/backend.native/tests/external/codegen/blackbox/arrays/nonNullArray.kt b/backend.native/tests/external/codegen/box/arrays/nonNullArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/nonNullArray.kt rename to backend.native/tests/external/codegen/box/arrays/nonNullArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/arrays/stdlib.kt b/backend.native/tests/external/codegen/box/arrays/stdlib.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/arrays/stdlib.kt rename to backend.native/tests/external/codegen/box/arrays/stdlib.kt diff --git a/backend.native/tests/external/codegen/box/arrays/varargsWithJava.kt b/backend.native/tests/external/codegen/box/arrays/varargsWithJava.kt new file mode 100644 index 00000000000..ce5377fdf63 --- /dev/null +++ b/backend.native/tests/external/codegen/box/arrays/varargsWithJava.kt @@ -0,0 +1,21 @@ +// TARGET_BACKEND: JVM +// FILE: AT.java + +public class AT { + public String result = "fail"; + public void foo(G ...y) { + result = "OK"; + } +} + +// FILE: main.kt + +fun AT<*>.bar() { + foo() +} + +fun box(): String { + val a = AT() + a.bar() + return a.result +} diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOp.kt b/backend.native/tests/external/codegen/box/binaryOp/bitwiseOp.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOp.kt rename to backend.native/tests/external/codegen/box/binaryOp/bitwiseOp.kt index 7618481db4c..75a771d5d7e 100644 --- a/backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOp.kt +++ b/backend.native/tests/external/codegen/box/binaryOp/bitwiseOp.kt @@ -1,3 +1,6 @@ +// WITH_RUNTIME +import kotlin.experimental.* + fun box(): String { // D = 1101 C = 1100 // 6 = 0110 5 = 0101 diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOpAny.kt b/backend.native/tests/external/codegen/box/binaryOp/bitwiseOpAny.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOpAny.kt rename to backend.native/tests/external/codegen/box/binaryOp/bitwiseOpAny.kt index 035248d5adb..d9913d379a1 100644 --- a/backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOpAny.kt +++ b/backend.native/tests/external/codegen/box/binaryOp/bitwiseOpAny.kt @@ -1,3 +1,6 @@ +// WITH_RUNTIME +import kotlin.experimental.* + fun box(): String { // D = 1101 C = 1100 // 6 = 0110 5 = 0101 diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOpNullable.kt b/backend.native/tests/external/codegen/box/binaryOp/bitwiseOpNullable.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOpNullable.kt rename to backend.native/tests/external/codegen/box/binaryOp/bitwiseOpNullable.kt index 779f86f9315..16e8a0fe855 100644 --- a/backend.native/tests/external/codegen/blackbox/binaryOp/bitwiseOpNullable.kt +++ b/backend.native/tests/external/codegen/box/binaryOp/bitwiseOpNullable.kt @@ -1,3 +1,6 @@ +// WITH_RUNTIME +import kotlin.experimental.* + fun box(): String { // D = 1101 C = 1100 // 6 = 0110 5 = 0101 diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/call.kt b/backend.native/tests/external/codegen/box/binaryOp/call.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/call.kt rename to backend.native/tests/external/codegen/box/binaryOp/call.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/callAny.kt b/backend.native/tests/external/codegen/box/binaryOp/callAny.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/callAny.kt rename to backend.native/tests/external/codegen/box/binaryOp/callAny.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/callNullable.kt b/backend.native/tests/external/codegen/box/binaryOp/callNullable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/callNullable.kt rename to backend.native/tests/external/codegen/box/binaryOp/callNullable.kt diff --git a/backend.native/tests/external/codegen/box/binaryOp/compareBoxedChars.kt b/backend.native/tests/external/codegen/box/binaryOp/compareBoxedChars.kt new file mode 100644 index 00000000000..f472ebfc47d --- /dev/null +++ b/backend.native/tests/external/codegen/box/binaryOp/compareBoxedChars.kt @@ -0,0 +1,16 @@ +fun id(x: T) = x + +fun box(): String { + if (id('a') > id('b')) return "fail 1" + if (id('a') >= id('b')) return "fail 2" + if (id('b') < id('a')) return "fail 3" + if (id('b') <= id('a')) return "fail 4" + + val x = id('a').compareTo('b') + if (x != -1) return "fail 5" + + val y = id('b').compareTo('a') + if (y != 1) return "fail 6" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/compareWithBoxedDouble.kt b/backend.native/tests/external/codegen/box/binaryOp/compareWithBoxedDouble.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/binaryOp/compareWithBoxedDouble.kt rename to backend.native/tests/external/codegen/box/binaryOp/compareWithBoxedDouble.kt index a1040aac132..de72811d997 100644 --- a/backend.native/tests/external/codegen/blackbox/binaryOp/compareWithBoxedDouble.kt +++ b/backend.native/tests/external/codegen/box/binaryOp/compareWithBoxedDouble.kt @@ -1,8 +1,5 @@ -// IGNORE_BACKEND: JS +// IGNORE_BACKEND: JS, NATIVE // reason - multifile tests are not supported in JS tests -// IGNORE_BACKEND: NATIVE -// reason - no java interop. - //FILE: Holder.java class Holder { @@ -17,4 +14,4 @@ import Holder fun box(): String { val j = Holder(0.99) return if (j.value > 0) "OK" else "fail" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/compareWithBoxedLong.kt b/backend.native/tests/external/codegen/box/binaryOp/compareWithBoxedLong.kt similarity index 77% rename from backend.native/tests/external/codegen/blackbox/binaryOp/compareWithBoxedLong.kt rename to backend.native/tests/external/codegen/box/binaryOp/compareWithBoxedLong.kt index 68c226c8295..26d6818bed2 100644 --- a/backend.native/tests/external/codegen/blackbox/binaryOp/compareWithBoxedLong.kt +++ b/backend.native/tests/external/codegen/box/binaryOp/compareWithBoxedLong.kt @@ -1,8 +1,5 @@ -// IGNORE_BACKEND: JS +// IGNORE_BACKEND: JS, NATIVE // reason - multifile tests are not supported in JS tests -// IGNORE_BACKEND: NATIVE -// reason - no java interop. - //FILE: JavaClass.java class JavaClass { @@ -15,4 +12,4 @@ import JavaClass fun box(): String { return if (JavaClass.get() > 0) "OK" else "fail" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/divisionByZero.kt b/backend.native/tests/external/codegen/box/binaryOp/divisionByZero.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/divisionByZero.kt rename to backend.native/tests/external/codegen/box/binaryOp/divisionByZero.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/intrinsic.kt b/backend.native/tests/external/codegen/box/binaryOp/intrinsic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/intrinsic.kt rename to backend.native/tests/external/codegen/box/binaryOp/intrinsic.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/intrinsicAny.kt b/backend.native/tests/external/codegen/box/binaryOp/intrinsicAny.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/intrinsicAny.kt rename to backend.native/tests/external/codegen/box/binaryOp/intrinsicAny.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/intrinsicNullable.kt b/backend.native/tests/external/codegen/box/binaryOp/intrinsicNullable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/intrinsicNullable.kt rename to backend.native/tests/external/codegen/box/binaryOp/intrinsicNullable.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/kt11163.kt b/backend.native/tests/external/codegen/box/binaryOp/kt11163.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/kt11163.kt rename to backend.native/tests/external/codegen/box/binaryOp/kt11163.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/kt6747_identityEquals.kt b/backend.native/tests/external/codegen/box/binaryOp/kt6747_identityEquals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/kt6747_identityEquals.kt rename to backend.native/tests/external/codegen/box/binaryOp/kt6747_identityEquals.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/overflowChar.kt b/backend.native/tests/external/codegen/box/binaryOp/overflowChar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/overflowChar.kt rename to backend.native/tests/external/codegen/box/binaryOp/overflowChar.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/overflowInt.kt b/backend.native/tests/external/codegen/box/binaryOp/overflowInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/overflowInt.kt rename to backend.native/tests/external/codegen/box/binaryOp/overflowInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/binaryOp/overflowLong.kt b/backend.native/tests/external/codegen/box/binaryOp/overflowLong.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/binaryOp/overflowLong.kt rename to backend.native/tests/external/codegen/box/binaryOp/overflowLong.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/casts.kt b/backend.native/tests/external/codegen/box/boxingOptimization/casts.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/casts.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/casts.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/checkcastAndInstanceOf.kt b/backend.native/tests/external/codegen/box/boxingOptimization/checkcastAndInstanceOf.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/checkcastAndInstanceOf.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/checkcastAndInstanceOf.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/fold.kt b/backend.native/tests/external/codegen/box/boxingOptimization/fold.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/fold.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/fold.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/foldRange.kt b/backend.native/tests/external/codegen/box/boxingOptimization/foldRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/foldRange.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/foldRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/kt5493.kt b/backend.native/tests/external/codegen/box/boxingOptimization/kt5493.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/kt5493.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/kt5493.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/kt5588.kt b/backend.native/tests/external/codegen/box/boxingOptimization/kt5588.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/kt5588.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/kt5588.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/kt5844.kt b/backend.native/tests/external/codegen/box/boxingOptimization/kt5844.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/kt5844.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/kt5844.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/kt6047.kt b/backend.native/tests/external/codegen/box/boxingOptimization/kt6047.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/kt6047.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/kt6047.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/kt6842.kt b/backend.native/tests/external/codegen/box/boxingOptimization/kt6842.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/kt6842.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/kt6842.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/nullCheck.kt b/backend.native/tests/external/codegen/box/boxingOptimization/nullCheck.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/nullCheck.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/nullCheck.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/progressions.kt b/backend.native/tests/external/codegen/box/boxingOptimization/progressions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/progressions.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/progressions.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/safeCallWithElvis.kt b/backend.native/tests/external/codegen/box/boxingOptimization/safeCallWithElvis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/safeCallWithElvis.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/safeCallWithElvis.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/simple.kt b/backend.native/tests/external/codegen/box/boxingOptimization/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/simple.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/simpleUninitializedMerge.kt b/backend.native/tests/external/codegen/box/boxingOptimization/simpleUninitializedMerge.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/simpleUninitializedMerge.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/simpleUninitializedMerge.kt diff --git a/backend.native/tests/external/codegen/box/boxingOptimization/taintedValues.kt b/backend.native/tests/external/codegen/box/boxingOptimization/taintedValues.kt new file mode 100644 index 00000000000..83ce3905b87 --- /dev/null +++ b/backend.native/tests/external/codegen/box/boxingOptimization/taintedValues.kt @@ -0,0 +1,11 @@ +// WITH_RUNTIME + +// Just make sure there's no VerifyError + +fun getOrElse() = + mapOf().getOrElse("foo") { 3 } + +fun isNotEmpty(l: ArrayList) = + l.iterator()?.hasNext() ?: false + +fun box() = "OK" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/boxingOptimization/taintedValuesBox.kt b/backend.native/tests/external/codegen/box/boxingOptimization/taintedValuesBox.kt new file mode 100644 index 00000000000..5ea75e4adf6 --- /dev/null +++ b/backend.native/tests/external/codegen/box/boxingOptimization/taintedValuesBox.kt @@ -0,0 +1,49 @@ +// WITH_RUNTIME + +inline fun put( + x: T, + maxExclusive: Int, + isEmpty: (Int) -> Boolean, + equals: (T, T) -> Boolean, + fetch: (Int) -> T, + store: (Int, T) -> Unit +): Boolean { + var i = 0 + do { + if (isEmpty(i)) { + store(i, x) + return true + } + + val y = fetch(i) + if (equals(x, y)) { + return false + } + + i++ + if (i >= maxExclusive) return false + } while (true) +} + +const val SIZE = 16 +val arr = IntArray(SIZE) { -1 } + +fun putNonNegInt(x: Int) = + put(x, SIZE, + isEmpty = { arr[it] < 0 }, + equals = { x, y -> x == y }, + fetch = { arr[it] }, + store = { i, x -> arr[i] = x } + ) + +fun box(): String { + putNonNegInt(1) + putNonNegInt(2) + putNonNegInt(3) + + if (arr[0] != 1) return "Fail, ${arr.toList().toString()}" + if (arr[1] != 2) return "Fail, ${arr.toList().toString()}" + if (arr[2] != 3) return "Fail, ${arr.toList().toString()}" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/unsafeRemoving.kt b/backend.native/tests/external/codegen/box/boxingOptimization/unsafeRemoving.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/unsafeRemoving.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/unsafeRemoving.kt diff --git a/backend.native/tests/external/codegen/blackbox/boxingOptimization/variables.kt b/backend.native/tests/external/codegen/box/boxingOptimization/variables.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/boxingOptimization/variables.kt rename to backend.native/tests/external/codegen/box/boxingOptimization/variables.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/complexMultiInheritance.kt b/backend.native/tests/external/codegen/box/bridges/complexMultiInheritance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/complexMultiInheritance.kt rename to backend.native/tests/external/codegen/box/bridges/complexMultiInheritance.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/complexTraitImpl.kt b/backend.native/tests/external/codegen/box/bridges/complexTraitImpl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/complexTraitImpl.kt rename to backend.native/tests/external/codegen/box/bridges/complexTraitImpl.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/delegation.kt b/backend.native/tests/external/codegen/box/bridges/delegation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/delegation.kt rename to backend.native/tests/external/codegen/box/bridges/delegation.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/delegationComplex.kt b/backend.native/tests/external/codegen/box/bridges/delegationComplex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/delegationComplex.kt rename to backend.native/tests/external/codegen/box/bridges/delegationComplex.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/delegationComplexWithList.kt b/backend.native/tests/external/codegen/box/bridges/delegationComplexWithList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/delegationComplexWithList.kt rename to backend.native/tests/external/codegen/box/bridges/delegationComplexWithList.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/delegationProperty.kt b/backend.native/tests/external/codegen/box/bridges/delegationProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/delegationProperty.kt rename to backend.native/tests/external/codegen/box/bridges/delegationProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/diamond.kt b/backend.native/tests/external/codegen/box/bridges/diamond.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/diamond.kt rename to backend.native/tests/external/codegen/box/bridges/diamond.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/fakeCovariantOverride.kt b/backend.native/tests/external/codegen/box/bridges/fakeCovariantOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/fakeCovariantOverride.kt rename to backend.native/tests/external/codegen/box/bridges/fakeCovariantOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/fakeGenericCovariantOverride.kt b/backend.native/tests/external/codegen/box/bridges/fakeGenericCovariantOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/fakeGenericCovariantOverride.kt rename to backend.native/tests/external/codegen/box/bridges/fakeGenericCovariantOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/fakeGenericCovariantOverrideWithDelegation.kt b/backend.native/tests/external/codegen/box/bridges/fakeGenericCovariantOverrideWithDelegation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/fakeGenericCovariantOverrideWithDelegation.kt rename to backend.native/tests/external/codegen/box/bridges/fakeGenericCovariantOverrideWithDelegation.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/fakeOverrideOfTraitImpl.kt b/backend.native/tests/external/codegen/box/bridges/fakeOverrideOfTraitImpl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/fakeOverrideOfTraitImpl.kt rename to backend.native/tests/external/codegen/box/bridges/fakeOverrideOfTraitImpl.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/fakeOverrideWithSeveralSuperDeclarations.kt b/backend.native/tests/external/codegen/box/bridges/fakeOverrideWithSeveralSuperDeclarations.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/fakeOverrideWithSeveralSuperDeclarations.kt rename to backend.native/tests/external/codegen/box/bridges/fakeOverrideWithSeveralSuperDeclarations.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/fakeOverrideWithSynthesizedImplementation.kt b/backend.native/tests/external/codegen/box/bridges/fakeOverrideWithSynthesizedImplementation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/fakeOverrideWithSynthesizedImplementation.kt rename to backend.native/tests/external/codegen/box/bridges/fakeOverrideWithSynthesizedImplementation.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/genericProperty.kt b/backend.native/tests/external/codegen/box/bridges/genericProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/genericProperty.kt rename to backend.native/tests/external/codegen/box/bridges/genericProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/jsName.kt b/backend.native/tests/external/codegen/box/bridges/jsName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/jsName.kt rename to backend.native/tests/external/codegen/box/bridges/jsName.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/jsNative.kt b/backend.native/tests/external/codegen/box/bridges/jsNative.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/jsNative.kt rename to backend.native/tests/external/codegen/box/bridges/jsNative.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt12416.kt b/backend.native/tests/external/codegen/box/bridges/kt12416.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/kt12416.kt rename to backend.native/tests/external/codegen/box/bridges/kt12416.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt1939.kt b/backend.native/tests/external/codegen/box/bridges/kt1939.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/kt1939.kt rename to backend.native/tests/external/codegen/box/bridges/kt1939.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt1959.kt b/backend.native/tests/external/codegen/box/bridges/kt1959.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/bridges/kt1959.kt rename to backend.native/tests/external/codegen/box/bridges/kt1959.kt index d3bd37151f9..e7bfcbaa2c8 100644 --- a/backend.native/tests/external/codegen/blackbox/bridges/kt1959.kt +++ b/backend.native/tests/external/codegen/box/bridges/kt1959.kt @@ -6,7 +6,7 @@ class B(): A() { override fun f(args : Array) {} } -fun foo(args: Array) { +fun main(args: Array) { B() } diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt2498.kt b/backend.native/tests/external/codegen/box/bridges/kt2498.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/kt2498.kt rename to backend.native/tests/external/codegen/box/bridges/kt2498.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt2702.kt b/backend.native/tests/external/codegen/box/bridges/kt2702.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/kt2702.kt rename to backend.native/tests/external/codegen/box/bridges/kt2702.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt2833.kt b/backend.native/tests/external/codegen/box/bridges/kt2833.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/kt2833.kt rename to backend.native/tests/external/codegen/box/bridges/kt2833.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt2920.kt b/backend.native/tests/external/codegen/box/bridges/kt2920.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/kt2920.kt rename to backend.native/tests/external/codegen/box/bridges/kt2920.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/kt318.kt b/backend.native/tests/external/codegen/box/bridges/kt318.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/kt318.kt rename to backend.native/tests/external/codegen/box/bridges/kt318.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/longChainOneBridge.kt b/backend.native/tests/external/codegen/box/bridges/longChainOneBridge.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/longChainOneBridge.kt rename to backend.native/tests/external/codegen/box/bridges/longChainOneBridge.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/manyTypeArgumentsSubstitutedSuccessively.kt b/backend.native/tests/external/codegen/box/bridges/manyTypeArgumentsSubstitutedSuccessively.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/manyTypeArgumentsSubstitutedSuccessively.kt rename to backend.native/tests/external/codegen/box/bridges/manyTypeArgumentsSubstitutedSuccessively.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/methodFromTrait.kt b/backend.native/tests/external/codegen/box/bridges/methodFromTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/methodFromTrait.kt rename to backend.native/tests/external/codegen/box/bridges/methodFromTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/noBridgeOnMutableCollectionInheritance.kt b/backend.native/tests/external/codegen/box/bridges/noBridgeOnMutableCollectionInheritance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/noBridgeOnMutableCollectionInheritance.kt rename to backend.native/tests/external/codegen/box/bridges/noBridgeOnMutableCollectionInheritance.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/objectClone.kt b/backend.native/tests/external/codegen/box/bridges/objectClone.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/objectClone.kt rename to backend.native/tests/external/codegen/box/bridges/objectClone.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/overrideAbstractProperty.kt b/backend.native/tests/external/codegen/box/bridges/overrideAbstractProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/overrideAbstractProperty.kt rename to backend.native/tests/external/codegen/box/bridges/overrideAbstractProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/overrideReturnType.kt b/backend.native/tests/external/codegen/box/bridges/overrideReturnType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/overrideReturnType.kt rename to backend.native/tests/external/codegen/box/bridges/overrideReturnType.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/propertyAccessorsWithoutBody.kt b/backend.native/tests/external/codegen/box/bridges/propertyAccessorsWithoutBody.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/propertyAccessorsWithoutBody.kt rename to backend.native/tests/external/codegen/box/bridges/propertyAccessorsWithoutBody.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/propertyDiamond.kt b/backend.native/tests/external/codegen/box/bridges/propertyDiamond.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/propertyDiamond.kt rename to backend.native/tests/external/codegen/box/bridges/propertyDiamond.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/propertyInConstructor.kt b/backend.native/tests/external/codegen/box/bridges/propertyInConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/propertyInConstructor.kt rename to backend.native/tests/external/codegen/box/bridges/propertyInConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/propertySetter.kt b/backend.native/tests/external/codegen/box/bridges/propertySetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/propertySetter.kt rename to backend.native/tests/external/codegen/box/bridges/propertySetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/simple.kt b/backend.native/tests/external/codegen/box/bridges/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/simple.kt rename to backend.native/tests/external/codegen/box/bridges/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/simpleEnum.kt b/backend.native/tests/external/codegen/box/bridges/simpleEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/simpleEnum.kt rename to backend.native/tests/external/codegen/box/bridges/simpleEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/simpleGenericMethod.kt b/backend.native/tests/external/codegen/box/bridges/simpleGenericMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/simpleGenericMethod.kt rename to backend.native/tests/external/codegen/box/bridges/simpleGenericMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/simpleObject.kt b/backend.native/tests/external/codegen/box/bridges/simpleObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/simpleObject.kt rename to backend.native/tests/external/codegen/box/bridges/simpleObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/simpleReturnType.kt b/backend.native/tests/external/codegen/box/bridges/simpleReturnType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/simpleReturnType.kt rename to backend.native/tests/external/codegen/box/bridges/simpleReturnType.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/simpleTraitImpl.kt b/backend.native/tests/external/codegen/box/bridges/simpleTraitImpl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/simpleTraitImpl.kt rename to backend.native/tests/external/codegen/box/bridges/simpleTraitImpl.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/simpleUpperBound.kt b/backend.native/tests/external/codegen/box/bridges/simpleUpperBound.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/simpleUpperBound.kt rename to backend.native/tests/external/codegen/box/bridges/simpleUpperBound.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/strListContains.kt b/backend.native/tests/external/codegen/box/bridges/strListContains.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/bridges/strListContains.kt rename to backend.native/tests/external/codegen/box/bridges/strListContains.kt index 0d260822554..cd092b0c2a8 100644 --- a/backend.native/tests/external/codegen/blackbox/bridges/strListContains.kt +++ b/backend.native/tests/external/codegen/box/bridges/strListContains.kt @@ -1,3 +1,5 @@ +// IGNORE_BACKEND: NATIVE + class StrList : List { override val size: Int get() = throw UnsupportedOperationException() diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/abstractFun.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/abstractFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/abstractFun.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/abstractFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/boundedTypeArguments.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/boundedTypeArguments.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/boundedTypeArguments.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/boundedTypeArguments.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/delegation.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/delegation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/delegation.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/delegation.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/differentErasureInSuperClass.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/differentErasureInSuperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/differentErasureInSuperClass.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/differentErasureInSuperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/differentErasureInSuperClassComplex.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/differentErasureInSuperClassComplex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/differentErasureInSuperClassComplex.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/differentErasureInSuperClassComplex.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/enum.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/enum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/enum.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/enum.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/genericMethod.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/genericMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/genericMethod.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/genericMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/object.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/object.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/object.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/object.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/property.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/property.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/property.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/property.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/simple.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/simple.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/upperBound.kt b/backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/upperBound.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/substitutionInSuperClass/upperBound.kt rename to backend.native/tests/external/codegen/box/bridges/substitutionInSuperClass/upperBound.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/traitImplInheritsTraitImpl.kt b/backend.native/tests/external/codegen/box/bridges/traitImplInheritsTraitImpl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/traitImplInheritsTraitImpl.kt rename to backend.native/tests/external/codegen/box/bridges/traitImplInheritsTraitImpl.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/twoParentsWithDifferentMethodsTwoBridges.kt b/backend.native/tests/external/codegen/box/bridges/twoParentsWithDifferentMethodsTwoBridges.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/twoParentsWithDifferentMethodsTwoBridges.kt rename to backend.native/tests/external/codegen/box/bridges/twoParentsWithDifferentMethodsTwoBridges.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/twoParentsWithDifferentMethodsTwoBridges2.kt b/backend.native/tests/external/codegen/box/bridges/twoParentsWithDifferentMethodsTwoBridges2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/twoParentsWithDifferentMethodsTwoBridges2.kt rename to backend.native/tests/external/codegen/box/bridges/twoParentsWithDifferentMethodsTwoBridges2.kt diff --git a/backend.native/tests/external/codegen/blackbox/bridges/twoParentsWithTheSameMethodOneBridge.kt b/backend.native/tests/external/codegen/box/bridges/twoParentsWithTheSameMethodOneBridge.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/bridges/twoParentsWithTheSameMethodOneBridge.kt rename to backend.native/tests/external/codegen/box/bridges/twoParentsWithTheSameMethodOneBridge.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/Collection.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/Collection.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/Collection.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/Collection.kt index 26a74d507bc..7cf2ea396f8 100644 --- a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/Collection.kt +++ b/backend.native/tests/external/codegen/box/builtinStubMethods/Collection.kt @@ -31,4 +31,4 @@ fun box(): String { expectUoe { collection.clear() } return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/Iterator.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/Iterator.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/Iterator.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/Iterator.kt index ad0fc09d46c..a02c5eb2741 100644 --- a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/Iterator.kt +++ b/backend.native/tests/external/codegen/box/builtinStubMethods/Iterator.kt @@ -13,4 +13,4 @@ fun box(): String { } catch (e: UnsupportedOperationException) { return "OK" } -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/IteratorWithRemove.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/IteratorWithRemove.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/IteratorWithRemove.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/IteratorWithRemove.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/List.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/List.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/List.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/List.kt index 7674d221a35..b080905285a 100644 --- a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/List.kt +++ b/backend.native/tests/external/codegen/box/builtinStubMethods/List.kt @@ -39,4 +39,4 @@ fun box(): String { expectUoe { list.remove(0) } return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListIterator.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/ListIterator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListIterator.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/ListIterator.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListWithAllImplementations.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/ListWithAllImplementations.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListWithAllImplementations.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/ListWithAllImplementations.kt index 9b6a2d02310..c0fe1108a7d 100644 --- a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListWithAllImplementations.kt +++ b/backend.native/tests/external/codegen/box/builtinStubMethods/ListWithAllImplementations.kt @@ -42,4 +42,4 @@ fun box(): String { list.remove(0) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListWithAllInheritedImplementations.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/ListWithAllInheritedImplementations.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListWithAllInheritedImplementations.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/ListWithAllInheritedImplementations.kt index 0931a43f501..1f7e0ba5468 100644 --- a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/ListWithAllInheritedImplementations.kt +++ b/backend.native/tests/external/codegen/box/builtinStubMethods/ListWithAllInheritedImplementations.kt @@ -44,4 +44,4 @@ fun box(): String { list.remove(0) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/Map.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/Map.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/Map.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/Map.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/MapEntry.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/MapEntry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/MapEntry.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/MapEntry.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/MapEntryWithSetValue.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/MapEntryWithSetValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/MapEntryWithSetValue.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/MapEntryWithSetValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/MapWithAllImplementations.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/MapWithAllImplementations.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/MapWithAllImplementations.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/MapWithAllImplementations.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/SubstitutedList.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/SubstitutedList.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/SubstitutedList.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/SubstitutedList.kt index 6656b7d769b..79208da27c1 100644 --- a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/SubstitutedList.kt +++ b/backend.native/tests/external/codegen/box/builtinStubMethods/SubstitutedList.kt @@ -39,4 +39,4 @@ fun box(): String { expectUoe { list.remove(0) } return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/abstractMember.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/abstractMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/abstractMember.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/abstractMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/customReadOnlyIterator.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/customReadOnlyIterator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/customReadOnlyIterator.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/customReadOnlyIterator.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/delegationToArrayList.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/delegationToArrayList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/delegationToArrayList.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/delegationToArrayList.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/abstractList.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/abstractList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/abstractList.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/abstractList.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/abstractMap.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/abstractMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/abstractMap.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/abstractMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/abstractSet.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/abstractSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/abstractSet.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/abstractSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/arrayList.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/arrayList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/arrayList.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/arrayList.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/hashMap.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/hashMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/hashMap.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/hashMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/hashSet.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/hashSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/hashSet.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/hashSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/mapEntry.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/mapEntry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/extendJavaCollections/mapEntry.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/extendJavaCollections/mapEntry.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/immutableRemove.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/immutableRemove.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/immutableRemove.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/immutableRemove.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/implementationInTrait.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/implementationInTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/implementationInTrait.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/implementationInTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/inheritedImplementations.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/inheritedImplementations.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/inheritedImplementations.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/inheritedImplementations.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/manyTypeParametersWithUpperBounds.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/manyTypeParametersWithUpperBounds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/manyTypeParametersWithUpperBounds.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/manyTypeParametersWithUpperBounds.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/nonTrivialSubstitution.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/nonTrivialSubstitution.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/nonTrivialSubstitution.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/nonTrivialSubstitution.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/nonTrivialUpperBound.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/nonTrivialUpperBound.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/nonTrivialUpperBound.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/nonTrivialUpperBound.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/substitutedIterable.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/substitutedIterable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/substitutedIterable.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/substitutedIterable.kt diff --git a/backend.native/tests/external/codegen/blackbox/builtinStubMethods/substitutedListWithExtraSuperInterface.kt b/backend.native/tests/external/codegen/box/builtinStubMethods/substitutedListWithExtraSuperInterface.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/builtinStubMethods/substitutedListWithExtraSuperInterface.kt rename to backend.native/tests/external/codegen/box/builtinStubMethods/substitutedListWithExtraSuperInterface.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/array.kt b/backend.native/tests/external/codegen/box/callableReference/bound/array.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/array.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/array.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/companionObjectReceiver.kt b/backend.native/tests/external/codegen/box/callableReference/bound/companionObjectReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/companionObjectReceiver.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/companionObjectReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/enumEntryMember.kt b/backend.native/tests/external/codegen/box/callableReference/bound/enumEntryMember.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/enumEntryMember.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/enumEntryMember.kt index b62135e87bb..ce40fb403cf 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/enumEntryMember.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/enumEntryMember.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS enum class E { A, B; diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/nullableReceiverInEquals.kt b/backend.native/tests/external/codegen/box/callableReference/bound/equals/nullableReceiverInEquals.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/nullableReceiverInEquals.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/equals/nullableReceiverInEquals.kt index 1ecf9a29e7e..f3aa01b2ffb 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/nullableReceiverInEquals.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/equals/nullableReceiverInEquals.kt @@ -34,4 +34,4 @@ fun box(): String = nullBar == A_bar -> "Bound extension property ref with receiver 'null' SHOULD NOT be equal to free property ref" else -> "OK" - } \ No newline at end of file + } diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/propertyAccessors.kt b/backend.native/tests/external/codegen/box/callableReference/bound/equals/propertyAccessors.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/propertyAccessors.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/equals/propertyAccessors.kt index 46848672257..523c068304c 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/propertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/equals/propertyAccessors.kt @@ -29,4 +29,4 @@ fun box() = // cProp.setter != C()::prop.setter -> "cProp.setter != C()::prop.setter" else -> "OK" - } \ No newline at end of file + } diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/receiverInEquals.kt b/backend.native/tests/external/codegen/box/callableReference/bound/equals/receiverInEquals.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/receiverInEquals.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/equals/receiverInEquals.kt index 18bc635d01c..fd21eac125b 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/receiverInEquals.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/equals/receiverInEquals.kt @@ -1,5 +1,5 @@ // TODO: investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS package test diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/reflectionReference.kt b/backend.native/tests/external/codegen/box/callableReference/bound/equals/reflectionReference.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/reflectionReference.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/equals/reflectionReference.kt index bd6ca854d2c..629d652a499 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/equals/reflectionReference.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/equals/reflectionReference.kt @@ -32,4 +32,4 @@ fun box(): String = C_barReflect == cBar -> "C_barReflect == cBar, ${C_barReflect.className}" cBar == C_barReflect -> "cBar == C_barReflect, ${cBar.className}" else -> "OK" - } \ No newline at end of file + } diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/inline/simple.kt b/backend.native/tests/external/codegen/box/callableReference/bound/inline/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/inline/simple.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/inline/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/inline/simpleVal.kt b/backend.native/tests/external/codegen/box/callableReference/bound/inline/simpleVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/inline/simpleVal.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/inline/simpleVal.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/kCallableNameIntrinsic.kt b/backend.native/tests/external/codegen/box/callableReference/bound/kCallableNameIntrinsic.kt similarity index 66% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/kCallableNameIntrinsic.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/kCallableNameIntrinsic.kt index a289ba275c4..f03245fd2f5 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/kCallableNameIntrinsic.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/kCallableNameIntrinsic.kt @@ -1,5 +1,3 @@ -// Enable when callable references to builtin members is supported -// IGNORE_BACKEND: JS, NATIVE fun box(): String { var state = 0 val name = (state++)::toString.name diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/kt12738.kt b/backend.native/tests/external/codegen/box/callableReference/bound/kt12738.kt similarity index 63% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/kt12738.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/kt12738.kt index fa76e62abbb..4d0e0c85c47 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/kt12738.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/kt12738.kt @@ -1,5 +1,3 @@ -// Enable when callable references to builtin members is supported -// IGNORE_BACKEND: JS, NATIVE fun get(t: T): () -> String { return t::toString } diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/kt15446.kt b/backend.native/tests/external/codegen/box/callableReference/bound/kt15446.kt similarity index 88% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/kt15446.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/kt15446.kt index e0c0f55139f..8270b90eb95 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/kt15446.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/kt15446.kt @@ -1,5 +1,4 @@ //WITH_RUNTIME -// IGNORE_BACKEND: JS, NATIVE fun box(): String { val a = intArrayOf(1, 2) val b = arrayOf("OK") diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/multiCase.kt b/backend.native/tests/external/codegen/box/callableReference/bound/multiCase.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/multiCase.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/multiCase.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/nullReceiver.kt b/backend.native/tests/external/codegen/box/callableReference/bound/nullReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/nullReceiver.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/nullReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/objectReceiver.kt b/backend.native/tests/external/codegen/box/callableReference/bound/objectReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/objectReceiver.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/objectReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/primitiveReceiver.kt b/backend.native/tests/external/codegen/box/callableReference/bound/primitiveReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/primitiveReceiver.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/primitiveReceiver.kt diff --git a/backend.native/tests/external/codegen/box/callableReference/bound/simpleFunction.kt b/backend.native/tests/external/codegen/box/callableReference/bound/simpleFunction.kt new file mode 100644 index 00000000000..15fae151f5f --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/bound/simpleFunction.kt @@ -0,0 +1,4 @@ +fun box(): String { + val f = "KOTLIN"::get + return "${f(1)}${f(0)}" +} diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/simpleProperty.kt b/backend.native/tests/external/codegen/box/callableReference/bound/simpleProperty.kt similarity index 56% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/simpleProperty.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/simpleProperty.kt index 8da5393394f..c271b1c6418 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/bound/simpleProperty.kt +++ b/backend.native/tests/external/codegen/box/callableReference/bound/simpleProperty.kt @@ -1,6 +1,3 @@ -// Enable when callable references to builtin members are supported. -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { val f = "kotlin"::length val result = f.get() diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/bound/syntheticExtensionOnLHS.kt b/backend.native/tests/external/codegen/box/callableReference/bound/syntheticExtensionOnLHS.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/bound/syntheticExtensionOnLHS.kt rename to backend.native/tests/external/codegen/box/callableReference/bound/syntheticExtensionOnLHS.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/abstractClassMember.kt b/backend.native/tests/external/codegen/box/callableReference/function/abstractClassMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/abstractClassMember.kt rename to backend.native/tests/external/codegen/box/callableReference/function/abstractClassMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/booleanNotIntrinsic.kt b/backend.native/tests/external/codegen/box/callableReference/function/booleanNotIntrinsic.kt similarity index 58% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/booleanNotIntrinsic.kt rename to backend.native/tests/external/codegen/box/callableReference/function/booleanNotIntrinsic.kt index 09937cd3c5f..213c8d88996 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/function/booleanNotIntrinsic.kt +++ b/backend.native/tests/external/codegen/box/callableReference/function/booleanNotIntrinsic.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { if ((Boolean::not)(true) != false) return "Fail 1" if ((Boolean::not)(false) != true) return "Fail 2" diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromClass.kt b/backend.native/tests/external/codegen/box/callableReference/function/classMemberFromClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromClass.kt rename to backend.native/tests/external/codegen/box/callableReference/function/classMemberFromClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromExtension.kt b/backend.native/tests/external/codegen/box/callableReference/function/classMemberFromExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromExtension.kt rename to backend.native/tests/external/codegen/box/callableReference/function/classMemberFromExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelStringNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelStringNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelStringNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelStringNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelStringOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelStringOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelStringOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelStringOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelUnitNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelUnitNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelUnitNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelUnitNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelUnitOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelUnitOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/classMemberFromTopLevelUnitOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/classMemberFromTopLevelUnitOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/constructorFromTopLevelNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/constructorFromTopLevelNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/constructorFromTopLevelNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/constructorFromTopLevelNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/constructorFromTopLevelOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/constructorFromTopLevelOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/constructorFromTopLevelOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/constructorFromTopLevelOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/enumValueOfMethod.kt b/backend.native/tests/external/codegen/box/callableReference/function/enumValueOfMethod.kt similarity index 60% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/enumValueOfMethod.kt rename to backend.native/tests/external/codegen/box/callableReference/function/enumValueOfMethod.kt index b2f09fae21b..21a53adfff3 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/function/enumValueOfMethod.kt +++ b/backend.native/tests/external/codegen/box/callableReference/function/enumValueOfMethod.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - enum class E { ENTRY } diff --git a/backend.native/tests/external/codegen/box/callableReference/function/equalsIntrinsic.kt b/backend.native/tests/external/codegen/box/callableReference/function/equalsIntrinsic.kt new file mode 100644 index 00000000000..c83a188802d --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/function/equalsIntrinsic.kt @@ -0,0 +1,3 @@ +class A + +fun box() = if ((A::equals)(A(), A())) "Fail" else "OK" diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromClass.kt b/backend.native/tests/external/codegen/box/callableReference/function/extensionFromClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromClass.kt rename to backend.native/tests/external/codegen/box/callableReference/function/extensionFromClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromExtension.kt b/backend.native/tests/external/codegen/box/callableReference/function/extensionFromExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromExtension.kt rename to backend.native/tests/external/codegen/box/callableReference/function/extensionFromExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelStringNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelStringNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelStringNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelStringNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelStringOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelStringOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelStringOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelStringOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelUnitNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelUnitNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelUnitNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelUnitNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelUnitOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelUnitOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/extensionFromTopLevelUnitOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/extensionFromTopLevelUnitOneStringArg.kt diff --git a/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferenceArguments.kt b/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferenceArguments.kt new file mode 100644 index 00000000000..e6d290e4bbc --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferenceArguments.kt @@ -0,0 +1,29 @@ +// IGNORE_BACKEND: JS, NATIVE + +// WITH_RUNTIME +// WITH_REFLECT + +import kotlin.test.assertEquals + +fun foo(x: T): R = TODO() +fun fooReturnInt(x: T): Int = 1 + +inline fun check(x: T, y: R, f: (T) -> R, tType: String, rType: String) { + assertEquals(tType, T::class.simpleName) + assertEquals(rType, R::class.simpleName) +} + +inline fun check(f: (T) -> R, g: (T) -> R, tType: String, rType: String) { + assertEquals(tType, T::class.simpleName) + assertEquals(rType, R::class.simpleName) +} + +fun box(): String { + check("", 1, ::foo, "String", "Int") + check("", 1, ::fooReturnInt, "String", "Int") + check("", "", ::fooReturnInt, "String", "Any") + + check(Int::toString, ::foo, "Int", "String") + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt b/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt new file mode 100644 index 00000000000..f8a21cee800 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt @@ -0,0 +1,30 @@ +// IGNORE_BACKEND: JS, NATIVE + +// WITH_RUNTIME +// WITH_REFLECT + +import kotlin.test.assertEquals + +fun foo(x: T): R = TODO() + +inline fun bar(x: T, y: R, f: (T) -> R, tType: String, rType: String): Pair { + assertEquals(tType, T::class.simpleName) + assertEquals(rType, R::class.simpleName) + return Pair(x, y) +} + +data class Pair(val a: A, val b: B) + +fun box(): String { + bar(1, "", ::foo, "Int", "String") + + val s1: Pair = bar(1, "", ::foo, "Int", "String") + val (a: Int, b: String?) = bar(1, "", ::foo, "Int", "String") + + val ns: String? = null + bar(ns, ns, ::foo, "String", "String") + + val s2: Pair = bar(null, null, ::foo, "Int", "String") + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt b/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt new file mode 100644 index 00000000000..5cfd4013edc --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt @@ -0,0 +1,23 @@ +// IGNORE_BACKEND: JS, NATIVE + +// WITH_RUNTIME +// WITH_REFLECT + +import kotlin.test.assertEquals + +fun foo(x: Int?) {} +fun foo(y: String?) {} +fun foo(z: Boolean) {} + +inline fun bar(f: (T) -> Unit, tType: String): T? { + assertEquals(tType, T::class.simpleName) + return null +} + +fun box(): String { + val a1: Int? = bar(::foo, "Int") + val a2: String? = bar(::foo, "String") + val a3: Boolean? = bar(::foo, "Boolean") + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/genericMember.kt b/backend.native/tests/external/codegen/box/callableReference/function/genericMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/genericMember.kt rename to backend.native/tests/external/codegen/box/callableReference/function/genericMember.kt diff --git a/backend.native/tests/external/codegen/box/callableReference/function/genericWithDependentType.kt b/backend.native/tests/external/codegen/box/callableReference/function/genericWithDependentType.kt new file mode 100644 index 00000000000..79959ec1436 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/function/genericWithDependentType.kt @@ -0,0 +1,8 @@ +// WITH_RUNTIME + +class Wrapper(val value: T) + +fun box(): String { + val ls = listOf("OK").map(::Wrapper) + return ls[0].value +} diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/getArityViaFunctionImpl.kt b/backend.native/tests/external/codegen/box/callableReference/function/getArityViaFunctionImpl.kt similarity index 85% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/getArityViaFunctionImpl.kt rename to backend.native/tests/external/codegen/box/callableReference/function/getArityViaFunctionImpl.kt index eb0d1f31f6f..775e4a848fb 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/function/getArityViaFunctionImpl.kt +++ b/backend.native/tests/external/codegen/box/callableReference/function/getArityViaFunctionImpl.kt @@ -4,10 +4,10 @@ // WITH_RUNTIME import kotlin.test.assertEquals -import kotlin.jvm.internal.FunctionImpl +import kotlin.jvm.internal.FunctionBase fun test(f: Function<*>, arity: Int) { - assertEquals(arity, (f as FunctionImpl).getArity()) + assertEquals(arity, (f as FunctionBase).getArity()) } fun foo(s: String, i: Int) {} diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromClass.kt b/backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromClass.kt rename to backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromExtension.kt b/backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromExtension.kt rename to backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromTopLevelNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromTopLevelNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromTopLevelNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromTopLevelNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromTopLevelOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromTopLevelOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/innerConstructorFromTopLevelOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/innerConstructorFromTopLevelOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/javaCollectionsStaticMethod.kt b/backend.native/tests/external/codegen/box/callableReference/function/javaCollectionsStaticMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/javaCollectionsStaticMethod.kt rename to backend.native/tests/external/codegen/box/callableReference/function/javaCollectionsStaticMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/captureOuter.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/captureOuter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/captureOuter.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/captureOuter.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/classMember.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/classMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/classMember.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/classMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/closureWithSideEffect.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/closureWithSideEffect.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/closureWithSideEffect.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/closureWithSideEffect.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/constructor.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/constructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/constructor.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/constructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/constructorWithInitializer.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/constructorWithInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/constructorWithInitializer.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/constructorWithInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/enumExtendsTrait.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/enumExtendsTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/enumExtendsTrait.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/enumExtendsTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/extension.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/extension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/extension.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/extension.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/extensionToLocalClass.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/extensionToLocalClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/extensionToLocalClass.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/extensionToLocalClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/extensionToPrimitive.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/extensionToPrimitive.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/extensionToPrimitive.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/extensionToPrimitive.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/extensionWithClosure.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/extensionWithClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/extensionWithClosure.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/extensionWithClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/genericMember.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/genericMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/genericMember.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/genericMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/localClassMember.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/localClassMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/localClassMember.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/localClassMember.kt diff --git a/backend.native/tests/external/codegen/box/callableReference/function/local/localFunctionName.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/localFunctionName.kt new file mode 100644 index 00000000000..361ba4c3ce3 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/function/local/localFunctionName.kt @@ -0,0 +1,5 @@ +fun box(): String { + fun OK() {} + + return ::OK.name +} diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/localLocal.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/localLocal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/localLocal.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/localLocal.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/recursiveClosure.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/recursiveClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/recursiveClosure.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/recursiveClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/simple.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/simple.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/simpleClosure.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/simpleClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/simpleClosure.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/simpleClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/simpleWithArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/simpleWithArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/simpleWithArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/simpleWithArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/local/unitWithSideEffect.kt b/backend.native/tests/external/codegen/box/callableReference/function/local/unitWithSideEffect.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/local/unitWithSideEffect.kt rename to backend.native/tests/external/codegen/box/callableReference/function/local/unitWithSideEffect.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/nestedConstructorFromClass.kt b/backend.native/tests/external/codegen/box/callableReference/function/nestedConstructorFromClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/nestedConstructorFromClass.kt rename to backend.native/tests/external/codegen/box/callableReference/function/nestedConstructorFromClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/nestedConstructorFromTopLevelNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/nestedConstructorFromTopLevelNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/nestedConstructorFromTopLevelNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/nestedConstructorFromTopLevelNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/nestedConstructorFromTopLevelOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/nestedConstructorFromTopLevelOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/nestedConstructorFromTopLevelOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/nestedConstructorFromTopLevelOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/newArray.kt b/backend.native/tests/external/codegen/box/callableReference/function/newArray.kt similarity index 80% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/newArray.kt rename to backend.native/tests/external/codegen/box/callableReference/function/newArray.kt index f1666e82235..b27d4e68ac9 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/function/newArray.kt +++ b/backend.native/tests/external/codegen/box/callableReference/function/newArray.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - private fun upcast(value: T): T = value fun box(): String { diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/overloadedFun.kt b/backend.native/tests/external/codegen/box/callableReference/function/overloadedFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/overloadedFun.kt rename to backend.native/tests/external/codegen/box/callableReference/function/overloadedFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/overloadedFunVsVal.kt b/backend.native/tests/external/codegen/box/callableReference/function/overloadedFunVsVal.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/overloadedFunVsVal.kt rename to backend.native/tests/external/codegen/box/callableReference/function/overloadedFunVsVal.kt index c5a99e074bd..5dec6776f45 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/function/overloadedFunVsVal.kt +++ b/backend.native/tests/external/codegen/box/callableReference/function/overloadedFunVsVal.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS import kotlin.reflect.* diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/privateClassMember.kt b/backend.native/tests/external/codegen/box/callableReference/function/privateClassMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/privateClassMember.kt rename to backend.native/tests/external/codegen/box/callableReference/function/privateClassMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/sortListOfStrings.kt b/backend.native/tests/external/codegen/box/callableReference/function/sortListOfStrings.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/sortListOfStrings.kt rename to backend.native/tests/external/codegen/box/callableReference/function/sortListOfStrings.kt diff --git a/backend.native/tests/external/codegen/box/callableReference/function/specialCalls.kt b/backend.native/tests/external/codegen/box/callableReference/function/specialCalls.kt new file mode 100644 index 00000000000..bfebd392d74 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/function/specialCalls.kt @@ -0,0 +1,29 @@ +fun baz(i: Int) = i +fun bar(x: T): T = x + +fun nullableFun(): ((Int) -> Int)? = null + +fun box(): String { + val x1: (Int) -> Int = bar(if (true) ::baz else ::baz) + val x2: (Int) -> Int = bar(nullableFun() ?: ::baz) + val x3: (Int) -> Int = bar(::baz ?: ::baz) + + val i = 0 + val x4: (Int) -> Int = bar(when (i) { + 10 -> ::baz + 20 -> ::baz + else -> ::baz + }) + + val x5: (Int) -> Int = bar(::baz!!) + + if (x1(1) != 1) return "fail 1" + if (x2(1) != 1) return "fail 2" + if (x3(1) != 1) return "fail 3" + if (x4(1) != 1) return "fail 4" + if (x5(1) != 1) return "fail 5" + + if ((if (true) ::baz else ::baz)(1) != 1) return "fail 6" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromClass.kt b/backend.native/tests/external/codegen/box/callableReference/function/topLevelFromClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromClass.kt rename to backend.native/tests/external/codegen/box/callableReference/function/topLevelFromClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromExtension.kt b/backend.native/tests/external/codegen/box/callableReference/function/topLevelFromExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromExtension.kt rename to backend.native/tests/external/codegen/box/callableReference/function/topLevelFromExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelStringNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelStringNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelStringNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelStringNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelStringOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelStringOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelStringOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelStringOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelUnitNoArgs.kt b/backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelUnitNoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelUnitNoArgs.kt rename to backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelUnitNoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelUnitOneStringArg.kt b/backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelUnitOneStringArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/topLevelFromTopLevelUnitOneStringArg.kt rename to backend.native/tests/external/codegen/box/callableReference/function/topLevelFromTopLevelUnitOneStringArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/traitImplMethodWithClassReceiver.kt b/backend.native/tests/external/codegen/box/callableReference/function/traitImplMethodWithClassReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/traitImplMethodWithClassReceiver.kt rename to backend.native/tests/external/codegen/box/callableReference/function/traitImplMethodWithClassReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/function/traitMember.kt b/backend.native/tests/external/codegen/box/callableReference/function/traitMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/function/traitMember.kt rename to backend.native/tests/external/codegen/box/callableReference/function/traitMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/accessViaSubclass.kt b/backend.native/tests/external/codegen/box/callableReference/property/accessViaSubclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/accessViaSubclass.kt rename to backend.native/tests/external/codegen/box/callableReference/property/accessViaSubclass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/delegated.kt b/backend.native/tests/external/codegen/box/callableReference/property/delegated.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/delegated.kt rename to backend.native/tests/external/codegen/box/callableReference/property/delegated.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/delegatedMutable.kt b/backend.native/tests/external/codegen/box/callableReference/property/delegatedMutable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/delegatedMutable.kt rename to backend.native/tests/external/codegen/box/callableReference/property/delegatedMutable.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/enumNameOrdinal.kt b/backend.native/tests/external/codegen/box/callableReference/property/enumNameOrdinal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/enumNameOrdinal.kt rename to backend.native/tests/external/codegen/box/callableReference/property/enumNameOrdinal.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/extensionToArray.kt b/backend.native/tests/external/codegen/box/callableReference/property/extensionToArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/extensionToArray.kt rename to backend.native/tests/external/codegen/box/callableReference/property/extensionToArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/genericProperty.kt b/backend.native/tests/external/codegen/box/callableReference/property/genericProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/genericProperty.kt rename to backend.native/tests/external/codegen/box/callableReference/property/genericProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/invokePropertyReference.kt b/backend.native/tests/external/codegen/box/callableReference/property/invokePropertyReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/invokePropertyReference.kt rename to backend.native/tests/external/codegen/box/callableReference/property/invokePropertyReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/javaBeanConvention.kt b/backend.native/tests/external/codegen/box/callableReference/property/javaBeanConvention.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/javaBeanConvention.kt rename to backend.native/tests/external/codegen/box/callableReference/property/javaBeanConvention.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/kClassInstanceIsInitializedFirst.kt b/backend.native/tests/external/codegen/box/callableReference/property/kClassInstanceIsInitializedFirst.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/kClassInstanceIsInitializedFirst.kt rename to backend.native/tests/external/codegen/box/callableReference/property/kClassInstanceIsInitializedFirst.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/kt12044.kt b/backend.native/tests/external/codegen/box/callableReference/property/kt12044.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/kt12044.kt rename to backend.native/tests/external/codegen/box/callableReference/property/kt12044.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/kt12982_protectedPropertyReference.kt b/backend.native/tests/external/codegen/box/callableReference/property/kt12982_protectedPropertyReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/kt12982_protectedPropertyReference.kt rename to backend.native/tests/external/codegen/box/callableReference/property/kt12982_protectedPropertyReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/kt14330.kt b/backend.native/tests/external/codegen/box/callableReference/property/kt14330.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/kt14330.kt rename to backend.native/tests/external/codegen/box/callableReference/property/kt14330.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/kt14330_2.kt b/backend.native/tests/external/codegen/box/callableReference/property/kt14330_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/kt14330_2.kt rename to backend.native/tests/external/codegen/box/callableReference/property/kt14330_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/kt15447.kt b/backend.native/tests/external/codegen/box/callableReference/property/kt15447.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/kt15447.kt rename to backend.native/tests/external/codegen/box/callableReference/property/kt15447.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/kt6870_privatePropertyReference.kt b/backend.native/tests/external/codegen/box/callableReference/property/kt6870_privatePropertyReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/kt6870_privatePropertyReference.kt rename to backend.native/tests/external/codegen/box/callableReference/property/kt6870_privatePropertyReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/listOfStringsMapLength.kt b/backend.native/tests/external/codegen/box/callableReference/property/listOfStringsMapLength.kt similarity index 55% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/listOfStringsMapLength.kt rename to backend.native/tests/external/codegen/box/callableReference/property/listOfStringsMapLength.kt index c7c78a24c9e..1a035732ad3 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/property/listOfStringsMapLength.kt +++ b/backend.native/tests/external/codegen/box/callableReference/property/listOfStringsMapLength.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - // WITH_RUNTIME fun box(): String = diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/localClassVar.kt b/backend.native/tests/external/codegen/box/callableReference/property/localClassVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/localClassVar.kt rename to backend.native/tests/external/codegen/box/callableReference/property/localClassVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/overriddenInSubclass.kt b/backend.native/tests/external/codegen/box/callableReference/property/overriddenInSubclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/overriddenInSubclass.kt rename to backend.native/tests/external/codegen/box/callableReference/property/overriddenInSubclass.kt diff --git a/backend.native/tests/external/codegen/box/callableReference/property/privateSetOuterClass.kt b/backend.native/tests/external/codegen/box/callableReference/property/privateSetOuterClass.kt new file mode 100644 index 00000000000..632b3d49dc5 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/property/privateSetOuterClass.kt @@ -0,0 +1,31 @@ +class A { + var value: String = "fail1" + private set + + inner class B { + fun foo(): kotlin.reflect.KMutableProperty0 = this@A::value + } +} + +class C { + var value: String = "fail2" + private set + + fun bar(): kotlin.reflect.KMutableProperty0 { + class D { + fun foo(): kotlin.reflect.KMutableProperty0 = this@C::value + } + + return D().foo() + } +} + +fun box(): String { + val a = A() + a.B().foo().set("O") + + val c = C() + c.bar().set("K") + + return a.value + c.value +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/privateSetterInsideClass.kt b/backend.native/tests/external/codegen/box/callableReference/property/privateSetterInsideClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/privateSetterInsideClass.kt rename to backend.native/tests/external/codegen/box/callableReference/property/privateSetterInsideClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/privateSetterOutsideClass.kt b/backend.native/tests/external/codegen/box/callableReference/property/privateSetterOutsideClass.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/privateSetterOutsideClass.kt rename to backend.native/tests/external/codegen/box/callableReference/property/privateSetterOutsideClass.kt index 39ea508e9ba..3c8b5f8de62 100644 --- a/backend.native/tests/external/codegen/blackbox/callableReference/property/privateSetterOutsideClass.kt +++ b/backend.native/tests/external/codegen/box/callableReference/property/privateSetterOutsideClass.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - // See KT-12337 Reference to property with invisible setter should not be a KMutableProperty import kotlin.reflect.KProperty1 diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/simpleExtension.kt b/backend.native/tests/external/codegen/box/callableReference/property/simpleExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/simpleExtension.kt rename to backend.native/tests/external/codegen/box/callableReference/property/simpleExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMember.kt b/backend.native/tests/external/codegen/box/callableReference/property/simpleMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMember.kt rename to backend.native/tests/external/codegen/box/callableReference/property/simpleMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMutableExtension.kt b/backend.native/tests/external/codegen/box/callableReference/property/simpleMutableExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMutableExtension.kt rename to backend.native/tests/external/codegen/box/callableReference/property/simpleMutableExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMutableMember.kt b/backend.native/tests/external/codegen/box/callableReference/property/simpleMutableMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMutableMember.kt rename to backend.native/tests/external/codegen/box/callableReference/property/simpleMutableMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMutableTopLevel.kt b/backend.native/tests/external/codegen/box/callableReference/property/simpleMutableTopLevel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/simpleMutableTopLevel.kt rename to backend.native/tests/external/codegen/box/callableReference/property/simpleMutableTopLevel.kt diff --git a/backend.native/tests/external/codegen/blackbox/callableReference/property/simpleTopLevel.kt b/backend.native/tests/external/codegen/box/callableReference/property/simpleTopLevel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/callableReference/property/simpleTopLevel.kt rename to backend.native/tests/external/codegen/box/callableReference/property/simpleTopLevel.kt diff --git a/backend.native/tests/external/codegen/box/callableReference/serializability/boundWithNotSerializableReceiver.kt b/backend.native/tests/external/codegen/box/callableReference/serializability/boundWithNotSerializableReceiver.kt new file mode 100644 index 00000000000..7ba39313db5 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/serializability/boundWithNotSerializableReceiver.kt @@ -0,0 +1,19 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT +// FULL_JDK + +import java.io.* +import kotlin.test.* + +class Foo(val value: String) + +fun box(): String { + val oos = ObjectOutputStream(ByteArrayOutputStream()) + try { + oos.writeObject(Foo("abacaba")::value) + return "Fail: Foo is not Serializable and thus writeObject should have thrown an exception" + } + catch (e: NotSerializableException) { + return "OK" + } +} diff --git a/backend.native/tests/external/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt b/backend.native/tests/external/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt new file mode 100644 index 00000000000..9a5f6260e03 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/serializability/boundWithSerializableReceiver.kt @@ -0,0 +1,21 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import java.io.* +import kotlin.test.* + +data class Foo(val value: String) : Serializable + +fun box(): String { + val baos = ByteArrayOutputStream() + val oos = ObjectOutputStream(baos) + oos.writeObject(Foo("abacaba")::value) + oos.close() + + val bais = ByteArrayInputStream(baos.toByteArray()) + val ois = ObjectInputStream(bais) + assertEquals(Foo("abacaba")::value, ois.readObject()) + ois.close() + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/callableReference/serializability/noReflect.kt b/backend.native/tests/external/codegen/box/callableReference/serializability/noReflect.kt new file mode 100644 index 00000000000..92421e2ed66 --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/serializability/noReflect.kt @@ -0,0 +1,27 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_RUNTIME + +import java.io.* +import kotlin.test.* + +class Foo(val prop: String) { + fun method() {} +} + +fun box(): String { + val baos = ByteArrayOutputStream() + val oos = ObjectOutputStream(baos) + oos.writeObject(Foo::prop) + oos.writeObject(Foo::method) + oos.writeObject(::Foo) + oos.close() + + val bais = ByteArrayInputStream(baos.toByteArray()) + val ois = ObjectInputStream(bais) + assertEquals(Foo::prop, ois.readObject()) + assertEquals(Foo::method, ois.readObject()) + assertEquals(::Foo, ois.readObject()) + ois.close() + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/callableReference/serializability/reflectedIsNotSerialized.kt b/backend.native/tests/external/codegen/box/callableReference/serializability/reflectedIsNotSerialized.kt new file mode 100644 index 00000000000..9e6f7ce011e --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/serializability/reflectedIsNotSerialized.kt @@ -0,0 +1,25 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import java.io.* +import kotlin.test.* + +fun bar() {} + +fun box(): String { + val baos = ByteArrayOutputStream() + val oos = ObjectOutputStream(baos) + oos.writeObject(::bar) + oos.close() + + val bais = ByteArrayInputStream(baos.toByteArray()) + val ois = ObjectInputStream(bais) + val o = ois.readObject() + ois.close() + + // Test that we don't serialize the reflected view of the reference: it's not needed because it can be restored at runtime + val field = kotlin.jvm.internal.CallableReference::class.java.getDeclaredField("reflected").apply { isAccessible = true } + assertNull(field.get(o)) + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/callableReference/serializability/withReflect.kt b/backend.native/tests/external/codegen/box/callableReference/serializability/withReflect.kt new file mode 100644 index 00000000000..0ba69e1e44b --- /dev/null +++ b/backend.native/tests/external/codegen/box/callableReference/serializability/withReflect.kt @@ -0,0 +1,27 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import java.io.* +import kotlin.test.* + +class Foo(val prop: String) { + fun method() {} +} + +fun box(): String { + val baos = ByteArrayOutputStream() + val oos = ObjectOutputStream(baos) + oos.writeObject(Foo::prop) + oos.writeObject(Foo::method) + oos.writeObject(::Foo) + oos.close() + + val bais = ByteArrayInputStream(baos.toByteArray()) + val ois = ObjectInputStream(bais) + assertEquals(Foo::prop, ois.readObject()) + assertEquals(Foo::method, ois.readObject()) + assertEquals(::Foo, ois.readObject()) + ois.close() + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/casts/as.kt b/backend.native/tests/external/codegen/box/casts/as.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/as.kt rename to backend.native/tests/external/codegen/box/casts/as.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/asForConstants.kt b/backend.native/tests/external/codegen/box/casts/asForConstants.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/casts/asForConstants.kt rename to backend.native/tests/external/codegen/box/casts/asForConstants.kt index 4d0c62414d8..43aa798276f 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/asForConstants.kt +++ b/backend.native/tests/external/codegen/box/casts/asForConstants.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { if (check(1, { it as Int }) == "OK") return "fail 1" diff --git a/backend.native/tests/external/codegen/blackbox/casts/asSafe.kt b/backend.native/tests/external/codegen/box/casts/asSafe.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/asSafe.kt rename to backend.native/tests/external/codegen/box/casts/asSafe.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/asSafeFail.kt b/backend.native/tests/external/codegen/box/casts/asSafeFail.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/asSafeFail.kt rename to backend.native/tests/external/codegen/box/casts/asSafeFail.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/asSafeForConstants.kt b/backend.native/tests/external/codegen/box/casts/asSafeForConstants.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/casts/asSafeForConstants.kt rename to backend.native/tests/external/codegen/box/casts/asSafeForConstants.kt index bc7a063340f..be3fbff1dc4 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/asSafeForConstants.kt +++ b/backend.native/tests/external/codegen/box/casts/asSafeForConstants.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { if ((1 as? Int) == null) return "fail 1" diff --git a/backend.native/tests/external/codegen/blackbox/casts/asUnit.kt b/backend.native/tests/external/codegen/box/casts/asUnit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/asUnit.kt rename to backend.native/tests/external/codegen/box/casts/asUnit.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/asWithGeneric.kt b/backend.native/tests/external/codegen/box/casts/asWithGeneric.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/casts/asWithGeneric.kt rename to backend.native/tests/external/codegen/box/casts/asWithGeneric.kt index b8d44d6a517..9760295a6dc 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/asWithGeneric.kt +++ b/backend.native/tests/external/codegen/box/casts/asWithGeneric.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/casts/castGenericNull.kt b/backend.native/tests/external/codegen/box/casts/castGenericNull.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/castGenericNull.kt rename to backend.native/tests/external/codegen/box/casts/castGenericNull.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/asFunKBig.kt b/backend.native/tests/external/codegen/box/casts/functions/asFunKBig.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/functions/asFunKBig.kt rename to backend.native/tests/external/codegen/box/casts/functions/asFunKBig.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/asFunKSmall.kt b/backend.native/tests/external/codegen/box/casts/functions/asFunKSmall.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/functions/asFunKSmall.kt rename to backend.native/tests/external/codegen/box/casts/functions/asFunKSmall.kt index c4632210b28..790c04b9642 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/asFunKSmall.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/asFunKSmall.kt @@ -44,4 +44,4 @@ fun box(): String { return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/isFunKBig.kt b/backend.native/tests/external/codegen/box/casts/functions/isFunKBig.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/functions/isFunKBig.kt rename to backend.native/tests/external/codegen/box/casts/functions/isFunKBig.kt index 35d1bfe131e..1985402f6bc 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/isFunKBig.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/isFunKBig.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME // This is a big, ugly, semi-auto generated test. diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/isFunKSmall.kt b/backend.native/tests/external/codegen/box/casts/functions/isFunKSmall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/functions/isFunKSmall.kt rename to backend.native/tests/external/codegen/box/casts/functions/isFunKSmall.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/javaTypeIsFunK.kt b/backend.native/tests/external/codegen/box/casts/functions/javaTypeIsFunK.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/functions/javaTypeIsFunK.kt rename to backend.native/tests/external/codegen/box/casts/functions/javaTypeIsFunK.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedAsFunKBig.kt b/backend.native/tests/external/codegen/box/casts/functions/reifiedAsFunKBig.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/functions/reifiedAsFunKBig.kt rename to backend.native/tests/external/codegen/box/casts/functions/reifiedAsFunKBig.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedAsFunKSmall.kt b/backend.native/tests/external/codegen/box/casts/functions/reifiedAsFunKSmall.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/functions/reifiedAsFunKSmall.kt rename to backend.native/tests/external/codegen/box/casts/functions/reifiedAsFunKSmall.kt index 217b36c6597..9c0e6f4c256 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedAsFunKSmall.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/reifiedAsFunKSmall.kt @@ -36,4 +36,4 @@ fun box(): String { reifiedAsSucceeds>(f1, "f1 as Function1<*, *>") return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedIsFunKBig.kt b/backend.native/tests/external/codegen/box/casts/functions/reifiedIsFunKBig.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/functions/reifiedIsFunKBig.kt rename to backend.native/tests/external/codegen/box/casts/functions/reifiedIsFunKBig.kt index 369c215ffa5..40bc0a05f1f 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedIsFunKBig.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/reifiedIsFunKBig.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME // This is a big, ugly, semi-auto generated test. diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedIsFunKSmall.kt b/backend.native/tests/external/codegen/box/casts/functions/reifiedIsFunKSmall.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/casts/functions/reifiedIsFunKSmall.kt rename to backend.native/tests/external/codegen/box/casts/functions/reifiedIsFunKSmall.kt index 0850527e1c6..71436394ae7 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedIsFunKSmall.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/reifiedIsFunKSmall.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedSafeAsFunKBig.kt b/backend.native/tests/external/codegen/box/casts/functions/reifiedSafeAsFunKBig.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/functions/reifiedSafeAsFunKBig.kt rename to backend.native/tests/external/codegen/box/casts/functions/reifiedSafeAsFunKBig.kt index a4664ba6126..a5844221cb4 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedSafeAsFunKBig.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/reifiedSafeAsFunKBig.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // This is a big, ugly, semi-auto generated test. // Use corresponding 'Small' test for debug. diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedSafeAsFunKSmall.kt b/backend.native/tests/external/codegen/box/casts/functions/reifiedSafeAsFunKSmall.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/casts/functions/reifiedSafeAsFunKSmall.kt rename to backend.native/tests/external/codegen/box/casts/functions/reifiedSafeAsFunKSmall.kt index 5ba0c0d6b2c..a3d4c0fcb27 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/reifiedSafeAsFunKSmall.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/reifiedSafeAsFunKSmall.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun fn0() {} fun fn1(x: Any) {} diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/safeAsFunKBig.kt b/backend.native/tests/external/codegen/box/casts/functions/safeAsFunKBig.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/functions/safeAsFunKBig.kt rename to backend.native/tests/external/codegen/box/casts/functions/safeAsFunKBig.kt index 3bcde42c159..4cbc23a639d 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/safeAsFunKBig.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/safeAsFunKBig.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME // This is a big, ugly, semi-auto generated test. diff --git a/backend.native/tests/external/codegen/blackbox/casts/functions/safeAsFunKSmall.kt b/backend.native/tests/external/codegen/box/casts/functions/safeAsFunKSmall.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/casts/functions/safeAsFunKSmall.kt rename to backend.native/tests/external/codegen/box/casts/functions/safeAsFunKSmall.kt index d413300c13e..0628070f83f 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/functions/safeAsFunKSmall.kt +++ b/backend.native/tests/external/codegen/box/casts/functions/safeAsFunKSmall.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/casts/intersectionTypeMultipleBounds.kt b/backend.native/tests/external/codegen/box/casts/intersectionTypeMultipleBounds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/intersectionTypeMultipleBounds.kt rename to backend.native/tests/external/codegen/box/casts/intersectionTypeMultipleBounds.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/intersectionTypeMultipleBoundsImplicitReceiver.kt b/backend.native/tests/external/codegen/box/casts/intersectionTypeMultipleBoundsImplicitReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/intersectionTypeMultipleBoundsImplicitReceiver.kt rename to backend.native/tests/external/codegen/box/casts/intersectionTypeMultipleBoundsImplicitReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/intersectionTypeSmartcast.kt b/backend.native/tests/external/codegen/box/casts/intersectionTypeSmartcast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/intersectionTypeSmartcast.kt rename to backend.native/tests/external/codegen/box/casts/intersectionTypeSmartcast.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/intersectionTypeWithMultipleBoundsAsReceiver.kt b/backend.native/tests/external/codegen/box/casts/intersectionTypeWithMultipleBoundsAsReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/intersectionTypeWithMultipleBoundsAsReceiver.kt rename to backend.native/tests/external/codegen/box/casts/intersectionTypeWithMultipleBoundsAsReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/intersectionTypeWithoutGenericsAsReceiver.kt b/backend.native/tests/external/codegen/box/casts/intersectionTypeWithoutGenericsAsReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/intersectionTypeWithoutGenericsAsReceiver.kt rename to backend.native/tests/external/codegen/box/casts/intersectionTypeWithoutGenericsAsReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/is.kt b/backend.native/tests/external/codegen/box/casts/is.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/is.kt rename to backend.native/tests/external/codegen/box/casts/is.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/lambdaToUnitCast.kt b/backend.native/tests/external/codegen/box/casts/lambdaToUnitCast.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/casts/lambdaToUnitCast.kt rename to backend.native/tests/external/codegen/box/casts/lambdaToUnitCast.kt index 29b1ec1cc04..42a86dcbb07 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/lambdaToUnitCast.kt +++ b/backend.native/tests/external/codegen/box/casts/lambdaToUnitCast.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // JS backend does not support Unit well. See KT-13932 val foo: () -> Unit = {} diff --git a/backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/binaryExpressionCast.kt b/backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/binaryExpressionCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/binaryExpressionCast.kt rename to backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/binaryExpressionCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/javaBox.kt b/backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/javaBox.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/javaBox.kt rename to backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/javaBox.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/labeledExpressionCast.kt b/backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/labeledExpressionCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/labeledExpressionCast.kt rename to backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/labeledExpressionCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/parenthesizedExpressionCast.kt b/backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/parenthesizedExpressionCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/parenthesizedExpressionCast.kt rename to backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/parenthesizedExpressionCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/superConstructor.kt b/backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/superConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/superConstructor.kt rename to backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/superConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/unaryExpressionCast.kt b/backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/unaryExpressionCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/unaryExpressionCast.kt rename to backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/unaryExpressionCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/vararg.kt b/backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/vararg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/literalExpressionAsGenericArgument/vararg.kt rename to backend.native/tests/external/codegen/box/casts/literalExpressionAsGenericArgument/vararg.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/asWithMutable.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/asWithMutable.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/asWithMutable.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/asWithMutable.kt index 093fae25b18..ee84b9649a6 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/asWithMutable.kt +++ b/backend.native/tests/external/codegen/box/casts/mutableCollections/asWithMutable.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME class Itr : Iterator by ArrayList().iterator() diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/isWithMutable.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/isWithMutable.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/isWithMutable.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/isWithMutable.kt index 56e8fb846c8..fc3ebaa857d 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/isWithMutable.kt +++ b/backend.native/tests/external/codegen/box/casts/mutableCollections/isWithMutable.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME class Itr : Iterator by ArrayList().iterator() diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/mutabilityMarkerInterfaces.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/mutabilityMarkerInterfaces.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/mutabilityMarkerInterfaces.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/mutabilityMarkerInterfaces.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedAsWithMutable.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedAsWithMutable.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedAsWithMutable.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedAsWithMutable.kt index 77d2d3b8683..f75476e9d74 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedAsWithMutable.kt +++ b/backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedAsWithMutable.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME class Itr : Iterator by ArrayList().iterator() diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedIsWithMutable.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedIsWithMutable.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedIsWithMutable.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedIsWithMutable.kt index df6e233f20a..ef18351b1c7 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedIsWithMutable.kt +++ b/backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedIsWithMutable.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME class Itr : Iterator by ArrayList().iterator() diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedSafeAsWithMutable.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedSafeAsWithMutable.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedSafeAsWithMutable.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedSafeAsWithMutable.kt index a54ad8b239f..023267ff0ec 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/reifiedSafeAsWithMutable.kt +++ b/backend.native/tests/external/codegen/box/casts/mutableCollections/reifiedSafeAsWithMutable.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME class Itr : Iterator by ArrayList().iterator() diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/safeAsWithMutable.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/safeAsWithMutable.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/safeAsWithMutable.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/safeAsWithMutable.kt index 58113095c09..aa96805e640 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/safeAsWithMutable.kt +++ b/backend.native/tests/external/codegen/box/casts/mutableCollections/safeAsWithMutable.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME class Itr : Iterator by ArrayList().iterator() diff --git a/backend.native/tests/external/codegen/blackbox/casts/mutableCollections/weirdMutableCasts.kt b/backend.native/tests/external/codegen/box/casts/mutableCollections/weirdMutableCasts.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/mutableCollections/weirdMutableCasts.kt rename to backend.native/tests/external/codegen/box/casts/mutableCollections/weirdMutableCasts.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/notIs.kt b/backend.native/tests/external/codegen/box/casts/notIs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/notIs.kt rename to backend.native/tests/external/codegen/box/casts/notIs.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/unitAsAny.kt b/backend.native/tests/external/codegen/box/casts/unitAsAny.kt similarity index 87% rename from backend.native/tests/external/codegen/blackbox/casts/unitAsAny.kt rename to backend.native/tests/external/codegen/box/casts/unitAsAny.kt index da598959fe0..d05da99581f 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/unitAsAny.kt +++ b/backend.native/tests/external/codegen/box/casts/unitAsAny.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun println(s: String) { } diff --git a/backend.native/tests/external/codegen/blackbox/casts/unitAsInt.kt b/backend.native/tests/external/codegen/box/casts/unitAsInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/unitAsInt.kt rename to backend.native/tests/external/codegen/box/casts/unitAsInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/casts/unitAsSafeAny.kt b/backend.native/tests/external/codegen/box/casts/unitAsSafeAny.kt similarity index 87% rename from backend.native/tests/external/codegen/blackbox/casts/unitAsSafeAny.kt rename to backend.native/tests/external/codegen/box/casts/unitAsSafeAny.kt index 228e5aeaba9..6412c65526f 100644 --- a/backend.native/tests/external/codegen/blackbox/casts/unitAsSafeAny.kt +++ b/backend.native/tests/external/codegen/box/casts/unitAsSafeAny.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun println(s: String) { } diff --git a/backend.native/tests/external/codegen/blackbox/casts/unitNullableCast.kt b/backend.native/tests/external/codegen/box/casts/unitNullableCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/casts/unitNullableCast.kt rename to backend.native/tests/external/codegen/box/casts/unitNullableCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/bound/javaIntrinsicWithSideEffect.kt b/backend.native/tests/external/codegen/box/classLiteral/bound/javaIntrinsicWithSideEffect.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/bound/javaIntrinsicWithSideEffect.kt rename to backend.native/tests/external/codegen/box/classLiteral/bound/javaIntrinsicWithSideEffect.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/bound/primitives.kt b/backend.native/tests/external/codegen/box/classLiteral/bound/primitives.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/classLiteral/bound/primitives.kt rename to backend.native/tests/external/codegen/box/classLiteral/bound/primitives.kt index 16739b170fe..bfa727e8e7f 100644 --- a/backend.native/tests/external/codegen/blackbox/classLiteral/bound/primitives.kt +++ b/backend.native/tests/external/codegen/box/classLiteral/bound/primitives.kt @@ -1,5 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/bound/sideEffect.kt b/backend.native/tests/external/codegen/box/classLiteral/bound/sideEffect.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/bound/sideEffect.kt rename to backend.native/tests/external/codegen/box/classLiteral/bound/sideEffect.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/bound/simple.kt b/backend.native/tests/external/codegen/box/classLiteral/bound/simple.kt similarity index 57% rename from backend.native/tests/external/codegen/blackbox/classLiteral/bound/simple.kt rename to backend.native/tests/external/codegen/box/classLiteral/bound/simple.kt index f6de756700b..d2b40164da8 100644 --- a/backend.native/tests/external/codegen/blackbox/classLiteral/bound/simple.kt +++ b/backend.native/tests/external/codegen/box/classLiteral/bound/simple.kt @@ -1,5 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: NATIVE fun box(): String { val x: CharSequence = "" diff --git a/backend.native/tests/external/codegen/box/classLiteral/bound/smartCast.kt b/backend.native/tests/external/codegen/box/classLiteral/bound/smartCast.kt new file mode 100644 index 00000000000..f7832e00d15 --- /dev/null +++ b/backend.native/tests/external/codegen/box/classLiteral/bound/smartCast.kt @@ -0,0 +1,12 @@ +// IGNORE_BACKEND: NATIVE +// KT-16291 Smart cast doesn't work when getting class of instance + +class Foo(val s: String) { + override fun equals(other: Any?): Boolean { + return other != null && other::class == this::class && s == (other as Foo).s + } +} + +fun box(): String { + return if (Foo("a") == Foo("a")) "OK" else "Fail" +} diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/java.kt b/backend.native/tests/external/codegen/box/classLiteral/java/java.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/java.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/java.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/javaObjectType.kt b/backend.native/tests/external/codegen/box/classLiteral/java/javaObjectType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/javaObjectType.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/javaObjectType.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/javaObjectTypeReified.kt b/backend.native/tests/external/codegen/box/classLiteral/java/javaObjectTypeReified.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/javaObjectTypeReified.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/javaObjectTypeReified.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/javaPrimitiveType.kt b/backend.native/tests/external/codegen/box/classLiteral/java/javaPrimitiveType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/javaPrimitiveType.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/javaPrimitiveType.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/javaPrimitiveTypeReified.kt b/backend.native/tests/external/codegen/box/classLiteral/java/javaPrimitiveTypeReified.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/javaPrimitiveTypeReified.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/javaPrimitiveTypeReified.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/javaReified.kt b/backend.native/tests/external/codegen/box/classLiteral/java/javaReified.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/javaReified.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/javaReified.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/kt11943.kt b/backend.native/tests/external/codegen/box/classLiteral/java/kt11943.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/kt11943.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/kt11943.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/java/objectSuperConstructorCall.kt b/backend.native/tests/external/codegen/box/classLiteral/java/objectSuperConstructorCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/java/objectSuperConstructorCall.kt rename to backend.native/tests/external/codegen/box/classLiteral/java/objectSuperConstructorCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/classLiteral/primitiveKClassEquality.kt b/backend.native/tests/external/codegen/box/classLiteral/primitiveKClassEquality.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classLiteral/primitiveKClassEquality.kt rename to backend.native/tests/external/codegen/box/classLiteral/primitiveKClassEquality.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/boxPrimitiveTypeInClinitOfClassObject.kt b/backend.native/tests/external/codegen/box/classes/boxPrimitiveTypeInClinitOfClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/boxPrimitiveTypeInClinitOfClassObject.kt rename to backend.native/tests/external/codegen/box/classes/boxPrimitiveTypeInClinitOfClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classCompanionInitializationWithJava.kt b/backend.native/tests/external/codegen/box/classes/classCompanionInitializationWithJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classCompanionInitializationWithJava.kt rename to backend.native/tests/external/codegen/box/classes/classCompanionInitializationWithJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classNamedAsOldPackageFacade.kt b/backend.native/tests/external/codegen/box/classes/classNamedAsOldPackageFacade.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classNamedAsOldPackageFacade.kt rename to backend.native/tests/external/codegen/box/classes/classNamedAsOldPackageFacade.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObject.kt b/backend.native/tests/external/codegen/box/classes/classObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObject.kt rename to backend.native/tests/external/codegen/box/classes/classObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectAsExtensionReceiver.kt b/backend.native/tests/external/codegen/box/classes/classObjectAsExtensionReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectAsExtensionReceiver.kt rename to backend.native/tests/external/codegen/box/classes/classObjectAsExtensionReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectAsStaticInitializer.kt b/backend.native/tests/external/codegen/box/classes/classObjectAsStaticInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectAsStaticInitializer.kt rename to backend.native/tests/external/codegen/box/classes/classObjectAsStaticInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectField.kt b/backend.native/tests/external/codegen/box/classes/classObjectField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectField.kt rename to backend.native/tests/external/codegen/box/classes/classObjectField.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectInTrait.kt b/backend.native/tests/external/codegen/box/classes/classObjectInTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectInTrait.kt rename to backend.native/tests/external/codegen/box/classes/classObjectInTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectNotOfEnum.kt b/backend.native/tests/external/codegen/box/classes/classObjectNotOfEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectNotOfEnum.kt rename to backend.native/tests/external/codegen/box/classes/classObjectNotOfEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectToString.kt b/backend.native/tests/external/codegen/box/classes/classObjectToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectToString.kt rename to backend.native/tests/external/codegen/box/classes/classObjectToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectWithPrivateGenericMember.kt b/backend.native/tests/external/codegen/box/classes/classObjectWithPrivateGenericMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectWithPrivateGenericMember.kt rename to backend.native/tests/external/codegen/box/classes/classObjectWithPrivateGenericMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/classObjectsWithParentClasses.kt b/backend.native/tests/external/codegen/box/classes/classObjectsWithParentClasses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/classObjectsWithParentClasses.kt rename to backend.native/tests/external/codegen/box/classes/classObjectsWithParentClasses.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/defaultObjectSameNamesAsInOuter.kt b/backend.native/tests/external/codegen/box/classes/defaultObjectSameNamesAsInOuter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/defaultObjectSameNamesAsInOuter.kt rename to backend.native/tests/external/codegen/box/classes/defaultObjectSameNamesAsInOuter.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegation2.kt b/backend.native/tests/external/codegen/box/classes/delegation2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegation2.kt rename to backend.native/tests/external/codegen/box/classes/delegation2.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegation3.kt b/backend.native/tests/external/codegen/box/classes/delegation3.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegation3.kt rename to backend.native/tests/external/codegen/box/classes/delegation3.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegation4.kt b/backend.native/tests/external/codegen/box/classes/delegation4.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegation4.kt rename to backend.native/tests/external/codegen/box/classes/delegation4.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegationGenericArg.kt b/backend.native/tests/external/codegen/box/classes/delegationGenericArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegationGenericArg.kt rename to backend.native/tests/external/codegen/box/classes/delegationGenericArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegationGenericArgUpperBound.kt b/backend.native/tests/external/codegen/box/classes/delegationGenericArgUpperBound.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegationGenericArgUpperBound.kt rename to backend.native/tests/external/codegen/box/classes/delegationGenericArgUpperBound.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegationGenericLongArg.kt b/backend.native/tests/external/codegen/box/classes/delegationGenericLongArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegationGenericLongArg.kt rename to backend.native/tests/external/codegen/box/classes/delegationGenericLongArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegationJava.kt b/backend.native/tests/external/codegen/box/classes/delegationJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegationJava.kt rename to backend.native/tests/external/codegen/box/classes/delegationJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/delegationMethodsWithArgs.kt b/backend.native/tests/external/codegen/box/classes/delegationMethodsWithArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/delegationMethodsWithArgs.kt rename to backend.native/tests/external/codegen/box/classes/delegationMethodsWithArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/exceptionConstructor.kt b/backend.native/tests/external/codegen/box/classes/exceptionConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/exceptionConstructor.kt rename to backend.native/tests/external/codegen/box/classes/exceptionConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/extensionOnNamedClassObject.kt b/backend.native/tests/external/codegen/box/classes/extensionOnNamedClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/extensionOnNamedClassObject.kt rename to backend.native/tests/external/codegen/box/classes/extensionOnNamedClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/funDelegation.kt b/backend.native/tests/external/codegen/box/classes/funDelegation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/funDelegation.kt rename to backend.native/tests/external/codegen/box/classes/funDelegation.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/implementComparableInSubclass.kt b/backend.native/tests/external/codegen/box/classes/implementComparableInSubclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/implementComparableInSubclass.kt rename to backend.native/tests/external/codegen/box/classes/implementComparableInSubclass.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inheritSetAndHashSet.kt b/backend.native/tests/external/codegen/box/classes/inheritSetAndHashSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inheritSetAndHashSet.kt rename to backend.native/tests/external/codegen/box/classes/inheritSetAndHashSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inheritance.kt b/backend.native/tests/external/codegen/box/classes/inheritance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inheritance.kt rename to backend.native/tests/external/codegen/box/classes/inheritance.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inheritedInnerClass.kt b/backend.native/tests/external/codegen/box/classes/inheritedInnerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inheritedInnerClass.kt rename to backend.native/tests/external/codegen/box/classes/inheritedInnerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inheritedMethod.kt b/backend.native/tests/external/codegen/box/classes/inheritedMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inheritedMethod.kt rename to backend.native/tests/external/codegen/box/classes/inheritedMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/initializerBlock.kt b/backend.native/tests/external/codegen/box/classes/initializerBlock.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/initializerBlock.kt rename to backend.native/tests/external/codegen/box/classes/initializerBlock.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/initializerBlockDImpl.kt b/backend.native/tests/external/codegen/box/classes/initializerBlockDImpl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/initializerBlockDImpl.kt rename to backend.native/tests/external/codegen/box/classes/initializerBlockDImpl.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inner/instantiateInDerived.kt b/backend.native/tests/external/codegen/box/classes/inner/instantiateInDerived.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inner/instantiateInDerived.kt rename to backend.native/tests/external/codegen/box/classes/inner/instantiateInDerived.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inner/instantiateInDerivedLabeled.kt b/backend.native/tests/external/codegen/box/classes/inner/instantiateInDerivedLabeled.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inner/instantiateInDerivedLabeled.kt rename to backend.native/tests/external/codegen/box/classes/inner/instantiateInDerivedLabeled.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inner/instantiateInSameClass.kt b/backend.native/tests/external/codegen/box/classes/inner/instantiateInSameClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inner/instantiateInSameClass.kt rename to backend.native/tests/external/codegen/box/classes/inner/instantiateInSameClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inner/kt6708.kt b/backend.native/tests/external/codegen/box/classes/inner/kt6708.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inner/kt6708.kt rename to backend.native/tests/external/codegen/box/classes/inner/kt6708.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inner/properOuter.kt b/backend.native/tests/external/codegen/box/classes/inner/properOuter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inner/properOuter.kt rename to backend.native/tests/external/codegen/box/classes/inner/properOuter.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/inner/properSuperLinking.kt b/backend.native/tests/external/codegen/box/classes/inner/properSuperLinking.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/inner/properSuperLinking.kt rename to backend.native/tests/external/codegen/box/classes/inner/properSuperLinking.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/innerClass.kt b/backend.native/tests/external/codegen/box/classes/innerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/innerClass.kt rename to backend.native/tests/external/codegen/box/classes/innerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/interfaceCompanionInitializationWithJava.kt b/backend.native/tests/external/codegen/box/classes/interfaceCompanionInitializationWithJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/interfaceCompanionInitializationWithJava.kt rename to backend.native/tests/external/codegen/box/classes/interfaceCompanionInitializationWithJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1018.kt b/backend.native/tests/external/codegen/box/classes/kt1018.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1018.kt rename to backend.native/tests/external/codegen/box/classes/kt1018.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1120.kt b/backend.native/tests/external/codegen/box/classes/kt1120.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1120.kt rename to backend.native/tests/external/codegen/box/classes/kt1120.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1134.kt b/backend.native/tests/external/codegen/box/classes/kt1134.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1134.kt rename to backend.native/tests/external/codegen/box/classes/kt1134.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1157.kt b/backend.native/tests/external/codegen/box/classes/kt1157.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/classes/kt1157.kt rename to backend.native/tests/external/codegen/box/classes/kt1157.kt index 126889d5110..decc6d7ed58 100644 --- a/backend.native/tests/external/codegen/blackbox/classes/kt1157.kt +++ b/backend.native/tests/external/codegen/box/classes/kt1157.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE public object SomeClass { private val work = object : Runnable { override fun run() { diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1247.kt b/backend.native/tests/external/codegen/box/classes/kt1247.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1247.kt rename to backend.native/tests/external/codegen/box/classes/kt1247.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1345.kt b/backend.native/tests/external/codegen/box/classes/kt1345.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1345.kt rename to backend.native/tests/external/codegen/box/classes/kt1345.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1439.kt b/backend.native/tests/external/codegen/box/classes/kt1439.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1439.kt rename to backend.native/tests/external/codegen/box/classes/kt1439.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1535.kt b/backend.native/tests/external/codegen/box/classes/kt1535.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/classes/kt1535.kt rename to backend.native/tests/external/codegen/box/classes/kt1535.kt index d26691e4446..f1efa2d6b2c 100644 --- a/backend.native/tests/external/codegen/blackbox/classes/kt1535.kt +++ b/backend.native/tests/external/codegen/box/classes/kt1535.kt @@ -1,5 +1,5 @@ // TODO: Enable when JS backend supports Java class library, since FunctionX are required for interoperation -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS class Works() : Function0 { public override fun invoke():Any { return "Works" as Any diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1538.kt b/backend.native/tests/external/codegen/box/classes/kt1538.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1538.kt rename to backend.native/tests/external/codegen/box/classes/kt1538.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1578.kt b/backend.native/tests/external/codegen/box/classes/kt1578.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1578.kt rename to backend.native/tests/external/codegen/box/classes/kt1578.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1611.kt b/backend.native/tests/external/codegen/box/classes/kt1611.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1611.kt rename to backend.native/tests/external/codegen/box/classes/kt1611.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1721.kt b/backend.native/tests/external/codegen/box/classes/kt1721.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1721.kt rename to backend.native/tests/external/codegen/box/classes/kt1721.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1726.kt b/backend.native/tests/external/codegen/box/classes/kt1726.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1726.kt rename to backend.native/tests/external/codegen/box/classes/kt1726.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1759.kt b/backend.native/tests/external/codegen/box/classes/kt1759.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1759.kt rename to backend.native/tests/external/codegen/box/classes/kt1759.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1891.kt b/backend.native/tests/external/codegen/box/classes/kt1891.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1891.kt rename to backend.native/tests/external/codegen/box/classes/kt1891.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1918.kt b/backend.native/tests/external/codegen/box/classes/kt1918.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1918.kt rename to backend.native/tests/external/codegen/box/classes/kt1918.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1976.kt b/backend.native/tests/external/codegen/box/classes/kt1976.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1976.kt rename to backend.native/tests/external/codegen/box/classes/kt1976.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt1980.kt b/backend.native/tests/external/codegen/box/classes/kt1980.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt1980.kt rename to backend.native/tests/external/codegen/box/classes/kt1980.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2224.kt b/backend.native/tests/external/codegen/box/classes/kt2224.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2224.kt rename to backend.native/tests/external/codegen/box/classes/kt2224.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2288.kt b/backend.native/tests/external/codegen/box/classes/kt2288.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2288.kt rename to backend.native/tests/external/codegen/box/classes/kt2288.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2384.kt b/backend.native/tests/external/codegen/box/classes/kt2384.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2384.kt rename to backend.native/tests/external/codegen/box/classes/kt2384.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2390.kt b/backend.native/tests/external/codegen/box/classes/kt2390.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2390.kt rename to backend.native/tests/external/codegen/box/classes/kt2390.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2391.kt b/backend.native/tests/external/codegen/box/classes/kt2391.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2391.kt rename to backend.native/tests/external/codegen/box/classes/kt2391.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2395.kt b/backend.native/tests/external/codegen/box/classes/kt2395.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2395.kt rename to backend.native/tests/external/codegen/box/classes/kt2395.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2417.kt b/backend.native/tests/external/codegen/box/classes/kt2417.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2417.kt rename to backend.native/tests/external/codegen/box/classes/kt2417.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2477.kt b/backend.native/tests/external/codegen/box/classes/kt2477.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2477.kt rename to backend.native/tests/external/codegen/box/classes/kt2477.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2480.kt b/backend.native/tests/external/codegen/box/classes/kt2480.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2480.kt rename to backend.native/tests/external/codegen/box/classes/kt2480.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2482.kt b/backend.native/tests/external/codegen/box/classes/kt2482.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2482.kt rename to backend.native/tests/external/codegen/box/classes/kt2482.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2485.kt b/backend.native/tests/external/codegen/box/classes/kt2485.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2485.kt rename to backend.native/tests/external/codegen/box/classes/kt2485.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt249.kt b/backend.native/tests/external/codegen/box/classes/kt249.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt249.kt rename to backend.native/tests/external/codegen/box/classes/kt249.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2532.kt b/backend.native/tests/external/codegen/box/classes/kt2532.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2532.kt rename to backend.native/tests/external/codegen/box/classes/kt2532.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2566.kt b/backend.native/tests/external/codegen/box/classes/kt2566.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2566.kt rename to backend.native/tests/external/codegen/box/classes/kt2566.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2566_2.kt b/backend.native/tests/external/codegen/box/classes/kt2566_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2566_2.kt rename to backend.native/tests/external/codegen/box/classes/kt2566_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2607.kt b/backend.native/tests/external/codegen/box/classes/kt2607.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2607.kt rename to backend.native/tests/external/codegen/box/classes/kt2607.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2626.kt b/backend.native/tests/external/codegen/box/classes/kt2626.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2626.kt rename to backend.native/tests/external/codegen/box/classes/kt2626.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2711.kt b/backend.native/tests/external/codegen/box/classes/kt2711.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2711.kt rename to backend.native/tests/external/codegen/box/classes/kt2711.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt2784.kt b/backend.native/tests/external/codegen/box/classes/kt2784.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt2784.kt rename to backend.native/tests/external/codegen/box/classes/kt2784.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt285.kt b/backend.native/tests/external/codegen/box/classes/kt285.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt285.kt rename to backend.native/tests/external/codegen/box/classes/kt285.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt3001.kt b/backend.native/tests/external/codegen/box/classes/kt3001.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt3001.kt rename to backend.native/tests/external/codegen/box/classes/kt3001.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt3114.kt b/backend.native/tests/external/codegen/box/classes/kt3114.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt3114.kt rename to backend.native/tests/external/codegen/box/classes/kt3114.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt3414.kt b/backend.native/tests/external/codegen/box/classes/kt3414.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt3414.kt rename to backend.native/tests/external/codegen/box/classes/kt3414.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt343.kt b/backend.native/tests/external/codegen/box/classes/kt343.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt343.kt rename to backend.native/tests/external/codegen/box/classes/kt343.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt3546.kt b/backend.native/tests/external/codegen/box/classes/kt3546.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt3546.kt rename to backend.native/tests/external/codegen/box/classes/kt3546.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt454.kt b/backend.native/tests/external/codegen/box/classes/kt454.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt454.kt rename to backend.native/tests/external/codegen/box/classes/kt454.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt471.kt b/backend.native/tests/external/codegen/box/classes/kt471.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt471.kt rename to backend.native/tests/external/codegen/box/classes/kt471.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt48.kt b/backend.native/tests/external/codegen/box/classes/kt48.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt48.kt rename to backend.native/tests/external/codegen/box/classes/kt48.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt496.kt b/backend.native/tests/external/codegen/box/classes/kt496.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt496.kt rename to backend.native/tests/external/codegen/box/classes/kt496.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt500.kt b/backend.native/tests/external/codegen/box/classes/kt500.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt500.kt rename to backend.native/tests/external/codegen/box/classes/kt500.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt501.kt b/backend.native/tests/external/codegen/box/classes/kt501.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt501.kt rename to backend.native/tests/external/codegen/box/classes/kt501.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt504.kt b/backend.native/tests/external/codegen/box/classes/kt504.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt504.kt rename to backend.native/tests/external/codegen/box/classes/kt504.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt508.kt b/backend.native/tests/external/codegen/box/classes/kt508.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/classes/kt508.kt rename to backend.native/tests/external/codegen/box/classes/kt508.kt index 29d4283a7be..d26dfafd6c0 100644 --- a/backend.native/tests/external/codegen/blackbox/classes/kt508.kt +++ b/backend.native/tests/external/codegen/box/classes/kt508.kt @@ -1,5 +1,5 @@ // TODO: Enable for JS when it supports Java class library. -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // fails on JS with TypeError: imported$plus is not a function, it is undefined. operator fun MutableMap.set(key : K, value : V) = put(key, value) diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt5347.kt b/backend.native/tests/external/codegen/box/classes/kt5347.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt5347.kt rename to backend.native/tests/external/codegen/box/classes/kt5347.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt6136.kt b/backend.native/tests/external/codegen/box/classes/kt6136.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt6136.kt rename to backend.native/tests/external/codegen/box/classes/kt6136.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt633.kt b/backend.native/tests/external/codegen/box/classes/kt633.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt633.kt rename to backend.native/tests/external/codegen/box/classes/kt633.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt6816.kt b/backend.native/tests/external/codegen/box/classes/kt6816.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt6816.kt rename to backend.native/tests/external/codegen/box/classes/kt6816.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt707.kt b/backend.native/tests/external/codegen/box/classes/kt707.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt707.kt rename to backend.native/tests/external/codegen/box/classes/kt707.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt723.kt b/backend.native/tests/external/codegen/box/classes/kt723.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt723.kt rename to backend.native/tests/external/codegen/box/classes/kt723.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt725.kt b/backend.native/tests/external/codegen/box/classes/kt725.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt725.kt rename to backend.native/tests/external/codegen/box/classes/kt725.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt8011.kt b/backend.native/tests/external/codegen/box/classes/kt8011.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt8011.kt rename to backend.native/tests/external/codegen/box/classes/kt8011.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt8011a.kt b/backend.native/tests/external/codegen/box/classes/kt8011a.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt8011a.kt rename to backend.native/tests/external/codegen/box/classes/kt8011a.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt903.kt b/backend.native/tests/external/codegen/box/classes/kt903.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/classes/kt903.kt rename to backend.native/tests/external/codegen/box/classes/kt903.kt index a2cb9834968..b4a75ee8128 100644 --- a/backend.native/tests/external/codegen/blackbox/classes/kt903.kt +++ b/backend.native/tests/external/codegen/box/classes/kt903.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: NATIVE +// TARGET_BACKEND: JVM operator fun Int.plus(a: Int?) = this + a!! diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt940.kt b/backend.native/tests/external/codegen/box/classes/kt940.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt940.kt rename to backend.native/tests/external/codegen/box/classes/kt940.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/kt9642.kt b/backend.native/tests/external/codegen/box/classes/kt9642.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/kt9642.kt rename to backend.native/tests/external/codegen/box/classes/kt9642.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/namedClassObject.kt b/backend.native/tests/external/codegen/box/classes/namedClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/namedClassObject.kt rename to backend.native/tests/external/codegen/box/classes/namedClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/outerThis.kt b/backend.native/tests/external/codegen/box/classes/outerThis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/outerThis.kt rename to backend.native/tests/external/codegen/box/classes/outerThis.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/overloadBinaryOperator.kt b/backend.native/tests/external/codegen/box/classes/overloadBinaryOperator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/overloadBinaryOperator.kt rename to backend.native/tests/external/codegen/box/classes/overloadBinaryOperator.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/overloadPlusAssign.kt b/backend.native/tests/external/codegen/box/classes/overloadPlusAssign.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/overloadPlusAssign.kt rename to backend.native/tests/external/codegen/box/classes/overloadPlusAssign.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/overloadPlusAssignReturn.kt b/backend.native/tests/external/codegen/box/classes/overloadPlusAssignReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/overloadPlusAssignReturn.kt rename to backend.native/tests/external/codegen/box/classes/overloadPlusAssignReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/overloadPlusToPlusAssign.kt b/backend.native/tests/external/codegen/box/classes/overloadPlusToPlusAssign.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/overloadPlusToPlusAssign.kt rename to backend.native/tests/external/codegen/box/classes/overloadPlusToPlusAssign.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/overloadUnaryOperator.kt b/backend.native/tests/external/codegen/box/classes/overloadUnaryOperator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/overloadUnaryOperator.kt rename to backend.native/tests/external/codegen/box/classes/overloadUnaryOperator.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/privateOuterFunctions.kt b/backend.native/tests/external/codegen/box/classes/privateOuterFunctions.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/classes/privateOuterFunctions.kt rename to backend.native/tests/external/codegen/box/classes/privateOuterFunctions.kt index ceeb4ff69ce..b7bc7e0a5ad 100644 --- a/backend.native/tests/external/codegen/blackbox/classes/privateOuterFunctions.kt +++ b/backend.native/tests/external/codegen/box/classes/privateOuterFunctions.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE class C { private fun String.ext() : String = "" private fun f() {} diff --git a/backend.native/tests/external/codegen/blackbox/classes/privateOuterProperty.kt b/backend.native/tests/external/codegen/box/classes/privateOuterProperty.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/classes/privateOuterProperty.kt rename to backend.native/tests/external/codegen/box/classes/privateOuterProperty.kt index 0f0bc3e452f..f3971e4c46f 100644 --- a/backend.native/tests/external/codegen/blackbox/classes/privateOuterProperty.kt +++ b/backend.native/tests/external/codegen/box/classes/privateOuterProperty.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE class C{ private var v : Int = 0 diff --git a/backend.native/tests/external/codegen/blackbox/classes/privateToThis.kt b/backend.native/tests/external/codegen/box/classes/privateToThis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/privateToThis.kt rename to backend.native/tests/external/codegen/box/classes/privateToThis.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/propertyDelegation.kt b/backend.native/tests/external/codegen/box/classes/propertyDelegation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/propertyDelegation.kt rename to backend.native/tests/external/codegen/box/classes/propertyDelegation.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/propertyInInitializer.kt b/backend.native/tests/external/codegen/box/classes/propertyInInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/propertyInInitializer.kt rename to backend.native/tests/external/codegen/box/classes/propertyInInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/rightHandOverride.kt b/backend.native/tests/external/codegen/box/classes/rightHandOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/rightHandOverride.kt rename to backend.native/tests/external/codegen/box/classes/rightHandOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/sealedInSameFile.kt b/backend.native/tests/external/codegen/box/classes/sealedInSameFile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/sealedInSameFile.kt rename to backend.native/tests/external/codegen/box/classes/sealedInSameFile.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/selfcreate.kt b/backend.native/tests/external/codegen/box/classes/selfcreate.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/selfcreate.kt rename to backend.native/tests/external/codegen/box/classes/selfcreate.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/simpleBox.kt b/backend.native/tests/external/codegen/box/classes/simpleBox.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/simpleBox.kt rename to backend.native/tests/external/codegen/box/classes/simpleBox.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/superConstructorCallWithComplexArg.kt b/backend.native/tests/external/codegen/box/classes/superConstructorCallWithComplexArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/superConstructorCallWithComplexArg.kt rename to backend.native/tests/external/codegen/box/classes/superConstructorCallWithComplexArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/classes/typedDelegation.kt b/backend.native/tests/external/codegen/box/classes/typedDelegation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/classes/typedDelegation.kt rename to backend.native/tests/external/codegen/box/classes/typedDelegation.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureExtensionReceiver.kt b/backend.native/tests/external/codegen/box/closures/captureExtensionReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureExtensionReceiver.kt rename to backend.native/tests/external/codegen/box/closures/captureExtensionReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/captureFunctionInProperty.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/captureFunctionInProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/captureFunctionInProperty.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/captureFunctionInProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inFunction.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/inFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inFunction.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/inFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inProperty.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/inProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inProperty.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/inProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inPropertyDeepObjectChain.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/inPropertyDeepObjectChain.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inPropertyDeepObjectChain.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/inPropertyDeepObjectChain.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inPropertyFromSuperClass.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/inPropertyFromSuperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inPropertyFromSuperClass.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/inPropertyFromSuperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inPropertyFromSuperSuperClass.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/inPropertyFromSuperSuperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/inPropertyFromSuperSuperClass.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/inPropertyFromSuperSuperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/kt4176.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/kt4176.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/kt4176.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/kt4176.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/kt4656.kt b/backend.native/tests/external/codegen/box/closures/captureOuterProperty/kt4656.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/captureOuterProperty/kt4656.kt rename to backend.native/tests/external/codegen/box/closures/captureOuterProperty/kt4656.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/capturedLocalGenericFun.kt b/backend.native/tests/external/codegen/box/closures/capturedLocalGenericFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/capturedLocalGenericFun.kt rename to backend.native/tests/external/codegen/box/closures/capturedLocalGenericFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/localFunInsideLocalFun.kt b/backend.native/tests/external/codegen/box/closures/closureInsideClosure/localFunInsideLocalFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/localFunInsideLocalFun.kt rename to backend.native/tests/external/codegen/box/closures/closureInsideClosure/localFunInsideLocalFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/localFunInsideLocalFunDifferentSignatures.kt b/backend.native/tests/external/codegen/box/closures/closureInsideClosure/localFunInsideLocalFunDifferentSignatures.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/localFunInsideLocalFunDifferentSignatures.kt rename to backend.native/tests/external/codegen/box/closures/closureInsideClosure/localFunInsideLocalFunDifferentSignatures.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/propertyAndFunctionNameClash.kt b/backend.native/tests/external/codegen/box/closures/closureInsideClosure/propertyAndFunctionNameClash.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/propertyAndFunctionNameClash.kt rename to backend.native/tests/external/codegen/box/closures/closureInsideClosure/propertyAndFunctionNameClash.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/threeLevels.kt b/backend.native/tests/external/codegen/box/closures/closureInsideClosure/threeLevels.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/threeLevels.kt rename to backend.native/tests/external/codegen/box/closures/closureInsideClosure/threeLevels.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/threeLevelsDifferentSignatures.kt b/backend.native/tests/external/codegen/box/closures/closureInsideClosure/threeLevelsDifferentSignatures.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/threeLevelsDifferentSignatures.kt rename to backend.native/tests/external/codegen/box/closures/closureInsideClosure/threeLevelsDifferentSignatures.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/varAsFunInsideLocalFun.kt b/backend.native/tests/external/codegen/box/closures/closureInsideClosure/varAsFunInsideLocalFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureInsideClosure/varAsFunInsideLocalFun.kt rename to backend.native/tests/external/codegen/box/closures/closureInsideClosure/varAsFunInsideLocalFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureInsideConstrucor.kt b/backend.native/tests/external/codegen/box/closures/closureInsideConstrucor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureInsideConstrucor.kt rename to backend.native/tests/external/codegen/box/closures/closureInsideConstrucor.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureOnTopLevel1.kt b/backend.native/tests/external/codegen/box/closures/closureOnTopLevel1.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/closures/closureOnTopLevel1.kt rename to backend.native/tests/external/codegen/box/closures/closureOnTopLevel1.kt index cc50b43b4a2..b0dd8df8d31 100644 --- a/backend.native/tests/external/codegen/blackbox/closures/closureOnTopLevel1.kt +++ b/backend.native/tests/external/codegen/box/closures/closureOnTopLevel1.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS package test diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureOnTopLevel2.kt b/backend.native/tests/external/codegen/box/closures/closureOnTopLevel2.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/closures/closureOnTopLevel2.kt rename to backend.native/tests/external/codegen/box/closures/closureOnTopLevel2.kt index 145e9c41fca..2f161ffc47c 100644 --- a/backend.native/tests/external/codegen/blackbox/closures/closureOnTopLevel2.kt +++ b/backend.native/tests/external/codegen/box/closures/closureOnTopLevel2.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS val p = { "OK" }() diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureWithParameter.kt b/backend.native/tests/external/codegen/box/closures/closureWithParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureWithParameter.kt rename to backend.native/tests/external/codegen/box/closures/closureWithParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/closureWithParameterAndBoxing.kt b/backend.native/tests/external/codegen/box/closures/closureWithParameterAndBoxing.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/closureWithParameterAndBoxing.kt rename to backend.native/tests/external/codegen/box/closures/closureWithParameterAndBoxing.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/doubleEnclosedLocalVariable.kt b/backend.native/tests/external/codegen/box/closures/doubleEnclosedLocalVariable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/doubleEnclosedLocalVariable.kt rename to backend.native/tests/external/codegen/box/closures/doubleEnclosedLocalVariable.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/enclosingLocalVariable.kt b/backend.native/tests/external/codegen/box/closures/enclosingLocalVariable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/enclosingLocalVariable.kt rename to backend.native/tests/external/codegen/box/closures/enclosingLocalVariable.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/enclosingThis.kt b/backend.native/tests/external/codegen/box/closures/enclosingThis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/enclosingThis.kt rename to backend.native/tests/external/codegen/box/closures/enclosingThis.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/extensionClosure.kt b/backend.native/tests/external/codegen/box/closures/extensionClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/extensionClosure.kt rename to backend.native/tests/external/codegen/box/closures/extensionClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt10044.kt b/backend.native/tests/external/codegen/box/closures/kt10044.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt10044.kt rename to backend.native/tests/external/codegen/box/closures/kt10044.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt11634.kt b/backend.native/tests/external/codegen/box/closures/kt11634.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt11634.kt rename to backend.native/tests/external/codegen/box/closures/kt11634.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt11634_2.kt b/backend.native/tests/external/codegen/box/closures/kt11634_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt11634_2.kt rename to backend.native/tests/external/codegen/box/closures/kt11634_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt11634_3.kt b/backend.native/tests/external/codegen/box/closures/kt11634_3.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt11634_3.kt rename to backend.native/tests/external/codegen/box/closures/kt11634_3.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt11634_4.kt b/backend.native/tests/external/codegen/box/closures/kt11634_4.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt11634_4.kt rename to backend.native/tests/external/codegen/box/closures/kt11634_4.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt2151.kt b/backend.native/tests/external/codegen/box/closures/kt2151.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt2151.kt rename to backend.native/tests/external/codegen/box/closures/kt2151.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt3152.kt b/backend.native/tests/external/codegen/box/closures/kt3152.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt3152.kt rename to backend.native/tests/external/codegen/box/closures/kt3152.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt3523.kt b/backend.native/tests/external/codegen/box/closures/kt3523.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt3523.kt rename to backend.native/tests/external/codegen/box/closures/kt3523.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt3738.kt b/backend.native/tests/external/codegen/box/closures/kt3738.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt3738.kt rename to backend.native/tests/external/codegen/box/closures/kt3738.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt3905.kt b/backend.native/tests/external/codegen/box/closures/kt3905.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt3905.kt rename to backend.native/tests/external/codegen/box/closures/kt3905.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt4106.kt b/backend.native/tests/external/codegen/box/closures/kt4106.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt4106.kt rename to backend.native/tests/external/codegen/box/closures/kt4106.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt4137.kt b/backend.native/tests/external/codegen/box/closures/kt4137.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt4137.kt rename to backend.native/tests/external/codegen/box/closures/kt4137.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/kt5589.kt b/backend.native/tests/external/codegen/box/closures/kt5589.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/kt5589.kt rename to backend.native/tests/external/codegen/box/closures/kt5589.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/localClassFunClosure.kt b/backend.native/tests/external/codegen/box/closures/localClassFunClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/localClassFunClosure.kt rename to backend.native/tests/external/codegen/box/closures/localClassFunClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/localClassLambdaClosure.kt b/backend.native/tests/external/codegen/box/closures/localClassLambdaClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/localClassLambdaClosure.kt rename to backend.native/tests/external/codegen/box/closures/localClassLambdaClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/localFunctionInFunction.kt b/backend.native/tests/external/codegen/box/closures/localFunctionInFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/localFunctionInFunction.kt rename to backend.native/tests/external/codegen/box/closures/localFunctionInFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/localFunctionInInitializer.kt b/backend.native/tests/external/codegen/box/closures/localFunctionInInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/localFunctionInInitializer.kt rename to backend.native/tests/external/codegen/box/closures/localFunctionInInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/localGenericFun.kt b/backend.native/tests/external/codegen/box/closures/localGenericFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/localGenericFun.kt rename to backend.native/tests/external/codegen/box/closures/localGenericFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/localReturn.kt b/backend.native/tests/external/codegen/box/closures/localReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/localReturn.kt rename to backend.native/tests/external/codegen/box/closures/localReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/localReturnWithAutolabel.kt b/backend.native/tests/external/codegen/box/closures/localReturnWithAutolabel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/localReturnWithAutolabel.kt rename to backend.native/tests/external/codegen/box/closures/localReturnWithAutolabel.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/noRefToOuter.kt b/backend.native/tests/external/codegen/box/closures/noRefToOuter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/noRefToOuter.kt rename to backend.native/tests/external/codegen/box/closures/noRefToOuter.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/recursiveClosure.kt b/backend.native/tests/external/codegen/box/closures/recursiveClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/recursiveClosure.kt rename to backend.native/tests/external/codegen/box/closures/recursiveClosure.kt diff --git a/backend.native/tests/external/codegen/box/closures/refsAreSerializable.kt b/backend.native/tests/external/codegen/box/closures/refsAreSerializable.kt new file mode 100644 index 00000000000..1b6f28b5d6b --- /dev/null +++ b/backend.native/tests/external/codegen/box/closures/refsAreSerializable.kt @@ -0,0 +1,34 @@ +// IGNORE_BACKEND: JS, NATIVE + +import java.io.* + +fun box(): String { + var o = "" + var b = 1.toByte() + var d = 1.0 + var f = 1.0f + var i = 1 + var j = 1L + var s = 1.toShort() + var c = '1' + var z = true + + val lambda = fun(): String { + o = "OK" + b++; d++; f++; i++; j++; s++; c++ + z = false + return "$o $b $d $f $i $j $s $c $z" + } + + val baos = ByteArrayOutputStream() + val oos = ObjectOutputStream(baos) + oos.writeObject(lambda) + oos.close() + + val bais = ByteArrayInputStream(baos.toByteArray()) + val ois = ObjectInputStream(bais) + val result = (ois.readObject() as () -> String)() + ois.close() + + return if (result == "OK 2 2.0 2.0 2 2 2 2 false") "OK" else "Fail: $result" +} diff --git a/backend.native/tests/external/codegen/blackbox/closures/simplestClosure.kt b/backend.native/tests/external/codegen/box/closures/simplestClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/simplestClosure.kt rename to backend.native/tests/external/codegen/box/closures/simplestClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/simplestClosureAndBoxing.kt b/backend.native/tests/external/codegen/box/closures/simplestClosureAndBoxing.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/simplestClosureAndBoxing.kt rename to backend.native/tests/external/codegen/box/closures/simplestClosureAndBoxing.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/subclosuresWithinInitializers.kt b/backend.native/tests/external/codegen/box/closures/subclosuresWithinInitializers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/subclosuresWithinInitializers.kt rename to backend.native/tests/external/codegen/box/closures/subclosuresWithinInitializers.kt diff --git a/backend.native/tests/external/codegen/blackbox/closures/underscoreParameters.kt b/backend.native/tests/external/codegen/box/closures/underscoreParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/closures/underscoreParameters.kt rename to backend.native/tests/external/codegen/box/closures/underscoreParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/charSequence.kt b/backend.native/tests/external/codegen/box/collections/charSequence.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/charSequence.kt rename to backend.native/tests/external/codegen/box/collections/charSequence.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/implementCollectionThroughKotlin.kt b/backend.native/tests/external/codegen/box/collections/implementCollectionThroughKotlin.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/implementCollectionThroughKotlin.kt rename to backend.native/tests/external/codegen/box/collections/implementCollectionThroughKotlin.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/inSetWithSmartCast.kt b/backend.native/tests/external/codegen/box/collections/inSetWithSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/inSetWithSmartCast.kt rename to backend.native/tests/external/codegen/box/collections/inSetWithSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/irrelevantImplCharSequence.kt b/backend.native/tests/external/codegen/box/collections/irrelevantImplCharSequence.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/irrelevantImplCharSequence.kt rename to backend.native/tests/external/codegen/box/collections/irrelevantImplCharSequence.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/irrelevantImplCharSequenceKotlin.kt b/backend.native/tests/external/codegen/box/collections/irrelevantImplCharSequenceKotlin.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/irrelevantImplCharSequenceKotlin.kt rename to backend.native/tests/external/codegen/box/collections/irrelevantImplCharSequenceKotlin.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/irrelevantImplMutableList.kt b/backend.native/tests/external/codegen/box/collections/irrelevantImplMutableList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/irrelevantImplMutableList.kt rename to backend.native/tests/external/codegen/box/collections/irrelevantImplMutableList.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/irrelevantImplMutableListKotlin.kt b/backend.native/tests/external/codegen/box/collections/irrelevantImplMutableListKotlin.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/irrelevantImplMutableListKotlin.kt rename to backend.native/tests/external/codegen/box/collections/irrelevantImplMutableListKotlin.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/irrelevantImplMutableListSubstitution.kt b/backend.native/tests/external/codegen/box/collections/irrelevantImplMutableListSubstitution.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/irrelevantImplMutableListSubstitution.kt rename to backend.native/tests/external/codegen/box/collections/irrelevantImplMutableListSubstitution.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/irrelevantRemoveAtOverrideInJava.kt b/backend.native/tests/external/codegen/box/collections/irrelevantRemoveAtOverrideInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/irrelevantRemoveAtOverrideInJava.kt rename to backend.native/tests/external/codegen/box/collections/irrelevantRemoveAtOverrideInJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/irrelevantSizeOverrideInJava.kt b/backend.native/tests/external/codegen/box/collections/irrelevantSizeOverrideInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/irrelevantSizeOverrideInJava.kt rename to backend.native/tests/external/codegen/box/collections/irrelevantSizeOverrideInJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/mutableList.kt b/backend.native/tests/external/codegen/box/collections/mutableList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/mutableList.kt rename to backend.native/tests/external/codegen/box/collections/mutableList.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/noStubsInJavaSuperClass.kt b/backend.native/tests/external/codegen/box/collections/noStubsInJavaSuperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/noStubsInJavaSuperClass.kt rename to backend.native/tests/external/codegen/box/collections/noStubsInJavaSuperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/platformValueContains.kt b/backend.native/tests/external/codegen/box/collections/platformValueContains.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/platformValueContains.kt rename to backend.native/tests/external/codegen/box/collections/platformValueContains.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/readOnlyList.kt b/backend.native/tests/external/codegen/box/collections/readOnlyList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/readOnlyList.kt rename to backend.native/tests/external/codegen/box/collections/readOnlyList.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/readOnlyMap.kt b/backend.native/tests/external/codegen/box/collections/readOnlyMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/readOnlyMap.kt rename to backend.native/tests/external/codegen/box/collections/readOnlyMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/removeAtInt.kt b/backend.native/tests/external/codegen/box/collections/removeAtInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/removeAtInt.kt rename to backend.native/tests/external/codegen/box/collections/removeAtInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/strList.kt b/backend.native/tests/external/codegen/box/collections/strList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/strList.kt rename to backend.native/tests/external/codegen/box/collections/strList.kt diff --git a/backend.native/tests/external/codegen/blackbox/collections/toArrayInJavaClass.kt b/backend.native/tests/external/codegen/box/collections/toArrayInJavaClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/collections/toArrayInJavaClass.kt rename to backend.native/tests/external/codegen/box/collections/toArrayInJavaClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/compatibility/dataClassEqualsHashCodeToString.kt b/backend.native/tests/external/codegen/box/compatibility/dataClassEqualsHashCodeToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/compatibility/dataClassEqualsHashCodeToString.kt rename to backend.native/tests/external/codegen/box/compatibility/dataClassEqualsHashCodeToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/constants/constantsInWhen.kt b/backend.native/tests/external/codegen/box/constants/constantsInWhen.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/constants/constantsInWhen.kt rename to backend.native/tests/external/codegen/box/constants/constantsInWhen.kt diff --git a/backend.native/tests/external/codegen/blackbox/constants/float.kt b/backend.native/tests/external/codegen/box/constants/float.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/constants/float.kt rename to backend.native/tests/external/codegen/box/constants/float.kt diff --git a/backend.native/tests/external/codegen/blackbox/constants/kt9532.kt b/backend.native/tests/external/codegen/box/constants/kt9532.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/constants/kt9532.kt rename to backend.native/tests/external/codegen/box/constants/kt9532.kt index e600cc309c1..0073c9670b5 100644 --- a/backend.native/tests/external/codegen/blackbox/constants/kt9532.kt +++ b/backend.native/tests/external/codegen/box/constants/kt9532.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS object A { const val a: String = "$" diff --git a/backend.native/tests/external/codegen/blackbox/constants/long.kt b/backend.native/tests/external/codegen/box/constants/long.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/constants/long.kt rename to backend.native/tests/external/codegen/box/constants/long.kt diff --git a/backend.native/tests/external/codegen/blackbox/constants/privateConst.kt b/backend.native/tests/external/codegen/box/constants/privateConst.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/constants/privateConst.kt rename to backend.native/tests/external/codegen/box/constants/privateConst.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/bottles.kt b/backend.native/tests/external/codegen/box/controlStructures/bottles.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/bottles.kt rename to backend.native/tests/external/codegen/box/controlStructures/bottles.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/breakFromOuter.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/breakFromOuter.kt similarity index 67% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/breakFromOuter.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/breakFromOuter.kt index 4890505afd0..7566e7c14a9 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/breakFromOuter.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/breakFromOuter.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { OUTER@while (true) { var x = "" diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/breakInDoWhile.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/breakInDoWhile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/breakInDoWhile.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/breakInDoWhile.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/breakInExpr.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/breakInExpr.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/breakInExpr.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/breakInExpr.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/continueInDoWhile.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/continueInDoWhile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/continueInDoWhile.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/continueInDoWhile.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/continueInExpr.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/continueInExpr.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/continueInExpr.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/continueInExpr.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/inlineWithStack.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/inlineWithStack.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/inlineWithStack.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/inlineWithStack.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/innerLoopWithStack.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/innerLoopWithStack.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/innerLoopWithStack.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/innerLoopWithStack.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/kt14581.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt14581.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/kt14581.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt14581.kt diff --git a/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713.kt new file mode 100644 index 00000000000..91199580064 --- /dev/null +++ b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713.kt @@ -0,0 +1,30 @@ +class MyQueue { + fun poll(): String? = null +} + +class A { + val delayedQueue = MyQueue() + + fun next() { + while (true) { + delayedQueue.poll() ?: break + } + + while (true) { + unblock(delayedQueue.poll() ?: break) + } + + while (true) { + unblock(delayedQueue.poll() ?: break) + } + } + + fun unblock(p: String) { + + } +} + +fun box() : String { + A().next() + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713_2.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713_2.kt new file mode 100644 index 00000000000..17a4079833e --- /dev/null +++ b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt16713_2.kt @@ -0,0 +1,32 @@ +class MyQueue { + fun poll(): String? = null +} + +class A { + val delayedQueue = MyQueue() + + var cond = true + + fun next() { + while (cond) { + delayedQueue.poll() ?: break + } + + while (cond) { + unblock(delayedQueue.poll() ?: break) + } + + while (cond) { + unblock(delayedQueue.poll() ?: break) + } + } + + fun unblock(p: String) { + + } +} + +fun box() : String { + A().next() + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/kt9022And.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt9022And.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/kt9022And.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt9022And.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/kt9022Or.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt9022Or.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/kt9022Or.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/kt9022Or.kt diff --git a/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/pathologicalDoWhile.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/pathologicalDoWhile.kt new file mode 100644 index 00000000000..4e97011ed2c --- /dev/null +++ b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/pathologicalDoWhile.kt @@ -0,0 +1,8 @@ +fun box(): String { + var flag = false + do { + if (flag) break + continue + } while (false) + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/popSizes.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/popSizes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/popSizes.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/popSizes.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/tryFinally1.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/tryFinally1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/tryFinally1.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/tryFinally1.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/tryFinally2.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/tryFinally2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/tryFinally2.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/tryFinally2.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/whileTrueBreak.kt b/backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/whileTrueBreak.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakContinueInExpressions/whileTrueBreak.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakContinueInExpressions/whileTrueBreak.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/breakInFinally.kt b/backend.native/tests/external/codegen/box/controlStructures/breakInFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/breakInFinally.kt rename to backend.native/tests/external/codegen/box/controlStructures/breakInFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/compareBoxedIntegerToZero.kt b/backend.native/tests/external/codegen/box/controlStructures/compareBoxedIntegerToZero.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/compareBoxedIntegerToZero.kt rename to backend.native/tests/external/codegen/box/controlStructures/compareBoxedIntegerToZero.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/conditionOfEmptyIf.kt b/backend.native/tests/external/codegen/box/controlStructures/conditionOfEmptyIf.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/conditionOfEmptyIf.kt rename to backend.native/tests/external/codegen/box/controlStructures/conditionOfEmptyIf.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/continueInExpr.kt b/backend.native/tests/external/codegen/box/controlStructures/continueInExpr.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/continueInExpr.kt rename to backend.native/tests/external/codegen/box/controlStructures/continueInExpr.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/continueInFor.kt b/backend.native/tests/external/codegen/box/controlStructures/continueInFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/continueInFor.kt rename to backend.native/tests/external/codegen/box/controlStructures/continueInFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/continueInForCondition.kt b/backend.native/tests/external/codegen/box/controlStructures/continueInForCondition.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/continueInForCondition.kt rename to backend.native/tests/external/codegen/box/controlStructures/continueInForCondition.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/continueInWhile.kt b/backend.native/tests/external/codegen/box/controlStructures/continueInWhile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/continueInWhile.kt rename to backend.native/tests/external/codegen/box/controlStructures/continueInWhile.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/continueToLabelInFor.kt b/backend.native/tests/external/codegen/box/controlStructures/continueToLabelInFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/continueToLabelInFor.kt rename to backend.native/tests/external/codegen/box/controlStructures/continueToLabelInFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/doWhile.kt b/backend.native/tests/external/codegen/box/controlStructures/doWhile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/doWhile.kt rename to backend.native/tests/external/codegen/box/controlStructures/doWhile.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/doWhileFib.kt b/backend.native/tests/external/codegen/box/controlStructures/doWhileFib.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/doWhileFib.kt rename to backend.native/tests/external/codegen/box/controlStructures/doWhileFib.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/doWhileWithContinue.kt b/backend.native/tests/external/codegen/box/controlStructures/doWhileWithContinue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/doWhileWithContinue.kt rename to backend.native/tests/external/codegen/box/controlStructures/doWhileWithContinue.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/emptyDoWhile.kt b/backend.native/tests/external/codegen/box/controlStructures/emptyDoWhile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/emptyDoWhile.kt rename to backend.native/tests/external/codegen/box/controlStructures/emptyDoWhile.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/emptyFor.kt b/backend.native/tests/external/codegen/box/controlStructures/emptyFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/emptyFor.kt rename to backend.native/tests/external/codegen/box/controlStructures/emptyFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/emptyWhile.kt b/backend.native/tests/external/codegen/box/controlStructures/emptyWhile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/emptyWhile.kt rename to backend.native/tests/external/codegen/box/controlStructures/emptyWhile.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/factorialTest.kt b/backend.native/tests/external/codegen/box/controlStructures/factorialTest.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/factorialTest.kt rename to backend.native/tests/external/codegen/box/controlStructures/factorialTest.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/finallyOnEmptyReturn.kt b/backend.native/tests/external/codegen/box/controlStructures/finallyOnEmptyReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/finallyOnEmptyReturn.kt rename to backend.native/tests/external/codegen/box/controlStructures/finallyOnEmptyReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forArrayList.kt b/backend.native/tests/external/codegen/box/controlStructures/forArrayList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forArrayList.kt rename to backend.native/tests/external/codegen/box/controlStructures/forArrayList.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forArrayListMultiDecl.kt b/backend.native/tests/external/codegen/box/controlStructures/forArrayListMultiDecl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forArrayListMultiDecl.kt rename to backend.native/tests/external/codegen/box/controlStructures/forArrayListMultiDecl.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forInSmartCastToArray.kt b/backend.native/tests/external/codegen/box/controlStructures/forInSmartCastToArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forInSmartCastToArray.kt rename to backend.native/tests/external/codegen/box/controlStructures/forInSmartCastToArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forIntArray.kt b/backend.native/tests/external/codegen/box/controlStructures/forIntArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forIntArray.kt rename to backend.native/tests/external/codegen/box/controlStructures/forIntArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forLoopMemberExtensionAll.kt b/backend.native/tests/external/codegen/box/controlStructures/forLoopMemberExtensionAll.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forLoopMemberExtensionAll.kt rename to backend.native/tests/external/codegen/box/controlStructures/forLoopMemberExtensionAll.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forLoopMemberExtensionHasNext.kt b/backend.native/tests/external/codegen/box/controlStructures/forLoopMemberExtensionHasNext.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forLoopMemberExtensionHasNext.kt rename to backend.native/tests/external/codegen/box/controlStructures/forLoopMemberExtensionHasNext.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forLoopMemberExtensionNext.kt b/backend.native/tests/external/codegen/box/controlStructures/forLoopMemberExtensionNext.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forLoopMemberExtensionNext.kt rename to backend.native/tests/external/codegen/box/controlStructures/forLoopMemberExtensionNext.kt index e5a78d84cde..bfc79302ec1 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/forLoopMemberExtensionNext.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/forLoopMemberExtensionNext.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS class It { var hasNext = true diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forNullableIntArray.kt b/backend.native/tests/external/codegen/box/controlStructures/forNullableIntArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forNullableIntArray.kt rename to backend.native/tests/external/codegen/box/controlStructures/forNullableIntArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forPrimitiveIntArray.kt b/backend.native/tests/external/codegen/box/controlStructures/forPrimitiveIntArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forPrimitiveIntArray.kt rename to backend.native/tests/external/codegen/box/controlStructures/forPrimitiveIntArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/forUserType.kt b/backend.native/tests/external/codegen/box/controlStructures/forUserType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/forUserType.kt rename to backend.native/tests/external/codegen/box/controlStructures/forUserType.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/inRangeConditionsInWhen.kt b/backend.native/tests/external/codegen/box/controlStructures/inRangeConditionsInWhen.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/inRangeConditionsInWhen.kt rename to backend.native/tests/external/codegen/box/controlStructures/inRangeConditionsInWhen.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt12908.kt b/backend.native/tests/external/codegen/box/controlStructures/kt12908.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt12908.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt12908.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt12908_2.kt b/backend.native/tests/external/codegen/box/controlStructures/kt12908_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt12908_2.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt12908_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt1441.kt b/backend.native/tests/external/codegen/box/controlStructures/kt1441.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt1441.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt1441.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt14839.kt b/backend.native/tests/external/codegen/box/controlStructures/kt14839.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt14839.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt14839.kt diff --git a/backend.native/tests/external/codegen/box/controlStructures/kt15726.kt b/backend.native/tests/external/codegen/box/controlStructures/kt15726.kt new file mode 100644 index 00000000000..eb4e336f3e9 --- /dev/null +++ b/backend.native/tests/external/codegen/box/controlStructures/kt15726.kt @@ -0,0 +1,26 @@ + +fun nyCompiler() { + try { + return + } + catch (e: Exception) {} + finally { + try {} catch (e: Exception) {} + } +} + + +fun nyCompiler2() { + try { + return + } + finally { + try {} catch (e: Exception) {} + } +} + +fun box(): String { + nyCompiler() + nyCompiler2() + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt1688.kt b/backend.native/tests/external/codegen/box/controlStructures/kt1688.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt1688.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt1688.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt1742.kt b/backend.native/tests/external/codegen/box/controlStructures/kt1742.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt1742.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt1742.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt1899.kt b/backend.native/tests/external/codegen/box/controlStructures/kt1899.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt1899.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt1899.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2147.kt b/backend.native/tests/external/codegen/box/controlStructures/kt2147.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt2147.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt2147.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2259.kt b/backend.native/tests/external/codegen/box/controlStructures/kt2259.kt similarity index 77% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt2259.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt2259.kt index f0d79145682..7b695efee06 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2259.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/kt2259.kt @@ -1,4 +1,4 @@ -fun foo(args: Array) { +fun main(args: Array) { try { } finally { try { diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2291.kt b/backend.native/tests/external/codegen/box/controlStructures/kt2291.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt2291.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt2291.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt237.kt b/backend.native/tests/external/codegen/box/controlStructures/kt237.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt237.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt237.kt index fa86ef1b099..dbf2075ffe8 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/kt237.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/kt237.kt @@ -1,7 +1,7 @@ // TODO: muted automatically, investigate should it be ran for JS or not // IGNORE_BACKEND: JS, NATIVE -fun foo(args: Array?) { +fun main(args: Array?) { val y: Unit = Unit //do not compile A() //do not compile C(Unit) //do not compile @@ -39,6 +39,6 @@ fun box() : String { a[2] = 2 foreach(a, { el : Int -> System.out?.println(el) }) almostFilter(a, { el : Int -> el }) - foo(null) + main(null) return "OK" } diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2416.kt b/backend.native/tests/external/codegen/box/controlStructures/kt2416.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt2416.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt2416.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2423.kt b/backend.native/tests/external/codegen/box/controlStructures/kt2423.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt2423.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt2423.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2577.kt b/backend.native/tests/external/codegen/box/controlStructures/kt2577.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt2577.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt2577.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt2597.kt b/backend.native/tests/external/codegen/box/controlStructures/kt2597.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt2597.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt2597.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt299.kt b/backend.native/tests/external/codegen/box/controlStructures/kt299.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt299.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt299.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt3087.kt b/backend.native/tests/external/codegen/box/controlStructures/kt3087.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt3087.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt3087.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt3203_1.kt b/backend.native/tests/external/codegen/box/controlStructures/kt3203_1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt3203_1.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt3203_1.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt3203_2.kt b/backend.native/tests/external/codegen/box/controlStructures/kt3203_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt3203_2.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt3203_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt3273.kt b/backend.native/tests/external/codegen/box/controlStructures/kt3273.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt3273.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt3273.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt3280.kt b/backend.native/tests/external/codegen/box/controlStructures/kt3280.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt3280.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt3280.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt3574.kt b/backend.native/tests/external/codegen/box/controlStructures/kt3574.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt3574.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt3574.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt416.kt b/backend.native/tests/external/codegen/box/controlStructures/kt416.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt416.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt416.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt513.kt b/backend.native/tests/external/codegen/box/controlStructures/kt513.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt513.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt513.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt628.kt b/backend.native/tests/external/codegen/box/controlStructures/kt628.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt628.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt628.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt769.kt b/backend.native/tests/external/codegen/box/controlStructures/kt769.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt769.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt769.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt772.kt b/backend.native/tests/external/codegen/box/controlStructures/kt772.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt772.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt772.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt773.kt b/backend.native/tests/external/codegen/box/controlStructures/kt773.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt773.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt773.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt8148.kt b/backend.native/tests/external/codegen/box/controlStructures/kt8148.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt8148.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt8148.kt index 39a1846ee54..cdb124ff0e2 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/kt8148.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/kt8148.kt @@ -29,4 +29,4 @@ fun test(a: A) : String { a.value += ", finally2" throw RuntimeException("fail") } -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt8148_break.kt b/backend.native/tests/external/codegen/box/controlStructures/kt8148_break.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt8148_break.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt8148_break.kt index 916af6bc06c..7751bc545b9 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/kt8148_break.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/kt8148_break.kt @@ -33,4 +33,4 @@ fun test(a: A) : String { throw RuntimeException("fail") } } -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt8148_continue.kt b/backend.native/tests/external/codegen/box/controlStructures/kt8148_continue.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt8148_continue.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt8148_continue.kt index 2cf60fb734e..54a5824e704 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/kt8148_continue.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/kt8148_continue.kt @@ -34,4 +34,4 @@ fun test(a: A) : String { } } return "fail" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt870.kt b/backend.native/tests/external/codegen/box/controlStructures/kt870.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt870.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt870.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt9022Return.kt b/backend.native/tests/external/codegen/box/controlStructures/kt9022Return.kt similarity index 84% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt9022Return.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt9022Return.kt index 66ccf4bdadf..f8ec8a28450 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/kt9022Return.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/kt9022Return.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun testOr(b: Boolean): Boolean { return b || return !b; } diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt9022Throw.kt b/backend.native/tests/external/codegen/box/controlStructures/kt9022Throw.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt9022Throw.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt9022Throw.kt index adb3fab9356..9c306782006 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/kt9022Throw.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/kt9022Throw.kt @@ -9,4 +9,4 @@ fun box(): String { } } return "fail" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt910.kt b/backend.native/tests/external/codegen/box/controlStructures/kt910.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt910.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt910.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/kt958.kt b/backend.native/tests/external/codegen/box/controlStructures/kt958.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/kt958.kt rename to backend.native/tests/external/codegen/box/controlStructures/kt958.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/longRange.kt b/backend.native/tests/external/codegen/box/controlStructures/longRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/longRange.kt rename to backend.native/tests/external/codegen/box/controlStructures/longRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/quicksort.kt b/backend.native/tests/external/codegen/box/controlStructures/quicksort.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/quicksort.kt rename to backend.native/tests/external/codegen/box/controlStructures/quicksort.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/ifElse.kt b/backend.native/tests/external/codegen/box/controlStructures/returnsNothing/ifElse.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/ifElse.kt rename to backend.native/tests/external/codegen/box/controlStructures/returnsNothing/ifElse.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/inlineMethod.kt b/backend.native/tests/external/codegen/box/controlStructures/returnsNothing/inlineMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/inlineMethod.kt rename to backend.native/tests/external/codegen/box/controlStructures/returnsNothing/inlineMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/propertyGetter.kt b/backend.native/tests/external/codegen/box/controlStructures/returnsNothing/propertyGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/propertyGetter.kt rename to backend.native/tests/external/codegen/box/controlStructures/returnsNothing/propertyGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/tryCatch.kt b/backend.native/tests/external/codegen/box/controlStructures/returnsNothing/tryCatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/tryCatch.kt rename to backend.native/tests/external/codegen/box/controlStructures/returnsNothing/tryCatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/when.kt b/backend.native/tests/external/codegen/box/controlStructures/returnsNothing/when.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/returnsNothing/when.kt rename to backend.native/tests/external/codegen/box/controlStructures/returnsNothing/when.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchFinallyChain.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchFinallyChain.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchFinallyChain.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchFinallyChain.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/catch.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/catch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/catch.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/catch.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/complexChain.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/complexChain.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/complexChain.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/complexChain.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/deadTryCatch.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/deadTryCatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/deadTryCatch.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/deadTryCatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/differentTypes.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/differentTypes.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/differentTypes.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/differentTypes.kt index 99d56fa995f..645de5f06e1 100644 --- a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/differentTypes.kt +++ b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/differentTypes.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun foo(b: Byte, s: String, i: Int, d: Double, li: Long): String = "$b $s $i $d $li" diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/expectException.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/expectException.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/expectException.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/expectException.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/finally.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/finally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/finally.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/finally.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/inlineTryCatch.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/inlineTryCatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/inlineTryCatch.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/inlineTryCatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/inlineTryExpr.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/inlineTryExpr.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/inlineTryExpr.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/inlineTryExpr.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/inlineTryFinally.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/inlineTryFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/inlineTryFinally.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/inlineTryFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/kt8608.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/kt8608.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/kt8608.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/kt8608.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/kt9644try.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/kt9644try.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/kt9644try.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/kt9644try.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/multipleCatchBlocks.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/multipleCatchBlocks.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/multipleCatchBlocks.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/multipleCatchBlocks.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/splitTry.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/splitTry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/splitTry.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/splitTry.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/splitTryCorner1.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/splitTryCorner1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/splitTryCorner1.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/splitTryCorner1.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/splitTryCorner2.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/splitTryCorner2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/splitTryCorner2.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/splitTryCorner2.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/try.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/try.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/try.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/try.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryAfterTry.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryAfterTry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryAfterTry.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryAfterTry.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryAndBreak.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryAndBreak.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryAndBreak.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryAndBreak.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryAndContinue.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryAndContinue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryAndContinue.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryAndContinue.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryInsideCatch.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryInsideCatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryInsideCatch.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryInsideCatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryInsideTry.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryInsideTry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/tryInsideTry.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/tryInsideTry.kt diff --git a/backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/unmatchedInlineMarkers.kt b/backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/unmatchedInlineMarkers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/controlStructures/tryCatchInExpressions/unmatchedInlineMarkers.kt rename to backend.native/tests/external/codegen/box/controlStructures/tryCatchInExpressions/unmatchedInlineMarkers.kt diff --git a/backend.native/tests/external/codegen/box/coroutines/32defaultParametersInSuspend.kt b/backend.native/tests/external/codegen/box/coroutines/32defaultParametersInSuspend.kt new file mode 100644 index 00000000000..b4db3363660 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/32defaultParametersInSuspend.kt @@ -0,0 +1,81 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class Controller { + suspend fun suspendHere( + a: String = "abc", + i1: Int = 1, + i2: Int = 1, + i3: Int = 1, + i4: Int = 1, + i5: Int = 1, + i6: Int = 1, + i7: Int = 1, + i8: Int = 1, + i9: Int = 1, + i10: Int = 1, + i11: Int = 1, + i12: Int = 1, + i13: Int = 1, + i14: Int = 1, + i15: Int = 1, + i16: Int = 1, + i17: Int = 1, + i18: Int = 1, + i19: Int = 1, + i20: Int = 1, + i21: Int = 1, + i22: Int = 1, + i23: Int = 1, + i24: Int = 1, + i25: Int = 1, + i26: Int = 1, + i27: Int = 1, + i28: Int = 1, + i29: Int = 1, + i30: Int = 1, + i31: Int = 1 + ): String = suspendCoroutineOrReturn { x -> + x.resume(a + "#" + (i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13 + i14 + i15 + i16 + i17 + i18 + i19 + i20 + i21 + i22 + i23 + i24 + i25 + i26 + i27 + i28 + i29 + i30 + i31)) + COROUTINE_SUSPENDED + } +} + +fun builder(c: suspend Controller.() -> Unit) { + c.startCoroutine(Controller(), EmptyContinuation) +} + +fun box(): String { + var result = "OK" + + builder { + var a = suspendHere() + if (a != "abc#31") { + result = "fail 1: $a" + throw RuntimeException(result) + } + + a = suspendHere("cde") + if (a != "cde#31") { + result = "fail 2: $a" + throw RuntimeException(result) + } + + a = suspendHere(i2 = 6) + if (a != "abc#36") { + result = "fail 3: $a" + throw RuntimeException(result) + } + + a = suspendHere("xyz", 9) + if (a != "xyz#39") { + result = "fail 4: $a" + throw RuntimeException(result) + } + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/accessorForSuspend.kt b/backend.native/tests/external/codegen/box/coroutines/accessorForSuspend.kt new file mode 100644 index 00000000000..14c07d8753a --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/accessorForSuspend.kt @@ -0,0 +1,35 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +class A { + suspend private fun a(): String = suspendCoroutineOrReturn { x -> + x.resume("OK") + COROUTINE_SUSPENDED + } + + suspend fun myfun(): String { + var result = "fail" + builder { + result = a() + } + + return result + } +} + +fun box(): String { + var result = "" + + builder { + result = A().myfun() + } + + return result +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/asyncIterator.kt b/backend.native/tests/external/codegen/box/coroutines/asyncIterator.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/coroutines/asyncIterator.kt rename to backend.native/tests/external/codegen/box/coroutines/asyncIterator.kt index 78c722daa9e..3d296292cde 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/asyncIterator.kt +++ b/backend.native/tests/external/codegen/box/coroutines/asyncIterator.kt @@ -1,7 +1,8 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* interface AsyncGenerator { suspend fun yield(value: T) @@ -34,18 +35,20 @@ class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, Continuati var computesNext = false var computeContinuation: Continuation<*>? = null - suspend fun computeHasNext(): Boolean = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + override val context = EmptyCoroutineContext + + suspend fun computeHasNext(): Boolean = suspendCoroutineOrReturn { c -> computesNext = false computeContinuation = c nextStep!!.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun computeNext(): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun computeNext(): T = suspendCoroutineOrReturn { c -> computesNext = true computeContinuation = c nextStep!!.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } @Suppress("UNCHECKED_CAST") @@ -91,12 +94,12 @@ class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, Continuati } // Generator implementation - override suspend fun yield(value: T): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + override suspend fun yield(value: T): Unit = suspendCoroutineOrReturn { c -> computedNext = true nextValue = value nextStep = c resumeIterator(null) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/asyncIteratorToList.kt b/backend.native/tests/external/codegen/box/coroutines/asyncIteratorToList.kt new file mode 100644 index 00000000000..76db51566d9 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/asyncIteratorToList.kt @@ -0,0 +1,131 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +interface AsyncGenerator { + suspend fun yield(value: T) +} + +interface AsyncSequence { + operator fun iterator(): AsyncIterator +} + +interface AsyncIterator { + operator suspend fun hasNext(): Boolean + operator suspend fun next(): T +} + +fun asyncGenerate(block: suspend AsyncGenerator.() -> Unit): AsyncSequence = object : AsyncSequence { + override fun iterator(): AsyncIterator { + val iterator = AsyncGeneratorIterator() + iterator.nextStep = block.createCoroutine(receiver = iterator, completion = iterator) + return iterator + } +} + +class AsyncGeneratorIterator: AsyncIterator, AsyncGenerator, Continuation { + var computedNext = false + var nextValue: T? = null + var nextStep: Continuation? = null + + // if (computesNext) computeContinuation is Continuation + // if (!computesNext) computeContinuation is Continuation + var computesNext = false + var computeContinuation: Continuation<*>? = null + + override val context = EmptyCoroutineContext + + suspend fun computeHasNext(): Boolean = suspendCoroutineOrReturn { c -> + computesNext = false + computeContinuation = c + nextStep!!.resume(Unit) + COROUTINE_SUSPENDED + } + + suspend fun computeNext(): T = suspendCoroutineOrReturn { c -> + computesNext = true + computeContinuation = c + nextStep!!.resume(Unit) + COROUTINE_SUSPENDED + } + + @Suppress("UNCHECKED_CAST") + fun resumeIterator(exception: Throwable?) { + if (exception != null) { + done() + computeContinuation!!.resumeWithException(exception) + return + } + if (computesNext) { + computedNext = false + (computeContinuation as Continuation).resume(nextValue as T) + } else { + (computeContinuation as Continuation).resume(nextStep != null) + } + } + + override suspend fun hasNext(): Boolean { + if (!computedNext) return computeHasNext() + return nextStep != null + } + + override suspend fun next(): T { + if (!computedNext) return computeNext() + computedNext = false + return nextValue as T + } + + private fun done() { + computedNext = true + nextStep = null + } + + // Completion continuation implementation + override fun resume(value: Unit) { + done() + resumeIterator(null) + } + + override fun resumeWithException(exception: Throwable) { + done() + resumeIterator(exception) + } + + // Generator implementation + override suspend fun yield(value: T): Unit = suspendCoroutineOrReturn { c -> + computedNext = true + nextValue = value + nextStep = c + resumeIterator(null) + COROUTINE_SUSPENDED + } +} + +suspend fun AsyncSequence.toList(): List { + val out = arrayListOf() + for (e in this@toList) out += e // fails at this line + return out +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + val seq = asyncGenerate { + yield("O") + yield("K") + } + + var res = listOf() + + builder { + res = seq.toList() + } + + if (res.size > 2) return "fail 1: ${res.size}" + + return res[0] + res[1] +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/await.kt b/backend.native/tests/external/codegen/box/coroutines/await.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/coroutines/await.kt rename to backend.native/tests/external/codegen/box/coroutines/await.kt index ab1c672a88c..33c864a53b3 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/await.kt +++ b/backend.native/tests/external/codegen/box/coroutines/await.kt @@ -2,7 +2,8 @@ // WITH_RUNTIME // WITH_COROUTINES // FILE: promise.kt -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Promise(private val executor: ((T) -> Unit) -> Unit) { private var value: Any? = null @@ -49,7 +50,8 @@ fun processQueue() { } // FILE: await.kt -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* private var log = "" @@ -66,7 +68,6 @@ suspend fun await(value: Promise): S = suspendCoroutine { continuation -> } } inAwait = false - CoroutineIntrinsics.SUSPENDED } suspend fun awaitAndLog(value: Promise): S { @@ -95,7 +96,8 @@ fun asyncOperation(resultSupplier: () -> T) = Promise { resolve -> fun getLog() = log // FILE: main.kt -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* private fun test() = async { val o = await(asyncOperation { "O" }) diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/beginWithException.kt b/backend.native/tests/external/codegen/box/coroutines/beginWithException.kt similarity index 76% rename from backend.native/tests/external/codegen/blackbox/coroutines/beginWithException.kt rename to backend.native/tests/external/codegen/box/coroutines/beginWithException.kt index 4eeca56fce9..e1bf8a4d75d 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/beginWithException.kt +++ b/backend.native/tests/external/codegen/box/coroutines/beginWithException.kt @@ -1,14 +1,17 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): Any = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> } +suspend fun suspendHere(): Any = suspendCoroutineOrReturn { x -> } fun builder(c: suspend () -> Unit) { var exception: Throwable? = null c.createCoroutine(object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(data: Unit) { } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/beginWithExceptionNoHandleException.kt b/backend.native/tests/external/codegen/box/coroutines/beginWithExceptionNoHandleException.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/coroutines/beginWithExceptionNoHandleException.kt rename to backend.native/tests/external/codegen/box/coroutines/beginWithExceptionNoHandleException.kt index d77c21b211b..0d2871f61b2 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/beginWithExceptionNoHandleException.kt +++ b/backend.native/tests/external/codegen/box/coroutines/beginWithExceptionNoHandleException.kt @@ -1,8 +1,9 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* -suspend fun suspendHere(): Any = CoroutineIntrinsics.suspendCoroutineOrReturn { x ->} +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +suspend fun suspendHere(): Any = suspendCoroutineOrReturn { x ->} fun builder(c: suspend () -> Unit) { try { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/coercionToUnit.kt b/backend.native/tests/external/codegen/box/coroutines/coercionToUnit.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/coroutines/coercionToUnit.kt rename to backend.native/tests/external/codegen/box/coroutines/coercionToUnit.kt index 23172281486..2703c04c7df 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/coercionToUnit.kt +++ b/backend.native/tests/external/codegen/box/coroutines/coercionToUnit.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun await(t: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> +suspend fun await(t: T): T = suspendCoroutineOrReturn { c -> c.resume(t) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit): String { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/breakFinally.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/breakFinally.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/breakFinally.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/breakFinally.kt index 34c8f2a26f6..d0e26cd30a7 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/breakFinally.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/breakFinally.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/breakStatement.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/breakStatement.kt similarity index 84% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/breakStatement.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/breakStatement.kt index 4e3d46df24b..580979e7978 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/breakStatement.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/breakStatement.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/doWhileStatement.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/doWhileStatement.kt similarity index 80% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/doWhileStatement.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/doWhileStatement.kt index 7bb4d29301b..a1989513e70 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/doWhileStatement.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/doWhileStatement.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/forContinue.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/forContinue.kt similarity index 74% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/forContinue.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/forContinue.kt index 1e88f614ae9..769fe1c7ddc 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/forContinue.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/forContinue.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/forStatement.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/forStatement.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/forStatement.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/forStatement.kt index 341e7d38d68..91c278f0faf 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/forStatement.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/forStatement.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/ifStatement.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/ifStatement.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/ifStatement.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/ifStatement.kt index 442551bae55..ffcfef17c55 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/ifStatement.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/ifStatement.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/controlFlow/returnFromFinally.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/returnFromFinally.kt new file mode 100644 index 00000000000..97823f76293 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/returnFromFinally.kt @@ -0,0 +1,66 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class Controller { + var result = "" + + suspend fun suspendAndLog(value: T): T = suspendCoroutineOrReturn { c -> + result += "suspend($value);" + c.resume(value) + COROUTINE_SUSPENDED + } +} + +fun builder(c: suspend Controller.() -> String): String { + val controller = Controller() + c.startCoroutine(controller, handleResultContinuation { + controller.result += "return($it);" + }) + return controller.result +} + +fun builderUnit(c: suspend Controller.() -> Unit): String { + val controller = Controller() + c.startCoroutine(controller, handleResultContinuation { + controller.result += "return;" + }) + return controller.result +} + +fun id(value: T) = value + +fun box(): String { + var value = builder { + try { + if (id(23) == 23) { + return@builder suspendAndLog("OK") + } + } + finally { + result += "finally;" + } + result += "afterFinally;" + "shouldNotReach" + } + if (value != "suspend(OK);finally;return(OK);") return "fail1: $value" + + value = builderUnit { + try { + if (id(23) == 23) { + suspendAndLog("OK") + return@builderUnit + } + } + finally { + result += "finally;" + } + result += "afterFinally;" + "shouldNotReach" + } + if (value != "suspend(OK);finally;return;") return "fail2: $value" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/switchLikeWhen.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/switchLikeWhen.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/switchLikeWhen.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/switchLikeWhen.kt index ec574ca95d1..af2096fa147 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/switchLikeWhen.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/switchLikeWhen.kt @@ -1,16 +1,17 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> result += "[" c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/throwFromCatch.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/throwFromCatch.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/throwFromCatch.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/throwFromCatch.kt index 1b8907f3c34..4ab3972e998 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/throwFromCatch.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/throwFromCatch.kt @@ -1,29 +1,32 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendAndLog(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendAndLog(value: T): T = suspendCoroutineOrReturn { c -> result += "suspend($value);" c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } // Tail calls are not allowed to be Nothing typed. See KT-15051 - suspend fun suspendLogAndThrow(exception: Throwable): Any? = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendLogAndThrow(exception: Throwable): Any? = suspendCoroutineOrReturn { c -> result += "throw(${exception.message});" c.resumeWithException(exception) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } fun builder(c: suspend Controller.() -> Unit): String { val controller = Controller() c.startCoroutine(controller, object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(data: Unit) { } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/throwInTryWithHandleResult.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/throwInTryWithHandleResult.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/throwInTryWithHandleResult.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/throwInTryWithHandleResult.kt index 77c3ae99d7f..15f2d1fb3e8 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/throwInTryWithHandleResult.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/throwInTryWithHandleResult.kt @@ -1,22 +1,25 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendAndLog(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendAndLog(value: T): T = suspendCoroutineOrReturn { c -> result += "suspend($value);" c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } fun builder(c: suspend Controller.() -> Unit): String { val controller = Controller() c.startCoroutine(controller, object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(data: Unit) {} override fun resumeWithException(exception: Throwable) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/whileStatement.kt b/backend.native/tests/external/codegen/box/coroutines/controlFlow/whileStatement.kt similarity index 80% rename from backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/whileStatement.kt rename to backend.native/tests/external/codegen/box/coroutines/controlFlow/whileStatement.kt index 9b0961584f5..0f9c8685e50 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controlFlow/whileStatement.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controlFlow/whileStatement.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" - suspend fun suspendWithResult(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend fun suspendWithResult(value: T): T = suspendCoroutineOrReturn { c -> c.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/controllerAccessFromInnerLambda.kt b/backend.native/tests/external/codegen/box/coroutines/controllerAccessFromInnerLambda.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/coroutines/controllerAccessFromInnerLambda.kt rename to backend.native/tests/external/codegen/box/coroutines/controllerAccessFromInnerLambda.kt index b8e693cb514..74dbdf8b23f 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/controllerAccessFromInnerLambda.kt +++ b/backend.native/tests/external/codegen/box/coroutines/controllerAccessFromInnerLambda.kt @@ -1,13 +1,14 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = false - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun foo() { diff --git a/backend.native/tests/external/codegen/box/coroutines/createCoroutineSafe.kt b/backend.native/tests/external/codegen/box/coroutines/createCoroutineSafe.kt new file mode 100644 index 00000000000..6c8f2330304 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/createCoroutineSafe.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +fun builder(c: suspend () -> Unit) { + val x = c.createCoroutine(EmptyContinuation) + + x.resume(Unit) + x.resume(Unit) +} + +fun box(): String { + var result = "" + + try { + builder { + result = "OK" + } + } catch (e: IllegalStateException) { + return result + } + + return "fail: $result" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/createCoroutinesOnManualInstances.kt b/backend.native/tests/external/codegen/box/coroutines/createCoroutinesOnManualInstances.kt new file mode 100644 index 00000000000..7b7ebf262ce --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/createCoroutinesOnManualInstances.kt @@ -0,0 +1,93 @@ +// WITH_RUNTIME +// IGNORE_BACKEND: JS, NATIVE +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED + +fun runCustomLambdaAsCoroutine(e: Throwable? = null, x: (Continuation) -> Any?): String { + var result = "fail" + var wasIntercepted = false + val c = (x as suspend () -> String).createCoroutine(object: Continuation { + override fun resumeWithException(exception: Throwable) { + throw exception + } + + override val context: CoroutineContext + get() = object: ContinuationInterceptor { + override fun fold(initial: R, operation: (R, CoroutineContext.Element) -> R): R { + throw IllegalStateException() + } + + override fun get(key: CoroutineContext.Key): E? { + if (key == ContinuationInterceptor.Key) { + return this as E + } + return null + } + + override fun interceptContinuation(continuation: Continuation) = object : Continuation { + override val context: CoroutineContext + get() = continuation.context + + override fun resume(value: T) { + wasIntercepted = true + continuation.resume(value) + } + + override fun resumeWithException(exception: Throwable) { + wasIntercepted = true + continuation.resumeWithException(exception) + } + } + + override fun minusKey(key: CoroutineContext.Key<*>): CoroutineContext { + throw IllegalStateException() + } + + override fun plus(context: CoroutineContext): CoroutineContext { + throw IllegalStateException() + } + + override val key: CoroutineContext.Key<*> + get() = ContinuationInterceptor.Key + } + + override fun resume(value: String) { + result = value + } + }) + + if (e != null) + c.resumeWithException(e) + else + c.resume(Unit) + + if (!wasIntercepted) return "was not intercepted" + + return result +} + +fun box(): String { + val x = runCustomLambdaAsCoroutine { + it.resume("OK") + COROUTINE_SUSPENDED + } + + if (x != "OK") return "fail 1: $x" + + val y = runCustomLambdaAsCoroutine { + "OK" + } + + if (y != "OK") return "fail 2: $x" + + + try { + runCustomLambdaAsCoroutine(RuntimeException("OK")) { + throw RuntimeException("fail 3") + } + } catch(e: Exception) { + return e.message!! + } + + return "fail 3" +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/defaultParametersInSuspend.kt b/backend.native/tests/external/codegen/box/coroutines/defaultParametersInSuspend.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/coroutines/defaultParametersInSuspend.kt rename to backend.native/tests/external/codegen/box/coroutines/defaultParametersInSuspend.kt index 6c0bd9a7948..2c05ebcb014 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/defaultParametersInSuspend.kt +++ b/backend.native/tests/external/codegen/box/coroutines/defaultParametersInSuspend.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(a: String = "abc", i: Int = 2): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(a: String = "abc", i: Int = 2): String = suspendCoroutineOrReturn { x -> x.resume(a + "#" + (i + 1)) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/dispatchResume.kt b/backend.native/tests/external/codegen/box/coroutines/dispatchResume.kt similarity index 53% rename from backend.native/tests/external/codegen/blackbox/coroutines/dispatchResume.kt rename to backend.native/tests/external/codegen/box/coroutines/dispatchResume.kt index b06739a1332..6bcd95ff8e5 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/dispatchResume.kt +++ b/backend.native/tests/external/codegen/box/coroutines/dispatchResume.kt @@ -1,28 +1,52 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var log = "" var resumeIndex = 0 - suspend fun suspendWithValue(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { continuation -> + suspend fun suspendWithValue(value: T): T = suspendCoroutineOrReturn { continuation -> log += "suspend($value);" continuation.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithException(value: String): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { continuation -> + suspend fun suspendWithException(value: String): Unit = suspendCoroutineOrReturn { continuation -> log += "error($value);" continuation.resumeWithException(RuntimeException(value)) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED + } +} + +abstract class ContinuationDispatcher : AbstractCoroutineContextElement(ContinuationInterceptor), ContinuationInterceptor { + abstract fun dispatchResume(value: T, continuation: Continuation): Boolean + abstract fun dispatchResumeWithException(exception: Throwable, continuation: Continuation<*>): Boolean + override fun interceptContinuation(continuation: Continuation): Continuation = DispatchedContinuation(this, continuation) +} + +private class DispatchedContinuation( + val dispatcher: ContinuationDispatcher, + val continuation: Continuation +): Continuation { + override val context: CoroutineContext = continuation.context + + override fun resume(value: T) { + if (!dispatcher.dispatchResume(value, continuation)) + continuation.resume(value) + } + + override fun resumeWithException(exception: Throwable) { + if (!dispatcher.dispatchResumeWithException(exception, continuation)) + continuation.resumeWithException(exception) } } fun test(c: suspend Controller.() -> Unit): String { val controller = Controller() - c.startCoroutine(controller, EmptyContinuation, object: ContinuationDispatcher { + c.startCoroutine(controller, EmptyContinuation(object: ContinuationDispatcher() { private fun dispatchResume(block: () -> Unit) { val id = controller.resumeIndex++ controller.log += "before $id;" @@ -43,7 +67,7 @@ fun test(c: suspend Controller.() -> Unit): String { } return true } - }) + })) return controller.log } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/emptyClosure.kt b/backend.native/tests/external/codegen/box/coroutines/emptyClosure.kt similarity index 70% rename from backend.native/tests/external/codegen/blackbox/coroutines/emptyClosure.kt rename to backend.native/tests/external/codegen/box/coroutines/emptyClosure.kt index c3b46152530..8e37d949a66 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/emptyClosure.kt +++ b/backend.native/tests/external/codegen/box/coroutines/emptyClosure.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var result = 0 class Controller { - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> result++ x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/falseUnitCoercion.kt b/backend.native/tests/external/codegen/box/coroutines/falseUnitCoercion.kt similarity index 68% rename from backend.native/tests/external/codegen/blackbox/coroutines/falseUnitCoercion.kt rename to backend.native/tests/external/codegen/box/coroutines/falseUnitCoercion.kt index 067fedbe3f7..39d9f4d74c8 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/falseUnitCoercion.kt +++ b/backend.native/tests/external/codegen/box/coroutines/falseUnitCoercion.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(v: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(v: T): T = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/featureIntersection/destructuringInLambdas.kt b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/destructuringInLambdas.kt new file mode 100644 index 00000000000..df8ef6d64be --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/destructuringInLambdas.kt @@ -0,0 +1,23 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +data class A(val o: String) { + operator fun component2(): String = "K" +} +fun builder(c: suspend (A) -> Unit) { + (c as (suspend A.() -> Unit)).startCoroutine(A("O"), EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + (x, y) -> + result = x + y + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceivers.kt b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceivers.kt new file mode 100644 index 00000000000..5a1116ebbf0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceivers.kt @@ -0,0 +1,49 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import kotlin.test.assertEquals + +class A(val w: String) { + suspend fun String.ext(): String = suspendCoroutineOrReturn { + x -> + x.resume(this + w) + COROUTINE_SUSPENDED + } +} + +suspend fun A.coroutinebug(v: String?): String { + val r = v?.ext() + if (r == null) return "null" + return r +} + +suspend fun A.coroutinebug2(v: String?): String { + val r = v?.ext() ?: "null" + return r +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "fail 2" + + builder { + val a = A("K") + val x1 = a.coroutinebug(null) + if (x1 != "null") throw RuntimeException("fail 1: $x1") + + val x2 = a.coroutinebug(null) + if (x2 != "null") throw RuntimeException("fail 2: $x2") + + val x3 = a.coroutinebug2(null) + if (x3 != "null") throw RuntimeException("fail 3: $x3") + + result = a.coroutinebug2("O") + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceiversLong.kt b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceiversLong.kt new file mode 100644 index 00000000000..48f4c56b587 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/safeCallOnTwoReceiversLong.kt @@ -0,0 +1,52 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import kotlin.test.assertEquals + +class A(val w: String) { + suspend fun Long.ext(): String = suspendCoroutineOrReturn { + x -> + x.resume(this.toString() + w) + COROUTINE_SUSPENDED + } +} + +suspend fun A.coroutinebug(v: Long?): String { + val r = v?.ext() + if (r == null) return "null" + return r +} + +suspend fun A.coroutinebug2(v: Long?): String { + val r = v?.ext() ?: "null" + return r +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "fail 2" + + builder { + val a = A("#test") + val x1 = a.coroutinebug(null) + if (x1 != "null") throw RuntimeException("fail 1: $x1") + + val x2 = a.coroutinebug(123456789012345) + if (x2 != "123456789012345#test") throw RuntimeException("fail 2: $x2") + + val x3 = a.coroutinebug2(null) + if (x3 != "null") throw RuntimeException("fail 3: $x3") + + val x4 = a.coroutinebug2(123456789012345) + if (x4 != "123456789012345#test") throw RuntimeException("fail 4: $x4") + + result = "OK" + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/featureIntersection/suspendDestructuringInLambdas.kt b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/suspendDestructuringInLambdas.kt new file mode 100644 index 00000000000..06a88fea79d --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/suspendDestructuringInLambdas.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +data class A(val o: String) { + operator suspend fun component2(): String = suspendCoroutineOrReturn { x -> + x.resume("K") + COROUTINE_SUSPENDED + } +} +fun builder(c: suspend (A) -> Unit) { + (c as (suspend A.() -> Unit)).startCoroutine(A("O"), EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + (x, y) -> + result = x + y + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/featureIntersection/tailrec.kt b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/tailrec.kt new file mode 100644 index 00000000000..44170511eb6 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/featureIntersection/tailrec.kt @@ -0,0 +1,35 @@ +// WITH_RUNTIME +// WITH_COROUTINES +// IGNORE_BACKEND: JS, NATIVE +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import kotlin.test.assertEquals + +suspend fun ArrayList.yield(v: Int): Unit = suspendCoroutineOrReturn { x -> + this.add(v) + x.resume(Unit) + COROUTINE_SUSPENDED +} + +tailrec suspend fun ArrayList.fromTo(from: Int, to: Int) { + if (from > to) return + yield(from) + return fromTo(from + 1, to) +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + val result = arrayListOf() + + builder { + result.fromTo(1, 5) + } + + assertEquals(listOf(1, 2, 3, 4, 5), result) + + return "OK" +} + diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/generate.kt b/backend.native/tests/external/codegen/box/coroutines/generate.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/coroutines/generate.kt rename to backend.native/tests/external/codegen/box/coroutines/generate.kt index 6400a6da448..4a525f5e43d 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/generate.kt +++ b/backend.native/tests/external/codegen/box/coroutines/generate.kt @@ -2,7 +2,8 @@ // WITH_RUNTIME // WITH_COROUTINES // FULL_JDK -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* fun box(): String { val x = gen().joinToString() @@ -39,6 +40,8 @@ class GeneratedSequence(private val block: suspend Generator.() -> Uni class GeneratedIterator(block: suspend Generator.() -> Unit) : AbstractIterator(), Generator { private var nextStep: Continuation = block.createCoroutine(this, object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(data: Unit) { done() } @@ -51,10 +54,10 @@ class GeneratedIterator(block: suspend Generator.() -> Unit) : AbstractIte override fun computeNext() { nextStep.resume(Unit) } - suspend override fun yield(value: T) = CoroutineIntrinsics.suspendCoroutineOrReturn { c -> + suspend override fun yield(value: T) = suspendCoroutineOrReturn { c -> setNext(value) nextStep = c - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/handleException.kt b/backend.native/tests/external/codegen/box/coroutines/handleException.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/coroutines/handleException.kt rename to backend.native/tests/external/codegen/box/coroutines/handleException.kt index 39983fc273d..c8f97aa177c 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/handleException.kt +++ b/backend.native/tests/external/codegen/box/coroutines/handleException.kt @@ -1,26 +1,27 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var exception: Throwable? = null val postponedActions = ArrayList<() -> Unit>() - suspend fun suspendWithValue(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resume(v) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithException(e: Exception): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithException(e: Exception): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resumeWithException(e) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun run(c: suspend Controller.() -> Unit) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/handleResultCallEmptyBody.kt b/backend.native/tests/external/codegen/box/coroutines/handleResultCallEmptyBody.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/coroutines/handleResultCallEmptyBody.kt rename to backend.native/tests/external/codegen/box/coroutines/handleResultCallEmptyBody.kt index a21d8b49df3..6efb0ecb5ce 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/handleResultCallEmptyBody.kt +++ b/backend.native/tests/external/codegen/box/coroutines/handleResultCallEmptyBody.kt @@ -1,7 +1,8 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* fun builder(c: suspend () -> Unit): String { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/handleResultNonUnitExpression.kt b/backend.native/tests/external/codegen/box/coroutines/handleResultNonUnitExpression.kt similarity index 68% rename from backend.native/tests/external/codegen/blackbox/coroutines/handleResultNonUnitExpression.kt rename to backend.native/tests/external/codegen/box/coroutines/handleResultNonUnitExpression.kt index 28567492201..4b6d8b28f68 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/handleResultNonUnitExpression.kt +++ b/backend.native/tests/external/codegen/box/coroutines/handleResultNonUnitExpression.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/handleResultSuspended.kt b/backend.native/tests/external/codegen/box/coroutines/handleResultSuspended.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/coroutines/handleResultSuspended.kt rename to backend.native/tests/external/codegen/box/coroutines/handleResultSuspended.kt index 0ec84abd0d9..f817b292bd3 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/handleResultSuspended.kt +++ b/backend.native/tests/external/codegen/box/coroutines/handleResultSuspended.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var log = "" - suspend fun suspendAndLog(value: T): T = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendAndLog(value: T): T = suspendCoroutineOrReturn { x -> log += "suspend($value);" x.resume(value) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/illegalState.kt b/backend.native/tests/external/codegen/box/coroutines/illegalState.kt similarity index 71% rename from backend.native/tests/external/codegen/blackbox/coroutines/illegalState.kt rename to backend.native/tests/external/codegen/box/coroutines/illegalState.kt index d39b4cd19bd..058c1bbd465 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/illegalState.kt +++ b/backend.native/tests/external/codegen/box/coroutines/illegalState.kt @@ -2,11 +2,12 @@ // WITH_RUNTIME // WITH_COROUTINES // TARGET_BACKEND: JVM -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder1(c: suspend () -> Unit) { @@ -15,9 +16,14 @@ fun builder1(c: suspend () -> Unit) { fun builder2(c: suspend () -> Unit) { val continuation = c.createCoroutine(EmptyContinuation) - val declaredField = continuation.javaClass.superclass.superclass.getDeclaredField("label") + + val delegateField = continuation.javaClass.getDeclaredField("delegate") + delegateField.setAccessible(true) + val originalContinuation = delegateField.get(continuation) + + val declaredField = originalContinuation.javaClass.superclass.getDeclaredField("label") declaredField.setAccessible(true) - declaredField.set(continuation, -3) + declaredField.set(originalContinuation, -3) continuation.resume(Unit) } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/inlineSuspendFunction.kt b/backend.native/tests/external/codegen/box/coroutines/inlineSuspendFunction.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/coroutines/inlineSuspendFunction.kt rename to backend.native/tests/external/codegen/box/coroutines/inlineSuspendFunction.kt index e463eddc17c..f4b068062ae 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/inlineSuspendFunction.kt +++ b/backend.native/tests/external/codegen/box/coroutines/inlineSuspendFunction.kt @@ -5,16 +5,17 @@ // CHECK_NOT_CALLED: suspendInline_61zpoe$ // CHECK_NOT_CALLED: suspendInline_6r51u9$ // CHECK_NOT_CALLED: suspendInline -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { fun withValue(v: String, x: Continuation) { x.resume(v) } - suspend inline fun suspendInline(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend inline fun suspendInline(v: String): String = suspendCoroutineOrReturn { x -> withValue(v, x) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } suspend inline fun suspendInline(crossinline b: () -> String): String = suspendInline(b()) diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/inlinedTryCatchFinally.kt b/backend.native/tests/external/codegen/box/coroutines/inlinedTryCatchFinally.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/coroutines/inlinedTryCatchFinally.kt rename to backend.native/tests/external/codegen/box/coroutines/inlinedTryCatchFinally.kt index dc4cd79e5d5..11ab7a0f6b4 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/inlinedTryCatchFinally.kt +++ b/backend.native/tests/external/codegen/box/coroutines/inlinedTryCatchFinally.kt @@ -1,27 +1,28 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var globalResult = "" var wasCalled = false class Controller { val postponedActions = mutableListOf<() -> Unit>() - suspend fun suspendWithValue(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resume(v) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithException(e: Exception): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithException(e: Exception): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resumeWithException(e) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun run(c: suspend Controller.() -> String) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/innerSuspensionCalls.kt b/backend.native/tests/external/codegen/box/coroutines/innerSuspensionCalls.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/coroutines/innerSuspensionCalls.kt rename to backend.native/tests/external/codegen/box/coroutines/innerSuspensionCalls.kt index 056a648b33d..d6cd8e837b6 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/innerSuspensionCalls.kt +++ b/backend.native/tests/external/codegen/box/coroutines/innerSuspensionCalls.kt @@ -1,13 +1,14 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var i = 0 - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume((i++).toString()) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/instanceOfContinuation.kt b/backend.native/tests/external/codegen/box/coroutines/instanceOfContinuation.kt similarity index 66% rename from backend.native/tests/external/codegen/blackbox/coroutines/instanceOfContinuation.kt rename to backend.native/tests/external/codegen/box/coroutines/instanceOfContinuation.kt index 95f0ad868bb..b0f08652215 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/instanceOfContinuation.kt +++ b/backend.native/tests/external/codegen/box/coroutines/instanceOfContinuation.kt @@ -2,19 +2,20 @@ // WITH_RUNTIME // WITH_COROUTINES // WITH_REFLECT -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun runInstanceOf(): Boolean = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun runInstanceOf(): Boolean = suspendCoroutineOrReturn { x -> val y: Any = x x.resume(x is Continuation<*>) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun runCast(): Boolean = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun runCast(): Boolean = suspendCoroutineOrReturn { x -> val y: Any = x x.resume(Continuation::class.isInstance(y as Continuation<*>)) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/complicatedMerge.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/complicatedMerge.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/complicatedMerge.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/complicatedMerge.kt index beb947557a6..52f27d180ed 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/complicatedMerge.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/complicatedMerge.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/i2bResult.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/i2bResult.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/i2bResult.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/i2bResult.kt index e4bc8166e28..8b36e2d2347 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/i2bResult.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/i2bResult.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/loadFromBooleanArray.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/loadFromBooleanArray.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/loadFromBooleanArray.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/loadFromBooleanArray.kt index 308e67aff68..29f168d04ea 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/loadFromBooleanArray.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/loadFromBooleanArray.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/loadFromByteArray.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/loadFromByteArray.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/loadFromByteArray.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/loadFromByteArray.kt index 45b00686754..f3fa12f8f0f 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/loadFromByteArray.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/loadFromByteArray.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/noVariableInTable.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/noVariableInTable.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/noVariableInTable.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/noVariableInTable.kt index 65d8ea0dd78..56d07ff5cde 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/noVariableInTable.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/noVariableInTable.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/sameIconst1ManyVars.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/sameIconst1ManyVars.kt similarity index 74% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/sameIconst1ManyVars.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/sameIconst1ManyVars.kt index 6954ecb3e23..2cf2ea7b57a 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/sameIconst1ManyVars.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/sameIconst1ManyVars.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInArrayStore.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInArrayStore.kt similarity index 88% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInArrayStore.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInArrayStore.kt index 23b79f546fc..760ff0e035d 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInArrayStore.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInArrayStore.kt @@ -2,12 +2,13 @@ // WITH_RUNTIME // WITH_COROUTINES // TARGET_BACKEND: JVM -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInMethodCall.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInMethodCall.kt similarity index 87% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInMethodCall.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInMethodCall.kt index b7cf031ea5b..ccc22a38043 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInMethodCall.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInMethodCall.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInPutfield.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInPutfield.kt similarity index 85% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInPutfield.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInPutfield.kt index ed8cfd06fd7..07a11770dba 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInPutfield.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInPutfield.kt @@ -2,12 +2,13 @@ // WITH_RUNTIME // WITH_COROUTINES // TARGET_BACKEND: JVM -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInVarStore.kt b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInVarStore.kt similarity index 84% rename from backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInVarStore.kt rename to backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInVarStore.kt index f56562c5899..9f340b0f7b8 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/intLikeVarSpilling/usedInVarStore.kt +++ b/backend.native/tests/external/codegen/box/coroutines/intLikeVarSpilling/usedInVarStore.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Unit = suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt b/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt new file mode 100644 index 00000000000..3f815c14682 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutine.kt @@ -0,0 +1,45 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import kotlin.test.assertEquals + +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> + x.resume("OK") + COROUTINE_SUSPENDED +} + +suspend fun suspendWithException(): String = suspendCoroutineOrReturn { x -> + x.resumeWithException(RuntimeException("OK")) + COROUTINE_SUSPENDED +} + +fun builder(c: suspend () -> String): String { + var fromSuspension: String? = null + + c.startCoroutine(object: Continuation { + override val context: CoroutineContext + get() = EmptyCoroutineContext + + override fun resumeWithException(exception: Throwable) { + fromSuspension = "Exception: " + exception.message!! + } + + override fun resume(value: String) { + fromSuspension = value + } + }) + + return fromSuspension as String +} + +fun box(): String { + if (builder { "OK" } != "OK") return "fail 4" + if (builder { suspendHere() } != "OK") return "fail 5" + + if (builder { throw RuntimeException("OK") } != "Exception: OK") return "fail 6" + if (builder { suspendWithException() } != "Exception: OK") return "fail 7" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt b/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt new file mode 100644 index 00000000000..01091e8da24 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturn.kt @@ -0,0 +1,56 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import kotlin.test.assertEquals + +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> + x.resume("OK") + COROUTINE_SUSPENDED +} + +suspend fun suspendWithException(): String = suspendCoroutineOrReturn { x -> + x.resumeWithException(RuntimeException("OK")) + COROUTINE_SUSPENDED +} + +fun builder(shouldSuspend: Boolean, c: suspend () -> String): String { + var fromSuspension: String? = null + + val result = try { + c.startCoroutineUninterceptedOrReturn(object: Continuation { + override val context: CoroutineContext + get() = EmptyCoroutineContext + + override fun resumeWithException(exception: Throwable) { + fromSuspension = "Exception: " + exception.message!! + } + + override fun resume(value: String) { + fromSuspension = value + } + }) + } catch (e: Exception) { + "Exception: ${e.message}" + } + + if (shouldSuspend) { + if (result !== COROUTINE_SUSPENDED) throw RuntimeException("fail 1") + if (fromSuspension == null) throw RuntimeException("fail 2") + return fromSuspension!! + } + + if (result === COROUTINE_SUSPENDED) throw RuntimeException("fail 3") + return result as String +} + +fun box(): String { + if (builder(false) { "OK" } != "OK") return "fail 4" + if (builder(true) { suspendHere() } != "OK") return "fail 5" + + if (builder(false) { throw RuntimeException("OK") } != "Exception: OK") return "fail 6" + if (builder(true) { suspendWithException() } != "Exception: OK") return "fail 7" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt b/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt new file mode 100644 index 00000000000..ac80967bc34 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/intrinsicSemantics/startCoroutineUninterceptedOrReturnInterception.kt @@ -0,0 +1,80 @@ +// WITH_RUNTIME +// WITH_COROUTINES +// IGNORE_BACKEND: JS, NATIVE +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import kotlin.test.assertEquals + +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> + x.resume("OK") + COROUTINE_SUSPENDED +} + +suspend fun suspendWithException(): String = suspendCoroutineOrReturn { x -> + x.resumeWithException(RuntimeException("OK")) + COROUTINE_SUSPENDED +} + +fun builder(shouldSuspend: Boolean, expectedCount: Int, c: suspend () -> String): String { + var fromSuspension: String? = null + var counter = 0 + + val result = try { + c.startCoroutineUninterceptedOrReturn(object: Continuation { + override val context: CoroutineContext + get() = ContinuationDispatcher { counter++ } + + override fun resumeWithException(exception: Throwable) { + fromSuspension = "Exception: " + exception.message!! + } + + override fun resume(value: String) { + fromSuspension = value + } + }) + } catch (e: Exception) { + "Exception: ${e.message}" + } + + if (counter != expectedCount) throw RuntimeException("fail 0") + + if (shouldSuspend) { + if (result !== COROUTINE_SUSPENDED) throw RuntimeException("fail 1") + if (fromSuspension == null) throw RuntimeException("fail 2") + return fromSuspension!! + } + + if (result === COROUTINE_SUSPENDED) throw RuntimeException("fail 3") + return result as String +} + +class ContinuationDispatcher(val dispatcher: () -> Unit) : AbstractCoroutineContextElement(ContinuationInterceptor), ContinuationInterceptor { + override fun interceptContinuation(continuation: Continuation): Continuation = DispatchedContinuation(dispatcher, continuation) +} + +private class DispatchedContinuation( + val dispatcher: () -> Unit, + val continuation: Continuation +): Continuation { + override val context: CoroutineContext = continuation.context + + override fun resume(value: T) { + dispatcher() + continuation.resume(value) + } + + override fun resumeWithException(exception: Throwable) { + dispatcher() + continuation.resumeWithException(exception) + } +} + +fun box(): String { + if (builder(false, 0) { "OK" } != "OK") return "fail 4" + if (builder(true, 1) { suspendHere() } != "OK") return "fail 5" + + if (builder(false, 0) { throw RuntimeException("OK") } != "Exception: OK") return "fail 6" + if (builder(true, 1) { suspendWithException() } != "Exception: OK") return "fail 7" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/iterateOverArray.kt b/backend.native/tests/external/codegen/box/coroutines/iterateOverArray.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/coroutines/iterateOverArray.kt rename to backend.native/tests/external/codegen/box/coroutines/iterateOverArray.kt index 669b2439c8a..835ae396dbe 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/iterateOverArray.kt +++ b/backend.native/tests/external/codegen/box/coroutines/iterateOverArray.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/kt12958.kt b/backend.native/tests/external/codegen/box/coroutines/kt12958.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/coroutines/kt12958.kt rename to backend.native/tests/external/codegen/box/coroutines/kt12958.kt index 1bff6425962..a4c3a8dace2 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/kt12958.kt +++ b/backend.native/tests/external/codegen/box/coroutines/kt12958.kt @@ -2,11 +2,12 @@ // WITH_RUNTIME // WITH_COROUTINES // WITH_CONTINUATION -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(v: V): V = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(v: V): V = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> String): String { diff --git a/backend.native/tests/external/codegen/box/coroutines/kt15016.kt b/backend.native/tests/external/codegen/box/coroutines/kt15016.kt new file mode 100644 index 00000000000..e3052db6066 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/kt15016.kt @@ -0,0 +1,48 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES + +import kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED +import kotlin.coroutines.experimental.intrinsics.suspendCoroutineOrReturn +import kotlin.coroutines.experimental.startCoroutine + +class Bar(val x: Any) +inline fun Any.map(transform: (Any) -> Any) { + when (this) { + is Foo -> Bar(transform(value)) + } +} + +class Foo(val value: Any) { + companion object { + inline fun of(f: () -> Unit): Any = try { + Foo(f()) + } catch(ex: Exception) { + Foo(Unit) + } + } +} + +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> + x.resume("OK") + COROUTINE_SUSPENDED +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + Foo.of { + + }.map { + result = suspendHere() + Unit + } + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/kt15017.kt b/backend.native/tests/external/codegen/box/coroutines/kt15017.kt new file mode 100644 index 00000000000..f7c1e60f3f2 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/kt15017.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.startCoroutine + +class Controller { + suspend inline fun suspendInlineThrow(v: String): String = throw RuntimeException(v) + suspend inline fun suspendInline(v: String) = v +} + +fun builder(c: suspend Controller.() -> Unit) { + c.startCoroutine(Controller(), EmptyContinuation) +} + +class OK + +fun box(): String { + var result = "" + + builder { + result = try { suspendInlineThrow("OK") } catch (e: RuntimeException) { e.message!! } +// result = suspendInline("OK") + } + + return result +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/lastExpressionIsLoop.kt b/backend.native/tests/external/codegen/box/coroutines/lastExpressionIsLoop.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/coroutines/lastExpressionIsLoop.kt rename to backend.native/tests/external/codegen/box/coroutines/lastExpressionIsLoop.kt index a04fc550b76..541742d5fcc 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/lastExpressionIsLoop.kt +++ b/backend.native/tests/external/codegen/box/coroutines/lastExpressionIsLoop.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var result = "" var ok = false - suspend fun suspendHere(v: String): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(v: String): Unit = suspendCoroutineOrReturn { x -> result += v x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/lastStatementInc.kt b/backend.native/tests/external/codegen/box/coroutines/lastStatementInc.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/coroutines/lastStatementInc.kt rename to backend.native/tests/external/codegen/box/coroutines/lastStatementInc.kt index e667992053c..4ac571292f2 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/lastStatementInc.kt +++ b/backend.native/tests/external/codegen/box/coroutines/lastStatementInc.kt @@ -1,11 +1,12 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/lastStementAssignment.kt b/backend.native/tests/external/codegen/box/coroutines/lastStementAssignment.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/coroutines/lastStementAssignment.kt rename to backend.native/tests/external/codegen/box/coroutines/lastStementAssignment.kt index 35e3701d11d..cb9029d88b5 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/lastStementAssignment.kt +++ b/backend.native/tests/external/codegen/box/coroutines/lastStementAssignment.kt @@ -1,11 +1,12 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/lastUnitExpression.kt b/backend.native/tests/external/codegen/box/coroutines/lastUnitExpression.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/coroutines/lastUnitExpression.kt rename to backend.native/tests/external/codegen/box/coroutines/lastUnitExpression.kt index c014a96291f..c8b48fe0087 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/lastUnitExpression.kt +++ b/backend.native/tests/external/codegen/box/coroutines/lastUnitExpression.kt @@ -1,15 +1,16 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var ok = false var v = "fail" - suspend fun suspendHere(v: String): Unit = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(v: String): Unit = suspendCoroutineOrReturn { x -> this.v = v x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/localCallableRef.kt b/backend.native/tests/external/codegen/box/coroutines/localCallableRef.kt new file mode 100644 index 00000000000..016fdb06646 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/localCallableRef.kt @@ -0,0 +1,24 @@ +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun suspendWithValue(result: () -> String): String = suspendCoroutineOrReturn { x -> + x.resume(result()) + COROUTINE_SUSPENDED +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + fun ok() = "OK" + result = suspendWithValue(::ok) + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/localDelegate.kt b/backend.native/tests/external/codegen/box/coroutines/localDelegate.kt new file mode 100644 index 00000000000..89b337ffee0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/localDelegate.kt @@ -0,0 +1,30 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED +import kotlin.coroutines.experimental.intrinsics.suspendCoroutineOrReturn + +class OkDelegate { + operator fun getValue(receiver: Any?, property: Any?): String = "OK" +} + +suspend fun suspendWithValue(value: T): T = suspendCoroutineOrReturn { c -> + c.resume(value) + COROUTINE_SUSPENDED +} + +fun launch(c: suspend () -> String): String { + var result: String = "fail: result not assigned" + c.startCoroutine(handleResultContinuation { value -> + result = value + }) + return result +} + +fun box(): String { + return launch { + val ok by OkDelegate() + ok + } +} diff --git a/backend.native/tests/external/codegen/box/coroutines/mergeNullAndString.kt b/backend.native/tests/external/codegen/box/coroutines/mergeNullAndString.kt new file mode 100644 index 00000000000..79d2d6aaec0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/mergeNullAndString.kt @@ -0,0 +1,39 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +var res = "" + +suspend fun foo(y: A?): String { + val origin: String? = y?.z + if (origin != null) { + baz(origin) + baz(origin) + } + + return res +} + +suspend fun baz(y: String): Unit = suspendCoroutineOrReturn { x -> + res += y[res.length] + x.resume(Unit) + COROUTINE_SUSPENDED +} + +class A(val z: String) + +fun box(): String { + var result = "" + + builder { + result = foo(A("OK")) + } + + return result +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/multiModule/inlineFunctionWithOptionalParam.kt b/backend.native/tests/external/codegen/box/coroutines/multiModule/inlineFunctionWithOptionalParam.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/coroutines/multiModule/inlineFunctionWithOptionalParam.kt rename to backend.native/tests/external/codegen/box/coroutines/multiModule/inlineFunctionWithOptionalParam.kt index bbeed06df55..7169206bb51 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/multiModule/inlineFunctionWithOptionalParam.kt +++ b/backend.native/tests/external/codegen/box/coroutines/multiModule/inlineFunctionWithOptionalParam.kt @@ -9,12 +9,14 @@ inline fun foo(x: String = "OK"): String { // FILE: main.kt // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var result = "" fun builder(c: suspend () -> Unit) { c.startCoroutine(object : Continuation { + override val context = EmptyCoroutineContext override fun resume(value: Unit) { } override fun resumeWithException(exception: Throwable) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/multiModule/simple.kt b/backend.native/tests/external/codegen/box/coroutines/multiModule/simple.kt similarity index 61% rename from backend.native/tests/external/codegen/blackbox/coroutines/multiModule/simple.kt rename to backend.native/tests/external/codegen/box/coroutines/multiModule/simple.kt index 19103919e41..e5fdc55d60f 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/multiModule/simple.kt +++ b/backend.native/tests/external/codegen/box/coroutines/multiModule/simple.kt @@ -5,19 +5,21 @@ // FILE: controller.kt package lib -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } // MODULE: main(controller, support) // FILE: main.kt import lib.* -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* fun builder(c: suspend Controller.() -> Unit) { c.startCoroutine(Controller(), EmptyContinuation) diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCalls.kt b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCalls.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCalls.kt rename to backend.native/tests/external/codegen/box/coroutines/multipleInvokeCalls.kt index 72e70d5a82c..519cb59c915 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCalls.kt +++ b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCalls.kt @@ -1,14 +1,15 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var lastSuspension: Continuation? = null var result = "fail" - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> lastSuspension = x - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun hasNext() = lastSuspension != null diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda1.kt b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda1.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda1.kt rename to backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda1.kt index 4501e57b16c..63a8ecc6905 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda1.kt +++ b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda1.kt @@ -1,14 +1,15 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var lastSuspension: Continuation? = null var result = "fail" - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> lastSuspension = x - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun hasNext() = lastSuspension != null diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda2.kt b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda2.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda2.kt rename to backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda2.kt index 0936c277bf4..748aeb78071 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda2.kt +++ b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda2.kt @@ -1,14 +1,15 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var lastSuspension: Continuation? = null var result = "fail" - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> lastSuspension = x - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun hasNext() = lastSuspension != null diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda3.kt b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda3.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda3.kt rename to backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda3.kt index 77cc23d070a..a70e8237c89 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/multipleInvokeCallsInsideInlineLambda3.kt +++ b/backend.native/tests/external/codegen/box/coroutines/multipleInvokeCallsInsideInlineLambda3.kt @@ -1,14 +1,15 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var lastSuspension: Continuation? = null var result = "fail" - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> lastSuspension = x - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun hasNext() = lastSuspension != null diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/nestedTryCatch.kt b/backend.native/tests/external/codegen/box/coroutines/nestedTryCatch.kt similarity index 88% rename from backend.native/tests/external/codegen/blackbox/coroutines/nestedTryCatch.kt rename to backend.native/tests/external/codegen/box/coroutines/nestedTryCatch.kt index ac74aa0ac8f..2d73e3f4323 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/nestedTryCatch.kt +++ b/backend.native/tests/external/codegen/box/coroutines/nestedTryCatch.kt @@ -1,27 +1,28 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var globalResult = "" var wasCalled = false class Controller { val postponedActions = ArrayList<() -> Unit>() - suspend fun suspendWithValue(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resume(v) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithException(e: Exception): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithException(e: Exception): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resumeWithException(e) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun run(c: suspend Controller.() -> String) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/noSuspensionPoints.kt b/backend.native/tests/external/codegen/box/coroutines/noSuspensionPoints.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/coroutines/noSuspensionPoints.kt rename to backend.native/tests/external/codegen/box/coroutines/noSuspensionPoints.kt index e797ae72f3b..a581b1246a8 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/noSuspensionPoints.kt +++ b/backend.native/tests/external/codegen/box/coroutines/noSuspensionPoints.kt @@ -1,7 +1,8 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* fun builder(c: suspend () -> Int): Int { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/nonLocalReturnFromInlineLambda.kt b/backend.native/tests/external/codegen/box/coroutines/nonLocalReturnFromInlineLambda.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/coroutines/nonLocalReturnFromInlineLambda.kt rename to backend.native/tests/external/codegen/box/coroutines/nonLocalReturnFromInlineLambda.kt index e5f996f452e..ebc43368846 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/nonLocalReturnFromInlineLambda.kt +++ b/backend.native/tests/external/codegen/box/coroutines/nonLocalReturnFromInlineLambda.kt @@ -1,13 +1,14 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var cResult = 0 - suspend fun suspendHere(v: Int): Int = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(v: Int): Int = suspendCoroutineOrReturn { x -> x.resume(v * 2) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/nonLocalReturnFromInlineLambdaDeep.kt b/backend.native/tests/external/codegen/box/coroutines/nonLocalReturnFromInlineLambdaDeep.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/coroutines/nonLocalReturnFromInlineLambdaDeep.kt rename to backend.native/tests/external/codegen/box/coroutines/nonLocalReturnFromInlineLambdaDeep.kt index 4675a4a7ae5..ef60c14a4da 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/nonLocalReturnFromInlineLambdaDeep.kt +++ b/backend.native/tests/external/codegen/box/coroutines/nonLocalReturnFromInlineLambdaDeep.kt @@ -1,14 +1,15 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var cResult = 0 - suspend fun suspendHere(v: Int): Int = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(v: Int): Int = suspendCoroutineOrReturn { x -> x.resume(v * 2) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/returnByLabel.kt b/backend.native/tests/external/codegen/box/coroutines/returnByLabel.kt similarity index 71% rename from backend.native/tests/external/codegen/blackbox/coroutines/returnByLabel.kt rename to backend.native/tests/external/codegen/box/coroutines/returnByLabel.kt index 65b67cf744e..a1ca0187b0c 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/returnByLabel.kt +++ b/backend.native/tests/external/codegen/box/coroutines/returnByLabel.kt @@ -1,11 +1,12 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Int): Int { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/simple.kt b/backend.native/tests/external/codegen/box/coroutines/simple.kt similarity index 60% rename from backend.native/tests/external/codegen/blackbox/coroutines/simple.kt rename to backend.native/tests/external/codegen/box/coroutines/simple.kt index 43d92356414..dbfd0f4f439 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/simple.kt +++ b/backend.native/tests/external/codegen/box/coroutines/simple.kt @@ -1,11 +1,12 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/simpleException.kt b/backend.native/tests/external/codegen/box/coroutines/simpleException.kt similarity index 71% rename from backend.native/tests/external/codegen/blackbox/coroutines/simpleException.kt rename to backend.native/tests/external/codegen/box/coroutines/simpleException.kt index 5d4e4bb2d99..2bfb2dd1b69 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/simpleException.kt +++ b/backend.native/tests/external/codegen/box/coroutines/simpleException.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resumeWithException(RuntimeException("OK")) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/simpleWithHandleResult.kt b/backend.native/tests/external/codegen/box/coroutines/simpleWithHandleResult.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/coroutines/simpleWithHandleResult.kt rename to backend.native/tests/external/codegen/box/coroutines/simpleWithHandleResult.kt index a27288b8e27..e3587825778 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/simpleWithHandleResult.kt +++ b/backend.native/tests/external/codegen/box/coroutines/simpleWithHandleResult.kt @@ -1,17 +1,20 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Int): Int { var res = 0 c.createCoroutine(object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(data: Int) { res = data } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/exception.kt b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/exception.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/exception.kt rename to backend.native/tests/external/codegen/box/coroutines/stackUnwinding/exception.kt index bc14b4fa525..cc152d0e318 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/exception.kt +++ b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/exception.kt @@ -1,7 +1,8 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { suspend fun suspendHere(): String = throw RuntimeException("OK") diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/inlineSuspendFunction.kt b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/inlineSuspendFunction.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/inlineSuspendFunction.kt rename to backend.native/tests/external/codegen/box/coroutines/stackUnwinding/inlineSuspendFunction.kt index 16709de8482..a422357400e 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/inlineSuspendFunction.kt +++ b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/inlineSuspendFunction.kt @@ -5,7 +5,8 @@ // CHECK_NOT_CALLED: suspendInline_61zpoe$ // CHECK_NOT_CALLED: suspendInline_6r51u9$ // CHECK_NOT_CALLED: suspendInline -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { suspend inline fun suspendInline(v: String): String = v diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/simple.kt b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/simple.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/simple.kt rename to backend.native/tests/external/codegen/box/coroutines/stackUnwinding/simple.kt index 5f89cfbe3e6..deb77541c28 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/simple.kt +++ b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/simple.kt @@ -1,7 +1,8 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { suspend fun suspendHere() = "OK" diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/suspendInCycle.kt b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/suspendInCycle.kt similarity index 77% rename from backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/suspendInCycle.kt rename to backend.native/tests/external/codegen/box/coroutines/stackUnwinding/suspendInCycle.kt index 44a74e2aaa6..2cc8829dfa9 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/stackUnwinding/suspendInCycle.kt +++ b/backend.native/tests/external/codegen/box/coroutines/stackUnwinding/suspendInCycle.kt @@ -1,13 +1,14 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): Int = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Int = suspendCoroutineOrReturn { x -> 1 } - suspend fun suspendThere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendThere(): String = suspendCoroutineOrReturn { x -> "?" } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/statementLikeLastExpression.kt b/backend.native/tests/external/codegen/box/coroutines/statementLikeLastExpression.kt similarity index 69% rename from backend.native/tests/external/codegen/blackbox/coroutines/statementLikeLastExpression.kt rename to backend.native/tests/external/codegen/box/coroutines/statementLikeLastExpression.kt index 5bf29ff97da..ce5b968b2b0 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/statementLikeLastExpression.kt +++ b/backend.native/tests/external/codegen/box/coroutines/statementLikeLastExpression.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var globalResult = "" -suspend fun suspendWithValue(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> String) { diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendDefaultImpl.kt b/backend.native/tests/external/codegen/box/coroutines/suspendDefaultImpl.kt new file mode 100644 index 00000000000..48d5e86af8d --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendDefaultImpl.kt @@ -0,0 +1,31 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.startCoroutine +import kotlin.coroutines.experimental.intrinsics.* + +interface TestInterface { + suspend fun toInt(): Int = suspendCoroutineOrReturn { x -> + x.resume(56) + COROUTINE_SUSPENDED + } +} + +class TestClass2 : TestInterface { +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = -1 + builder { + result = TestClass2().toInt() + } + + if (result != 56) return "fail 1: $result" + + return "OK" +} + diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/suspendDelegation.kt b/backend.native/tests/external/codegen/box/coroutines/suspendDelegation.kt similarity index 66% rename from backend.native/tests/external/codegen/blackbox/coroutines/suspendDelegation.kt rename to backend.native/tests/external/codegen/box/coroutines/suspendDelegation.kt index c5cb06fab9f..edd82ac6830 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/suspendDelegation.kt +++ b/backend.native/tests/external/codegen/box/coroutines/suspendDelegation.kt @@ -1,14 +1,15 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { suspend fun suspendHere(): String = suspendThere() - suspend fun suspendThere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendThere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/suspendFromInlineLambda.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFromInlineLambda.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/coroutines/suspendFromInlineLambda.kt rename to backend.native/tests/external/codegen/box/coroutines/suspendFromInlineLambda.kt index 93f803f38c1..8bb1c374599 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/suspendFromInlineLambda.kt +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFromInlineLambda.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(v: Int): Int = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(v: Int): Int = suspendCoroutineOrReturn { x -> x.resume(v * 2) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunImportedFromObject.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunImportedFromObject.kt new file mode 100644 index 00000000000..a0ea8b7a8d0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunImportedFromObject.kt @@ -0,0 +1,35 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES + +// FILE: stuff.kt +package stuff + +import kotlin.coroutines.experimental.intrinsics.* + +object Host { + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> + x.resume("OK") + COROUTINE_SUSPENDED + } +} + + +// FILE: test.kt +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import stuff.Host.suspendHere + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + result = suspendHere() + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/augmentedAssignment.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/augmentedAssignment.kt new file mode 100644 index 00000000000..7cf0c97d532 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/augmentedAssignment.kt @@ -0,0 +1,32 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES + +// TARGET_BACKEND: JS +// TODO: looks like this is a bug in JVM backend +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun suspendThere(v: A): A = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +class A(val value: String) { + operator suspend fun plus(other: A) = suspendThere(A(value + other.value)) +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + + +fun box(): String { + var a = A("O") + + builder { + a += A("K") + } + + return a.value +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt new file mode 100644 index 00000000000..46a70de7856 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/dispatchResume.kt @@ -0,0 +1,106 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class Controller { + var log = "" + var resumeIndex = 0 + + suspend fun suspendWithValue(value: T): T = suspendCoroutineOrReturn { continuation -> + log += "suspend($value);" + continuation.resume(value) + COROUTINE_SUSPENDED + } + + suspend fun suspendWithException(value: String): Unit = suspendCoroutineOrReturn { continuation -> + log += "error($value);" + continuation.resumeWithException(RuntimeException(value)) + COROUTINE_SUSPENDED + } +} + +abstract class ContinuationDispatcher : AbstractCoroutineContextElement(ContinuationInterceptor), ContinuationInterceptor { + abstract fun dispatchResume(value: T, continuation: Continuation): Boolean + abstract fun dispatchResumeWithException(exception: Throwable, continuation: Continuation<*>): Boolean + override fun interceptContinuation(continuation: Continuation): Continuation = DispatchedContinuation(this, continuation) +} + +private class DispatchedContinuation( + val dispatcher: ContinuationDispatcher, + val continuation: Continuation +): Continuation { + override val context: CoroutineContext = continuation.context + + override fun resume(value: T) { + if (!dispatcher.dispatchResume(value, continuation)) + continuation.resume(value) + } + + override fun resumeWithException(exception: Throwable) { + if (!dispatcher.dispatchResumeWithException(exception, continuation)) + continuation.resumeWithException(exception) + } +} + +fun test(c: suspend Controller.() -> Unit): String { + val controller = Controller() + c.startCoroutine(controller, EmptyContinuation(object: ContinuationDispatcher() { + private fun dispatchResume(block: () -> Unit) { + val id = controller.resumeIndex++ + controller.log += "before $id;" + block() + controller.log += "after $id;" + } + + override fun

dispatchResume(data: P, continuation: Continuation

): Boolean { + dispatchResume { + continuation.resume(data) + } + return true + } + + override fun dispatchResumeWithException(exception: Throwable, continuation: Continuation<*>): Boolean { + dispatchResume { + continuation.resumeWithException(exception) + } + return true + } + })) + return controller.log +} + +suspend fun Controller.foo() = suspendWithValue("") + suspendWithValue("O") + +suspend fun Controller.test1() { + val o = foo() + val k = suspendWithValue("K") + log += "$o$k;" +} + +suspend fun Controller.test2() { + try { + foo() + + suspendWithException("OK") + log += "ignore;" + } + catch (e: RuntimeException) { + log += "${e.message};" + } +} + +fun box(): String { + var result = test { + test1() + } + if (result != "before 0;suspend();before 1;suspend(O);before 2;suspend(K);before 3;OK;after 3;after 2;after 1;after 0;") return "fail1: $result" + + result = test { + test2() + } + if (result != "before 0;suspend();before 1;suspend(O);before 2;error(OK);before 3;OK;after 3;after 2;after 1;after 0;") return "fail2: $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/handleException.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/handleException.kt new file mode 100644 index 00000000000..c682cc3bed1 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/handleException.kt @@ -0,0 +1,113 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class Controller { + var exception: Throwable? = null + val postponedActions = ArrayList<() -> Unit>() + + suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> + postponedActions.add { + x.resume(v) + } + + COROUTINE_SUSPENDED + } + + suspend fun suspendWithException(e: Exception): String = suspendCoroutineOrReturn { x -> + postponedActions.add { + x.resumeWithException(e) + } + + COROUTINE_SUSPENDED + } + + fun run(c: suspend Controller.() -> Unit) { + c.startCoroutine(this, handleExceptionContinuation { + exception = it + }) + while (postponedActions.isNotEmpty()) { + postponedActions[0]() + postponedActions.removeAt(0) + } + } +} + +fun builder(c: suspend Controller.() -> Unit) { + val controller = Controller() + controller.run(c) + + if (controller.exception?.message != "OK") { + throw RuntimeException("Unexpected result: ${controller.exception?.message}") + } +} + +fun commonThrow(t: Throwable) { + throw t +} + +suspend fun justContinue(): Unit = suspendCoroutineOrReturn { x -> + x.resume(Unit) + + COROUTINE_SUSPENDED +} + +suspend fun Controller.test1() { + justContinue() + throw RuntimeException("OK") +} + +suspend fun Controller.test2() { + justContinue() + commonThrow(RuntimeException("OK")) +} + +suspend fun Controller.test3() { + justContinue() + suspendWithException(RuntimeException("OK")) +} + +suspend fun Controller.test4() { + justContinue() + try { + suspendWithException(RuntimeException("fail 1")) + } catch (e: RuntimeException) { + suspendWithException(RuntimeException("OK")) + } +} + +suspend fun Controller.test5() { + justContinue() + try { + suspendWithException(Exception("OK")) + } catch (e: RuntimeException) { + suspendWithException(RuntimeException("fail 3")) + throw RuntimeException("fail 4") + } +} + +fun box(): String { + builder { + test1() + } + + builder { + test2() + } + + builder { + test3() + } + + builder { + test4() + } + + builder { + test5() + } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inline.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inline.kt new file mode 100644 index 00000000000..c7d21c9a645 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inline.kt @@ -0,0 +1,33 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +suspend inline fun suspendHere(crossinline block: () -> String): String { + return suspendThere(block()) + suspendThere(block()) +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + var q = "O" + result = suspendHere { + val r = q + q = "K" + r + } + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inlineTwoReceivers.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inlineTwoReceivers.kt new file mode 100644 index 00000000000..98aaa64a6e7 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/inlineTwoReceivers.kt @@ -0,0 +1,37 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +// TARGET_BACKEND: JVM +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED +import kotlin.coroutines.experimental.intrinsics.suspendCoroutineOrReturn + +class MyTest { + suspend fun act(value: String): String = suspendCoroutineOrReturn { + it.resume(value) + COROUTINE_SUSPENDED + } +} + +inline suspend fun testAsync(noinline routine: suspend MyTest.() -> T): T = routine(MyTest()) + +inline suspend fun Iterable.test() = testAsync { + var sum = "" + for (v in this@test) { + sum += act(v) + } + sum +} + +fun builder(x: suspend () -> Unit) { + x.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var res = "" + builder { + res = listOf("O", "K").test() + } + + return res +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/member.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/member.kt new file mode 100644 index 00000000000..fc41ba1d09c --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/member.kt @@ -0,0 +1,28 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class A(val v: String) { + suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED + } + + suspend fun suspendHere(): String = suspendThere("O") + suspendThere(v) +} + +fun builder(c: suspend A.() -> Unit) { + c.startCoroutine(A("K"), EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + result = suspendHere() + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/noinlineTwoReceivers.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/noinlineTwoReceivers.kt new file mode 100644 index 00000000000..469b0f94906 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/noinlineTwoReceivers.kt @@ -0,0 +1,36 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED +import kotlin.coroutines.experimental.intrinsics.suspendCoroutineOrReturn + +class MyTest { + suspend fun act(value: String): String = suspendCoroutineOrReturn { + it.resume(value) + COROUTINE_SUSPENDED + } +} + +suspend fun testAsync(routine: suspend MyTest.() -> T): T = routine(MyTest()) + +suspend fun Iterable.test() = testAsync { + var sum = "" + for (v in this@test) { + sum += act(v) + } + sum +} + +fun builder(x: suspend () -> Unit) { + x.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var res = "" + builder { + res = listOf("O", "K").test() + } + + return res +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/operators.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/operators.kt new file mode 100644 index 00000000000..cd1d9b497df --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/operators.kt @@ -0,0 +1,139 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* +import kotlin.reflect.KProperty + +suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +class A(val x: String) { + var isSetValueCalled = false + var isProvideDelegateCalled = false + var isMinusAssignCalled = false + var isIncCalled = false + operator suspend fun component1() = suspendThere(x + "K") + operator suspend fun getValue(thisRef: Any?, property: KProperty<*>) = suspendThere(x + "K") + operator suspend fun setValue(thisRef: Any?, property: KProperty<*>, value: String): Unit = suspendCoroutineOrReturn { x -> + if (value != "56") return@suspendCoroutineOrReturn Unit + isSetValueCalled = true + x.resume(Unit) + COROUTINE_SUSPENDED + } + + operator suspend fun provideDelegate(host: Any?, p: Any): A = suspendCoroutineOrReturn { x -> + isProvideDelegateCalled = true + x.resume(this) + COROUTINE_SUSPENDED + } + + operator suspend fun plus(y: String) = suspendThere(x + y) + operator suspend fun unaryPlus() = suspendThere(x + "K") + + operator suspend fun inc(): A = suspendCoroutineOrReturn { x -> + isIncCalled = true + x.resume(this) + COROUTINE_SUSPENDED + } + + operator suspend fun minusAssign(y: String): Unit = suspendCoroutineOrReturn { x -> + if (y != "56") return@suspendCoroutineOrReturn Unit + isMinusAssignCalled = true + x.resume(Unit) + COROUTINE_SUSPENDED + } +// See KT-16221 +// operator suspend fun contains(y: String): Boolean = suspendCoroutineOrReturn { x -> +// x.resume(y == "56") +// COROUTINE_SUSPENDED +// } + + operator suspend fun compareTo(y: String): Int = suspendCoroutineOrReturn { x -> + x.resume("56".compareTo(y)) + COROUTINE_SUSPENDED + } +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +var a = A("O") + +suspend fun foo1() { + var x by a + + if (x != "OK") throw RuntimeException("fail 1") + + x = "56" + + if (!a.isSetValueCalled || !a.isProvideDelegateCalled) throw RuntimeException("fail 2") +} + +suspend fun foo2() { + val (y) = a + if (y != "OK") throw RuntimeException("fail 3") +} + +suspend fun foo3() { + val y = a + "K" + if (y != "OK") throw RuntimeException("fail 4") +} + +suspend fun foo4() { + val y = + a + if (y != "OK") throw RuntimeException("fail 5") +} + +// TODO: KT-15930 +//suspend fun foo5() { +// a -= "56" +// if (!a.isMinusAssignCalled) throw RuntimeException("fail 6") +//} + +suspend fun foo6() { + var y = a++ + if (!y.isIncCalled) throw RuntimeException("fail 7") +} + +suspend fun foo7() { + a.isIncCalled = false + val y = ++a + if (!y.isIncCalled) throw RuntimeException("fail 8") +} + +//suspend fun foo8() { +// if ("1" in a) throw RuntimeException("fail 9") +// if (!("1" !in a)) throw RuntimeException("fail 9") +// +// if ("56" in a) throw RuntimeException("fail 10") +// if (!("56" !in a)) throw RuntimeException("fail 11") +//} + +suspend fun checkCompareTo(v: String) = (a < v) == ("56" < v) + +suspend fun foo9() { + if (!checkCompareTo("55")) throw RuntimeException("fail 12") + if (!checkCompareTo("56")) throw RuntimeException("fail 13") + if (!checkCompareTo("57")) throw RuntimeException("fail 14") +} + +fun box(): String { + + builder { + foo1() + foo2() + foo3() + foo4() + //foo5() + foo6() + foo7() + //foo8() + foo9() + } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateFunctions.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateFunctions.kt new file mode 100644 index 00000000000..824a558e679 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateFunctions.kt @@ -0,0 +1,44 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class X { + var res = "" + suspend fun execute() { + a() + b() + } + + private suspend fun a() { + res += suspendThere("O") + res += suspendThere("K") + } + + private suspend fun b() { + res += suspendThere("5") + res += suspendThere("6") + } +} + +suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +fun builder(c: suspend X.() -> Unit) { + c.startCoroutine(X(), EmptyContinuation) +} + +fun box(): String { + var result = "" + builder { + execute() + result = res + } + + if (result != "OK56") return "fail 1: $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateInFile.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateInFile.kt new file mode 100644 index 00000000000..f0ca5bb02b0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/privateInFile.kt @@ -0,0 +1,31 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + + +var x = true +private suspend fun foo(): String { + if (x) { + return suspendCoroutineOrReturn { + it.resume("OK") + COROUTINE_SUSPENDED + } + } + + return "fail" +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var res = "" + builder { + res = foo() + } + + return res +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/returnNoSuspend.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/returnNoSuspend.kt new file mode 100644 index 00000000000..8f42616ddca --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/returnNoSuspend.kt @@ -0,0 +1,29 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +suspend fun suspendHere(suspend: Boolean): String { + if (!suspend) return "O" + + return suspendThere("") + suspendThere("K") +} +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + result = suspendHere(false) + suspendHere(true) + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/simple.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/simple.kt new file mode 100644 index 00000000000..64f63b458dc --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/simple.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +suspend fun suspendHere(): String = suspendThere("O") + suspendThere("K") + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + result = suspendHere() + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/withVariables.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/withVariables.kt new file mode 100644 index 00000000000..c170cfc5d30 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionAsCoroutine/withVariables.kt @@ -0,0 +1,32 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun suspendThere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +suspend fun suspendHere(): String { + val k = "K" + val x = suspendThere("O") + val y = x + suspendThere(k) + + return y +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + result = suspendHere() + } + + return result +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/localVal.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/localVal.kt new file mode 100644 index 00000000000..c2e2bef61a9 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/localVal.kt @@ -0,0 +1,35 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun suspendHere(v: String): String = suspendCoroutineOrReturn { x -> + x.resume(v) + COROUTINE_SUSPENDED +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +suspend fun foo(): String { + var a = "OK" + var i = 0 + val x: suspend () -> String = { + suspendHere(a[i++].toString()) + } + + return x() + x.invoke() +} + + +fun box(): String { + var result = "" + + builder { + result = foo() + } + + return result +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/suspendFunctionTypeCall/manyParameters.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/manyParameters.kt similarity index 74% rename from backend.native/tests/external/codegen/blackbox/coroutines/suspendFunctionTypeCall/manyParameters.kt rename to backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/manyParameters.kt index c3ab428554e..51ffa67e2d2 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/suspendFunctionTypeCall/manyParameters.kt +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/manyParameters.kt @@ -1,11 +1,12 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(v: String): String = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/suspendFunctionTypeCall/simple.kt b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/simple.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/coroutines/suspendFunctionTypeCall/simple.kt rename to backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/simple.kt index c78bb86c298..0fd80016b77 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/suspendFunctionTypeCall/simple.kt +++ b/backend.native/tests/external/codegen/box/coroutines/suspendFunctionTypeCall/simple.kt @@ -1,11 +1,12 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(v: String): String = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/suspendInCycle.kt b/backend.native/tests/external/codegen/box/coroutines/suspendInCycle.kt similarity index 69% rename from backend.native/tests/external/codegen/blackbox/coroutines/suspendInCycle.kt rename to backend.native/tests/external/codegen/box/coroutines/suspendInCycle.kt index ed3e36628de..bf37740dd72 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/suspendInCycle.kt +++ b/backend.native/tests/external/codegen/box/coroutines/suspendInCycle.kt @@ -1,17 +1,18 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { var i = 0 - suspend fun suspendHere(): Int = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): Int = suspendCoroutineOrReturn { x -> x.resume(i++) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendThere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendThere(): String = suspendCoroutineOrReturn { x -> x.resume("?") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/suspendInTheMiddleOfObjectConstruction.kt b/backend.native/tests/external/codegen/box/coroutines/suspendInTheMiddleOfObjectConstruction.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/coroutines/suspendInTheMiddleOfObjectConstruction.kt rename to backend.native/tests/external/codegen/box/coroutines/suspendInTheMiddleOfObjectConstruction.kt index 94023fc77d8..bf256012136 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/suspendInTheMiddleOfObjectConstruction.kt +++ b/backend.native/tests/external/codegen/box/coroutines/suspendInTheMiddleOfObjectConstruction.kt @@ -1,22 +1,23 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("K") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithArgument(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithArgument(v: String): String = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithDouble(v: Double): Double = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithDouble(v: Double): Double = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCall.kt b/backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCall.kt new file mode 100644 index 00000000000..a9061aa9e1e --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCall.kt @@ -0,0 +1,40 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class TestClass { + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> + x.resume("K") + COROUTINE_SUSPENDED + } +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun foo(x: String, y: String?) = x + (y ?: "") + +fun box(): String { + var result = "" + + var instance: TestClass? = null + + builder { + result = foo("OK", instance?.suspendHere()) + } + + if (result != "OK") return "fail 1: $result" + + result = "" + instance = TestClass() + builder { + result = foo("O", instance?.suspendHere()) + } + + if (result != "OK") return "fail 2: $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCallWithElvis.kt b/backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCallWithElvis.kt new file mode 100644 index 00000000000..1c0b91b13e7 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/suspensionInsideSafeCallWithElvis.kt @@ -0,0 +1,37 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class TestClass { + suspend fun toInt(): Int = suspendCoroutineOrReturn { x -> + x.resume(14) + COROUTINE_SUSPENDED + } +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = 0 + + var instance: TestClass? = null + + builder { + result = 42 + (instance?.toInt() ?: 0) + } + + if (result != 42) return "fail 1: $result" + + instance = TestClass() + builder { + result = 42 + (instance?.toInt() ?: 0) + } + + if (result != 56) return "fail 2: $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithIf.kt b/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithIf.kt new file mode 100644 index 00000000000..eaffd184b67 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithIf.kt @@ -0,0 +1,30 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun foo(x: Any): Int { + return if (x == "56") suspendHere() else 13 +} + +suspend fun suspendHere(): Int = suspendCoroutineOrReturn { x -> + x.resume(56) + COROUTINE_SUSPENDED +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = -1 + + builder { + result = foo("56") + } + + if (result != 56) return "fail 1: $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithTryCatch.kt b/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithTryCatch.kt new file mode 100644 index 00000000000..06f4137b619 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithTryCatch.kt @@ -0,0 +1,34 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun foo(x: Any): Int { + return try { + suspendHere() + } catch (e: Throwable) { + 13 + } +} + +suspend fun suspendHere(): Int = suspendCoroutineOrReturn { x -> + x.resume(56) + COROUTINE_SUSPENDED +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = -1 + + builder { + result = foo("56") + } + + if (result != 56) return "fail 1: $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithWhen.kt b/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithWhen.kt new file mode 100644 index 00000000000..045a0b87aed --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/tailOperations/suspendWithWhen.kt @@ -0,0 +1,33 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun foo(x: Any): Int { + return when { + x == "56" -> suspendHere() + else -> 13 + } +} + +suspend fun suspendHere(): Int = suspendCoroutineOrReturn { x -> + x.resume(56) + COROUTINE_SUSPENDED +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = -1 + + builder { + result = foo("56") + } + + if (result != 56) return "fail 1: $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/tryCatchFinallyWithHandleResult.kt b/backend.native/tests/external/codegen/box/coroutines/tryCatchFinallyWithHandleResult.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/coroutines/tryCatchFinallyWithHandleResult.kt rename to backend.native/tests/external/codegen/box/coroutines/tryCatchFinallyWithHandleResult.kt index 4bd81b84a3f..d27e8595dcf 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/tryCatchFinallyWithHandleResult.kt +++ b/backend.native/tests/external/codegen/box/coroutines/tryCatchFinallyWithHandleResult.kt @@ -1,27 +1,28 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var globalResult = "" var wasCalled = false class Controller { val postponedActions = ArrayList<() -> Unit>() - suspend fun suspendWithValue(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resume(v) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithException(e: Exception): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithException(e: Exception): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resumeWithException(e) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun run(c: suspend Controller.() -> String) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/tryCatchWithHandleResult.kt b/backend.native/tests/external/codegen/box/coroutines/tryCatchWithHandleResult.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/coroutines/tryCatchWithHandleResult.kt rename to backend.native/tests/external/codegen/box/coroutines/tryCatchWithHandleResult.kt index 7d6052fd7fb..01e4ad5aeff 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/tryCatchWithHandleResult.kt +++ b/backend.native/tests/external/codegen/box/coroutines/tryCatchWithHandleResult.kt @@ -1,27 +1,28 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var globalResult = "" var wasCalled = false class Controller { val postponedActions = ArrayList<() -> Unit>() - suspend fun suspendWithValue(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resume(v) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithException(e: Exception): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithException(e: Exception): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resumeWithException(e) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun run(c: suspend Controller.() -> String) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/tryFinallyInsideInlineLambda.kt b/backend.native/tests/external/codegen/box/coroutines/tryFinallyInsideInlineLambda.kt similarity index 71% rename from backend.native/tests/external/codegen/blackbox/coroutines/tryFinallyInsideInlineLambda.kt rename to backend.native/tests/external/codegen/box/coroutines/tryFinallyInsideInlineLambda.kt index 4f71fef2f23..575dceea708 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/tryFinallyInsideInlineLambda.kt +++ b/backend.native/tests/external/codegen/box/coroutines/tryFinallyInsideInlineLambda.kt @@ -1,13 +1,14 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(v: String): String = suspendCoroutineOrReturn { x -> x.resume(v) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/tryFinallyWithHandleResult.kt b/backend.native/tests/external/codegen/box/coroutines/tryFinallyWithHandleResult.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/coroutines/tryFinallyWithHandleResult.kt rename to backend.native/tests/external/codegen/box/coroutines/tryFinallyWithHandleResult.kt index 3fc2bff4818..f61dd4924de 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/tryFinallyWithHandleResult.kt +++ b/backend.native/tests/external/codegen/box/coroutines/tryFinallyWithHandleResult.kt @@ -1,27 +1,28 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var globalResult = "" var wasCalled = false class Controller { val postponedActions = mutableListOf<() -> Unit>() - suspend fun suspendWithValue(v: String): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithValue(v: String): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resume(v) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } - suspend fun suspendWithException(e: Exception): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendWithException(e: Exception): String = suspendCoroutineOrReturn { x -> postponedActions.add { x.resumeWithException(e) } - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun run(c: suspend Controller.() -> String) { diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt similarity index 77% rename from backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt rename to backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt index 91109a85250..5dc6fa0f082 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt +++ b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/coroutineNonLocalReturn.kt @@ -1,16 +1,19 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { var wasResumeCalled = false c.startCoroutine(object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(value: Unit) { wasResumeCalled = true } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/coroutineReturn.kt b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/coroutineReturn.kt similarity index 75% rename from backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/coroutineReturn.kt rename to backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/coroutineReturn.kt index e1bb10594da..cf6c8dc755e 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/coroutineReturn.kt +++ b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/coroutineReturn.kt @@ -1,16 +1,19 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* -suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> +suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } fun builder(c: suspend () -> Unit) { var wasResumeCalled = false c.startCoroutine(object : Continuation { + override val context = EmptyCoroutineContext + override fun resume(value: Unit) { wasResumeCalled = true } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/suspendNonLocalReturn.kt b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/suspendNonLocalReturn.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/suspendNonLocalReturn.kt rename to backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/suspendNonLocalReturn.kt index bb1c6862d96..9d722a8b25f 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/suspendNonLocalReturn.kt +++ b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/suspendNonLocalReturn.kt @@ -1,8 +1,8 @@ -// IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES // IGNORE_BACKEND: JS, NATIVE -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var result = "0" @@ -14,9 +14,9 @@ suspend fun suspendHere(x: Int): Unit { } result = "OK" - return CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + return suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/suspendReturn.kt b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/suspendReturn.kt similarity index 70% rename from backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/suspendReturn.kt rename to backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/suspendReturn.kt index 80140ad62f3..00f1db901a6 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/unitTypeReturn/suspendReturn.kt +++ b/backend.native/tests/external/codegen/box/coroutines/unitTypeReturn/suspendReturn.kt @@ -1,16 +1,17 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* var result = "0" suspend fun suspendHere(x: Int): Unit { if (x == 0) return result = "OK" - return CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + return suspendCoroutineOrReturn { x -> x.resume(Unit) - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/box/coroutines/varSpilling/nullSpilling.kt b/backend.native/tests/external/codegen/box/coroutines/varSpilling/nullSpilling.kt new file mode 100644 index 00000000000..8147ffec376 --- /dev/null +++ b/backend.native/tests/external/codegen/box/coroutines/varSpilling/nullSpilling.kt @@ -0,0 +1,46 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_COROUTINES +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +suspend fun foo(value: String): String = suspendCoroutineOrReturn { x -> + x.resume(value) + COROUTINE_SUSPENDED +} + +fun bar(x: String?, y: String, z: String): String { + if (x != null) throw RuntimeException("fail 0") + return y + z +} + +suspend fun baz1(): String { + return bar(null, foo("O"), foo("K")) +} + +suspend fun baz2(): String { + var x = null + + for (i in 1..3) { + x = null + } + + return bar(x, foo("O"), foo("K")) +} + +fun builder(c: suspend () -> Unit) { + c.startCoroutine(EmptyContinuation) +} + +fun box(): String { + var result = "" + + builder { + result = baz1() + + if (result != "OK") throw RuntimeException("fail 1") + result = baz2() + } + + return result +} diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/varValueConflictsWithTable.kt b/backend.native/tests/external/codegen/box/coroutines/varValueConflictsWithTable.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/coroutines/varValueConflictsWithTable.kt rename to backend.native/tests/external/codegen/box/coroutines/varValueConflictsWithTable.kt index 56fdb2dfda4..c0506126a28 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/varValueConflictsWithTable.kt +++ b/backend.native/tests/external/codegen/box/coroutines/varValueConflictsWithTable.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/coroutines/varValueConflictsWithTableSameSort.kt b/backend.native/tests/external/codegen/box/coroutines/varValueConflictsWithTableSameSort.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/coroutines/varValueConflictsWithTableSameSort.kt rename to backend.native/tests/external/codegen/box/coroutines/varValueConflictsWithTableSameSort.kt index 9b188cc6cdf..295b123c98f 100644 --- a/backend.native/tests/external/codegen/blackbox/coroutines/varValueConflictsWithTableSameSort.kt +++ b/backend.native/tests/external/codegen/box/coroutines/varValueConflictsWithTableSameSort.kt @@ -1,12 +1,13 @@ // IGNORE_BACKEND: NATIVE // WITH_RUNTIME // WITH_COROUTINES -import kotlin.coroutines.* +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* class Controller { - suspend fun suspendHere(): String = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> + suspend fun suspendHere(): String = suspendCoroutineOrReturn { x -> x.resume("OK") - CoroutineIntrinsics.SUSPENDED + COROUTINE_SUSPENDED } } diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/arrayParams.kt b/backend.native/tests/external/codegen/box/dataClasses/arrayParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/arrayParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/arrayParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/changingVarParam.kt b/backend.native/tests/external/codegen/box/dataClasses/changingVarParam.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/changingVarParam.kt rename to backend.native/tests/external/codegen/box/dataClasses/changingVarParam.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/copy/constructorWithDefaultParam.kt b/backend.native/tests/external/codegen/box/dataClasses/copy/constructorWithDefaultParam.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/copy/constructorWithDefaultParam.kt rename to backend.native/tests/external/codegen/box/dataClasses/copy/constructorWithDefaultParam.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/copy/copyInObjectNestedDataClass.kt b/backend.native/tests/external/codegen/box/dataClasses/copy/copyInObjectNestedDataClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/copy/copyInObjectNestedDataClass.kt rename to backend.native/tests/external/codegen/box/dataClasses/copy/copyInObjectNestedDataClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/copy/kt12708.kt b/backend.native/tests/external/codegen/box/dataClasses/copy/kt12708.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/copy/kt12708.kt rename to backend.native/tests/external/codegen/box/dataClasses/copy/kt12708.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/copy/kt3033.kt b/backend.native/tests/external/codegen/box/dataClasses/copy/kt3033.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/copy/kt3033.kt rename to backend.native/tests/external/codegen/box/dataClasses/copy/kt3033.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/copy/valInConstructorParams.kt b/backend.native/tests/external/codegen/box/dataClasses/copy/valInConstructorParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/copy/valInConstructorParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/copy/valInConstructorParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/copy/varInConstructorParams.kt b/backend.native/tests/external/codegen/box/dataClasses/copy/varInConstructorParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/copy/varInConstructorParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/copy/varInConstructorParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/copy/withGenericParameter.kt b/backend.native/tests/external/codegen/box/dataClasses/copy/withGenericParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/copy/withGenericParameter.kt rename to backend.native/tests/external/codegen/box/dataClasses/copy/withGenericParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/doubleParam.kt b/backend.native/tests/external/codegen/box/dataClasses/doubleParam.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/dataClasses/doubleParam.kt rename to backend.native/tests/external/codegen/box/dataClasses/doubleParam.kt index 50a6d8e2755..7c4f6be1a75 100644 --- a/backend.native/tests/external/codegen/blackbox/dataClasses/doubleParam.kt +++ b/backend.native/tests/external/codegen/box/dataClasses/doubleParam.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS val NAN = Double.NaN diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/equals/alreadyDeclared.kt b/backend.native/tests/external/codegen/box/dataClasses/equals/alreadyDeclared.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/equals/alreadyDeclared.kt rename to backend.native/tests/external/codegen/box/dataClasses/equals/alreadyDeclared.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/equals/alreadyDeclaredWrongSignature.kt b/backend.native/tests/external/codegen/box/dataClasses/equals/alreadyDeclaredWrongSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/equals/alreadyDeclaredWrongSignature.kt rename to backend.native/tests/external/codegen/box/dataClasses/equals/alreadyDeclaredWrongSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/equals/genericarray.kt b/backend.native/tests/external/codegen/box/dataClasses/equals/genericarray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/equals/genericarray.kt rename to backend.native/tests/external/codegen/box/dataClasses/equals/genericarray.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/equals/intarray.kt b/backend.native/tests/external/codegen/box/dataClasses/equals/intarray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/equals/intarray.kt rename to backend.native/tests/external/codegen/box/dataClasses/equals/intarray.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/equals/nullother.kt b/backend.native/tests/external/codegen/box/dataClasses/equals/nullother.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/equals/nullother.kt rename to backend.native/tests/external/codegen/box/dataClasses/equals/nullother.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/equals/sameinstance.kt b/backend.native/tests/external/codegen/box/dataClasses/equals/sameinstance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/equals/sameinstance.kt rename to backend.native/tests/external/codegen/box/dataClasses/equals/sameinstance.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/floatParam.kt b/backend.native/tests/external/codegen/box/dataClasses/floatParam.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/dataClasses/floatParam.kt rename to backend.native/tests/external/codegen/box/dataClasses/floatParam.kt index f6e2224ba71..aaa8f2b5e2f 100644 --- a/backend.native/tests/external/codegen/blackbox/dataClasses/floatParam.kt +++ b/backend.native/tests/external/codegen/box/dataClasses/floatParam.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS val NAN = Float.NaN diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/genericParam.kt b/backend.native/tests/external/codegen/box/dataClasses/genericParam.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/genericParam.kt rename to backend.native/tests/external/codegen/box/dataClasses/genericParam.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/alreadyDeclared.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/alreadyDeclared.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/alreadyDeclared.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/alreadyDeclared.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/alreadyDeclaredWrongSignature.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/alreadyDeclaredWrongSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/alreadyDeclaredWrongSignature.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/alreadyDeclaredWrongSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/array.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/array.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/array.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/array.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/boolean.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/boolean.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/boolean.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/boolean.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/byte.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/byte.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/byte.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/byte.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/char.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/char.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/char.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/char.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/double.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/double.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/double.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/double.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/float.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/float.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/float.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/float.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/genericNull.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/genericNull.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/genericNull.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/genericNull.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/int.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/int.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/int.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/int.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/long.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/long.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/long.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/long.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/null.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/null.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/null.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/null.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/short.kt b/backend.native/tests/external/codegen/box/dataClasses/hashCode/short.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/hashCode/short.kt rename to backend.native/tests/external/codegen/box/dataClasses/hashCode/short.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/kt5002.kt b/backend.native/tests/external/codegen/box/dataClasses/kt5002.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/kt5002.kt rename to backend.native/tests/external/codegen/box/dataClasses/kt5002.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/mixedParams.kt b/backend.native/tests/external/codegen/box/dataClasses/mixedParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/mixedParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/mixedParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/multiDeclaration.kt b/backend.native/tests/external/codegen/box/dataClasses/multiDeclaration.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/multiDeclaration.kt rename to backend.native/tests/external/codegen/box/dataClasses/multiDeclaration.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/multiDeclarationFor.kt b/backend.native/tests/external/codegen/box/dataClasses/multiDeclarationFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/multiDeclarationFor.kt rename to backend.native/tests/external/codegen/box/dataClasses/multiDeclarationFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/nonTrivialFinalMemberInSuperClass.kt b/backend.native/tests/external/codegen/box/dataClasses/nonTrivialFinalMemberInSuperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/nonTrivialFinalMemberInSuperClass.kt rename to backend.native/tests/external/codegen/box/dataClasses/nonTrivialFinalMemberInSuperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/nonTrivialMemberInSuperClass.kt b/backend.native/tests/external/codegen/box/dataClasses/nonTrivialMemberInSuperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/nonTrivialMemberInSuperClass.kt rename to backend.native/tests/external/codegen/box/dataClasses/nonTrivialMemberInSuperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/privateValParams.kt b/backend.native/tests/external/codegen/box/dataClasses/privateValParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/privateValParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/privateValParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/alreadyDeclared.kt b/backend.native/tests/external/codegen/box/dataClasses/toString/alreadyDeclared.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/toString/alreadyDeclared.kt rename to backend.native/tests/external/codegen/box/dataClasses/toString/alreadyDeclared.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/alreadyDeclaredWrongSignature.kt b/backend.native/tests/external/codegen/box/dataClasses/toString/alreadyDeclaredWrongSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/toString/alreadyDeclaredWrongSignature.kt rename to backend.native/tests/external/codegen/box/dataClasses/toString/alreadyDeclaredWrongSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/arrayParams.kt b/backend.native/tests/external/codegen/box/dataClasses/toString/arrayParams.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/dataClasses/toString/arrayParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/toString/arrayParams.kt index 9292bc9341b..c195530bf54 100644 --- a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/arrayParams.kt +++ b/backend.native/tests/external/codegen/box/dataClasses/toString/arrayParams.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS data class A(val x: Array?, val y: IntArray?) diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/changingVarParam.kt b/backend.native/tests/external/codegen/box/dataClasses/toString/changingVarParam.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/toString/changingVarParam.kt rename to backend.native/tests/external/codegen/box/dataClasses/toString/changingVarParam.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/genericParam.kt b/backend.native/tests/external/codegen/box/dataClasses/toString/genericParam.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/toString/genericParam.kt rename to backend.native/tests/external/codegen/box/dataClasses/toString/genericParam.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/mixedParams.kt b/backend.native/tests/external/codegen/box/dataClasses/toString/mixedParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/toString/mixedParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/toString/mixedParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/toString/unitComponent.kt b/backend.native/tests/external/codegen/box/dataClasses/toString/unitComponent.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/toString/unitComponent.kt rename to backend.native/tests/external/codegen/box/dataClasses/toString/unitComponent.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/twoValParams.kt b/backend.native/tests/external/codegen/box/dataClasses/twoValParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/twoValParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/twoValParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/twoVarParams.kt b/backend.native/tests/external/codegen/box/dataClasses/twoVarParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/twoVarParams.kt rename to backend.native/tests/external/codegen/box/dataClasses/twoVarParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/dataClasses/unitComponent.kt b/backend.native/tests/external/codegen/box/dataClasses/unitComponent.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/dataClasses/unitComponent.kt rename to backend.native/tests/external/codegen/box/dataClasses/unitComponent.kt diff --git a/backend.native/tests/external/codegen/blackbox/deadCodeElimination/emptyVariableRange.kt b/backend.native/tests/external/codegen/box/deadCodeElimination/emptyVariableRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/deadCodeElimination/emptyVariableRange.kt rename to backend.native/tests/external/codegen/box/deadCodeElimination/emptyVariableRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/deadCodeElimination/intersectingVariableRange.kt b/backend.native/tests/external/codegen/box/deadCodeElimination/intersectingVariableRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/deadCodeElimination/intersectingVariableRange.kt rename to backend.native/tests/external/codegen/box/deadCodeElimination/intersectingVariableRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/deadCodeElimination/intersectingVariableRangeInFinally.kt b/backend.native/tests/external/codegen/box/deadCodeElimination/intersectingVariableRangeInFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/deadCodeElimination/intersectingVariableRangeInFinally.kt rename to backend.native/tests/external/codegen/box/deadCodeElimination/intersectingVariableRangeInFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/deadCodeElimination/kt14357.kt b/backend.native/tests/external/codegen/box/deadCodeElimination/kt14357.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/deadCodeElimination/kt14357.kt rename to backend.native/tests/external/codegen/box/deadCodeElimination/kt14357.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/annotation.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/annotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/annotation.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/annotation.kt diff --git a/backend.native/tests/external/codegen/box/defaultArguments/constructor/annotationWithEmptyArray.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/annotationWithEmptyArray.kt new file mode 100644 index 00000000000..1bf88131f44 --- /dev/null +++ b/backend.native/tests/external/codegen/box/defaultArguments/constructor/annotationWithEmptyArray.kt @@ -0,0 +1,8 @@ +annotation class Anno(val x: Array = emptyArray()) + +@Anno fun test1() = 1 +@Anno(arrayOf("K")) fun test2() = 2 + +fun box(): String { + return if (test1() + test2() == 3) "OK" else "Fail" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/checkIfConstructorIsSynthetic.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/checkIfConstructorIsSynthetic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/checkIfConstructorIsSynthetic.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/checkIfConstructorIsSynthetic.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/defArgs1.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/defArgs1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/defArgs1.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/defArgs1.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/defArgs1InnerClass.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/defArgs1InnerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/defArgs1InnerClass.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/defArgs1InnerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/defArgs2.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/defArgs2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/defArgs2.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/defArgs2.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/doubleDefArgs1InnerClass.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/doubleDefArgs1InnerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/doubleDefArgs1InnerClass.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/doubleDefArgs1InnerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enum.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/enum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enum.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/enum.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enumWithOneDefArg.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/enumWithOneDefArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enumWithOneDefArg.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/enumWithOneDefArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enumWithTwoDefArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/enumWithTwoDefArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enumWithTwoDefArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/enumWithTwoDefArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enumWithTwoDoubleDefArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/enumWithTwoDoubleDefArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/enumWithTwoDoubleDefArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/enumWithTwoDoubleDefArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/kt2852.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/kt2852.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/kt2852.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/kt2852.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/kt3060.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/kt3060.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/kt3060.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/kt3060.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/manyArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/constructor/manyArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/constructor/manyArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/constructor/manyArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/convention/incWithDefaultInGetter.kt b/backend.native/tests/external/codegen/box/defaultArguments/convention/incWithDefaultInGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/convention/incWithDefaultInGetter.kt rename to backend.native/tests/external/codegen/box/defaultArguments/convention/incWithDefaultInGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/convention/kt9140.kt b/backend.native/tests/external/codegen/box/defaultArguments/convention/kt9140.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/convention/kt9140.kt rename to backend.native/tests/external/codegen/box/defaultArguments/convention/kt9140.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/convention/plusAssignWithDefaultInGetter.kt b/backend.native/tests/external/codegen/box/defaultArguments/convention/plusAssignWithDefaultInGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/convention/plusAssignWithDefaultInGetter.kt rename to backend.native/tests/external/codegen/box/defaultArguments/convention/plusAssignWithDefaultInGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/abstractClass.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/abstractClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/abstractClass.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/abstractClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/covariantOverride.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/covariantOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/covariantOverride.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/covariantOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/covariantOverrideGeneric.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/covariantOverrideGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/covariantOverrideGeneric.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/covariantOverrideGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/extensionFunctionManyArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/extensionFunctionManyArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/extensionFunctionManyArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/extensionFunctionManyArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunction.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunction.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionDouble.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionDouble.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionDouble.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionDouble.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionDoubleTwoArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionDoubleTwoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionDoubleTwoArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionDoubleTwoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionInClassObject.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionInClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionInClassObject.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionInClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionInObject.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionInObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionInObject.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionInObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionWithOneDefArg.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionWithOneDefArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/extentionFunctionWithOneDefArg.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/extentionFunctionWithOneDefArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/funInTrait.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/funInTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/funInTrait.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/funInTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunction.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunction.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunctionDouble.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunctionDouble.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunctionDouble.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunctionDouble.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunctionDoubleTwoArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunctionDoubleTwoArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunctionDoubleTwoArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunctionDoubleTwoArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunctionManyArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunctionManyArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/innerExtentionFunctionManyArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/innerExtentionFunctionManyArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/kt5232.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/kt5232.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/kt5232.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/kt5232.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/memberFunctionManyArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/memberFunctionManyArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/memberFunctionManyArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/memberFunctionManyArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/mixingNamedAndPositioned.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/mixingNamedAndPositioned.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/mixingNamedAndPositioned.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/mixingNamedAndPositioned.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/topLevelManyArgs.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/topLevelManyArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/topLevelManyArgs.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/topLevelManyArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/function/trait.kt b/backend.native/tests/external/codegen/box/defaultArguments/function/trait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/function/trait.kt rename to backend.native/tests/external/codegen/box/defaultArguments/function/trait.kt diff --git a/backend.native/tests/external/codegen/box/defaultArguments/implementedByFake.kt b/backend.native/tests/external/codegen/box/defaultArguments/implementedByFake.kt new file mode 100644 index 00000000000..d5c4564cbac --- /dev/null +++ b/backend.native/tests/external/codegen/box/defaultArguments/implementedByFake.kt @@ -0,0 +1,42 @@ +// TARGET_BACKEND: JS +// This test causes JVM to generate incorrect bytecode +// Could not use IGNORE_BACKEND directive, since it makes LightAnalysisModeCodegenTestsGenerated fail on this test + +interface I { + val prop: T + + fun f(x: String = "1"): String + + fun g(x: String = "2"): String + + fun h(x: T = prop): T +} + +open class A { + open fun f(x: String) = x + + open fun g(x: T) = x + + open fun h(x: String) = x +} + +class B : A(), I { + override val prop + get() = "3" +} + +fun box(): String { + val i: I = B() + var result = i.f() + i.g() + i.h() + if (result != "123") return "fail1: $result" + + val b = B() + result = b.f() + b.g() + b.h() + if (result != "123") return "fail2: $result" + + val a: A = B() + result = a.f("q") + a.g("w") + a.h("e") + if (result != "qwe") return "fail3: $result" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/kt6382.kt b/backend.native/tests/external/codegen/box/defaultArguments/kt6382.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/kt6382.kt rename to backend.native/tests/external/codegen/box/defaultArguments/kt6382.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/private/memberExtensionFunction.kt b/backend.native/tests/external/codegen/box/defaultArguments/private/memberExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/private/memberExtensionFunction.kt rename to backend.native/tests/external/codegen/box/defaultArguments/private/memberExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/private/memberFunction.kt b/backend.native/tests/external/codegen/box/defaultArguments/private/memberFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/private/memberFunction.kt rename to backend.native/tests/external/codegen/box/defaultArguments/private/memberFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/private/primaryConstructor.kt b/backend.native/tests/external/codegen/box/defaultArguments/private/primaryConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/private/primaryConstructor.kt rename to backend.native/tests/external/codegen/box/defaultArguments/private/primaryConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/private/secondaryConstructor.kt b/backend.native/tests/external/codegen/box/defaultArguments/private/secondaryConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/private/secondaryConstructor.kt rename to backend.native/tests/external/codegen/box/defaultArguments/private/secondaryConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/protected.kt b/backend.native/tests/external/codegen/box/defaultArguments/protected.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/protected.kt rename to backend.native/tests/external/codegen/box/defaultArguments/protected.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/signature/kt2789.kt b/backend.native/tests/external/codegen/box/defaultArguments/signature/kt2789.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/signature/kt2789.kt rename to backend.native/tests/external/codegen/box/defaultArguments/signature/kt2789.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/signature/kt9428.kt b/backend.native/tests/external/codegen/box/defaultArguments/signature/kt9428.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/signature/kt9428.kt rename to backend.native/tests/external/codegen/box/defaultArguments/signature/kt9428.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/signature/kt9924.kt b/backend.native/tests/external/codegen/box/defaultArguments/signature/kt9924.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/signature/kt9924.kt rename to backend.native/tests/external/codegen/box/defaultArguments/signature/kt9924.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/simpleFromOtherFile.kt b/backend.native/tests/external/codegen/box/defaultArguments/simpleFromOtherFile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/simpleFromOtherFile.kt rename to backend.native/tests/external/codegen/box/defaultArguments/simpleFromOtherFile.kt diff --git a/backend.native/tests/external/codegen/blackbox/defaultArguments/superCallCheck.kt b/backend.native/tests/external/codegen/box/defaultArguments/superCallCheck.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/defaultArguments/superCallCheck.kt rename to backend.native/tests/external/codegen/box/defaultArguments/superCallCheck.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt b/backend.native/tests/external/codegen/box/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/accessTopLevelDelegatedPropertyInClinit.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/capturePropertyInClosure.kt b/backend.native/tests/external/codegen/box/delegatedProperty/capturePropertyInClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/capturePropertyInClosure.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/capturePropertyInClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/castGetReturnType.kt b/backend.native/tests/external/codegen/box/delegatedProperty/castGetReturnType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/castGetReturnType.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/castGetReturnType.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/castSetParameter.kt b/backend.native/tests/external/codegen/box/delegatedProperty/castSetParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/castSetParameter.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/castSetParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateAsInnerClass.kt b/backend.native/tests/external/codegen/box/delegatedProperty/delegateAsInnerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateAsInnerClass.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/delegateAsInnerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateByOtherProperty.kt b/backend.native/tests/external/codegen/box/delegatedProperty/delegateByOtherProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateByOtherProperty.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/delegateByOtherProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateByTopLevelFun.kt b/backend.native/tests/external/codegen/box/delegatedProperty/delegateByTopLevelFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateByTopLevelFun.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/delegateByTopLevelFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateByTopLevelProperty.kt b/backend.native/tests/external/codegen/box/delegatedProperty/delegateByTopLevelProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateByTopLevelProperty.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/delegateByTopLevelProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateForExtProperty.kt b/backend.native/tests/external/codegen/box/delegatedProperty/delegateForExtProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateForExtProperty.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/delegateForExtProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateForExtPropertyInClass.kt b/backend.native/tests/external/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateForExtPropertyInClass.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateWithPrivateSet.kt b/backend.native/tests/external/codegen/box/delegatedProperty/delegateWithPrivateSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/delegateWithPrivateSet.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/delegateWithPrivateSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/extensionDelegatesWithSameNames.kt b/backend.native/tests/external/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/extensionDelegatesWithSameNames.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/extensionPropertyAndExtensionGetValue.kt b/backend.native/tests/external/codegen/box/delegatedProperty/extensionPropertyAndExtensionGetValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/extensionPropertyAndExtensionGetValue.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/extensionPropertyAndExtensionGetValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/genericDelegate.kt b/backend.native/tests/external/codegen/box/delegatedProperty/genericDelegate.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/genericDelegate.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/genericDelegate.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/getAsExtensionFun.kt b/backend.native/tests/external/codegen/box/delegatedProperty/getAsExtensionFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/getAsExtensionFun.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/getAsExtensionFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/getAsExtensionFunInClass.kt b/backend.native/tests/external/codegen/box/delegatedProperty/getAsExtensionFunInClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/getAsExtensionFunInClass.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/getAsExtensionFunInClass.kt diff --git a/backend.native/tests/external/codegen/box/delegatedProperty/getDelegateWithoutReflection.kt b/backend.native/tests/external/codegen/box/delegatedProperty/getDelegateWithoutReflection.kt new file mode 100644 index 00000000000..5e8026a79a0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/delegatedProperty/getDelegateWithoutReflection.kt @@ -0,0 +1,22 @@ +// IGNORE_BACKEND: JS + +// No kotlin-reflect.jar in this test +// WITH_RUNTIME + +import kotlin.reflect.KProperty + +object Delegate { + operator fun getValue(instance: Any?, property: KProperty<*>) = "" +} + +val foo: String by Delegate + +fun box(): String { + try { + ::foo.getDelegate() + return "Fail: error should have been thrown" + } + catch (e: KotlinReflectionNotSupportedError) { + return "OK" + } +} diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/inClassVal.kt b/backend.native/tests/external/codegen/box/delegatedProperty/inClassVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/inClassVal.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/inClassVal.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/inClassVar.kt b/backend.native/tests/external/codegen/box/delegatedProperty/inClassVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/inClassVar.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/inClassVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/inTrait.kt b/backend.native/tests/external/codegen/box/delegatedProperty/inTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/inTrait.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/inTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/inferredPropertyType.kt b/backend.native/tests/external/codegen/box/delegatedProperty/inferredPropertyType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/inferredPropertyType.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/inferredPropertyType.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/kt4138.kt b/backend.native/tests/external/codegen/box/delegatedProperty/kt4138.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/kt4138.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/kt4138.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/kt6722.kt b/backend.native/tests/external/codegen/box/delegatedProperty/kt6722.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/kt6722.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/kt6722.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/kt9712.kt b/backend.native/tests/external/codegen/box/delegatedProperty/kt9712.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/kt9712.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/kt9712.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalVal.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalVal.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalVal.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalValNoInline.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalValNoInline.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalValNoInline.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalValNoInline.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalVar.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalVar.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalVarNoInline.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalVarNoInline.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/capturedLocalVarNoInline.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/capturedLocalVarNoInline.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/inlineGetValue.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/inlineGetValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/inlineGetValue.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/inlineGetValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/inlineOperators.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/inlineOperators.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/inlineOperators.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/inlineOperators.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/kt12891.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/kt12891.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/kt12891.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/kt12891.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/kt13557.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/kt13557.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/kt13557.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/kt13557.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localVal.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/localVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localVal.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/localVal.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localValNoExplicitType.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/localValNoExplicitType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localValNoExplicitType.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/localValNoExplicitType.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localVar.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/localVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localVar.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/localVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localVarNoExplicitType.kt b/backend.native/tests/external/codegen/box/delegatedProperty/local/localVarNoExplicitType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/local/localVarNoExplicitType.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/local/localVarNoExplicitType.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/privateSetterKPropertyIsNotMutable.kt b/backend.native/tests/external/codegen/box/delegatedProperty/privateSetterKPropertyIsNotMutable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/privateSetterKPropertyIsNotMutable.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/privateSetterKPropertyIsNotMutable.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/privateVar.kt b/backend.native/tests/external/codegen/box/delegatedProperty/privateVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/privateVar.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/privateVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/propertyMetadataShouldBeCached.kt b/backend.native/tests/external/codegen/box/delegatedProperty/propertyMetadataShouldBeCached.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/propertyMetadataShouldBeCached.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/propertyMetadataShouldBeCached.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/protectedVarWithPrivateSet.kt b/backend.native/tests/external/codegen/box/delegatedProperty/protectedVarWithPrivateSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/protectedVarWithPrivateSet.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/protectedVarWithPrivateSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/differentReceivers.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/differentReceivers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/differentReceivers.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/differentReceivers.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/evaluationOrder.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/evaluationOrder.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/evaluationOrder.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/evaluationOrder.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/evaluationOrderVar.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/evaluationOrderVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/evaluationOrderVar.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/evaluationOrderVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/extensionDelegated.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/extensionDelegated.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/extensionDelegated.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/extensionDelegated.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/generic.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/generic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/generic.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/generic.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/hostCheck.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/hostCheck.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/hostCheck.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/hostCheck.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/inClass.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/inClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/inClass.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/inClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/inlineProvideDelegate.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/inlineProvideDelegate.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/inlineProvideDelegate.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/inlineProvideDelegate.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/jvmStaticInObject.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/jvmStaticInObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/jvmStaticInObject.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/jvmStaticInObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/kt15437.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/kt15437.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/kt15437.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/kt15437.kt diff --git a/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/kt16441.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/kt16441.kt new file mode 100644 index 00000000000..1e93734c254 --- /dev/null +++ b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/kt16441.kt @@ -0,0 +1,16 @@ +import kotlin.reflect.KProperty + +class Delegate { + operator fun provideDelegate(thisRef: Any?, property: KProperty<*>) = this + operator fun getValue(thisRef: Any?, property: KProperty<*>) = "OK" +} + +class TestClass { + companion object { + val test by Delegate() + } +} + +fun box(): String { + return TestClass.test +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/local.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/local.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/local.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/local.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/localCaptured.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/localCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/localCaptured.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/localCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/localDifferentReceivers.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/localDifferentReceivers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/localDifferentReceivers.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/localDifferentReceivers.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/memberExtension.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/memberExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/memberExtension.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/memberExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/propertyMetadata.kt b/backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/propertyMetadata.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/provideDelegate/propertyMetadata.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/provideDelegate/propertyMetadata.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/setAsExtensionFun.kt b/backend.native/tests/external/codegen/box/delegatedProperty/setAsExtensionFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/setAsExtensionFun.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/setAsExtensionFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/setAsExtensionFunInClass.kt b/backend.native/tests/external/codegen/box/delegatedProperty/setAsExtensionFunInClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/setAsExtensionFunInClass.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/setAsExtensionFunInClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/stackOverflowOnCallFromGetValue.kt b/backend.native/tests/external/codegen/box/delegatedProperty/stackOverflowOnCallFromGetValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/stackOverflowOnCallFromGetValue.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/stackOverflowOnCallFromGetValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/topLevelVal.kt b/backend.native/tests/external/codegen/box/delegatedProperty/topLevelVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/topLevelVal.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/topLevelVal.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/topLevelVar.kt b/backend.native/tests/external/codegen/box/delegatedProperty/topLevelVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/topLevelVar.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/topLevelVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/twoPropByOneDelegete.kt b/backend.native/tests/external/codegen/box/delegatedProperty/twoPropByOneDelegete.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/twoPropByOneDelegete.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/twoPropByOneDelegete.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/useKPropertyLater.kt b/backend.native/tests/external/codegen/box/delegatedProperty/useKPropertyLater.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/useKPropertyLater.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/useKPropertyLater.kt index f457e44dafc..6f09d50151e 100644 --- a/backend.native/tests/external/codegen/blackbox/delegatedProperty/useKPropertyLater.kt +++ b/backend.native/tests/external/codegen/box/delegatedProperty/useKPropertyLater.kt @@ -1,5 +1,4 @@ // WITH_REFLECT -// TODO: replace with WITH_RUNTIME once KT-11316 is fixed import kotlin.reflect.* diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/useReflectionOnKProperty.kt b/backend.native/tests/external/codegen/box/delegatedProperty/useReflectionOnKProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/useReflectionOnKProperty.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/useReflectionOnKProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/valInInnerClass.kt b/backend.native/tests/external/codegen/box/delegatedProperty/valInInnerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/valInInnerClass.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/valInInnerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegatedProperty/varInInnerClass.kt b/backend.native/tests/external/codegen/box/delegatedProperty/varInInnerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegatedProperty/varInInnerClass.kt rename to backend.native/tests/external/codegen/box/delegatedProperty/varInInnerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/delegation/delegationToVal.kt b/backend.native/tests/external/codegen/box/delegation/delegationToVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegation/delegationToVal.kt rename to backend.native/tests/external/codegen/box/delegation/delegationToVal.kt diff --git a/backend.native/tests/external/codegen/box/delegation/delegationWithPrivateConstructor.kt b/backend.native/tests/external/codegen/box/delegation/delegationWithPrivateConstructor.kt new file mode 100644 index 00000000000..448cbec7c35 --- /dev/null +++ b/backend.native/tests/external/codegen/box/delegation/delegationWithPrivateConstructor.kt @@ -0,0 +1,17 @@ +class MyObject private constructor(val delegate: Interface) : Interface by delegate { + constructor() : this(Delegate()) +} + +class Delegate : Interface { + override fun greet(): String { + return "OK" + } +} + +private interface Interface { + fun greet(): String +} + +fun box(): String { + return MyObject().greet() +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt b/backend.native/tests/external/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt new file mode 100644 index 00000000000..52dd706636f --- /dev/null +++ b/backend.native/tests/external/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt @@ -0,0 +1,20 @@ +// LANGUAGE_VERSION: 1.0 + +public interface Base { + fun test() = "base fail" +} + +public interface Base2 : Base { + override fun test() = "base 2fail" +} + +class Delegate : Base { + override fun test(): String { + return "OK" + } +} + +fun box(): String { + return object : Base2, Base by Delegate() { + }.test() +} diff --git a/backend.native/tests/external/codegen/blackbox/delegation/kt8154.kt b/backend.native/tests/external/codegen/box/delegation/kt8154.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/delegation/kt8154.kt rename to backend.native/tests/external/codegen/box/delegation/kt8154.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/extensionComponents.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/extensionComponents.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/extensionComponents.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/extensionComponents.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/generic.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/generic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/generic.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/generic.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/inline.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/inline.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/inline.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/inline.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/otherParameters.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/otherParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/otherParameters.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/otherParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/simple.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/simple.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/stdlibUsages.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/stdlibUsages.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/stdlibUsages.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/stdlibUsages.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/underscoreNames.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/underscoreNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/underscoreNames.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/underscoreNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/withIndexed.kt b/backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/withIndexed.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/destructuringDeclInLambdaParam/withIndexed.kt rename to backend.native/tests/external/codegen/box/destructuringDeclInLambdaParam/withIndexed.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/inference/kt6176.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/inference/kt6176.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/inference/kt6176.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/inference/kt6176.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/inference/kt6176.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/inference/kt6176.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/inference/kt6176.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/inference/kt6176.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject1.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObject2.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass1.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnClassObjectOfNestedClass2.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum1.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum1.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum1.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum1.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum1.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum1.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum1.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum2.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum2.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum2.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum2.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum2.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnEnum2.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnEnum2.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum1.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnImportedEnum2.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject1.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject1.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject1.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject1.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject1.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject1.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject1.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject2.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject2.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject2.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject2.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject2.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/invoke/onObjects/invokeOnObject2.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/invoke/onObjects/invokeOnObject2.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgs.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgs.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgs.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgs.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgs.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgs.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgsOverridden.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgsOverridden.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgsOverridden.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgsOverridden.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgsOverridden.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgsOverridden.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/defaultArgsOverridden.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/defaultArgsOverridden.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/extensionTailCall.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/extensionTailCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/extensionTailCall.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/extensionTailCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/extensionTailCall.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/extensionTailCall.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/extensionTailCall.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/extensionTailCall.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNoTails.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNoTails.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNoTails.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNoTails.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNoTails.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNoTails.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNoTails.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNoTails.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithNonTailRecursions.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithoutAnnotation.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithoutAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithoutAnnotation.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithoutAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithoutAnnotation.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithoutAnnotation.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/functionWithoutAnnotation.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/functionWithoutAnnotation.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixCall.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixCall.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixCall.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixCall.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixCall.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixCall.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixRecursiveCall.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixRecursiveCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixRecursiveCall.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixRecursiveCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixRecursiveCall.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixRecursiveCall.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/infixRecursiveCall.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/infixRecursiveCall.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/insideElvis.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/insideElvis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/insideElvis.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/insideElvis.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/insideElvis.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/insideElvis.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/insideElvis.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/insideElvis.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/labeledThisReferences.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/labeledThisReferences.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/labeledThisReferences.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/labeledThisReferences.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/labeledThisReferences.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/labeledThisReferences.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/labeledThisReferences.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/labeledThisReferences.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/loops.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/loops.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/loops.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/loops.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/loops.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/loops.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/loops.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/loops.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/multilevelBlocks.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/multilevelBlocks.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/multilevelBlocks.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/multilevelBlocks.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/multilevelBlocks.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/multilevelBlocks.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/multilevelBlocks.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/multilevelBlocks.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realIteratorFoldl.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realIteratorFoldl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realIteratorFoldl.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realIteratorFoldl.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realIteratorFoldl.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realIteratorFoldl.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realIteratorFoldl.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realIteratorFoldl.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringEscape.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringEscape.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringEscape.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringEscape.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringEscape.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringEscape.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringEscape.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringEscape.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringRepeat.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringRepeat.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringRepeat.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringRepeat.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringRepeat.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringRepeat.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/realStringRepeat.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/realStringRepeat.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLambda.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLambda.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLambda.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLambda.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLambda.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLambda.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveCallInLocalFunction.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveInnerFunction.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveInnerFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveInnerFunction.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveInnerFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveInnerFunction.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveInnerFunction.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/recursiveInnerFunction.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/recursiveInnerFunction.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnIf.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnIf.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnIf.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnIf.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnIf.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnIf.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnIf.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnIf.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInCatch.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInCatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInCatch.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInCatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInCatch.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInCatch.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInCatch.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInCatch.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInFinally.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInFinally.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInFinally.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInFinally.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInFinally.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInFinally.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInIfInFinally.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInIfInFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInIfInFinally.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInIfInFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInIfInFinally.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInIfInFinally.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInIfInFinally.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInIfInFinally.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInParentheses.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInParentheses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInParentheses.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInParentheses.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInParentheses.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInParentheses.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInParentheses.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInParentheses.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInTry.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInTry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInTry.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInTry.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInTry.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInTry.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/returnInTry.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/returnInTry.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleBlock.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleBlock.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleBlock.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleBlock.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleBlock.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleBlock.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleBlock.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleBlock.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturn.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturn.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturn.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturn.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturn.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturn.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturnWithElse.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturnWithElse.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturnWithElse.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturnWithElse.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturnWithElse.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturnWithElse.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/simpleReturnWithElse.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/simpleReturnWithElse.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/sum.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/sum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/sum.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/sum.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/sum.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/sum.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/sum.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/sum.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInBlockInParentheses.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInParentheses.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInParentheses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInParentheses.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInParentheses.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInParentheses.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInParentheses.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailCallInParentheses.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailCallInParentheses.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailRecursionInFinally.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailRecursionInFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailRecursionInFinally.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailRecursionInFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailRecursionInFinally.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailRecursionInFinally.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/tailRecursionInFinally.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/tailRecursionInFinally.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/thisReferences.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/thisReferences.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/thisReferences.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/thisReferences.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/thisReferences.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/thisReferences.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/thisReferences.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/thisReferences.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/unitBlocks.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/unitBlocks.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/unitBlocks.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/unitBlocks.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/unitBlocks.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/unitBlocks.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/unitBlocks.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/unitBlocks.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithCondition.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithCondition.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithCondition.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithCondition.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithCondition.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithCondition.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithCondition.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithCondition.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithInRange.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithInRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithInRange.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithInRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithInRange.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithInRange.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithInRange.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithInRange.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithIs.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithIs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithIs.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithIs.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithIs.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithIs.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithIs.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithIs.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithoutCondition.kt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithoutCondition.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithoutCondition.kt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithoutCondition.kt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithoutCondition.txt b/backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithoutCondition.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/functions/tailRecursion/whenWithoutCondition.txt rename to backend.native/tests/external/codegen/box/diagnostics/functions/tailRecursion/whenWithoutCondition.txt diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/vararg/kt4172.kt b/backend.native/tests/external/codegen/box/diagnostics/vararg/kt4172.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/diagnostics/vararg/kt4172.kt rename to backend.native/tests/external/codegen/box/diagnostics/vararg/kt4172.kt index f4760d8e8cf..80e1489d641 100644 --- a/backend.native/tests/external/codegen/blackbox/diagnostics/vararg/kt4172.kt +++ b/backend.native/tests/external/codegen/box/diagnostics/vararg/kt4172.kt @@ -1,9 +1,9 @@ fun box(): String { - foo(array()) + main(array()) return "OK" } -fun foo(args: Array) { +fun main(args: Array) { D.foo(array()) } diff --git a/backend.native/tests/external/codegen/blackbox/diagnostics/vararg/kt4172.txt b/backend.native/tests/external/codegen/box/diagnostics/vararg/kt4172.txt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/diagnostics/vararg/kt4172.txt rename to backend.native/tests/external/codegen/box/diagnostics/vararg/kt4172.txt diff --git a/backend.native/tests/external/codegen/blackbox/elvis/genericNull.kt b/backend.native/tests/external/codegen/box/elvis/genericNull.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/elvis/genericNull.kt rename to backend.native/tests/external/codegen/box/elvis/genericNull.kt diff --git a/backend.native/tests/external/codegen/blackbox/elvis/kt6694ExactAnnotationForElvis.kt b/backend.native/tests/external/codegen/box/elvis/kt6694ExactAnnotationForElvis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/elvis/kt6694ExactAnnotationForElvis.kt rename to backend.native/tests/external/codegen/box/elvis/kt6694ExactAnnotationForElvis.kt diff --git a/backend.native/tests/external/codegen/blackbox/elvis/nullNullOk.kt b/backend.native/tests/external/codegen/box/elvis/nullNullOk.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/elvis/nullNullOk.kt rename to backend.native/tests/external/codegen/box/elvis/nullNullOk.kt diff --git a/backend.native/tests/external/codegen/blackbox/elvis/primitive.kt b/backend.native/tests/external/codegen/box/elvis/primitive.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/elvis/primitive.kt rename to backend.native/tests/external/codegen/box/elvis/primitive.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/abstractMethodInEnum.kt b/backend.native/tests/external/codegen/box/enum/abstractMethodInEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/abstractMethodInEnum.kt rename to backend.native/tests/external/codegen/box/enum/abstractMethodInEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/abstractNestedClass.kt b/backend.native/tests/external/codegen/box/enum/abstractNestedClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/abstractNestedClass.kt rename to backend.native/tests/external/codegen/box/enum/abstractNestedClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/asReturnExpression.kt b/backend.native/tests/external/codegen/box/enum/asReturnExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/asReturnExpression.kt rename to backend.native/tests/external/codegen/box/enum/asReturnExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/classForEnumEntry.kt b/backend.native/tests/external/codegen/box/enum/classForEnumEntry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/classForEnumEntry.kt rename to backend.native/tests/external/codegen/box/enum/classForEnumEntry.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/companionObjectInEnum.kt b/backend.native/tests/external/codegen/box/enum/companionObjectInEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/companionObjectInEnum.kt rename to backend.native/tests/external/codegen/box/enum/companionObjectInEnum.kt diff --git a/backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithDefaultArguments.kt b/backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithDefaultArguments.kt new file mode 100644 index 00000000000..fcdaf5b62ae --- /dev/null +++ b/backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithDefaultArguments.kt @@ -0,0 +1,6 @@ +enum class Test(val str: String = "OK") { + OK +} + +fun box(): String = + Test.OK.str \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithVararg.kt b/backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithVararg.kt new file mode 100644 index 00000000000..f293632dffa --- /dev/null +++ b/backend.native/tests/external/codegen/box/enum/defaultCtor/constructorWithVararg.kt @@ -0,0 +1,7 @@ +enum class Test(vararg xs: Int) { + OK; + val values = xs +} + +fun box(): String = + if (Test.OK.values.size == 0) "OK" else "Fail" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithDefaultArguments.kt b/backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithDefaultArguments.kt new file mode 100644 index 00000000000..fb08b98daab --- /dev/null +++ b/backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithDefaultArguments.kt @@ -0,0 +1,7 @@ +enum class Test(val x: Int, val str: String) { + OK; + constructor(x: Int = 0) : this(x, "OK") +} + +fun box(): String = + Test.OK.str \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithVararg.kt b/backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithVararg.kt new file mode 100644 index 00000000000..15c5ad34e9c --- /dev/null +++ b/backend.native/tests/external/codegen/box/enum/defaultCtor/secondaryConstructorWithVararg.kt @@ -0,0 +1,10 @@ +enum class Test(val x: Int, val str: String) { + OK; + constructor(vararg xs: Int) : this(xs.size + 42, "OK") +} + +fun box(): String = + if (Test.OK.x == 42) + Test.OK.str + else + "Fail" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/enum/emptyConstructor.kt b/backend.native/tests/external/codegen/box/enum/emptyConstructor.kt similarity index 53% rename from backend.native/tests/external/codegen/blackbox/enum/emptyConstructor.kt rename to backend.native/tests/external/codegen/box/enum/emptyConstructor.kt index 412cf9a2801..c82a4ac41c3 100644 --- a/backend.native/tests/external/codegen/blackbox/enum/emptyConstructor.kt +++ b/backend.native/tests/external/codegen/box/enum/emptyConstructor.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS - package test enum class My(val s: String) { diff --git a/backend.native/tests/external/codegen/blackbox/enum/emptyEnumValuesValueOf.kt b/backend.native/tests/external/codegen/box/enum/emptyEnumValuesValueOf.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/emptyEnumValuesValueOf.kt rename to backend.native/tests/external/codegen/box/enum/emptyEnumValuesValueOf.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/enumInheritedFromTrait.kt b/backend.native/tests/external/codegen/box/enum/enumInheritedFromTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/enumInheritedFromTrait.kt rename to backend.native/tests/external/codegen/box/enum/enumInheritedFromTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/enumShort.kt b/backend.native/tests/external/codegen/box/enum/enumShort.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/enumShort.kt rename to backend.native/tests/external/codegen/box/enum/enumShort.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/enumWithLambdaParameter.kt b/backend.native/tests/external/codegen/box/enum/enumWithLambdaParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/enumWithLambdaParameter.kt rename to backend.native/tests/external/codegen/box/enum/enumWithLambdaParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/inPackage.kt b/backend.native/tests/external/codegen/box/enum/inPackage.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/inPackage.kt rename to backend.native/tests/external/codegen/box/enum/inPackage.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/inclassobj.kt b/backend.native/tests/external/codegen/box/enum/inclassobj.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/inclassobj.kt rename to backend.native/tests/external/codegen/box/enum/inclassobj.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/inner.kt b/backend.native/tests/external/codegen/box/enum/inner.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/inner.kt rename to backend.native/tests/external/codegen/box/enum/inner.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/innerWithExistingClassObject.kt b/backend.native/tests/external/codegen/box/enum/innerWithExistingClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/innerWithExistingClassObject.kt rename to backend.native/tests/external/codegen/box/enum/innerWithExistingClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/kt1119.kt b/backend.native/tests/external/codegen/box/enum/kt1119.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/kt1119.kt rename to backend.native/tests/external/codegen/box/enum/kt1119.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/kt2350.kt b/backend.native/tests/external/codegen/box/enum/kt2350.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/kt2350.kt rename to backend.native/tests/external/codegen/box/enum/kt2350.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/kt9711.kt b/backend.native/tests/external/codegen/box/enum/kt9711.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/kt9711.kt rename to backend.native/tests/external/codegen/box/enum/kt9711.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/kt9711_2.kt b/backend.native/tests/external/codegen/box/enum/kt9711_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/kt9711_2.kt rename to backend.native/tests/external/codegen/box/enum/kt9711_2.kt diff --git a/backend.native/tests/external/codegen/box/enum/manyDefaultParameters.kt b/backend.native/tests/external/codegen/box/enum/manyDefaultParameters.kt new file mode 100644 index 00000000000..a094da96f27 --- /dev/null +++ b/backend.native/tests/external/codegen/box/enum/manyDefaultParameters.kt @@ -0,0 +1,55 @@ +enum class ClassTemplate( + // var bug: Int = 1, + var code: Int, + var nameTemplate: Int = 1, + + val parent: Int = 1, + val previous: Int = 1, + val progressionEquivalent: Int = 1, + + var idDiscipline: Int = 1, + var strictRunningOrder: Int = 1, + var pointsMethod: Int = 1, + + var noTimeFaults: Int = 1, + var combineHeights: Int = 1, + + var column: Int = 1, + var runningOrderSort: Int = 1, + var programme: Int = 1, + var eliminationTime: Int = 1, + var courseTimeCode: Int = 1, + var teamSize: Int = 1, + var sponsor: Int = 1, + var lateEntryCredits: Int = 1, + var lateEntryFee: Int = 1, + + var courseLengthNeeded: Int = 1, + + var discretionaryCourseTime: Int = 1, + var isRelay: Int = 1, + var isQualifier: Int = 1, + var generateChildren: Int = 1, + var feedFromParent: Int = 1, + + var isNfcAllowed: Int = 1, + var isAddOnAllowed: Int = 1, + var isSpecialEntry: Int = 1, + var isUkaProgression: Int = 1, + var canEnterDirectly: Int = 1, + var isPointRanked: Int = 1, + var isPointRankedDesc: Int = 1 +) { + UNDEFINED(code = 56, nameTemplate = 3), + BLAH(code = 57, nameTemplate = 4) +} + +fun box(): String { + val x = ClassTemplate.UNDEFINED + val y = ClassTemplate.BLAH + + if (x.code != 56 || x.nameTemplate != 3 || x.isAddOnAllowed != 1) return "fail 1" + if (y.code != 57 || y.nameTemplate != 4 || y.isAddOnAllowed != 1) return "fail 2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/enum/modifierFlags.kt b/backend.native/tests/external/codegen/box/enum/modifierFlags.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/modifierFlags.kt rename to backend.native/tests/external/codegen/box/enum/modifierFlags.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/noClassForSimpleEnum.kt b/backend.native/tests/external/codegen/box/enum/noClassForSimpleEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/noClassForSimpleEnum.kt rename to backend.native/tests/external/codegen/box/enum/noClassForSimpleEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/objectInEnum.kt b/backend.native/tests/external/codegen/box/enum/objectInEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/objectInEnum.kt rename to backend.native/tests/external/codegen/box/enum/objectInEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/ordinal.kt b/backend.native/tests/external/codegen/box/enum/ordinal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/ordinal.kt rename to backend.native/tests/external/codegen/box/enum/ordinal.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/simple.kt b/backend.native/tests/external/codegen/box/enum/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/simple.kt rename to backend.native/tests/external/codegen/box/enum/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/sortEnumEntries.kt b/backend.native/tests/external/codegen/box/enum/sortEnumEntries.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/sortEnumEntries.kt rename to backend.native/tests/external/codegen/box/enum/sortEnumEntries.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/superCallInEnumLiteral.kt b/backend.native/tests/external/codegen/box/enum/superCallInEnumLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/superCallInEnumLiteral.kt rename to backend.native/tests/external/codegen/box/enum/superCallInEnumLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/toString.kt b/backend.native/tests/external/codegen/box/enum/toString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/toString.kt rename to backend.native/tests/external/codegen/box/enum/toString.kt diff --git a/backend.native/tests/external/codegen/blackbox/enum/valueof.kt b/backend.native/tests/external/codegen/box/enum/valueof.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/enum/valueof.kt rename to backend.native/tests/external/codegen/box/enum/valueof.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/char.kt b/backend.native/tests/external/codegen/box/evaluate/char.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/char.kt rename to backend.native/tests/external/codegen/box/evaluate/char.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/divide.kt b/backend.native/tests/external/codegen/box/evaluate/divide.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/divide.kt rename to backend.native/tests/external/codegen/box/evaluate/divide.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/intrinsics.kt b/backend.native/tests/external/codegen/box/evaluate/intrinsics.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/intrinsics.kt rename to backend.native/tests/external/codegen/box/evaluate/intrinsics.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/kt9443.kt b/backend.native/tests/external/codegen/box/evaluate/kt9443.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/kt9443.kt rename to backend.native/tests/external/codegen/box/evaluate/kt9443.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/maxValue.kt b/backend.native/tests/external/codegen/box/evaluate/maxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/maxValue.kt rename to backend.native/tests/external/codegen/box/evaluate/maxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/maxValueByte.kt b/backend.native/tests/external/codegen/box/evaluate/maxValueByte.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/maxValueByte.kt rename to backend.native/tests/external/codegen/box/evaluate/maxValueByte.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/maxValueInt.kt b/backend.native/tests/external/codegen/box/evaluate/maxValueInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/maxValueInt.kt rename to backend.native/tests/external/codegen/box/evaluate/maxValueInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/minus.kt b/backend.native/tests/external/codegen/box/evaluate/minus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/minus.kt rename to backend.native/tests/external/codegen/box/evaluate/minus.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/mod.kt b/backend.native/tests/external/codegen/box/evaluate/mod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/mod.kt rename to backend.native/tests/external/codegen/box/evaluate/mod.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/multiply.kt b/backend.native/tests/external/codegen/box/evaluate/multiply.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/multiply.kt rename to backend.native/tests/external/codegen/box/evaluate/multiply.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/parenthesized.kt b/backend.native/tests/external/codegen/box/evaluate/parenthesized.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/parenthesized.kt rename to backend.native/tests/external/codegen/box/evaluate/parenthesized.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/plus.kt b/backend.native/tests/external/codegen/box/evaluate/plus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/plus.kt rename to backend.native/tests/external/codegen/box/evaluate/plus.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/simpleCallBinary.kt b/backend.native/tests/external/codegen/box/evaluate/simpleCallBinary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/simpleCallBinary.kt rename to backend.native/tests/external/codegen/box/evaluate/simpleCallBinary.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/unaryMinus.kt b/backend.native/tests/external/codegen/box/evaluate/unaryMinus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/unaryMinus.kt rename to backend.native/tests/external/codegen/box/evaluate/unaryMinus.kt diff --git a/backend.native/tests/external/codegen/blackbox/evaluate/unaryPlus.kt b/backend.native/tests/external/codegen/box/evaluate/unaryPlus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/evaluate/unaryPlus.kt rename to backend.native/tests/external/codegen/box/evaluate/unaryPlus.kt diff --git a/backend.native/tests/external/codegen/blackbox/exclExcl/genericNull.kt b/backend.native/tests/external/codegen/box/exclExcl/genericNull.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/exclExcl/genericNull.kt rename to backend.native/tests/external/codegen/box/exclExcl/genericNull.kt diff --git a/backend.native/tests/external/codegen/blackbox/exclExcl/primitive.kt b/backend.native/tests/external/codegen/box/exclExcl/primitive.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/exclExcl/primitive.kt rename to backend.native/tests/external/codegen/box/exclExcl/primitive.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/executionOrder.kt b/backend.native/tests/external/codegen/box/extensionFunctions/executionOrder.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/executionOrder.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/executionOrder.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1061.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt1061.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1061.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt1061.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1249.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt1249.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1249.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt1249.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1290.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt1290.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1290.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt1290.kt diff --git a/backend.native/tests/external/codegen/box/extensionFunctions/kt13312.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt13312.kt new file mode 100644 index 00000000000..097fa273eb5 --- /dev/null +++ b/backend.native/tests/external/codegen/box/extensionFunctions/kt13312.kt @@ -0,0 +1,23 @@ +fun test1(f: (Int) -> Int) = f(1) + +fun test2(f: Int.() -> Int) = 2.f() + +class A(val foo: Int.() -> Int) + +fun box(): String { + val a: (Int) -> Int = { it } + val b: Int.() -> Int = { this } + + if (test1(a) != 1) return "fail 1a" + if (test1(b) != 1) return "fail 1b" + if (test2(a) != 2) return "fail 2a" + if (test2(b) != 2) return "fail 2b" + + val x = A({ this }) + + if (x.foo(3) != 3) return "fail 3" + if (with(x) { foo(4) } != 4) return "fail 4" + if (with(x) { 5.foo() } != 5) return "fail 5" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1776.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt1776.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1776.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt1776.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1953.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt1953.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1953.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt1953.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1953_class.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt1953_class.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt1953_class.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt1953_class.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3285.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt3285.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3285.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt3285.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3298.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt3298.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3298.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt3298.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3646.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt3646.kt similarity index 60% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3646.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt3646.kt index 119436fa248..c3f758cf9a5 100644 --- a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3646.kt +++ b/backend.native/tests/external/codegen/box/extensionFunctions/kt3646.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun test(cl: Int.() -> Int):Int = 11.cl() class Foo { diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3969.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt3969.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt3969.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt3969.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt4228.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt4228.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt4228.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt4228.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt475.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt475.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt475.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt475.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt5467.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt5467.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt5467.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt5467.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt606.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt606.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt606.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt606.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/kt865.kt b/backend.native/tests/external/codegen/box/extensionFunctions/kt865.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/kt865.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/kt865.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/nested2.kt b/backend.native/tests/external/codegen/box/extensionFunctions/nested2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/nested2.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/nested2.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/shared.kt b/backend.native/tests/external/codegen/box/extensionFunctions/shared.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/shared.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/shared.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/simple.kt b/backend.native/tests/external/codegen/box/extensionFunctions/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/simple.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/thisMethodInObjectLiteral.kt b/backend.native/tests/external/codegen/box/extensionFunctions/thisMethodInObjectLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/thisMethodInObjectLiteral.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/thisMethodInObjectLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/virtual.kt b/backend.native/tests/external/codegen/box/extensionFunctions/virtual.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/virtual.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/virtual.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionFunctions/whenFail.kt b/backend.native/tests/external/codegen/box/extensionFunctions/whenFail.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/extensionFunctions/whenFail.kt rename to backend.native/tests/external/codegen/box/extensionFunctions/whenFail.kt index 2439ddcc2b9..80f001027b1 100644 --- a/backend.native/tests/external/codegen/blackbox/extensionFunctions/whenFail.kt +++ b/backend.native/tests/external/codegen/box/extensionFunctions/whenFail.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun StringBuilder.takeFirst(): Char { if (this.length == 0) return 0.toChar() diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/accessorForPrivateSetter.kt b/backend.native/tests/external/codegen/box/extensionProperties/accessorForPrivateSetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/accessorForPrivateSetter.kt rename to backend.native/tests/external/codegen/box/extensionProperties/accessorForPrivateSetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/genericValForPrimitiveType.kt b/backend.native/tests/external/codegen/box/extensionProperties/genericValForPrimitiveType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/genericValForPrimitiveType.kt rename to backend.native/tests/external/codegen/box/extensionProperties/genericValForPrimitiveType.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/genericValMultipleUpperBounds.kt b/backend.native/tests/external/codegen/box/extensionProperties/genericValMultipleUpperBounds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/genericValMultipleUpperBounds.kt rename to backend.native/tests/external/codegen/box/extensionProperties/genericValMultipleUpperBounds.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/genericVarForPrimitiveType.kt b/backend.native/tests/external/codegen/box/extensionProperties/genericVarForPrimitiveType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/genericVarForPrimitiveType.kt rename to backend.native/tests/external/codegen/box/extensionProperties/genericVarForPrimitiveType.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/inClass.kt b/backend.native/tests/external/codegen/box/extensionProperties/inClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/inClass.kt rename to backend.native/tests/external/codegen/box/extensionProperties/inClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/inClassLongTypeInReceiver.kt b/backend.native/tests/external/codegen/box/extensionProperties/inClassLongTypeInReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/inClassLongTypeInReceiver.kt rename to backend.native/tests/external/codegen/box/extensionProperties/inClassLongTypeInReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithGetter.kt b/backend.native/tests/external/codegen/box/extensionProperties/inClassWithGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithGetter.kt rename to backend.native/tests/external/codegen/box/extensionProperties/inClassWithGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithPrivateGetter.kt b/backend.native/tests/external/codegen/box/extensionProperties/inClassWithPrivateGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithPrivateGetter.kt rename to backend.native/tests/external/codegen/box/extensionProperties/inClassWithPrivateGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithPrivateSetter.kt b/backend.native/tests/external/codegen/box/extensionProperties/inClassWithPrivateSetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithPrivateSetter.kt rename to backend.native/tests/external/codegen/box/extensionProperties/inClassWithPrivateSetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithSetter.kt b/backend.native/tests/external/codegen/box/extensionProperties/inClassWithSetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/inClassWithSetter.kt rename to backend.native/tests/external/codegen/box/extensionProperties/inClassWithSetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/kt9897.kt b/backend.native/tests/external/codegen/box/extensionProperties/kt9897.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/kt9897.kt rename to backend.native/tests/external/codegen/box/extensionProperties/kt9897.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/kt9897_topLevel.kt b/backend.native/tests/external/codegen/box/extensionProperties/kt9897_topLevel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/kt9897_topLevel.kt rename to backend.native/tests/external/codegen/box/extensionProperties/kt9897_topLevel.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/topLevel.kt b/backend.native/tests/external/codegen/box/extensionProperties/topLevel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/topLevel.kt rename to backend.native/tests/external/codegen/box/extensionProperties/topLevel.kt diff --git a/backend.native/tests/external/codegen/blackbox/extensionProperties/topLevelLongTypeInReceiver.kt b/backend.native/tests/external/codegen/box/extensionProperties/topLevelLongTypeInReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/extensionProperties/topLevelLongTypeInReceiver.kt rename to backend.native/tests/external/codegen/box/extensionProperties/topLevelLongTypeInReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/external/jvmStaticExternal.kt b/backend.native/tests/external/codegen/box/external/jvmStaticExternal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/external/jvmStaticExternal.kt rename to backend.native/tests/external/codegen/box/external/jvmStaticExternal.kt diff --git a/backend.native/tests/external/codegen/blackbox/external/jvmStaticExternalPrivate.kt b/backend.native/tests/external/codegen/box/external/jvmStaticExternalPrivate.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/external/jvmStaticExternalPrivate.kt rename to backend.native/tests/external/codegen/box/external/jvmStaticExternalPrivate.kt diff --git a/backend.native/tests/external/codegen/blackbox/external/withDefaultArg.kt b/backend.native/tests/external/codegen/box/external/withDefaultArg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/external/withDefaultArg.kt rename to backend.native/tests/external/codegen/box/external/withDefaultArg.kt diff --git a/backend.native/tests/external/codegen/blackbox/fakeOverride/diamondFunction.kt b/backend.native/tests/external/codegen/box/fakeOverride/diamondFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fakeOverride/diamondFunction.kt rename to backend.native/tests/external/codegen/box/fakeOverride/diamondFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/fakeOverride/function.kt b/backend.native/tests/external/codegen/box/fakeOverride/function.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fakeOverride/function.kt rename to backend.native/tests/external/codegen/box/fakeOverride/function.kt diff --git a/backend.native/tests/external/codegen/blackbox/fakeOverride/propertyGetter.kt b/backend.native/tests/external/codegen/box/fakeOverride/propertyGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fakeOverride/propertyGetter.kt rename to backend.native/tests/external/codegen/box/fakeOverride/propertyGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/fakeOverride/propertySetter.kt b/backend.native/tests/external/codegen/box/fakeOverride/propertySetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fakeOverride/propertySetter.kt rename to backend.native/tests/external/codegen/box/fakeOverride/propertySetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/fieldRename/constructorAndClassObject.kt b/backend.native/tests/external/codegen/box/fieldRename/constructorAndClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fieldRename/constructorAndClassObject.kt rename to backend.native/tests/external/codegen/box/fieldRename/constructorAndClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/fieldRename/delegates.kt b/backend.native/tests/external/codegen/box/fieldRename/delegates.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fieldRename/delegates.kt rename to backend.native/tests/external/codegen/box/fieldRename/delegates.kt diff --git a/backend.native/tests/external/codegen/blackbox/fieldRename/genericPropertyWithItself.kt b/backend.native/tests/external/codegen/box/fieldRename/genericPropertyWithItself.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fieldRename/genericPropertyWithItself.kt rename to backend.native/tests/external/codegen/box/fieldRename/genericPropertyWithItself.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/finallyAndFinally.kt b/backend.native/tests/external/codegen/box/finally/finallyAndFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/finallyAndFinally.kt rename to backend.native/tests/external/codegen/box/finally/finallyAndFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/kt3549.kt b/backend.native/tests/external/codegen/box/finally/kt3549.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/kt3549.kt rename to backend.native/tests/external/codegen/box/finally/kt3549.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/kt3706.kt b/backend.native/tests/external/codegen/box/finally/kt3706.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/kt3706.kt rename to backend.native/tests/external/codegen/box/finally/kt3706.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/kt3867.kt b/backend.native/tests/external/codegen/box/finally/kt3867.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/kt3867.kt rename to backend.native/tests/external/codegen/box/finally/kt3867.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/kt3874.kt b/backend.native/tests/external/codegen/box/finally/kt3874.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/kt3874.kt rename to backend.native/tests/external/codegen/box/finally/kt3874.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/kt3894.kt b/backend.native/tests/external/codegen/box/finally/kt3894.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/kt3894.kt rename to backend.native/tests/external/codegen/box/finally/kt3894.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/kt4134.kt b/backend.native/tests/external/codegen/box/finally/kt4134.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/kt4134.kt rename to backend.native/tests/external/codegen/box/finally/kt4134.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/loopAndFinally.kt b/backend.native/tests/external/codegen/box/finally/loopAndFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/loopAndFinally.kt rename to backend.native/tests/external/codegen/box/finally/loopAndFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/notChainCatch.kt b/backend.native/tests/external/codegen/box/finally/notChainCatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/notChainCatch.kt rename to backend.native/tests/external/codegen/box/finally/notChainCatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/tryFinally.kt b/backend.native/tests/external/codegen/box/finally/tryFinally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/tryFinally.kt rename to backend.native/tests/external/codegen/box/finally/tryFinally.kt diff --git a/backend.native/tests/external/codegen/blackbox/finally/tryLoopTry.kt b/backend.native/tests/external/codegen/box/finally/tryLoopTry.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/finally/tryLoopTry.kt rename to backend.native/tests/external/codegen/box/finally/tryLoopTry.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/charBuffer.kt b/backend.native/tests/external/codegen/box/fullJdk/charBuffer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/charBuffer.kt rename to backend.native/tests/external/codegen/box/fullJdk/charBuffer.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/classpath.kt b/backend.native/tests/external/codegen/box/fullJdk/classpath.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/classpath.kt rename to backend.native/tests/external/codegen/box/fullJdk/classpath.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/ifInWhile.kt b/backend.native/tests/external/codegen/box/fullJdk/ifInWhile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/ifInWhile.kt rename to backend.native/tests/external/codegen/box/fullJdk/ifInWhile.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/intCountDownLatchExtension.kt b/backend.native/tests/external/codegen/box/fullJdk/intCountDownLatchExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/intCountDownLatchExtension.kt rename to backend.native/tests/external/codegen/box/fullJdk/intCountDownLatchExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/kt434.kt b/backend.native/tests/external/codegen/box/fullJdk/kt434.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/kt434.kt rename to backend.native/tests/external/codegen/box/fullJdk/kt434.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/native/nativePropertyAccessors.kt b/backend.native/tests/external/codegen/box/fullJdk/native/nativePropertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/native/nativePropertyAccessors.kt rename to backend.native/tests/external/codegen/box/fullJdk/native/nativePropertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/native/simpleNative.kt b/backend.native/tests/external/codegen/box/fullJdk/native/simpleNative.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/native/simpleNative.kt rename to backend.native/tests/external/codegen/box/fullJdk/native/simpleNative.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/native/topLevel.kt b/backend.native/tests/external/codegen/box/fullJdk/native/topLevel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/native/topLevel.kt rename to backend.native/tests/external/codegen/box/fullJdk/native/topLevel.kt diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/platformTypeAssertionStackTrace.kt b/backend.native/tests/external/codegen/box/fullJdk/platformTypeAssertionStackTrace.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/platformTypeAssertionStackTrace.kt rename to backend.native/tests/external/codegen/box/fullJdk/platformTypeAssertionStackTrace.kt diff --git a/backend.native/tests/external/codegen/box/fullJdk/regressions/kt15112.kt b/backend.native/tests/external/codegen/box/fullJdk/regressions/kt15112.kt new file mode 100644 index 00000000000..cc816864f21 --- /dev/null +++ b/backend.native/tests/external/codegen/box/fullJdk/regressions/kt15112.kt @@ -0,0 +1,29 @@ +// FULL_JDK +// WITH_RUNTIME +// IGNORE_BACKEND: JS, NATIVE + +import java.util.concurrent.locks.ReentrantReadWriteLock +import kotlin.concurrent.read +import kotlin.concurrent.write + +private val evalStateLock = ReentrantReadWriteLock() +private val classLoaderLock = ReentrantReadWriteLock() +val compiledClasses = arrayListOf("") + +fun box(): String = evalStateLock.write { + classLoaderLock.read { + classLoaderLock.write { + "write" + } + + compiledClasses.forEach { + it + } + } + + classLoaderLock.read { + compiledClasses.map { it } + } + + "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/fullJdk/regressions/kt1770.kt b/backend.native/tests/external/codegen/box/fullJdk/regressions/kt1770.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/fullJdk/regressions/kt1770.kt rename to backend.native/tests/external/codegen/box/fullJdk/regressions/kt1770.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/coerceVoidToArray.kt b/backend.native/tests/external/codegen/box/functions/coerceVoidToArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/coerceVoidToArray.kt rename to backend.native/tests/external/codegen/box/functions/coerceVoidToArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/coerceVoidToObject.kt b/backend.native/tests/external/codegen/box/functions/coerceVoidToObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/coerceVoidToObject.kt rename to backend.native/tests/external/codegen/box/functions/coerceVoidToObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/dataLocalVariable.kt b/backend.native/tests/external/codegen/box/functions/dataLocalVariable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/dataLocalVariable.kt rename to backend.native/tests/external/codegen/box/functions/dataLocalVariable.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs.kt b/backend.native/tests/external/codegen/box/functions/defaultargs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs1.kt b/backend.native/tests/external/codegen/box/functions/defaultargs1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs1.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs1.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs2.kt b/backend.native/tests/external/codegen/box/functions/defaultargs2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs2.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs2.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs3.kt b/backend.native/tests/external/codegen/box/functions/defaultargs3.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs3.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs3.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs4.kt b/backend.native/tests/external/codegen/box/functions/defaultargs4.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs4.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs4.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs5.kt b/backend.native/tests/external/codegen/box/functions/defaultargs5.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs5.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs5.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs6.kt b/backend.native/tests/external/codegen/box/functions/defaultargs6.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs6.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs6.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/defaultargs7.kt b/backend.native/tests/external/codegen/box/functions/defaultargs7.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/defaultargs7.kt rename to backend.native/tests/external/codegen/box/functions/defaultargs7.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/ea33909.kt b/backend.native/tests/external/codegen/box/functions/ea33909.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/ea33909.kt rename to backend.native/tests/external/codegen/box/functions/ea33909.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/fakeDescriptorWithSeveralOverridenOne.kt b/backend.native/tests/external/codegen/box/functions/fakeDescriptorWithSeveralOverridenOne.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/fakeDescriptorWithSeveralOverridenOne.kt rename to backend.native/tests/external/codegen/box/functions/fakeDescriptorWithSeveralOverridenOne.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/functionExpression/functionExpression.kt b/backend.native/tests/external/codegen/box/functions/functionExpression/functionExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/functionExpression/functionExpression.kt rename to backend.native/tests/external/codegen/box/functions/functionExpression/functionExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/functionExpression/functionExpressionWithThisReference.kt b/backend.native/tests/external/codegen/box/functions/functionExpression/functionExpressionWithThisReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/functionExpression/functionExpressionWithThisReference.kt rename to backend.native/tests/external/codegen/box/functions/functionExpression/functionExpressionWithThisReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/functionExpression/functionLiteralExpression.kt b/backend.native/tests/external/codegen/box/functions/functionExpression/functionLiteralExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/functionExpression/functionLiteralExpression.kt rename to backend.native/tests/external/codegen/box/functions/functionExpression/functionLiteralExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/functionExpression/underscoreParameters.kt b/backend.native/tests/external/codegen/box/functions/functionExpression/underscoreParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/functionExpression/underscoreParameters.kt rename to backend.native/tests/external/codegen/box/functions/functionExpression/underscoreParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/functionNtoString.kt b/backend.native/tests/external/codegen/box/functions/functionNtoString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/functionNtoString.kt rename to backend.native/tests/external/codegen/box/functions/functionNtoString.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/functionNtoStringGeneric.kt b/backend.native/tests/external/codegen/box/functions/functionNtoStringGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/functionNtoStringGeneric.kt rename to backend.native/tests/external/codegen/box/functions/functionNtoStringGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/functionNtoStringNoReflect.kt b/backend.native/tests/external/codegen/box/functions/functionNtoStringNoReflect.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/functionNtoStringNoReflect.kt rename to backend.native/tests/external/codegen/box/functions/functionNtoStringNoReflect.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/infixRecursiveCall.kt b/backend.native/tests/external/codegen/box/functions/infixRecursiveCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/infixRecursiveCall.kt rename to backend.native/tests/external/codegen/box/functions/infixRecursiveCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/castFunctionToExtension.kt b/backend.native/tests/external/codegen/box/functions/invoke/castFunctionToExtension.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/castFunctionToExtension.kt rename to backend.native/tests/external/codegen/box/functions/invoke/castFunctionToExtension.kt index 34e0860840b..cb638d7b24f 100644 --- a/backend.native/tests/external/codegen/blackbox/functions/invoke/castFunctionToExtension.kt +++ b/backend.native/tests/external/codegen/box/functions/invoke/castFunctionToExtension.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { val f = fun (s: String): String = s val g = f as String.() -> String diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/extensionInvokeOnExpr.kt b/backend.native/tests/external/codegen/box/functions/invoke/extensionInvokeOnExpr.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/extensionInvokeOnExpr.kt rename to backend.native/tests/external/codegen/box/functions/invoke/extensionInvokeOnExpr.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/implicitInvokeInCompanionObjectWithFunctionalArgument.kt b/backend.native/tests/external/codegen/box/functions/invoke/implicitInvokeInCompanionObjectWithFunctionalArgument.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/implicitInvokeInCompanionObjectWithFunctionalArgument.kt rename to backend.native/tests/external/codegen/box/functions/invoke/implicitInvokeInCompanionObjectWithFunctionalArgument.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/implicitInvokeWithFunctionLiteralArgument.kt b/backend.native/tests/external/codegen/box/functions/invoke/implicitInvokeWithFunctionLiteralArgument.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/implicitInvokeWithFunctionLiteralArgument.kt rename to backend.native/tests/external/codegen/box/functions/invoke/implicitInvokeWithFunctionLiteralArgument.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/invoke.kt b/backend.native/tests/external/codegen/box/functions/invoke/invoke.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/invoke.kt rename to backend.native/tests/external/codegen/box/functions/invoke/invoke.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/invokeOnExprByConvention.kt b/backend.native/tests/external/codegen/box/functions/invoke/invokeOnExprByConvention.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/invokeOnExprByConvention.kt rename to backend.native/tests/external/codegen/box/functions/invoke/invokeOnExprByConvention.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/invokeOnSyntheticProperty.kt b/backend.native/tests/external/codegen/box/functions/invoke/invokeOnSyntheticProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/invokeOnSyntheticProperty.kt rename to backend.native/tests/external/codegen/box/functions/invoke/invokeOnSyntheticProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3189.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3189.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3189.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3189.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3190.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3190.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3190.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3190.kt index 5932544102d..e5191fff338 100644 --- a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3190.kt +++ b/backend.native/tests/external/codegen/box/functions/invoke/kt3190.kt @@ -1,5 +1,5 @@ //KT-3190 Compiler crash if function called 'invoke' calls a closure -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // JS backend does not allow to implement Function{N} interfaces fun box(): String { diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3297.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3297.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3297.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3297.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3450getAndInvoke.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3450getAndInvoke.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3450getAndInvoke.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3450getAndInvoke.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3631invokeOnString.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3631invokeOnString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3631invokeOnString.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3631invokeOnString.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3772.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3772.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3772.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3772.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3821invokeOnThis.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3821invokeOnThis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3821invokeOnThis.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3821invokeOnThis.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3822invokeOnThis.kt b/backend.native/tests/external/codegen/box/functions/invoke/kt3822invokeOnThis.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/functions/invoke/kt3822invokeOnThis.kt rename to backend.native/tests/external/codegen/box/functions/invoke/kt3822invokeOnThis.kt index 531f9f79450..7d8bb7ef55c 100644 --- a/backend.native/tests/external/codegen/blackbox/functions/invoke/kt3822invokeOnThis.kt +++ b/backend.native/tests/external/codegen/box/functions/invoke/kt3822invokeOnThis.kt @@ -1,5 +1,5 @@ //KT-3822 Compiler crashes when use invoke convention with `this` in class which extends Function0 -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // JS backend does not allow to implement Function{N} interfaces class B() : Function0 { diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt1038.kt b/backend.native/tests/external/codegen/box/functions/kt1038.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt1038.kt rename to backend.native/tests/external/codegen/box/functions/kt1038.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt1199.kt b/backend.native/tests/external/codegen/box/functions/kt1199.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt1199.kt rename to backend.native/tests/external/codegen/box/functions/kt1199.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt1413.kt b/backend.native/tests/external/codegen/box/functions/kt1413.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt1413.kt rename to backend.native/tests/external/codegen/box/functions/kt1413.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt1649_1.kt b/backend.native/tests/external/codegen/box/functions/kt1649_1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt1649_1.kt rename to backend.native/tests/external/codegen/box/functions/kt1649_1.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt1649_2.kt b/backend.native/tests/external/codegen/box/functions/kt1649_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt1649_2.kt rename to backend.native/tests/external/codegen/box/functions/kt1649_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt1739.kt b/backend.native/tests/external/codegen/box/functions/kt1739.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt1739.kt rename to backend.native/tests/external/codegen/box/functions/kt1739.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt2270.kt b/backend.native/tests/external/codegen/box/functions/kt2270.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt2270.kt rename to backend.native/tests/external/codegen/box/functions/kt2270.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt2271.kt b/backend.native/tests/external/codegen/box/functions/kt2271.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt2271.kt rename to backend.native/tests/external/codegen/box/functions/kt2271.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt2280.kt b/backend.native/tests/external/codegen/box/functions/kt2280.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt2280.kt rename to backend.native/tests/external/codegen/box/functions/kt2280.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt2481.kt b/backend.native/tests/external/codegen/box/functions/kt2481.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt2481.kt rename to backend.native/tests/external/codegen/box/functions/kt2481.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt2716.kt b/backend.native/tests/external/codegen/box/functions/kt2716.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt2716.kt rename to backend.native/tests/external/codegen/box/functions/kt2716.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt2739.kt b/backend.native/tests/external/codegen/box/functions/kt2739.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt2739.kt rename to backend.native/tests/external/codegen/box/functions/kt2739.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt2929.kt b/backend.native/tests/external/codegen/box/functions/kt2929.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt2929.kt rename to backend.native/tests/external/codegen/box/functions/kt2929.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt3214.kt b/backend.native/tests/external/codegen/box/functions/kt3214.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt3214.kt rename to backend.native/tests/external/codegen/box/functions/kt3214.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt3313.kt b/backend.native/tests/external/codegen/box/functions/kt3313.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt3313.kt rename to backend.native/tests/external/codegen/box/functions/kt3313.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt3573.kt b/backend.native/tests/external/codegen/box/functions/kt3573.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt3573.kt rename to backend.native/tests/external/codegen/box/functions/kt3573.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt3724.kt b/backend.native/tests/external/codegen/box/functions/kt3724.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt3724.kt rename to backend.native/tests/external/codegen/box/functions/kt3724.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt395.kt b/backend.native/tests/external/codegen/box/functions/kt395.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt395.kt rename to backend.native/tests/external/codegen/box/functions/kt395.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt785.kt b/backend.native/tests/external/codegen/box/functions/kt785.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt785.kt rename to backend.native/tests/external/codegen/box/functions/kt785.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/kt873.kt b/backend.native/tests/external/codegen/box/functions/kt873.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/kt873.kt rename to backend.native/tests/external/codegen/box/functions/kt873.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunction.kt b/backend.native/tests/external/codegen/box/functions/localFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunction.kt rename to backend.native/tests/external/codegen/box/functions/localFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/callInlineLocalInLambda.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/callInlineLocalInLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/callInlineLocalInLambda.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/callInlineLocalInLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/definedWithinLambda.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/definedWithinLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/definedWithinLambda.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/definedWithinLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/definedWithinLambdaInnerUsage1.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/definedWithinLambdaInnerUsage1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/definedWithinLambdaInnerUsage1.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/definedWithinLambdaInnerUsage1.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/definedWithinLambdaInnerUsage2.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/definedWithinLambdaInnerUsage2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/definedWithinLambdaInnerUsage2.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/definedWithinLambdaInnerUsage2.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt2895.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt2895.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt2895.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt2895.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt3308.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt3308.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt3308.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt3308.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt3978.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt3978.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt3978.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt3978.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4119.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4119.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4119.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt4119.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4119_2.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4119_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4119_2.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt4119_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4514.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4514.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4514.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt4514.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4777.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4777.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4777.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt4777.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4783.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4783.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4783.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt4783.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4784.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4784.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4784.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt4784.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4989.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4989.kt similarity index 87% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4989.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/kt4989.kt index 87767469738..e4cee2aa56f 100644 --- a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/kt4989.kt +++ b/backend.native/tests/external/codegen/box/functions/localFunctions/kt4989.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - class It(val id: String) fun box(): String { diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/localExtensionOnNullableParameter.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/localExtensionOnNullableParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/localExtensionOnNullableParameter.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/localExtensionOnNullableParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localFunctions/localFunctionInConstructor.kt b/backend.native/tests/external/codegen/box/functions/localFunctions/localFunctionInConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localFunctions/localFunctionInConstructor.kt rename to backend.native/tests/external/codegen/box/functions/localFunctions/localFunctionInConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/localReturnInsideFunctionExpression.kt b/backend.native/tests/external/codegen/box/functions/localReturnInsideFunctionExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/localReturnInsideFunctionExpression.kt rename to backend.native/tests/external/codegen/box/functions/localReturnInsideFunctionExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/nothisnoclosure.kt b/backend.native/tests/external/codegen/box/functions/nothisnoclosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/nothisnoclosure.kt rename to backend.native/tests/external/codegen/box/functions/nothisnoclosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/prefixRecursiveCall.kt b/backend.native/tests/external/codegen/box/functions/prefixRecursiveCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/prefixRecursiveCall.kt rename to backend.native/tests/external/codegen/box/functions/prefixRecursiveCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/recursiveCompareTo.kt b/backend.native/tests/external/codegen/box/functions/recursiveCompareTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/recursiveCompareTo.kt rename to backend.native/tests/external/codegen/box/functions/recursiveCompareTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/functions/recursiveIncrementCall.kt b/backend.native/tests/external/codegen/box/functions/recursiveIncrementCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/functions/recursiveIncrementCall.kt rename to backend.native/tests/external/codegen/box/functions/recursiveIncrementCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/hashPMap/empty.kt b/backend.native/tests/external/codegen/box/hashPMap/empty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/hashPMap/empty.kt rename to backend.native/tests/external/codegen/box/hashPMap/empty.kt diff --git a/backend.native/tests/external/codegen/blackbox/hashPMap/manyNumbers.kt b/backend.native/tests/external/codegen/box/hashPMap/manyNumbers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/hashPMap/manyNumbers.kt rename to backend.native/tests/external/codegen/box/hashPMap/manyNumbers.kt diff --git a/backend.native/tests/external/codegen/blackbox/hashPMap/rewriteWithDifferent.kt b/backend.native/tests/external/codegen/box/hashPMap/rewriteWithDifferent.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/hashPMap/rewriteWithDifferent.kt rename to backend.native/tests/external/codegen/box/hashPMap/rewriteWithDifferent.kt diff --git a/backend.native/tests/external/codegen/blackbox/hashPMap/rewriteWithEqual.kt b/backend.native/tests/external/codegen/box/hashPMap/rewriteWithEqual.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/hashPMap/rewriteWithEqual.kt rename to backend.native/tests/external/codegen/box/hashPMap/rewriteWithEqual.kt diff --git a/backend.native/tests/external/codegen/blackbox/hashPMap/simplePlusGet.kt b/backend.native/tests/external/codegen/box/hashPMap/simplePlusGet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/hashPMap/simplePlusGet.kt rename to backend.native/tests/external/codegen/box/hashPMap/simplePlusGet.kt diff --git a/backend.native/tests/external/codegen/blackbox/hashPMap/simplePlusMinus.kt b/backend.native/tests/external/codegen/box/hashPMap/simplePlusMinus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/hashPMap/simplePlusMinus.kt rename to backend.native/tests/external/codegen/box/hashPMap/simplePlusMinus.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/anyToReal.kt b/backend.native/tests/external/codegen/box/ieee754/anyToReal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/anyToReal.kt rename to backend.native/tests/external/codegen/box/ieee754/anyToReal.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/comparableTypeCast.kt b/backend.native/tests/external/codegen/box/ieee754/comparableTypeCast.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/ieee754/comparableTypeCast.kt rename to backend.native/tests/external/codegen/box/ieee754/comparableTypeCast.kt index 4f941c7fcb6..a4298207118 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/comparableTypeCast.kt +++ b/backend.native/tests/external/codegen/box/ieee754/comparableTypeCast.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { if ((-0.0 as Comparable) >= 0.0) return "fail 0" if ((-0.0F as Comparable) >= 0.0F) return "fail 1" diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/dataClass.kt b/backend.native/tests/external/codegen/box/ieee754/dataClass.kt similarity index 86% rename from backend.native/tests/external/codegen/blackbox/ieee754/dataClass.kt rename to backend.native/tests/external/codegen/box/ieee754/dataClass.kt index d4b647a1522..8f05b07f453 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/dataClass.kt +++ b/backend.native/tests/external/codegen/box/ieee754/dataClass.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS, NATIVE data class Test(val z1: Double, val z2: Double?) fun box(): String { diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/equalsDouble.kt b/backend.native/tests/external/codegen/box/ieee754/equalsDouble.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/equalsDouble.kt rename to backend.native/tests/external/codegen/box/ieee754/equalsDouble.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/equalsFloat.kt b/backend.native/tests/external/codegen/box/ieee754/equalsFloat.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/equalsFloat.kt rename to backend.native/tests/external/codegen/box/ieee754/equalsFloat.kt diff --git a/backend.native/tests/external/codegen/box/ieee754/equalsNaN.kt b/backend.native/tests/external/codegen/box/ieee754/equalsNaN.kt new file mode 100644 index 00000000000..3a396bd432d --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/equalsNaN.kt @@ -0,0 +1,223 @@ +// WITH_RUNTIME + +import kotlin.test.* + +object O { + var equalsCalled: Boolean = false + get(): Boolean { + val result = field + field = false + return result + } + set(v: Boolean) { + field = v + } + + override fun equals(a: Any?): Boolean { + equalsCalled = true + return true + } +} + +val A: Any = O + +fun testDouble(d: Double, v: T, vararg va: T) { + assertFalse(d == d, "Double: d != d") + assertFalse(d == v, "Double: d != v") + assertFalse(d == va[0], "Double: d != va[0]") + assertFalse(v == d, "Double: v != d") + assertFalse(v == v, "Double: v != v") + assertFalse(v == va[0], "Double: v != va[0]") + assertFalse(va[0] == d, "Double: va[0] != d") + assertFalse(va[0] == v, "Double: va[0] != v") + assertFalse(va[0] == va[0], "Double: va[0] != va[0]") + + assertTrue(d != d, "Double: d == d") + assertTrue(d != v, "Double: d == v") + assertTrue(d != va[0], "Double: d == va[0]") + assertTrue(v != d, "Double: v == d") + assertTrue(v != v, "Double: v == v") + assertTrue(v != va[0], "Double: v == va[0]") + assertTrue(va[0] != d, "Double: va[0] == d") + assertTrue(va[0] != v, "Double: va[0] == v") + assertTrue(va[0] != va[0], "Double: va[0] == va[0]") +} + +fun testFloat(d: Float, v: T, vararg va: T) { + assertFalse(d == d, "Float: d != d") + assertFalse(d == v, "Float: d != v") + assertFalse(d == va[0], "Float: d != va[0]") + assertFalse(v == d, "Float: v != d") + assertFalse(v == v, "Float: v != v") + assertFalse(v == va[0], "Float: v != va[0]") + assertFalse(va[0] == d, "Float: va[0] != d") + assertFalse(va[0] == v, "Float: va[0] != v") + assertFalse(va[0] == va[0], "Float: va[0] != va[0]") + + assertTrue(d != d, "Float: d == d") + assertTrue(d != v, "Float: d == v") + assertTrue(d != va[0], "Float: d == va[0]") + assertTrue(v != d, "Float: v == d") + assertTrue(v != v, "Float: v == v") + assertTrue(v != va[0], "Float: v == va[0]") + assertTrue(va[0] != d, "Float: va[0] == d") + assertTrue(va[0] != v, "Float: va[0] == v") + assertTrue(va[0] != va[0], "Float: va[0] == va[0]") +} + +var gdn: Any = Double.NaN +var gfn: Any = Float.NaN + +fun box(): String { + + // Double + + val dn = Double.NaN + val adn: Any = dn + val dnq: Double? = dn + val adnq: Any? = dn + + assertFalse(dn == dn, "Double: NaN == NaN") + assertTrue(dn == adn, "Double: NaN != (Any)NaN") + assertTrue(adn == dn, "Double: (Any)NaN != NaN") + assertTrue(adn == adn, "Double: (Any)NaN != (Any)NaN") + + assertFalse(dn == dnq, "Double: NaN == NaN?") + assertTrue(dn == adnq, "Double: NaN != (Any?)NaN") + assertTrue(adn == dnq, "Double: (Any)NaN != NaN?") + assertTrue(adn == adnq, "Double: (Any)NaN != (Any?)NaN") + + assertFalse(dnq == dn, "Double: NaN? == NaN") + assertTrue(dnq == adn, "Double: NaN? != (Any)NaN") + assertTrue(adnq == dn, "Double: (Any?)NaN != NaN") + assertTrue(adnq == adn, "Double: (Any?)NaN != (Any)NaN") + + assertFalse(dnq == dnq, "Double: NaN? == NaN?") + assertTrue(dnq == adnq, "Double: NaN? != (Any?)NaN") + assertTrue(adnq == dnq, "Double: (Any?)NaN != NaN?") + assertTrue(adnq == adnq, "Double: (Any?)NaN != (Any?)NaN") + + assertTrue(dn != dn, "Double: NaN == NaN") + assertFalse(dn != adn, "Double: NaN != (Any)NaN") + assertFalse(adn != dn, "Double: (Any)NaN != NaN") + assertFalse(adn != adn, "Double: (Any)NaN != (Any)NaN") + + assertTrue(dn != dnq, "Double: NaN == NaN?") + assertFalse(dn != adnq, "Double: NaN != (Any?)NaN") + assertFalse(adn != dnq, "Double: (Any)NaN != NaN?") + assertFalse(adn != adnq, "Double: (Any)NaN != (Any?)NaN") + + assertTrue(dnq != dn, "Double: NaN? == NaN") + assertFalse(dnq != adn, "Double: NaN? != (Any)NaN") + assertFalse(adnq != dn, "Double: (Any?)NaN != NaN") + assertFalse(adnq != adn, "Double: (Any?)NaN != (Any)NaN") + + assertTrue(dnq != dnq, "Double: NaN? == NaN?") + assertFalse(dnq != adnq, "Double: NaN? != (Any?)NaN") + assertFalse(adnq != dnq, "Double: (Any?)NaN != NaN?") + assertFalse(adnq != adnq, "Double: (Any?)NaN != (Any?)NaN") + + // Stable smart-casts + if (adn is Double) { + assertFalse(adn == adn, "Double smart-cast: NaN == NaN") + assertTrue(adn != adn, "Double smart-cast: NaN == NaN") + } + if (adnq is Double?) { + assertFalse(adnq == adnq, "Double? smart-cast: NaN? == NaN?") + assertTrue(adnq != adnq, "Double? smart-cast: NaN? == NaN?") + } + // Unstable smart-casts + if (gdn is Double) { + assertTrue(gdn == gdn, "Unstable Double smart-cast: NaN != NaN") + assertFalse(gdn != gdn, "Unstable Double smart-cast: NaN != NaN") + } + if (gdn is Double?) { + assertTrue(gdn == gdn, "Unstable Double smart-cast: NaN != NaN") + assertFalse(gdn != gdn, "Unstable Double smart-cast: NaN != NaN") + } + + // Explicit .equals + assertTrue(A == dn && O.equalsCalled, "A.equals not called for A == dn") + assertTrue(dn != A && !O.equalsCalled, "A.equals called for dn == A") + assertFalse(A != dn || !O.equalsCalled, "A.equals not called for A != dn") + assertFalse(dn == A || O.equalsCalled, "A.equals called for dn != A") + + // Generics and varags + testDouble(Double.NaN, Double.NaN, Double.NaN) + + // Float + + val fn = Float.NaN + val afn: Any = fn + val fnq: Float? = fn + val afnq: Any? = fn + + assertFalse(fn == fn, "Float: NaN == NaN") + assertTrue(fn == afn, "Float: NaN != (Any)NaN") + assertTrue(afn == fn, "Float: (Any)NaN != NaN") + assertTrue(afn == afn, "Float: (Any)NaN != (Any)NaN") + + assertFalse(fn == fnq, "Float: NaN == NaN?") + assertTrue(fn == afnq, "Float: NaN != (Any?)NaN") + assertTrue(afn == fnq, "Float: (Any)NaN != NaN?") + assertTrue(afn == afnq, "Float: (Any)NaN != (Any?)NaN") + + assertFalse(fnq == fn, "Float: NaN? == NaN") + assertTrue(fnq == afn, "Float: NaN? != (Any)NaN") + assertTrue(afnq == fn, "Float: (Any?)NaN != NaN") + assertTrue(afnq == afn, "Float: (Any?)NaN != (Any)NaN") + + assertFalse(fnq == fnq, "Float: NaN? == NaN?") + assertTrue(fnq == afnq, "Float: NaN? != (Any?)NaN") + assertTrue(afnq == fnq, "Float: (Any?)NaN != NaN?") + assertTrue(afnq == afnq, "Float: (Any?)NaN != (Any?)NaN") + + assertTrue(fn != fn, "Float: NaN == NaN") + assertFalse(fn != afn, "Float: NaN != (Any)NaN") + assertFalse(afn != fn, "Float: (Any)NaN != NaN") + assertFalse(afn != afn, "Float: (Any)NaN != (Any)NaN") + + assertTrue(fn != fnq, "Float: NaN == NaN?") + assertFalse(fn != afnq, "Float: NaN != (Any?)NaN") + assertFalse(afn != fnq, "Float: (Any)NaN != NaN?") + assertFalse(afn != afnq, "Float: (Any)NaN != (Any?)NaN") + + assertTrue(fnq != fn, "Float: NaN? == NaN") + assertFalse(fnq != afn, "Float: NaN? != (Any)NaN") + assertFalse(afnq != fn, "Float: (Any?)NaN != NaN") + assertFalse(afnq != afn, "Float: (Any?)NaN != (Any)NaN") + + assertTrue(fnq != fnq, "Float: NaN? == NaN?") + assertFalse(fnq != afnq, "Float: NaN? != (Any?)NaN") + assertFalse(afnq != fnq, "Float: (Any?)NaN != NaN?") + assertFalse(afnq != afnq, "Float: (Any?)NaN != (Any?)NaN") + + // Stable smart-casts + if (afn is Float) { + assertFalse(afn == afn, "Float smart-cast: NaN == NaN") + assertTrue(afn != afn, "Float smart-cast: NaN == NaN") + } + if (afnq is Float?) { + assertFalse(afnq == afnq, "Float? smart-cast: NaN? == NaN?") + assertTrue(afnq != afnq, "Float? smart-cast: NaN? == NaN?") + } + // Unstable smart-casts + if (gfn is Float) { + assertTrue(gfn == gfn, "Unstable Float smart-cast: NaN != NaN") + assertFalse(gfn != gfn, "Unstable Float smart-cast: NaN != NaN") + } + if (gfn is Float?) { + assertTrue(gfn == gfn, "Unstable Float smart-cast: NaN != NaN") + assertFalse(gfn != gfn, "Unstable Float smart-cast: NaN != NaN") + } + + assertTrue(A == fn && O.equalsCalled, "A.equals not called for A == fn") + assertTrue(fn != A && !O.equalsCalled, "A.equals called for fn == A") + assertFalse(A != fn || !O.equalsCalled, "A.equals not called for A != fn") + assertFalse(fn == A || O.equalsCalled, "A.equals called for fn != A") + + // Generics and varags + testFloat(Float.NaN, Float.NaN, Float.NaN) + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/equalsNullableDouble.kt b/backend.native/tests/external/codegen/box/ieee754/equalsNullableDouble.kt similarity index 87% rename from backend.native/tests/external/codegen/blackbox/ieee754/equalsNullableDouble.kt rename to backend.native/tests/external/codegen/box/ieee754/equalsNullableDouble.kt index 229629cb1e5..f6e04610024 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/equalsNullableDouble.kt +++ b/backend.native/tests/external/codegen/box/ieee754/equalsNullableDouble.kt @@ -23,7 +23,11 @@ fun box(): String { if (!equals5(-0.0, 0.0)) return "fail 5" if (!equals6(-0.0, 0.0)) return "fail 6" if (!equals7(-0.0, 0.0)) return "fail 7" + if (!equals8(-0.0, 0.0)) return "fail 8" + if (!equals8(null, null)) return "fail 9" + if (equals8(null, 0.0)) return "fail 10" + if (equals8(0.0, null)) return "fail 11" return "OK" } diff --git a/backend.native/tests/external/codegen/box/ieee754/equalsNullableFloat.kt b/backend.native/tests/external/codegen/box/ieee754/equalsNullableFloat.kt new file mode 100644 index 00000000000..3ab6193b186 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/equalsNullableFloat.kt @@ -0,0 +1,34 @@ +fun equals1(a: Float, b: Float?) = a == b + +fun equals2(a: Float?, b: Float?) = a!! == b!! + +fun equals3(a: Float?, b: Float?) = a != null && a == b + +fun equals4(a: Float?, b: Float?) = if (a is Float) a == b else null!! + +fun equals5(a: Any?, b: Any?) = if (a is Float && b is Float?) a == b else null!! + +fun equals6(a: Any?, b: Any?) = if (a is Float? && b is Float) a == b else null!! + +fun equals7(a: Float?, b: Float?) = a == b + +fun equals8(a: Any?, b: Any?) = if (a is Float? && b is Float?) a == b else null!! + + +fun box(): String { + if (!equals1(-0.0F, 0.0F)) return "fail 1" + if (!equals2(-0.0F, 0.0F)) return "fail 2" + if (!equals3(-0.0F, 0.0F)) return "fail 3" + if (!equals4(-0.0F, 0.0F)) return "fail 4" + if (!equals5(-0.0F, 0.0F)) return "fail 5" + if (!equals6(-0.0F, 0.0F)) return "fail 6" + if (!equals7(-0.0F, 0.0F)) return "fail 7" + + if (!equals8(-0.0F, 0.0F)) return "fail 8" + if (!equals8(null, null)) return "fail 9" + if (equals8(null, 0.0F)) return "fail 10" + if (equals8(0.0F, null)) return "fail 11" + + return "OK" +} + diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/explicitCompareCall.kt b/backend.native/tests/external/codegen/box/ieee754/explicitCompareCall.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/ieee754/explicitCompareCall.kt rename to backend.native/tests/external/codegen/box/ieee754/explicitCompareCall.kt index cfb9877257a..40409e20e4c 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/explicitCompareCall.kt +++ b/backend.native/tests/external/codegen/box/ieee754/explicitCompareCall.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun less1(a: Double, b: Double) = a.compareTo(b) == -1 fun less2(a: Double?, b: Double?) = a!!.compareTo(b!!) == -1 diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/explicitEqualsCall.kt b/backend.native/tests/external/codegen/box/ieee754/explicitEqualsCall.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/ieee754/explicitEqualsCall.kt rename to backend.native/tests/external/codegen/box/ieee754/explicitEqualsCall.kt index d9003f38af2..4a6f495d576 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/explicitEqualsCall.kt +++ b/backend.native/tests/external/codegen/box/ieee754/explicitEqualsCall.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun equals1(a: Double, b: Double) = a.equals(b) diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/generic.kt b/backend.native/tests/external/codegen/box/ieee754/generic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/generic.kt rename to backend.native/tests/external/codegen/box/ieee754/generic.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/greaterDouble.kt b/backend.native/tests/external/codegen/box/ieee754/greaterDouble.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/greaterDouble.kt rename to backend.native/tests/external/codegen/box/ieee754/greaterDouble.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/greaterFloat.kt b/backend.native/tests/external/codegen/box/ieee754/greaterFloat.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/greaterFloat.kt rename to backend.native/tests/external/codegen/box/ieee754/greaterFloat.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/inline.kt b/backend.native/tests/external/codegen/box/ieee754/inline.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/ieee754/inline.kt rename to backend.native/tests/external/codegen/box/ieee754/inline.kt index 8238f6242ac..58a844412bc 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/inline.kt +++ b/backend.native/tests/external/codegen/box/ieee754/inline.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS inline fun less(a: Comparable, b: Double): Boolean { return a < b diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/lessDouble.kt b/backend.native/tests/external/codegen/box/ieee754/lessDouble.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/lessDouble.kt rename to backend.native/tests/external/codegen/box/ieee754/lessDouble.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/lessFloat.kt b/backend.native/tests/external/codegen/box/ieee754/lessFloat.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/lessFloat.kt rename to backend.native/tests/external/codegen/box/ieee754/lessFloat.kt diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/nullableAnyToReal.kt b/backend.native/tests/external/codegen/box/ieee754/nullableAnyToReal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/nullableAnyToReal.kt rename to backend.native/tests/external/codegen/box/ieee754/nullableAnyToReal.kt diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals.kt b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals.kt new file mode 100644 index 00000000000..b9423f1135c --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals.kt @@ -0,0 +1,25 @@ +fun myEquals(a: Double?, b: Double?) = a == b + +fun myEquals1(a: Double?, b: Double) = a == b + +fun myEquals2(a: Double, b: Double?) = a == b + +fun myEquals0(a: Double, b: Double) = a == b + + +fun box(): String { + if (!myEquals(null, null)) return "fail 1" + if (myEquals(null, 0.0)) return "fail 2" + if (myEquals(0.0, null)) return "fail 3" + if (!myEquals(0.0, 0.0)) return "fail 4" + + if (myEquals1(null, 0.0)) return "fail 5" + if (!myEquals1(0.0, 0.0)) return "fail 6" + + if (myEquals2(0.0, null)) return "fail 7" + if (!myEquals2(0.0, 0.0)) return "fail 8" + + if (!myEquals0(0.0, 0.0)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals10.kt b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals10.kt new file mode 100644 index 00000000000..aec2421eaa9 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleEquals10.kt @@ -0,0 +1,26 @@ +// LANGUAGE_VERSION: 1.0 +fun myEquals(a: Double?, b: Double?) = a == b + +fun myEquals1(a: Double?, b: Double) = a == b + +fun myEquals2(a: Double, b: Double?) = a == b + +fun myEquals0(a: Double, b: Double) = a == b + + +fun box(): String { + if (!myEquals(null, null)) return "fail 1" + if (myEquals(null, 0.0)) return "fail 2" + if (myEquals(0.0, null)) return "fail 3" + if (!myEquals(0.0, 0.0)) return "fail 4" + + if (myEquals1(null, 0.0)) return "fail 5" + if (!myEquals1(0.0, 0.0)) return "fail 6" + + if (myEquals2(0.0, null)) return "fail 7" + if (!myEquals2(0.0, 0.0)) return "fail 8" + + if (!myEquals0(0.0, 0.0)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals.kt b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals.kt new file mode 100644 index 00000000000..c10a2097d37 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals.kt @@ -0,0 +1,25 @@ +fun myNotEquals(a: Double?, b: Double?) = a != b + +fun myNotEquals1(a: Double?, b: Double) = a != b + +fun myNotEquals2(a: Double, b: Double?) = a != b + +fun myNotEquals0(a: Double, b: Double) = a != b + + +fun box(): String { + if (myNotEquals(null, null)) return "fail 1" + if (!myNotEquals(null, 0.0)) return "fail 2" + if (!myNotEquals(0.0, null)) return "fail 3" + if (myNotEquals(0.0, 0.0)) return "fail 4" + + if (!myNotEquals1(null, 0.0)) return "fail 5" + if (myNotEquals1(0.0, 0.0)) return "fail 6" + + if (!myNotEquals2(0.0, null)) return "fail 7" + if (myNotEquals2(0.0, 0.0)) return "fail 8" + + if (myNotEquals0(0.0, 0.0)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals10.kt b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals10.kt new file mode 100644 index 00000000000..7ec29384f5a --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableDoubleNotEquals10.kt @@ -0,0 +1,26 @@ +// LANGUAGE_VERSION: 1.0 +fun myNotEquals(a: Double?, b: Double?) = a != b + +fun myNotEquals1(a: Double?, b: Double) = a != b + +fun myNotEquals2(a: Double, b: Double?) = a != b + +fun myNotEquals0(a: Double, b: Double) = a != b + + +fun box(): String { + if (myNotEquals(null, null)) return "fail 1" + if (!myNotEquals(null, 0.0)) return "fail 2" + if (!myNotEquals(0.0, null)) return "fail 3" + if (myNotEquals(0.0, 0.0)) return "fail 4" + + if (!myNotEquals1(null, 0.0)) return "fail 5" + if (myNotEquals1(0.0, 0.0)) return "fail 6" + + if (!myNotEquals2(0.0, null)) return "fail 7" + if (myNotEquals2(0.0, 0.0)) return "fail 8" + + if (myNotEquals0(0.0, 0.0)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals.kt b/backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals.kt new file mode 100644 index 00000000000..1b18e826ea7 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals.kt @@ -0,0 +1,25 @@ +fun myEquals(a: Float?, b: Float?) = a == b + +fun myEquals1(a: Float?, b: Float) = a == b + +fun myEquals2(a: Float, b: Float?) = a == b + +fun myEquals0(a: Float, b: Float) = a == b + + +fun box(): String { + if (!myEquals(null, null)) return "fail 1" + if (myEquals(null, 0.0F)) return "fail 2" + if (myEquals(0.0F, null)) return "fail 3" + if (!myEquals(0.0F, 0.0F)) return "fail 4" + + if (myEquals1(null, 0.0F)) return "fail 5" + if (!myEquals1(0.0F, 0.0F)) return "fail 6" + + if (myEquals2(0.0F, null)) return "fail 7" + if (!myEquals2(0.0F, 0.0F)) return "fail 8" + + if (!myEquals0(0.0F, 0.0F)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals10.kt b/backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals10.kt new file mode 100644 index 00000000000..b6899058120 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableFloatEquals10.kt @@ -0,0 +1,26 @@ +// LANGUAGE_VERSION: 1.0 +fun myEquals(a: Float?, b: Float?) = a == b + +fun myEquals1(a: Float?, b: Float) = a == b + +fun myEquals2(a: Float, b: Float?) = a == b + +fun myEquals0(a: Float, b: Float) = a == b + + +fun box(): String { + if (!myEquals(null, null)) return "fail 1" + if (myEquals(null, 0.0F)) return "fail 2" + if (myEquals(0.0F, null)) return "fail 3" + if (!myEquals(0.0F, 0.0F)) return "fail 4" + + if (myEquals1(null, 0.0F)) return "fail 5" + if (!myEquals1(0.0F, 0.0F)) return "fail 6" + + if (myEquals2(0.0F, null)) return "fail 7" + if (!myEquals2(0.0F, 0.0F)) return "fail 8" + + if (!myEquals0(0.0F, 0.0F)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals.kt b/backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals.kt new file mode 100644 index 00000000000..2add42c33d8 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals.kt @@ -0,0 +1,25 @@ +fun myNotEquals(a: Float?, b: Float?) = a != b + +fun myNotEquals1(a: Float?, b: Float) = a != b + +fun myNotEquals2(a: Float, b: Float?) = a != b + +fun myNotEquals0(a: Float, b: Float) = a != b + + +fun box(): String { + if (myNotEquals(null, null)) return "fail 1" + if (!myNotEquals(null, 0.0F)) return "fail 2" + if (!myNotEquals(0.0F, null)) return "fail 3" + if (myNotEquals(0.0F, 0.0F)) return "fail 4" + + if (!myNotEquals1(null, 0.0F)) return "fail 5" + if (myNotEquals1(0.0F, 0.0F)) return "fail 6" + + if (!myNotEquals2(0.0F, null)) return "fail 7" + if (myNotEquals2(0.0F, 0.0F)) return "fail 8" + + if (myNotEquals0(0.0F, 0.0F)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals10.kt b/backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals10.kt new file mode 100644 index 00000000000..a9eeb821db4 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableFloatNotEquals10.kt @@ -0,0 +1,26 @@ +// LANGUAGE_VERSION: 1.0 +fun myNotEquals(a: Float?, b: Float?) = a != b + +fun myNotEquals1(a: Float?, b: Float) = a != b + +fun myNotEquals2(a: Float, b: Float?) = a != b + +fun myNotEquals0(a: Float, b: Float) = a != b + + +fun box(): String { + if (myNotEquals(null, null)) return "fail 1" + if (!myNotEquals(null, 0.0F)) return "fail 2" + if (!myNotEquals(0.0F, null)) return "fail 3" + if (myNotEquals(0.0F, 0.0F)) return "fail 4" + + if (!myNotEquals1(null, 0.0F)) return "fail 5" + if (myNotEquals1(0.0F, 0.0F)) return "fail 6" + + if (!myNotEquals2(0.0F, null)) return "fail 7" + if (myNotEquals2(0.0F, 0.0F)) return "fail 8" + + if (myNotEquals0(0.0F, 0.0F)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/ieee754/nullableIntEquals.kt b/backend.native/tests/external/codegen/box/ieee754/nullableIntEquals.kt new file mode 100644 index 00000000000..d0426edb842 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/nullableIntEquals.kt @@ -0,0 +1,26 @@ +//NB: special ieee754 arithmetic logic is not applied to Int comparison +fun myEquals(a: Int?, b: Int?) = a == b + +fun myEquals1(a: Int?, b: Int) = a == b + +fun myEquals2(a: Int, b: Int?) = a == b + +fun myEquals0(a: Int, b: Int) = a == b + + +fun box(): String { + if (!myEquals(null, null)) return "fail 1" + if (myEquals(null, 0)) return "fail 2" + if (myEquals(0, null)) return "fail 3" + if (!myEquals(0, 0)) return "fail 4" + + if (myEquals1(null, 0)) return "fail 5" + if (!myEquals1(0, 0)) return "fail 6" + + if (myEquals2(0, null)) return "fail 7" + if (!myEquals2(0, 0)) return "fail 8" + + if (!myEquals0(0, 0)) return "fail 9" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/safeCall.kt b/backend.native/tests/external/codegen/box/ieee754/safeCall.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/ieee754/safeCall.kt rename to backend.native/tests/external/codegen/box/ieee754/safeCall.kt index 4c30f69761b..06160ead6c5 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/safeCall.kt +++ b/backend.native/tests/external/codegen/box/ieee754/safeCall.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { val plusZero: Double? = 0.0 val minusZero: Double = -0.0 diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/smartCastToDifferentTypes.kt b/backend.native/tests/external/codegen/box/ieee754/smartCastToDifferentTypes.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/ieee754/smartCastToDifferentTypes.kt rename to backend.native/tests/external/codegen/box/ieee754/smartCastToDifferentTypes.kt index 98b087e66e0..e3a06426db3 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/smartCastToDifferentTypes.kt +++ b/backend.native/tests/external/codegen/box/ieee754/smartCastToDifferentTypes.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { val zero: Any = 0.0 val floatZero: Any = -0.0F diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/when.kt b/backend.native/tests/external/codegen/box/ieee754/when.kt similarity index 55% rename from backend.native/tests/external/codegen/blackbox/ieee754/when.kt rename to backend.native/tests/external/codegen/box/ieee754/when.kt index c57947e17bf..de5b07e4889 100644 --- a/backend.native/tests/external/codegen/blackbox/ieee754/when.kt +++ b/backend.native/tests/external/codegen/box/ieee754/when.kt @@ -1,18 +1,25 @@ fun box(): String { val plusZero: Any = 0.0 val minusZero: Any = -0.0 + val nullDouble: Double? = null if (plusZero is Double) { when (plusZero) { + nullDouble -> { + return "fail 1" + } -0.0 -> { } - else -> return "fail 1" + else -> return "fail 2" } if (minusZero is Double) { when (plusZero) { + nullDouble -> { + return "fail 3" + } minusZero -> { } - else -> return "fail 2" + else -> return "fail 4" } } } diff --git a/backend.native/tests/external/codegen/box/ieee754/when10.kt b/backend.native/tests/external/codegen/box/ieee754/when10.kt new file mode 100644 index 00000000000..cf42bdd6ac8 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/when10.kt @@ -0,0 +1,29 @@ +// LANGUAGE_VERSION: 1.0 +fun box(): String { + val plusZero: Any = 0.0 + val minusZero: Any = -0.0 + val nullDouble: Double? = null + if (plusZero is Double) { + when (plusZero) { + nullDouble -> { + return "fail 1" + } + -0.0 -> { + } + else -> return "fail 2" + } + + if (minusZero is Double) { + when (plusZero) { + nullDouble -> { + return "fail 3" + } + minusZero -> { + } + else -> return "fail 4" + } + } + } + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/ieee754/whenNoSubject.kt b/backend.native/tests/external/codegen/box/ieee754/whenNoSubject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ieee754/whenNoSubject.kt rename to backend.native/tests/external/codegen/box/ieee754/whenNoSubject.kt diff --git a/backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast.kt b/backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast.kt new file mode 100644 index 00000000000..31dcd7c4417 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast.kt @@ -0,0 +1,27 @@ +fun box(): String { + val nullValue: Any? = null + val nullDouble: Double? = null + val minusZero: Any = -0.0 + if (nullValue is Double?) { + when (nullValue) { + -0.0 -> { + return "fail 1" + } + nullDouble -> {} + else -> return "fail 2" + } + + if (minusZero is Double) { + when (nullValue) { + minusZero -> { + return "fail 3" + } + nullDouble -> { + } + else -> return "fail 4" + } + } + + } + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast10.kt b/backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast10.kt new file mode 100644 index 00000000000..f497a7468b6 --- /dev/null +++ b/backend.native/tests/external/codegen/box/ieee754/whenNullableSmartCast10.kt @@ -0,0 +1,28 @@ +// LANGUAGE_VERSION: 1.0 +fun box(): String { + val nullValue: Any? = null + val nullDouble: Double? = null + val minusZero: Any = -0.0 + if (nullValue is Double?) { + when (nullValue) { + -0.0 -> { + return "fail 1" + } + nullDouble -> {} + else -> return "fail 2" + } + + if (minusZero is Double) { + when (nullValue) { + minusZero -> { + return "fail 3" + } + nullDouble -> { + } + else -> return "fail 4" + } + } + + } + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/increment/arrayElement.kt b/backend.native/tests/external/codegen/box/increment/arrayElement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/arrayElement.kt rename to backend.native/tests/external/codegen/box/increment/arrayElement.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/assignPlusOnSmartCast.kt b/backend.native/tests/external/codegen/box/increment/assignPlusOnSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/assignPlusOnSmartCast.kt rename to backend.native/tests/external/codegen/box/increment/assignPlusOnSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/augmentedAssignmentWithComplexRhs.kt b/backend.native/tests/external/codegen/box/increment/augmentedAssignmentWithComplexRhs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/augmentedAssignmentWithComplexRhs.kt rename to backend.native/tests/external/codegen/box/increment/augmentedAssignmentWithComplexRhs.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/classNaryGetSet.kt b/backend.native/tests/external/codegen/box/increment/classNaryGetSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/classNaryGetSet.kt rename to backend.native/tests/external/codegen/box/increment/classNaryGetSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/classWithGetSet.kt b/backend.native/tests/external/codegen/box/increment/classWithGetSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/classWithGetSet.kt rename to backend.native/tests/external/codegen/box/increment/classWithGetSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/extOnLong.kt b/backend.native/tests/external/codegen/box/increment/extOnLong.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/extOnLong.kt rename to backend.native/tests/external/codegen/box/increment/extOnLong.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/genericClassWithGetSet.kt b/backend.native/tests/external/codegen/box/increment/genericClassWithGetSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/genericClassWithGetSet.kt rename to backend.native/tests/external/codegen/box/increment/genericClassWithGetSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/memberExtOnLong.kt b/backend.native/tests/external/codegen/box/increment/memberExtOnLong.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/memberExtOnLong.kt rename to backend.native/tests/external/codegen/box/increment/memberExtOnLong.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/mutableListElement.kt b/backend.native/tests/external/codegen/box/increment/mutableListElement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/mutableListElement.kt rename to backend.native/tests/external/codegen/box/increment/mutableListElement.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/nullable.kt b/backend.native/tests/external/codegen/box/increment/nullable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/nullable.kt rename to backend.native/tests/external/codegen/box/increment/nullable.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/postfixIncrementDoubleSmartCast.kt b/backend.native/tests/external/codegen/box/increment/postfixIncrementDoubleSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/postfixIncrementDoubleSmartCast.kt rename to backend.native/tests/external/codegen/box/increment/postfixIncrementDoubleSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnClass.kt b/backend.native/tests/external/codegen/box/increment/postfixIncrementOnClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnClass.kt rename to backend.native/tests/external/codegen/box/increment/postfixIncrementOnClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnClassSmartCast.kt b/backend.native/tests/external/codegen/box/increment/postfixIncrementOnClassSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnClassSmartCast.kt rename to backend.native/tests/external/codegen/box/increment/postfixIncrementOnClassSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnShortSmartCast.kt b/backend.native/tests/external/codegen/box/increment/postfixIncrementOnShortSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnShortSmartCast.kt rename to backend.native/tests/external/codegen/box/increment/postfixIncrementOnShortSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnSmartCast.kt b/backend.native/tests/external/codegen/box/increment/postfixIncrementOnSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/postfixIncrementOnSmartCast.kt rename to backend.native/tests/external/codegen/box/increment/postfixIncrementOnSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/postfixNullableClassIncrement.kt b/backend.native/tests/external/codegen/box/increment/postfixNullableClassIncrement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/postfixNullableClassIncrement.kt rename to backend.native/tests/external/codegen/box/increment/postfixNullableClassIncrement.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/postfixNullableIncrement.kt b/backend.native/tests/external/codegen/box/increment/postfixNullableIncrement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/postfixNullableIncrement.kt rename to backend.native/tests/external/codegen/box/increment/postfixNullableIncrement.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/prefixIncrementOnClass.kt b/backend.native/tests/external/codegen/box/increment/prefixIncrementOnClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/prefixIncrementOnClass.kt rename to backend.native/tests/external/codegen/box/increment/prefixIncrementOnClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/prefixIncrementOnClassSmartCast.kt b/backend.native/tests/external/codegen/box/increment/prefixIncrementOnClassSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/prefixIncrementOnClassSmartCast.kt rename to backend.native/tests/external/codegen/box/increment/prefixIncrementOnClassSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/prefixIncrementOnSmartCast.kt b/backend.native/tests/external/codegen/box/increment/prefixIncrementOnSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/prefixIncrementOnSmartCast.kt rename to backend.native/tests/external/codegen/box/increment/prefixIncrementOnSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/prefixNullableClassIncrement.kt b/backend.native/tests/external/codegen/box/increment/prefixNullableClassIncrement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/prefixNullableClassIncrement.kt rename to backend.native/tests/external/codegen/box/increment/prefixNullableClassIncrement.kt diff --git a/backend.native/tests/external/codegen/blackbox/increment/prefixNullableIncrement.kt b/backend.native/tests/external/codegen/box/increment/prefixNullableIncrement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/increment/prefixNullableIncrement.kt rename to backend.native/tests/external/codegen/box/increment/prefixNullableIncrement.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/createNestedClass.kt b/backend.native/tests/external/codegen/box/innerNested/createNestedClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/createNestedClass.kt rename to backend.native/tests/external/codegen/box/innerNested/createNestedClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/createdNestedInOuterMember.kt b/backend.native/tests/external/codegen/box/innerNested/createdNestedInOuterMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/createdNestedInOuterMember.kt rename to backend.native/tests/external/codegen/box/innerNested/createdNestedInOuterMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/extensionFun.kt b/backend.native/tests/external/codegen/box/innerNested/extensionFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/extensionFun.kt rename to backend.native/tests/external/codegen/box/innerNested/extensionFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/extensionToNested.kt b/backend.native/tests/external/codegen/box/innerNested/extensionToNested.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/extensionToNested.kt rename to backend.native/tests/external/codegen/box/innerNested/extensionToNested.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/importNestedClass.kt b/backend.native/tests/external/codegen/box/innerNested/importNestedClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/importNestedClass.kt rename to backend.native/tests/external/codegen/box/innerNested/importNestedClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/innerGeneric.kt b/backend.native/tests/external/codegen/box/innerNested/innerGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/innerGeneric.kt rename to backend.native/tests/external/codegen/box/innerNested/innerGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/innerGenericClassFromJava.kt b/backend.native/tests/external/codegen/box/innerNested/innerGenericClassFromJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/innerGenericClassFromJava.kt rename to backend.native/tests/external/codegen/box/innerNested/innerGenericClassFromJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/innerJavaClass.kt b/backend.native/tests/external/codegen/box/innerNested/innerJavaClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/innerJavaClass.kt rename to backend.native/tests/external/codegen/box/innerNested/innerJavaClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/innerLabeledThis.kt b/backend.native/tests/external/codegen/box/innerNested/innerLabeledThis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/innerLabeledThis.kt rename to backend.native/tests/external/codegen/box/innerNested/innerLabeledThis.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/innerSimple.kt b/backend.native/tests/external/codegen/box/innerNested/innerSimple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/innerSimple.kt rename to backend.native/tests/external/codegen/box/innerNested/innerSimple.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/kt3132.kt b/backend.native/tests/external/codegen/box/innerNested/kt3132.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/kt3132.kt rename to backend.native/tests/external/codegen/box/innerNested/kt3132.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/kt3927.kt b/backend.native/tests/external/codegen/box/innerNested/kt3927.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/kt3927.kt rename to backend.native/tests/external/codegen/box/innerNested/kt3927.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/kt5363.kt b/backend.native/tests/external/codegen/box/innerNested/kt5363.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/kt5363.kt rename to backend.native/tests/external/codegen/box/innerNested/kt5363.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/kt6804.kt b/backend.native/tests/external/codegen/box/innerNested/kt6804.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/kt6804.kt rename to backend.native/tests/external/codegen/box/innerNested/kt6804.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/nestedClassInObject.kt b/backend.native/tests/external/codegen/box/innerNested/nestedClassInObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/nestedClassInObject.kt rename to backend.native/tests/external/codegen/box/innerNested/nestedClassInObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/nestedClassObject.kt b/backend.native/tests/external/codegen/box/innerNested/nestedClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/nestedClassObject.kt rename to backend.native/tests/external/codegen/box/innerNested/nestedClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/nestedEnumConstant.kt b/backend.native/tests/external/codegen/box/innerNested/nestedEnumConstant.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/nestedEnumConstant.kt rename to backend.native/tests/external/codegen/box/innerNested/nestedEnumConstant.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/nestedGeneric.kt b/backend.native/tests/external/codegen/box/innerNested/nestedGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/nestedGeneric.kt rename to backend.native/tests/external/codegen/box/innerNested/nestedGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/nestedInPackage.kt b/backend.native/tests/external/codegen/box/innerNested/nestedInPackage.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/nestedInPackage.kt rename to backend.native/tests/external/codegen/box/innerNested/nestedInPackage.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/nestedObjects.kt b/backend.native/tests/external/codegen/box/innerNested/nestedObjects.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/nestedObjects.kt rename to backend.native/tests/external/codegen/box/innerNested/nestedObjects.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/nestedSimple.kt b/backend.native/tests/external/codegen/box/innerNested/nestedSimple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/nestedSimple.kt rename to backend.native/tests/external/codegen/box/innerNested/nestedSimple.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/protectedNestedClass.kt b/backend.native/tests/external/codegen/box/innerNested/protectedNestedClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/protectedNestedClass.kt rename to backend.native/tests/external/codegen/box/innerNested/protectedNestedClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/protectedNestedClassFromJava.kt b/backend.native/tests/external/codegen/box/innerNested/protectedNestedClassFromJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/protectedNestedClassFromJava.kt rename to backend.native/tests/external/codegen/box/innerNested/protectedNestedClassFromJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/deepInnerHierarchy.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/deepInnerHierarchy.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/deepInnerHierarchy.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/deepInnerHierarchy.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/deepLocalHierarchy.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/deepLocalHierarchy.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/deepLocalHierarchy.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/deepLocalHierarchy.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/innerExtendsInnerViaSecondaryConstuctor.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/innerExtendsInnerViaSecondaryConstuctor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/innerExtendsInnerViaSecondaryConstuctor.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/innerExtendsInnerViaSecondaryConstuctor.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/innerExtendsInnerWithProperOuterCapture.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/innerExtendsInnerWithProperOuterCapture.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/innerExtendsInnerWithProperOuterCapture.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/innerExtendsInnerWithProperOuterCapture.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/innerExtendsOuter.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/innerExtendsOuter.kt similarity index 88% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/innerExtendsOuter.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/innerExtendsOuter.kt index b368743c9d9..8db3bfa10ca 100644 --- a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/innerExtendsOuter.kt +++ b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/innerExtendsOuter.kt @@ -6,7 +6,7 @@ open class Outer(vararg val chars: Char) { open inner class Inner(val s: String): Outer(s[0], s[1]) { - fun concat() = fromCharArrays(chars, 0, chars.size) + fun concat() = java.lang.String.valueOf(chars) } fun value() = Inner("OK").concat() diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/kt11833_1.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/kt11833_1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/kt11833_1.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/kt11833_1.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/kt11833_2.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/kt11833_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/kt11833_2.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/kt11833_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localClassOuterDiffersFromInnerOuter.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localClassOuterDiffersFromInnerOuter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localClassOuterDiffersFromInnerOuter.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localClassOuterDiffersFromInnerOuter.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localExtendsInner.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localExtendsInner.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localExtendsInner.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localExtendsInner.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localExtendsLocalWithClosure.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localExtendsLocalWithClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localExtendsLocalWithClosure.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localExtendsLocalWithClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localWithClosureExtendsLocalWithClosure.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localWithClosureExtendsLocalWithClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/localWithClosureExtendsLocalWithClosure.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/localWithClosureExtendsLocalWithClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsClassDefaultArgument.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsClassDefaultArgument.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsClassDefaultArgument.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsClassDefaultArgument.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsClassVararg.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsClassVararg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsClassVararg.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsClassVararg.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInner.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInner.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInner.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInner.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInnerDefaultArgument.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInnerDefaultArgument.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInnerDefaultArgument.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInnerDefaultArgument.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInnerOfLocalVarargAndDefault.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInnerOfLocalVarargAndDefault.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInnerOfLocalVarargAndDefault.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInnerOfLocalVarargAndDefault.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInnerOfLocalWithCapture.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInnerOfLocalWithCapture.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsInnerOfLocalWithCapture.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsInnerOfLocalWithCapture.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsLocalCaptureInSuperCall.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsLocalCaptureInSuperCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsLocalCaptureInSuperCall.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsLocalCaptureInSuperCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectExtendsLocalWithClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectOuterDiffersFromInnerOuter.kt b/backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectOuterDiffersFromInnerOuter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/innerNested/superConstructorCall/objectOuterDiffersFromInnerOuter.kt rename to backend.native/tests/external/codegen/box/innerNested/superConstructorCall/objectOuterDiffersFromInnerOuter.kt diff --git a/backend.native/tests/external/codegen/blackbox/instructions/swap/swapRefToSharedVarInt.kt b/backend.native/tests/external/codegen/box/instructions/swap/swapRefToSharedVarInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/instructions/swap/swapRefToSharedVarInt.kt rename to backend.native/tests/external/codegen/box/instructions/swap/swapRefToSharedVarInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/instructions/swap/swapRefToSharedVarLong.kt b/backend.native/tests/external/codegen/box/instructions/swap/swapRefToSharedVarLong.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/instructions/swap/swapRefToSharedVarLong.kt rename to backend.native/tests/external/codegen/box/instructions/swap/swapRefToSharedVarLong.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/charToInt.kt b/backend.native/tests/external/codegen/box/intrinsics/charToInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/charToInt.kt rename to backend.native/tests/external/codegen/box/intrinsics/charToInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/defaultObjectMapping.kt b/backend.native/tests/external/codegen/box/intrinsics/defaultObjectMapping.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/defaultObjectMapping.kt rename to backend.native/tests/external/codegen/box/intrinsics/defaultObjectMapping.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/ea35953.kt b/backend.native/tests/external/codegen/box/intrinsics/ea35953.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/ea35953.kt rename to backend.native/tests/external/codegen/box/intrinsics/ea35953.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/incWithLabel.kt b/backend.native/tests/external/codegen/box/intrinsics/incWithLabel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/incWithLabel.kt rename to backend.native/tests/external/codegen/box/intrinsics/incWithLabel.kt diff --git a/backend.native/tests/external/codegen/box/intrinsics/kt10131.kt b/backend.native/tests/external/codegen/box/intrinsics/kt10131.kt new file mode 100644 index 00000000000..b388bc4fb62 --- /dev/null +++ b/backend.native/tests/external/codegen/box/intrinsics/kt10131.kt @@ -0,0 +1,4 @@ +// WITH_RUNTIME + +fun box(): String = + listOf('O', 'K').fold("", String::plus) diff --git a/backend.native/tests/external/codegen/box/intrinsics/kt10131a.kt b/backend.native/tests/external/codegen/box/intrinsics/kt10131a.kt new file mode 100644 index 00000000000..db05fd54b18 --- /dev/null +++ b/backend.native/tests/external/codegen/box/intrinsics/kt10131a.kt @@ -0,0 +1,4 @@ +// WITH_RUNTIME + +fun box(): String = + charArrayOf('O', 'K').fold("", String::plus) diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/kt12125.kt b/backend.native/tests/external/codegen/box/intrinsics/kt12125.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/kt12125.kt rename to backend.native/tests/external/codegen/box/intrinsics/kt12125.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/kt12125_2.kt b/backend.native/tests/external/codegen/box/intrinsics/kt12125_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/kt12125_2.kt rename to backend.native/tests/external/codegen/box/intrinsics/kt12125_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/kt12125_inc.kt b/backend.native/tests/external/codegen/box/intrinsics/kt12125_inc.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/kt12125_inc.kt rename to backend.native/tests/external/codegen/box/intrinsics/kt12125_inc.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/kt12125_inc_2.kt b/backend.native/tests/external/codegen/box/intrinsics/kt12125_inc_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/kt12125_inc_2.kt rename to backend.native/tests/external/codegen/box/intrinsics/kt12125_inc_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/kt5937.kt b/backend.native/tests/external/codegen/box/intrinsics/kt5937.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/kt5937.kt rename to backend.native/tests/external/codegen/box/intrinsics/kt5937.kt diff --git a/backend.native/tests/external/codegen/box/intrinsics/kt8666.kt b/backend.native/tests/external/codegen/box/intrinsics/kt8666.kt new file mode 100644 index 00000000000..835340e3afe --- /dev/null +++ b/backend.native/tests/external/codegen/box/intrinsics/kt8666.kt @@ -0,0 +1,18 @@ +val MAX_LONG = "9223372036854775807" +val PREFIX = "max = " + +fun box(): String { + if (MAX_LONG != "${Long.MAX_VALUE}") return "fail template" + if (MAX_LONG != "" + Long.MAX_VALUE) return "fail \"\" +" + if (MAX_LONG != "".plus(Long.MAX_VALUE)) return "fail \"\".plus" + if (MAX_LONG != (String::plus)("", Long.MAX_VALUE)) return "fail String::plus" + if (MAX_LONG != (""::plus)(Long.MAX_VALUE)) return "fail \"\"::plus" + + if (PREFIX + MAX_LONG != "max = ${Long.MAX_VALUE}") return "fail template with prefix" + if (PREFIX + MAX_LONG != PREFIX + Long.MAX_VALUE) return "fail \"$PREFIX\" +" + if (PREFIX + MAX_LONG != PREFIX.plus(Long.MAX_VALUE)) return "fail \"$PREFIX\".plus" + if (PREFIX + MAX_LONG != (String::plus)(PREFIX, Long.MAX_VALUE)) return "fail String::plus($PREFIX, ...)" + if (PREFIX + MAX_LONG != (PREFIX::plus)(Long.MAX_VALUE)) return "fail \"$PREFIX\"::plus" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/longRangeWithExplicitDot.kt b/backend.native/tests/external/codegen/box/intrinsics/longRangeWithExplicitDot.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/longRangeWithExplicitDot.kt rename to backend.native/tests/external/codegen/box/intrinsics/longRangeWithExplicitDot.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/prefixIncDec.kt b/backend.native/tests/external/codegen/box/intrinsics/prefixIncDec.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/prefixIncDec.kt rename to backend.native/tests/external/codegen/box/intrinsics/prefixIncDec.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/rangeFromCollection.kt b/backend.native/tests/external/codegen/box/intrinsics/rangeFromCollection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/rangeFromCollection.kt rename to backend.native/tests/external/codegen/box/intrinsics/rangeFromCollection.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/stringFromCollection.kt b/backend.native/tests/external/codegen/box/intrinsics/stringFromCollection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/intrinsics/stringFromCollection.kt rename to backend.native/tests/external/codegen/box/intrinsics/stringFromCollection.kt diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/throwable.kt b/backend.native/tests/external/codegen/box/intrinsics/throwable.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/intrinsics/throwable.kt rename to backend.native/tests/external/codegen/box/intrinsics/throwable.kt index bd9e5c754f1..35f310a3fe8 100644 --- a/backend.native/tests/external/codegen/blackbox/intrinsics/throwable.kt +++ b/backend.native/tests/external/codegen/box/intrinsics/throwable.kt @@ -22,4 +22,4 @@ fun box(): String { if (z4.cause !== null) return "fail 8: ${z4.cause}" return z.message!! -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/throwableCallableReference.kt b/backend.native/tests/external/codegen/box/intrinsics/throwableCallableReference.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/intrinsics/throwableCallableReference.kt rename to backend.native/tests/external/codegen/box/intrinsics/throwableCallableReference.kt index 90f3105d6d2..c21fde159e5 100644 --- a/backend.native/tests/external/codegen/blackbox/intrinsics/throwableCallableReference.kt +++ b/backend.native/tests/external/codegen/box/intrinsics/throwableCallableReference.kt @@ -30,4 +30,4 @@ fun box(): String { if (z4.cause !== null) return "fail 8: ${z4.cause}" return z.message!! -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/throwableParamOrder.kt b/backend.native/tests/external/codegen/box/intrinsics/throwableParamOrder.kt similarity index 75% rename from backend.native/tests/external/codegen/blackbox/intrinsics/throwableParamOrder.kt rename to backend.native/tests/external/codegen/box/intrinsics/throwableParamOrder.kt index 351f483c5c6..7708a6de220 100644 --- a/backend.native/tests/external/codegen/blackbox/intrinsics/throwableParamOrder.kt +++ b/backend.native/tests/external/codegen/box/intrinsics/throwableParamOrder.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - var res = "" fun getM(): String { diff --git a/backend.native/tests/external/codegen/blackbox/intrinsics/tostring.kt b/backend.native/tests/external/codegen/box/intrinsics/tostring.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/intrinsics/tostring.kt rename to backend.native/tests/external/codegen/box/intrinsics/tostring.kt index 4e40b40c9b1..27f9f1a11a0 100644 --- a/backend.native/tests/external/codegen/blackbox/intrinsics/tostring.kt +++ b/backend.native/tests/external/codegen/box/intrinsics/tostring.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun box(): String { if (239.toByte().toString() != (239.toByte() as Byte?).toString()) return "byte failed" diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/generics/allWildcardsOnClass.kt b/backend.native/tests/external/codegen/box/javaInterop/generics/allWildcardsOnClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/generics/allWildcardsOnClass.kt rename to backend.native/tests/external/codegen/box/javaInterop/generics/allWildcardsOnClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/generics/covariantOverrideWithDeclarationSiteProjection.kt b/backend.native/tests/external/codegen/box/javaInterop/generics/covariantOverrideWithDeclarationSiteProjection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/generics/covariantOverrideWithDeclarationSiteProjection.kt rename to backend.native/tests/external/codegen/box/javaInterop/generics/covariantOverrideWithDeclarationSiteProjection.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/generics/invariantArgumentsNoWildcard.kt b/backend.native/tests/external/codegen/box/javaInterop/generics/invariantArgumentsNoWildcard.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/generics/invariantArgumentsNoWildcard.kt rename to backend.native/tests/external/codegen/box/javaInterop/generics/invariantArgumentsNoWildcard.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/lambdaInstanceOf.kt b/backend.native/tests/external/codegen/box/javaInterop/lambdaInstanceOf.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/lambdaInstanceOf.kt rename to backend.native/tests/external/codegen/box/javaInterop/lambdaInstanceOf.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/notNullAssertions/extensionReceiverParameter.kt b/backend.native/tests/external/codegen/box/javaInterop/notNullAssertions/extensionReceiverParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/notNullAssertions/extensionReceiverParameter.kt rename to backend.native/tests/external/codegen/box/javaInterop/notNullAssertions/extensionReceiverParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/notNullAssertions/mapPut.kt b/backend.native/tests/external/codegen/box/javaInterop/notNullAssertions/mapPut.kt similarity index 85% rename from backend.native/tests/external/codegen/blackbox/javaInterop/notNullAssertions/mapPut.kt rename to backend.native/tests/external/codegen/box/javaInterop/notNullAssertions/mapPut.kt index c39287e7d2b..48ec53af5f9 100644 --- a/backend.native/tests/external/codegen/blackbox/javaInterop/notNullAssertions/mapPut.kt +++ b/backend.native/tests/external/codegen/box/javaInterop/notNullAssertions/mapPut.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE fun foo(k: K, v: V) { val map = HashMap() diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneCallsConstructor.kt b/backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneCallsConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneCallsConstructor.kt rename to backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneCallsConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneCallsSuper.kt b/backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneCallsSuper.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneCallsSuper.kt rename to backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneCallsSuper.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneCallsSuperAndModifies.kt b/backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneCallsSuperAndModifies.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneCallsSuperAndModifies.kt rename to backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneCallsSuperAndModifies.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneHashSet.kt b/backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneHashSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneHashSet.kt rename to backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneHashSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneHierarchy.kt b/backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneHierarchy.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneHierarchy.kt rename to backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneHierarchy.kt diff --git a/backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneableClassWithoutClone.kt b/backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneableClassWithoutClone.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/javaInterop/objectMethods/cloneableClassWithoutClone.kt rename to backend.native/tests/external/codegen/box/javaInterop/objectMethods/cloneableClassWithoutClone.kt diff --git a/backend.native/tests/external/codegen/blackbox/jdk/arrayList.kt b/backend.native/tests/external/codegen/box/jdk/arrayList.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jdk/arrayList.kt rename to backend.native/tests/external/codegen/box/jdk/arrayList.kt diff --git a/backend.native/tests/external/codegen/blackbox/jdk/hashMap.kt b/backend.native/tests/external/codegen/box/jdk/hashMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jdk/hashMap.kt rename to backend.native/tests/external/codegen/box/jdk/hashMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/jdk/iteratingOverHashMap.kt b/backend.native/tests/external/codegen/box/jdk/iteratingOverHashMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jdk/iteratingOverHashMap.kt rename to backend.native/tests/external/codegen/box/jdk/iteratingOverHashMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/jdk/kt1397.kt b/backend.native/tests/external/codegen/box/jdk/kt1397.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jdk/kt1397.kt rename to backend.native/tests/external/codegen/box/jdk/kt1397.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/captureClassFields.kt b/backend.native/tests/external/codegen/box/jvmField/captureClassFields.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/captureClassFields.kt rename to backend.native/tests/external/codegen/box/jvmField/captureClassFields.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/capturePackageFields.kt b/backend.native/tests/external/codegen/box/jvmField/capturePackageFields.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/capturePackageFields.kt rename to backend.native/tests/external/codegen/box/jvmField/capturePackageFields.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/checkNoAccessors.kt b/backend.native/tests/external/codegen/box/jvmField/checkNoAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/checkNoAccessors.kt rename to backend.native/tests/external/codegen/box/jvmField/checkNoAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/classFieldReference.kt b/backend.native/tests/external/codegen/box/jvmField/classFieldReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/classFieldReference.kt rename to backend.native/tests/external/codegen/box/jvmField/classFieldReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/classFieldReflection.kt b/backend.native/tests/external/codegen/box/jvmField/classFieldReflection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/classFieldReflection.kt rename to backend.native/tests/external/codegen/box/jvmField/classFieldReflection.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/constructorProperty.kt b/backend.native/tests/external/codegen/box/jvmField/constructorProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/constructorProperty.kt rename to backend.native/tests/external/codegen/box/jvmField/constructorProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/publicField.kt b/backend.native/tests/external/codegen/box/jvmField/publicField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/publicField.kt rename to backend.native/tests/external/codegen/box/jvmField/publicField.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/simpleMemberProperty.kt b/backend.native/tests/external/codegen/box/jvmField/simpleMemberProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/simpleMemberProperty.kt rename to backend.native/tests/external/codegen/box/jvmField/simpleMemberProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/superCall.kt b/backend.native/tests/external/codegen/box/jvmField/superCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/superCall.kt rename to backend.native/tests/external/codegen/box/jvmField/superCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/superCall2.kt b/backend.native/tests/external/codegen/box/jvmField/superCall2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/superCall2.kt rename to backend.native/tests/external/codegen/box/jvmField/superCall2.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/topLevelFieldReference.kt b/backend.native/tests/external/codegen/box/jvmField/topLevelFieldReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/topLevelFieldReference.kt rename to backend.native/tests/external/codegen/box/jvmField/topLevelFieldReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/topLevelFieldReflection.kt b/backend.native/tests/external/codegen/box/jvmField/topLevelFieldReflection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/topLevelFieldReflection.kt rename to backend.native/tests/external/codegen/box/jvmField/topLevelFieldReflection.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/visibility.kt b/backend.native/tests/external/codegen/box/jvmField/visibility.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/visibility.kt rename to backend.native/tests/external/codegen/box/jvmField/visibility.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmField/writeFieldReference.kt b/backend.native/tests/external/codegen/box/jvmField/writeFieldReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmField/writeFieldReference.kt rename to backend.native/tests/external/codegen/box/jvmField/writeFieldReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/callableReference.kt b/backend.native/tests/external/codegen/box/jvmName/callableReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/callableReference.kt rename to backend.native/tests/external/codegen/box/jvmName/callableReference.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/clashingErasure.kt b/backend.native/tests/external/codegen/box/jvmName/clashingErasure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/clashingErasure.kt rename to backend.native/tests/external/codegen/box/jvmName/clashingErasure.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/classMembers.kt b/backend.native/tests/external/codegen/box/jvmName/classMembers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/classMembers.kt rename to backend.native/tests/external/codegen/box/jvmName/classMembers.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/fakeJvmNameInJava.kt b/backend.native/tests/external/codegen/box/jvmName/fakeJvmNameInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/fakeJvmNameInJava.kt rename to backend.native/tests/external/codegen/box/jvmName/fakeJvmNameInJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/fileFacades/differentFiles.kt b/backend.native/tests/external/codegen/box/jvmName/fileFacades/differentFiles.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/fileFacades/differentFiles.kt rename to backend.native/tests/external/codegen/box/jvmName/fileFacades/differentFiles.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/fileFacades/javaAnnotationOnFileFacade.kt b/backend.native/tests/external/codegen/box/jvmName/fileFacades/javaAnnotationOnFileFacade.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/fileFacades/javaAnnotationOnFileFacade.kt rename to backend.native/tests/external/codegen/box/jvmName/fileFacades/javaAnnotationOnFileFacade.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/fileFacades/simple.kt b/backend.native/tests/external/codegen/box/jvmName/fileFacades/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/fileFacades/simple.kt rename to backend.native/tests/external/codegen/box/jvmName/fileFacades/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/functionName.kt b/backend.native/tests/external/codegen/box/jvmName/functionName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/functionName.kt rename to backend.native/tests/external/codegen/box/jvmName/functionName.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/multifileClass.kt b/backend.native/tests/external/codegen/box/jvmName/multifileClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/multifileClass.kt rename to backend.native/tests/external/codegen/box/jvmName/multifileClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/multifileClassWithLocalClass.kt b/backend.native/tests/external/codegen/box/jvmName/multifileClassWithLocalClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/multifileClassWithLocalClass.kt rename to backend.native/tests/external/codegen/box/jvmName/multifileClassWithLocalClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/multifileClassWithLocalGeneric.kt b/backend.native/tests/external/codegen/box/jvmName/multifileClassWithLocalGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/multifileClassWithLocalGeneric.kt rename to backend.native/tests/external/codegen/box/jvmName/multifileClassWithLocalGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/propertyAccessorsUseSite.kt b/backend.native/tests/external/codegen/box/jvmName/propertyAccessorsUseSite.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/propertyAccessorsUseSite.kt rename to backend.native/tests/external/codegen/box/jvmName/propertyAccessorsUseSite.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/propertyName.kt b/backend.native/tests/external/codegen/box/jvmName/propertyName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/propertyName.kt rename to backend.native/tests/external/codegen/box/jvmName/propertyName.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmName/renamedFileClass.kt b/backend.native/tests/external/codegen/box/jvmName/renamedFileClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmName/renamedFileClass.kt rename to backend.native/tests/external/codegen/box/jvmName/renamedFileClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/companionObject.kt b/backend.native/tests/external/codegen/box/jvmOverloads/companionObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/companionObject.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/companionObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/defaultsNotAtEnd.kt b/backend.native/tests/external/codegen/box/jvmOverloads/defaultsNotAtEnd.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/defaultsNotAtEnd.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/defaultsNotAtEnd.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/doubleParameters.kt b/backend.native/tests/external/codegen/box/jvmOverloads/doubleParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/doubleParameters.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/doubleParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/extensionMethod.kt b/backend.native/tests/external/codegen/box/jvmOverloads/extensionMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/extensionMethod.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/extensionMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/generics.kt b/backend.native/tests/external/codegen/box/jvmOverloads/generics.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/generics.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/generics.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/innerClass.kt b/backend.native/tests/external/codegen/box/jvmOverloads/innerClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/innerClass.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/innerClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/multipleDefaultParameters.kt b/backend.native/tests/external/codegen/box/jvmOverloads/multipleDefaultParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/multipleDefaultParameters.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/multipleDefaultParameters.kt diff --git a/backend.native/tests/external/codegen/box/jvmOverloads/noRedundantVarargs.kt b/backend.native/tests/external/codegen/box/jvmOverloads/noRedundantVarargs.kt new file mode 100644 index 00000000000..2dbae6a3258 --- /dev/null +++ b/backend.native/tests/external/codegen/box/jvmOverloads/noRedundantVarargs.kt @@ -0,0 +1,48 @@ +// TARGET_BACKEND: JVM +// WITH_RUNTIME +// FULL_JDK +// FILE: test.kt + +@JvmOverloads +fun foo(id: Int, vararg pairs: String = emptyArray()): String { + return "$id: ${java.util.Arrays.toString(pairs)}" +} + +@JvmOverloads +fun foo2(id: Int, s: Int = 56, vararg pairs: String): String { + return "$id, $s: ${java.util.Arrays.toString(pairs)}" +} + +fun box(): String { + if (A.bar1() != "1: []") return "fail 1" + if (A.bar2() != "2: [OK]") return "fail 2" + if (A.bar3() != "3, 56: []") return "fail 3" + if (A.bar4() != "4, 56: [OK]") return "fail 4" + if (A.bar5() != "5, 1491: [OK]") return "fail 5" + + return "OK" +} + +// FILE: A.java + +public class A { + public static String bar1() { + return TestKt.foo(1); + } + + public static String bar2() { + return TestKt.foo(2, "OK"); + } + + public static String bar3() { + return TestKt.foo2(3); + } + + public static String bar4() { + return TestKt.foo2(4, "OK"); + } + + public static String bar5() { + return TestKt.foo2(5, 1491, "OK"); + } +} diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/nonDefaultParameter.kt b/backend.native/tests/external/codegen/box/jvmOverloads/nonDefaultParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/nonDefaultParameter.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/nonDefaultParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/primaryConstructor.kt b/backend.native/tests/external/codegen/box/jvmOverloads/primaryConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/primaryConstructor.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/primaryConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/privateClass.kt b/backend.native/tests/external/codegen/box/jvmOverloads/privateClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/privateClass.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/privateClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/secondaryConstructor.kt b/backend.native/tests/external/codegen/box/jvmOverloads/secondaryConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/secondaryConstructor.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/secondaryConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/simple.kt b/backend.native/tests/external/codegen/box/jvmOverloads/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/simple.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/simpleJavaCall.kt b/backend.native/tests/external/codegen/box/jvmOverloads/simpleJavaCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/simpleJavaCall.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/simpleJavaCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmOverloads/varargs.kt b/backend.native/tests/external/codegen/box/jvmOverloads/varargs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmOverloads/varargs.kt rename to backend.native/tests/external/codegen/box/jvmOverloads/varargs.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/annotations.kt b/backend.native/tests/external/codegen/box/jvmStatic/annotations.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/annotations.kt rename to backend.native/tests/external/codegen/box/jvmStatic/annotations.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/closure.kt b/backend.native/tests/external/codegen/box/jvmStatic/closure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/closure.kt rename to backend.native/tests/external/codegen/box/jvmStatic/closure.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/companionObject.kt b/backend.native/tests/external/codegen/box/jvmStatic/companionObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/companionObject.kt rename to backend.native/tests/external/codegen/box/jvmStatic/companionObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/convention.kt b/backend.native/tests/external/codegen/box/jvmStatic/convention.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/convention.kt rename to backend.native/tests/external/codegen/box/jvmStatic/convention.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/default.kt b/backend.native/tests/external/codegen/box/jvmStatic/default.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/default.kt rename to backend.native/tests/external/codegen/box/jvmStatic/default.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/enumCompanion.kt b/backend.native/tests/external/codegen/box/jvmStatic/enumCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/enumCompanion.kt rename to backend.native/tests/external/codegen/box/jvmStatic/enumCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/explicitObject.kt b/backend.native/tests/external/codegen/box/jvmStatic/explicitObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/explicitObject.kt rename to backend.native/tests/external/codegen/box/jvmStatic/explicitObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/funAccess.kt b/backend.native/tests/external/codegen/box/jvmStatic/funAccess.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/funAccess.kt rename to backend.native/tests/external/codegen/box/jvmStatic/funAccess.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/importStaticMemberFromObject.kt b/backend.native/tests/external/codegen/box/jvmStatic/importStaticMemberFromObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/importStaticMemberFromObject.kt rename to backend.native/tests/external/codegen/box/jvmStatic/importStaticMemberFromObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/inline.kt b/backend.native/tests/external/codegen/box/jvmStatic/inline.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/inline.kt rename to backend.native/tests/external/codegen/box/jvmStatic/inline.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/inlinePropertyAccessors.kt b/backend.native/tests/external/codegen/box/jvmStatic/inlinePropertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/inlinePropertyAccessors.kt rename to backend.native/tests/external/codegen/box/jvmStatic/inlinePropertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/kt9897_static.kt b/backend.native/tests/external/codegen/box/jvmStatic/kt9897_static.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/kt9897_static.kt rename to backend.native/tests/external/codegen/box/jvmStatic/kt9897_static.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/object.kt b/backend.native/tests/external/codegen/box/jvmStatic/object.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/object.kt rename to backend.native/tests/external/codegen/box/jvmStatic/object.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/postfixInc.kt b/backend.native/tests/external/codegen/box/jvmStatic/postfixInc.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/postfixInc.kt rename to backend.native/tests/external/codegen/box/jvmStatic/postfixInc.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/prefixInc.kt b/backend.native/tests/external/codegen/box/jvmStatic/prefixInc.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/prefixInc.kt rename to backend.native/tests/external/codegen/box/jvmStatic/prefixInc.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/privateMethod.kt b/backend.native/tests/external/codegen/box/jvmStatic/privateMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/privateMethod.kt rename to backend.native/tests/external/codegen/box/jvmStatic/privateMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/privateSetter.kt b/backend.native/tests/external/codegen/box/jvmStatic/privateSetter.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/privateSetter.kt rename to backend.native/tests/external/codegen/box/jvmStatic/privateSetter.kt index 50c6d83a13e..a931a41c8eb 100644 --- a/backend.native/tests/external/codegen/blackbox/jvmStatic/privateSetter.kt +++ b/backend.native/tests/external/codegen/box/jvmStatic/privateSetter.kt @@ -24,4 +24,4 @@ open class TestApp { fun box(): String { return JavaClass.test() -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAccess.kt b/backend.native/tests/external/codegen/box/jvmStatic/propertyAccess.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAccess.kt rename to backend.native/tests/external/codegen/box/jvmStatic/propertyAccess.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAccessorsCompanion.kt b/backend.native/tests/external/codegen/box/jvmStatic/propertyAccessorsCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAccessorsCompanion.kt rename to backend.native/tests/external/codegen/box/jvmStatic/propertyAccessorsCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAccessorsObject.kt b/backend.native/tests/external/codegen/box/jvmStatic/propertyAccessorsObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAccessorsObject.kt rename to backend.native/tests/external/codegen/box/jvmStatic/propertyAccessorsObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAsDefault.kt b/backend.native/tests/external/codegen/box/jvmStatic/propertyAsDefault.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/propertyAsDefault.kt rename to backend.native/tests/external/codegen/box/jvmStatic/propertyAsDefault.kt diff --git a/backend.native/tests/external/codegen/box/jvmStatic/propertyGetterDelegatesToAnother.kt b/backend.native/tests/external/codegen/box/jvmStatic/propertyGetterDelegatesToAnother.kt new file mode 100644 index 00000000000..767a0b188ae --- /dev/null +++ b/backend.native/tests/external/codegen/box/jvmStatic/propertyGetterDelegatesToAnother.kt @@ -0,0 +1,12 @@ +// WITH_RUNTIME +// TARGET_BACKEND: JVM +object ObjectThisTest { + + val testValue: String + @JvmStatic get() = this.testValue2 + + val testValue2: String + get() = "OK" +} + +fun box() = ObjectThisTest.testValue diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/simple.kt b/backend.native/tests/external/codegen/box/jvmStatic/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/simple.kt rename to backend.native/tests/external/codegen/box/jvmStatic/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/jvmStatic/syntheticAccessor.kt b/backend.native/tests/external/codegen/box/jvmStatic/syntheticAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/jvmStatic/syntheticAccessor.kt rename to backend.native/tests/external/codegen/box/jvmStatic/syntheticAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/labels/labeledDeclarations.kt b/backend.native/tests/external/codegen/box/labels/labeledDeclarations.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/labels/labeledDeclarations.kt rename to backend.native/tests/external/codegen/box/labels/labeledDeclarations.kt diff --git a/backend.native/tests/external/codegen/blackbox/labels/propertyAccessor.kt b/backend.native/tests/external/codegen/box/labels/propertyAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/labels/propertyAccessor.kt rename to backend.native/tests/external/codegen/box/labels/propertyAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/labels/propertyAccessorFunctionLiteral.kt b/backend.native/tests/external/codegen/box/labels/propertyAccessorFunctionLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/labels/propertyAccessorFunctionLiteral.kt rename to backend.native/tests/external/codegen/box/labels/propertyAccessorFunctionLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/labels/propertyAccessorInnerExtensionFun.kt b/backend.native/tests/external/codegen/box/labels/propertyAccessorInnerExtensionFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/labels/propertyAccessorInnerExtensionFun.kt rename to backend.native/tests/external/codegen/box/labels/propertyAccessorInnerExtensionFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/labels/propertyAccessorObject.kt b/backend.native/tests/external/codegen/box/labels/propertyAccessorObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/labels/propertyAccessorObject.kt rename to backend.native/tests/external/codegen/box/labels/propertyAccessorObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/labels/propertyInClassAccessor.kt b/backend.native/tests/external/codegen/box/labels/propertyInClassAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/labels/propertyInClassAccessor.kt rename to backend.native/tests/external/codegen/box/labels/propertyInClassAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/exceptionInFieldInitializer.kt b/backend.native/tests/external/codegen/box/lazyCodegen/exceptionInFieldInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/exceptionInFieldInitializer.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/exceptionInFieldInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/ifElse.kt b/backend.native/tests/external/codegen/box/lazyCodegen/ifElse.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/ifElse.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/ifElse.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/increment.kt b/backend.native/tests/external/codegen/box/lazyCodegen/increment.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/increment.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/increment.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateConstantCompare.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateConstantCompare.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateConstantCompare.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateConstantCompare.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateFalse.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateFalse.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateFalse.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateFalse.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateFalseVar.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateFalseVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateFalseVar.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateFalseVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateFalseVarChain.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateFalseVarChain.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateFalseVarChain.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateFalseVarChain.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateObjectComp.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateObjectComp.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateObjectComp.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateObjectComp.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateObjectComp2.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateObjectComp2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateObjectComp2.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateObjectComp2.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateTrue.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateTrue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateTrue.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateTrue.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateTrueVar.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateTrueVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/negateTrueVar.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/negateTrueVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/noOptimization.kt b/backend.native/tests/external/codegen/box/lazyCodegen/optimizations/noOptimization.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/optimizations/noOptimization.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/optimizations/noOptimization.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/safeAssign.kt b/backend.native/tests/external/codegen/box/lazyCodegen/safeAssign.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/safeAssign.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/safeAssign.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/safeAssignComplex.kt b/backend.native/tests/external/codegen/box/lazyCodegen/safeAssignComplex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/safeAssignComplex.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/safeAssignComplex.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/safeCallAndArray.kt b/backend.native/tests/external/codegen/box/lazyCodegen/safeCallAndArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/safeCallAndArray.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/safeCallAndArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/toString.kt b/backend.native/tests/external/codegen/box/lazyCodegen/toString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/toString.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/toString.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/tryCatchExpression.kt b/backend.native/tests/external/codegen/box/lazyCodegen/tryCatchExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/tryCatchExpression.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/tryCatchExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/lazyCodegen/when.kt b/backend.native/tests/external/codegen/box/lazyCodegen/when.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/lazyCodegen/when.kt rename to backend.native/tests/external/codegen/box/lazyCodegen/when.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/anonymousObjectInInitializer.kt b/backend.native/tests/external/codegen/box/localClasses/anonymousObjectInInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/anonymousObjectInInitializer.kt rename to backend.native/tests/external/codegen/box/localClasses/anonymousObjectInInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/anonymousObjectInParameterInitializer.kt b/backend.native/tests/external/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/anonymousObjectInParameterInitializer.kt rename to backend.native/tests/external/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/closureOfInnerLocalClass.kt b/backend.native/tests/external/codegen/box/localClasses/closureOfInnerLocalClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/closureOfInnerLocalClass.kt rename to backend.native/tests/external/codegen/box/localClasses/closureOfInnerLocalClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/closureOfLambdaInLocalClass.kt b/backend.native/tests/external/codegen/box/localClasses/closureOfLambdaInLocalClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/closureOfLambdaInLocalClass.kt rename to backend.native/tests/external/codegen/box/localClasses/closureOfLambdaInLocalClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/closureWithSelfInstantiation.kt b/backend.native/tests/external/codegen/box/localClasses/closureWithSelfInstantiation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/closureWithSelfInstantiation.kt rename to backend.native/tests/external/codegen/box/localClasses/closureWithSelfInstantiation.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/inExtensionFunction.kt b/backend.native/tests/external/codegen/box/localClasses/inExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/inExtensionFunction.kt rename to backend.native/tests/external/codegen/box/localClasses/inExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/inExtensionProperty.kt b/backend.native/tests/external/codegen/box/localClasses/inExtensionProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/inExtensionProperty.kt rename to backend.native/tests/external/codegen/box/localClasses/inExtensionProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/inLocalExtensionFunction.kt b/backend.native/tests/external/codegen/box/localClasses/inLocalExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/inLocalExtensionFunction.kt rename to backend.native/tests/external/codegen/box/localClasses/inLocalExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/inLocalExtensionProperty.kt b/backend.native/tests/external/codegen/box/localClasses/inLocalExtensionProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/inLocalExtensionProperty.kt rename to backend.native/tests/external/codegen/box/localClasses/inLocalExtensionProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/innerClassInLocalClass.kt b/backend.native/tests/external/codegen/box/localClasses/innerClassInLocalClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/innerClassInLocalClass.kt rename to backend.native/tests/external/codegen/box/localClasses/innerClassInLocalClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/innerOfLocalCaptureExtensionReceiver.kt b/backend.native/tests/external/codegen/box/localClasses/innerOfLocalCaptureExtensionReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/innerOfLocalCaptureExtensionReceiver.kt rename to backend.native/tests/external/codegen/box/localClasses/innerOfLocalCaptureExtensionReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/kt2700.kt b/backend.native/tests/external/codegen/box/localClasses/kt2700.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/kt2700.kt rename to backend.native/tests/external/codegen/box/localClasses/kt2700.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/kt2873.kt b/backend.native/tests/external/codegen/box/localClasses/kt2873.kt similarity index 77% rename from backend.native/tests/external/codegen/blackbox/localClasses/kt2873.kt rename to backend.native/tests/external/codegen/box/localClasses/kt2873.kt index ffc8ef112ed..6bb8dafadfd 100644 --- a/backend.native/tests/external/codegen/blackbox/localClasses/kt2873.kt +++ b/backend.native/tests/external/codegen/box/localClasses/kt2873.kt @@ -6,6 +6,10 @@ fun foo() : String { return u() } +fun main(args: Array) { + foo() +} + fun box(): String { return foo() } \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/kt3210.kt b/backend.native/tests/external/codegen/box/localClasses/kt3210.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/kt3210.kt rename to backend.native/tests/external/codegen/box/localClasses/kt3210.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/kt3389.kt b/backend.native/tests/external/codegen/box/localClasses/kt3389.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/kt3389.kt rename to backend.native/tests/external/codegen/box/localClasses/kt3389.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/kt3584.kt b/backend.native/tests/external/codegen/box/localClasses/kt3584.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/kt3584.kt rename to backend.native/tests/external/codegen/box/localClasses/kt3584.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/kt4174.kt b/backend.native/tests/external/codegen/box/localClasses/kt4174.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/kt4174.kt rename to backend.native/tests/external/codegen/box/localClasses/kt4174.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/localClass.kt b/backend.native/tests/external/codegen/box/localClasses/localClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/localClass.kt rename to backend.native/tests/external/codegen/box/localClasses/localClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/localClassCaptureExtensionReceiver.kt b/backend.native/tests/external/codegen/box/localClasses/localClassCaptureExtensionReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/localClassCaptureExtensionReceiver.kt rename to backend.native/tests/external/codegen/box/localClasses/localClassCaptureExtensionReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/localClassInInitializer.kt b/backend.native/tests/external/codegen/box/localClasses/localClassInInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/localClassInInitializer.kt rename to backend.native/tests/external/codegen/box/localClasses/localClassInInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/localClassInParameterInitializer.kt b/backend.native/tests/external/codegen/box/localClasses/localClassInParameterInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/localClassInParameterInitializer.kt rename to backend.native/tests/external/codegen/box/localClasses/localClassInParameterInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/localDataClass.kt b/backend.native/tests/external/codegen/box/localClasses/localDataClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/localDataClass.kt rename to backend.native/tests/external/codegen/box/localClasses/localDataClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/localExtendsInnerAndReferencesOuterMember.kt b/backend.native/tests/external/codegen/box/localClasses/localExtendsInnerAndReferencesOuterMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/localExtendsInnerAndReferencesOuterMember.kt rename to backend.native/tests/external/codegen/box/localClasses/localExtendsInnerAndReferencesOuterMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/noclosure.kt b/backend.native/tests/external/codegen/box/localClasses/noclosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/noclosure.kt rename to backend.native/tests/external/codegen/box/localClasses/noclosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/object.kt b/backend.native/tests/external/codegen/box/localClasses/object.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/object.kt rename to backend.native/tests/external/codegen/box/localClasses/object.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/ownClosureOfInnerLocalClass.kt b/backend.native/tests/external/codegen/box/localClasses/ownClosureOfInnerLocalClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/ownClosureOfInnerLocalClass.kt rename to backend.native/tests/external/codegen/box/localClasses/ownClosureOfInnerLocalClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/localClasses/withclosure.kt b/backend.native/tests/external/codegen/box/localClasses/withclosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/localClasses/withclosure.kt rename to backend.native/tests/external/codegen/box/localClasses/withclosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/mangling/field.kt b/backend.native/tests/external/codegen/box/mangling/field.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/mangling/field.kt rename to backend.native/tests/external/codegen/box/mangling/field.kt diff --git a/backend.native/tests/external/codegen/blackbox/mangling/fun.kt b/backend.native/tests/external/codegen/box/mangling/fun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/mangling/fun.kt rename to backend.native/tests/external/codegen/box/mangling/fun.kt diff --git a/backend.native/tests/external/codegen/blackbox/mangling/internalOverride.kt b/backend.native/tests/external/codegen/box/mangling/internalOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/mangling/internalOverride.kt rename to backend.native/tests/external/codegen/box/mangling/internalOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/mangling/internalOverrideSuperCall.kt b/backend.native/tests/external/codegen/box/mangling/internalOverrideSuperCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/mangling/internalOverrideSuperCall.kt rename to backend.native/tests/external/codegen/box/mangling/internalOverrideSuperCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/mangling/noOverrideWithJava.kt b/backend.native/tests/external/codegen/box/mangling/noOverrideWithJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/mangling/noOverrideWithJava.kt rename to backend.native/tests/external/codegen/box/mangling/noOverrideWithJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/mangling/publicOverride.kt b/backend.native/tests/external/codegen/box/mangling/publicOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/mangling/publicOverride.kt rename to backend.native/tests/external/codegen/box/mangling/publicOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/mangling/publicOverrideSuperCall.kt b/backend.native/tests/external/codegen/box/mangling/publicOverrideSuperCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/mangling/publicOverrideSuperCall.kt rename to backend.native/tests/external/codegen/box/mangling/publicOverrideSuperCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/ComplexInitializer.kt b/backend.native/tests/external/codegen/box/multiDecl/ComplexInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/ComplexInitializer.kt rename to backend.native/tests/external/codegen/box/multiDecl/ComplexInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/SimpleVals.kt b/backend.native/tests/external/codegen/box/multiDecl/SimpleVals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/SimpleVals.kt rename to backend.native/tests/external/codegen/box/multiDecl/SimpleVals.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/SimpleValsExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/SimpleValsExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/SimpleValsExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/SimpleValsExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/SimpleVarsExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/SimpleVarsExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/SimpleVarsExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/SimpleVarsExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/UnderscoreNames.kt b/backend.native/tests/external/codegen/box/multiDecl/UnderscoreNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/UnderscoreNames.kt rename to backend.native/tests/external/codegen/box/multiDecl/UnderscoreNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/ValCapturedInFunctionLiteral.kt b/backend.native/tests/external/codegen/box/multiDecl/ValCapturedInFunctionLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/ValCapturedInFunctionLiteral.kt rename to backend.native/tests/external/codegen/box/multiDecl/ValCapturedInFunctionLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/ValCapturedInLocalFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/ValCapturedInLocalFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/ValCapturedInLocalFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/ValCapturedInLocalFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/ValCapturedInObjectLiteral.kt b/backend.native/tests/external/codegen/box/multiDecl/ValCapturedInObjectLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/ValCapturedInObjectLiteral.kt rename to backend.native/tests/external/codegen/box/multiDecl/ValCapturedInObjectLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/VarCapturedInFunctionLiteral.kt b/backend.native/tests/external/codegen/box/multiDecl/VarCapturedInFunctionLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/VarCapturedInFunctionLiteral.kt rename to backend.native/tests/external/codegen/box/multiDecl/VarCapturedInFunctionLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/VarCapturedInLocalFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/VarCapturedInLocalFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/VarCapturedInLocalFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/VarCapturedInLocalFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/VarCapturedInObjectLiteral.kt b/backend.native/tests/external/codegen/box/multiDecl/VarCapturedInObjectLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/VarCapturedInObjectLiteral.kt rename to backend.native/tests/external/codegen/box/multiDecl/VarCapturedInObjectLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/component.kt b/backend.native/tests/external/codegen/box/multiDecl/component.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/component.kt rename to backend.native/tests/external/codegen/box/multiDecl/component.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclFor.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclFor.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/MultiDeclForValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/MultiDeclForValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forIterator/longIterator/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclFor.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclFor.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/MultiDeclForValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/MultiDeclForValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/UnderscoreNames.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/UnderscoreNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/UnderscoreNames.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/UnderscoreNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/UnderscoreNamesDontCallComponent.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/UnderscoreNamesDontCallComponent.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/UnderscoreNamesDontCallComponent.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/UnderscoreNamesDontCallComponent.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclFor.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclFor.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/MultiDeclForValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/MultiDeclForValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeTo/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclFor.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclFor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclFor.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclFor.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/MultiDeclForValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/explicitRangeToWithDot/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/int/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentExtensionsValCaptured.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentExtensionsValCaptured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentExtensionsValCaptured.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentMemberExtensions.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentMemberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentMemberExtensions.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentMemberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt b/backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/forRange/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt rename to backend.native/tests/external/codegen/box/multiDecl/forRange/long/MultiDeclForComponentMemberExtensionsInExtensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/kt9828_hashMap.kt b/backend.native/tests/external/codegen/box/multiDecl/kt9828_hashMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/kt9828_hashMap.kt rename to backend.native/tests/external/codegen/box/multiDecl/kt9828_hashMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/multiDecl/returnInElvis.kt b/backend.native/tests/external/codegen/box/multiDecl/returnInElvis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/multiDecl/returnInElvis.kt rename to backend.native/tests/external/codegen/box/multiDecl/returnInElvis.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/callMultifileClassMemberFromOtherPackage.kt b/backend.native/tests/external/codegen/box/multifileClasses/callMultifileClassMemberFromOtherPackage.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/callMultifileClassMemberFromOtherPackage.kt rename to backend.native/tests/external/codegen/box/multifileClasses/callMultifileClassMemberFromOtherPackage.kt index 7cd4b20c224..7d110366025 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/callMultifileClassMemberFromOtherPackage.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/callMultifileClassMemberFromOtherPackage.kt @@ -1,5 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: box.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/callsToMultifileClassFromOtherPackage.kt b/backend.native/tests/external/codegen/box/multifileClasses/callsToMultifileClassFromOtherPackage.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/callsToMultifileClassFromOtherPackage.kt rename to backend.native/tests/external/codegen/box/multifileClasses/callsToMultifileClassFromOtherPackage.kt index ab7a0ca4c7b..0dec11f9a46 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/callsToMultifileClassFromOtherPackage.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/callsToMultifileClassFromOtherPackage.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: 1.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/constPropertyReferenceFromMultifileClass.kt b/backend.native/tests/external/codegen/box/multifileClasses/constPropertyReferenceFromMultifileClass.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/constPropertyReferenceFromMultifileClass.kt rename to backend.native/tests/external/codegen/box/multifileClasses/constPropertyReferenceFromMultifileClass.kt index 42325c35b6b..95b5b84301c 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/constPropertyReferenceFromMultifileClass.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/constPropertyReferenceFromMultifileClass.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_REFLECT // FILE: 1.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/inlineMultifileClassMemberFromOtherPackage.kt b/backend.native/tests/external/codegen/box/multifileClasses/inlineMultifileClassMemberFromOtherPackage.kt similarity index 75% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/inlineMultifileClassMemberFromOtherPackage.kt rename to backend.native/tests/external/codegen/box/multifileClasses/inlineMultifileClassMemberFromOtherPackage.kt index 9c4f2986c24..8631b9ac874 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/inlineMultifileClassMemberFromOtherPackage.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/inlineMultifileClassMemberFromOtherPackage.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: box.kt diff --git a/backend.native/tests/external/codegen/box/multifileClasses/kt16077.kt b/backend.native/tests/external/codegen/box/multifileClasses/kt16077.kt new file mode 100644 index 00000000000..3639809c63d --- /dev/null +++ b/backend.native/tests/external/codegen/box/multifileClasses/kt16077.kt @@ -0,0 +1,11 @@ +// TARGET_BACKEND: JVM +// WITH_RUNTIME + +@file:JvmMultifileClass + +class A { + private var r: String = "fail" + public fun getR(): String = "OK" +} + +fun box() = A().getR() \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassPartsInitialization.kt b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassPartsInitialization.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassPartsInitialization.kt rename to backend.native/tests/external/codegen/box/multifileClasses/multifileClassPartsInitialization.kt index 9330fc66d66..e13c83cb457 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassPartsInitialization.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassPartsInitialization.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: box.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWith2Files.kt b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassWith2Files.kt similarity index 78% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWith2Files.kt rename to backend.native/tests/external/codegen/box/multifileClasses/multifileClassWith2Files.kt index 0f37394e747..5d69607f932 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWith2Files.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassWith2Files.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: Baz.java diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWithCrossCall.kt b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassWithCrossCall.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWithCrossCall.kt rename to backend.native/tests/external/codegen/box/multifileClasses/multifileClassWithCrossCall.kt index 97c9fc9e7c5..6c33e3a4c96 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWithCrossCall.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassWithCrossCall.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: Baz.java diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWithPrivate.kt b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassWithPrivate.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWithPrivate.kt rename to backend.native/tests/external/codegen/box/multifileClasses/multifileClassWithPrivate.kt index 2031d15fa4e..76826d27c68 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/multifileClassWithPrivate.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/multifileClassWithPrivate.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: Baz.java diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToFun.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToFun.kt similarity index 64% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToFun.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToFun.kt index 02986a391d6..8ca3d4a6111 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToFun.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToFun.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -13,4 +11,4 @@ fun box(): String = (::ok)() @file:[JvmName("MultifileClass") JvmMultifileClass] package a -fun ok() = "OK" \ No newline at end of file +fun ok() = "OK" diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToInternalValInline.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToInternalValInline.kt similarity index 69% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToInternalValInline.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToInternalValInline.kt index 5dcf224f877..40ecbe291ec 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToInternalValInline.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToInternalValInline.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -16,4 +14,4 @@ package a internal val ok = run { "OK" } internal inline fun okInline() = - ::ok.get() \ No newline at end of file + ::ok.get() diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToPrivateVal.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToPrivateVal.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToPrivateVal.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToPrivateVal.kt index 90d6548b41a..2508df7124f 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToPrivateVal.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToPrivateVal.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -17,4 +15,4 @@ private val ok = run { "OK" } object OK { val okRef = ::ok -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToVal.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToVal.kt similarity index 63% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToVal.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToVal.kt index 957059f5e0c..97ac95dc8e3 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/callableRefToVal.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/callableRefToVal.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -13,4 +11,4 @@ fun box(): String = ::OK.get() @file:[JvmName("MultifileClass") JvmMultifileClass] package a -val OK = run { "OK" } \ No newline at end of file +val OK = run { "OK" } diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/calls.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/calls.kt similarity index 82% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/calls.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/calls.kt index 3aa873305fe..cc6e1229fb0 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/calls.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/calls.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: Baz.java diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/deferredStaticInitialization.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/deferredStaticInitialization.kt similarity index 81% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/deferredStaticInitialization.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/deferredStaticInitialization.kt index f337388e48f..4e1bb13453b 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/deferredStaticInitialization.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/deferredStaticInitialization.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -39,4 +37,4 @@ val X1: Nothing = package a val X2: Nothing = - throw AssertionError("X2 should not be initialized") \ No newline at end of file + throw AssertionError("X2 should not be initialized") diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/delegatedVal.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/delegatedVal.kt similarity index 60% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/delegatedVal.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/delegatedVal.kt index c5f8e05ae05..0cb65cbb05b 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/delegatedVal.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/delegatedVal.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -13,4 +11,4 @@ fun box(): String = OK @file:[JvmName("MultifileClass") JvmMultifileClass] package a -val OK: String by lazy { "OK" } \ No newline at end of file +val OK: String by lazy { "OK" } diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/initializePrivateVal.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/initializePrivateVal.kt similarity index 67% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/initializePrivateVal.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/initializePrivateVal.kt index 3e6fc5d5367..e0b5cd48c21 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/initializePrivateVal.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/initializePrivateVal.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -15,4 +13,4 @@ package a private val OK = run { "OK" } -fun ok() = OK \ No newline at end of file +fun ok() = OK diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/initializePublicVal.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/initializePublicVal.kt similarity index 69% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/initializePublicVal.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/initializePublicVal.kt index 4eea8f704f6..17dbf683865 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/initializePublicVal.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/initializePublicVal.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/overlappingFuns.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/overlappingFuns.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/overlappingFuns.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/overlappingFuns.kt index 8c37f0c014c..1265f6b8069 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/overlappingFuns.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/overlappingFuns.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/overlappingVals.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/overlappingVals.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/overlappingVals.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/overlappingVals.kt index 40a4f14a0c4..877336e30b7 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/overlappingVals.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/overlappingVals.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valAccessFromInlineFunCalledFromJava.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/valAccessFromInlineFunCalledFromJava.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valAccessFromInlineFunCalledFromJava.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/valAccessFromInlineFunCalledFromJava.kt index 4720dcc5287..dd69ed228d3 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valAccessFromInlineFunCalledFromJava.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/valAccessFromInlineFunCalledFromJava.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -27,4 +25,4 @@ public class J { public static String ok() { return MC.ok(); } -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valAccessFromInlinedToDifferentPackage.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/valAccessFromInlinedToDifferentPackage.kt similarity index 75% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valAccessFromInlinedToDifferentPackage.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/valAccessFromInlinedToDifferentPackage.kt index 8946cb730ba..ca6abf2a25a 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valAccessFromInlinedToDifferentPackage.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/valAccessFromInlinedToDifferentPackage.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt @@ -19,4 +17,4 @@ const val K = "K" inline fun ok(block: () -> Unit): String { block() return O + K -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valWithAccessor.kt b/backend.native/tests/external/codegen/box/multifileClasses/optimized/valWithAccessor.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valWithAccessor.kt rename to backend.native/tests/external/codegen/box/multifileClasses/optimized/valWithAccessor.kt index 8be860d7253..3fe62893d0f 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/optimized/valWithAccessor.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/optimized/valWithAccessor.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS // FILE: box.kt diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/privateConstVal.kt b/backend.native/tests/external/codegen/box/multifileClasses/privateConstVal.kt similarity index 67% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/privateConstVal.kt rename to backend.native/tests/external/codegen/box/multifileClasses/privateConstVal.kt index 141fdc945f5..1e6eb93207f 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/privateConstVal.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/privateConstVal.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: foo.kt @file:JvmName("Util") @@ -23,4 +21,4 @@ fun bar() = x // FILE: test.kt package test -fun box(): String = foo() + bar() \ No newline at end of file +fun box(): String = foo() + bar() diff --git a/backend.native/tests/external/codegen/blackbox/multifileClasses/samePartNameDifferentFacades.kt b/backend.native/tests/external/codegen/box/multifileClasses/samePartNameDifferentFacades.kt similarity index 73% rename from backend.native/tests/external/codegen/blackbox/multifileClasses/samePartNameDifferentFacades.kt rename to backend.native/tests/external/codegen/box/multifileClasses/samePartNameDifferentFacades.kt index 73abfb3602b..eeb69d5d451 100644 --- a/backend.native/tests/external/codegen/blackbox/multifileClasses/samePartNameDifferentFacades.kt +++ b/backend.native/tests/external/codegen/box/multifileClasses/samePartNameDifferentFacades.kt @@ -1,6 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - +// TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: 1/part.kt diff --git a/backend.native/tests/external/codegen/blackbox/nonLocalReturns/kt6895.kt b/backend.native/tests/external/codegen/box/nonLocalReturns/kt6895.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/nonLocalReturns/kt6895.kt rename to backend.native/tests/external/codegen/box/nonLocalReturns/kt6895.kt diff --git a/backend.native/tests/external/codegen/blackbox/nonLocalReturns/kt9644let.kt b/backend.native/tests/external/codegen/box/nonLocalReturns/kt9644let.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/nonLocalReturns/kt9644let.kt rename to backend.native/tests/external/codegen/box/nonLocalReturns/kt9644let.kt diff --git a/backend.native/tests/external/codegen/blackbox/nonLocalReturns/use.kt b/backend.native/tests/external/codegen/box/nonLocalReturns/use.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/nonLocalReturns/use.kt rename to backend.native/tests/external/codegen/box/nonLocalReturns/use.kt diff --git a/backend.native/tests/external/codegen/blackbox/nonLocalReturns/useWithException.kt b/backend.native/tests/external/codegen/box/nonLocalReturns/useWithException.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/nonLocalReturns/useWithException.kt rename to backend.native/tests/external/codegen/box/nonLocalReturns/useWithException.kt diff --git a/backend.native/tests/external/codegen/blackbox/objectIntrinsics/objects.kt b/backend.native/tests/external/codegen/box/objectIntrinsics/objects.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objectIntrinsics/objects.kt rename to backend.native/tests/external/codegen/box/objectIntrinsics/objects.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/anonymousObjectPropertyInitialization.kt b/backend.native/tests/external/codegen/box/objects/anonymousObjectPropertyInitialization.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/anonymousObjectPropertyInitialization.kt rename to backend.native/tests/external/codegen/box/objects/anonymousObjectPropertyInitialization.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/classCallsProtectedInheritedByCompanion.kt b/backend.native/tests/external/codegen/box/objects/classCallsProtectedInheritedByCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/classCallsProtectedInheritedByCompanion.kt rename to backend.native/tests/external/codegen/box/objects/classCallsProtectedInheritedByCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/flist.kt b/backend.native/tests/external/codegen/box/objects/flist.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/flist.kt rename to backend.native/tests/external/codegen/box/objects/flist.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/initializationOrder.kt b/backend.native/tests/external/codegen/box/objects/initializationOrder.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/initializationOrder.kt rename to backend.native/tests/external/codegen/box/objects/initializationOrder.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt1047.kt b/backend.native/tests/external/codegen/box/objects/kt1047.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt1047.kt rename to backend.native/tests/external/codegen/box/objects/kt1047.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt11117.kt b/backend.native/tests/external/codegen/box/objects/kt11117.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt11117.kt rename to backend.native/tests/external/codegen/box/objects/kt11117.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt1136.kt b/backend.native/tests/external/codegen/box/objects/kt1136.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt1136.kt rename to backend.native/tests/external/codegen/box/objects/kt1136.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt1186.kt b/backend.native/tests/external/codegen/box/objects/kt1186.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt1186.kt rename to backend.native/tests/external/codegen/box/objects/kt1186.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt1600.kt b/backend.native/tests/external/codegen/box/objects/kt1600.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt1600.kt rename to backend.native/tests/external/codegen/box/objects/kt1600.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt1737.kt b/backend.native/tests/external/codegen/box/objects/kt1737.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt1737.kt rename to backend.native/tests/external/codegen/box/objects/kt1737.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt2398.kt b/backend.native/tests/external/codegen/box/objects/kt2398.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt2398.kt rename to backend.native/tests/external/codegen/box/objects/kt2398.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt2663.kt b/backend.native/tests/external/codegen/box/objects/kt2663.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt2663.kt rename to backend.native/tests/external/codegen/box/objects/kt2663.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt2663_2.kt b/backend.native/tests/external/codegen/box/objects/kt2663_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt2663_2.kt rename to backend.native/tests/external/codegen/box/objects/kt2663_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt2675.kt b/backend.native/tests/external/codegen/box/objects/kt2675.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt2675.kt rename to backend.native/tests/external/codegen/box/objects/kt2675.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt2719.kt b/backend.native/tests/external/codegen/box/objects/kt2719.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt2719.kt rename to backend.native/tests/external/codegen/box/objects/kt2719.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt2822.kt b/backend.native/tests/external/codegen/box/objects/kt2822.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt2822.kt rename to backend.native/tests/external/codegen/box/objects/kt2822.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt3238.kt b/backend.native/tests/external/codegen/box/objects/kt3238.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt3238.kt rename to backend.native/tests/external/codegen/box/objects/kt3238.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt3684.kt b/backend.native/tests/external/codegen/box/objects/kt3684.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt3684.kt rename to backend.native/tests/external/codegen/box/objects/kt3684.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt4086.kt b/backend.native/tests/external/codegen/box/objects/kt4086.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt4086.kt rename to backend.native/tests/external/codegen/box/objects/kt4086.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt535.kt b/backend.native/tests/external/codegen/box/objects/kt535.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt535.kt rename to backend.native/tests/external/codegen/box/objects/kt535.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt560.kt b/backend.native/tests/external/codegen/box/objects/kt560.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt560.kt rename to backend.native/tests/external/codegen/box/objects/kt560.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/kt694.kt b/backend.native/tests/external/codegen/box/objects/kt694.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/kt694.kt rename to backend.native/tests/external/codegen/box/objects/kt694.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/localFunctionInObjectInitializer_kt4516.kt b/backend.native/tests/external/codegen/box/objects/localFunctionInObjectInitializer_kt4516.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/localFunctionInObjectInitializer_kt4516.kt rename to backend.native/tests/external/codegen/box/objects/localFunctionInObjectInitializer_kt4516.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/methodOnObject.kt b/backend.native/tests/external/codegen/box/objects/methodOnObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/methodOnObject.kt rename to backend.native/tests/external/codegen/box/objects/methodOnObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/nestedDerivedClassCallsProtectedFromCompanion.kt b/backend.native/tests/external/codegen/box/objects/nestedDerivedClassCallsProtectedFromCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/nestedDerivedClassCallsProtectedFromCompanion.kt rename to backend.native/tests/external/codegen/box/objects/nestedDerivedClassCallsProtectedFromCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/nestedObjectWithSuperclass.kt b/backend.native/tests/external/codegen/box/objects/nestedObjectWithSuperclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/nestedObjectWithSuperclass.kt rename to backend.native/tests/external/codegen/box/objects/nestedObjectWithSuperclass.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectExtendsInnerAndReferencesOuterMember.kt b/backend.native/tests/external/codegen/box/objects/objectExtendsInnerAndReferencesOuterMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectExtendsInnerAndReferencesOuterMember.kt rename to backend.native/tests/external/codegen/box/objects/objectExtendsInnerAndReferencesOuterMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectInLocalAnonymousObject.kt b/backend.native/tests/external/codegen/box/objects/objectInLocalAnonymousObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectInLocalAnonymousObject.kt rename to backend.native/tests/external/codegen/box/objects/objectInLocalAnonymousObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectInitialization_kt5523.kt b/backend.native/tests/external/codegen/box/objects/objectInitialization_kt5523.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectInitialization_kt5523.kt rename to backend.native/tests/external/codegen/box/objects/objectInitialization_kt5523.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectLiteral.kt b/backend.native/tests/external/codegen/box/objects/objectLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectLiteral.kt rename to backend.native/tests/external/codegen/box/objects/objectLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectLiteralInClosure.kt b/backend.native/tests/external/codegen/box/objects/objectLiteralInClosure.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectLiteralInClosure.kt rename to backend.native/tests/external/codegen/box/objects/objectLiteralInClosure.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectVsClassInitialization_kt5291.kt b/backend.native/tests/external/codegen/box/objects/objectVsClassInitialization_kt5291.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectVsClassInitialization_kt5291.kt rename to backend.native/tests/external/codegen/box/objects/objectVsClassInitialization_kt5291.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectWithSuperclass.kt b/backend.native/tests/external/codegen/box/objects/objectWithSuperclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectWithSuperclass.kt rename to backend.native/tests/external/codegen/box/objects/objectWithSuperclass.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/objectWithSuperclassAndTrait.kt b/backend.native/tests/external/codegen/box/objects/objectWithSuperclassAndTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/objectWithSuperclassAndTrait.kt rename to backend.native/tests/external/codegen/box/objects/objectWithSuperclassAndTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/privateExtensionFromInitializer_kt4543.kt b/backend.native/tests/external/codegen/box/objects/privateExtensionFromInitializer_kt4543.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/privateExtensionFromInitializer_kt4543.kt rename to backend.native/tests/external/codegen/box/objects/privateExtensionFromInitializer_kt4543.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/privateFunctionFromClosureInInitializer_kt5582.kt b/backend.native/tests/external/codegen/box/objects/privateFunctionFromClosureInInitializer_kt5582.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/privateFunctionFromClosureInInitializer_kt5582.kt rename to backend.native/tests/external/codegen/box/objects/privateFunctionFromClosureInInitializer_kt5582.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/receiverInConstructor.kt b/backend.native/tests/external/codegen/box/objects/receiverInConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/receiverInConstructor.kt rename to backend.native/tests/external/codegen/box/objects/receiverInConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/safeAccess.kt b/backend.native/tests/external/codegen/box/objects/safeAccess.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/safeAccess.kt rename to backend.native/tests/external/codegen/box/objects/safeAccess.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/simpleObject.kt b/backend.native/tests/external/codegen/box/objects/simpleObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/simpleObject.kt rename to backend.native/tests/external/codegen/box/objects/simpleObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/thisInConstructor.kt b/backend.native/tests/external/codegen/box/objects/thisInConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/thisInConstructor.kt rename to backend.native/tests/external/codegen/box/objects/thisInConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/useAnonymousObjectAsIterator.kt b/backend.native/tests/external/codegen/box/objects/useAnonymousObjectAsIterator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/useAnonymousObjectAsIterator.kt rename to backend.native/tests/external/codegen/box/objects/useAnonymousObjectAsIterator.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/useImportedMember.kt b/backend.native/tests/external/codegen/box/objects/useImportedMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/useImportedMember.kt rename to backend.native/tests/external/codegen/box/objects/useImportedMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/objects/useImportedMemberFromCompanion.kt b/backend.native/tests/external/codegen/box/objects/useImportedMemberFromCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/objects/useImportedMemberFromCompanion.kt rename to backend.native/tests/external/codegen/box/objects/useImportedMemberFromCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/annotatedAssignment.kt b/backend.native/tests/external/codegen/box/operatorConventions/annotatedAssignment.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/annotatedAssignment.kt rename to backend.native/tests/external/codegen/box/operatorConventions/annotatedAssignment.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/assignmentOperations.kt b/backend.native/tests/external/codegen/box/operatorConventions/assignmentOperations.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/assignmentOperations.kt rename to backend.native/tests/external/codegen/box/operatorConventions/assignmentOperations.kt diff --git a/backend.native/tests/external/codegen/box/operatorConventions/augmentedAssignmentInInitializer.kt b/backend.native/tests/external/codegen/box/operatorConventions/augmentedAssignmentInInitializer.kt new file mode 100644 index 00000000000..4592c96c7ae --- /dev/null +++ b/backend.native/tests/external/codegen/box/operatorConventions/augmentedAssignmentInInitializer.kt @@ -0,0 +1,45 @@ +abstract class A { + val b = B("O") + + open val c: B + + val d: B + get() = field + + var e: String + get() = field + + init { + c = B("O") + d = B("O") + e = "O" + + b += "," + c += "." + d += ";" + e += "|" + } +} + +class B(var value: String) { + operator fun plusAssign(o: String) { + value += o + } +} + +class C : A() { + init { + b += "K" + c += "K" + d += "K" + e += "K" + } +} + +fun box(): String { + val c = C() + val result = "${c.b.value} ${c.c.value} ${c.d.value} ${c.e}" + if (result != "O,K O.K O;K O|K") return "fail: $result" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/augmentedAssignmentWithArrayLHS.kt b/backend.native/tests/external/codegen/box/operatorConventions/augmentedAssignmentWithArrayLHS.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/augmentedAssignmentWithArrayLHS.kt rename to backend.native/tests/external/codegen/box/operatorConventions/augmentedAssignmentWithArrayLHS.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/boolean.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/boolean.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/boolean.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/boolean.kt index 3e347de0eef..a8a367c3354 100644 --- a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/boolean.kt +++ b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/boolean.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun checkLess(x: Boolean, y: Boolean) = when { x >= y -> "Fail $x >= $y" diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/comparable.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/comparable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/comparable.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/comparable.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/doubleInt.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/doubleInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/doubleInt.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/doubleInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/doubleLong.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/doubleLong.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/doubleLong.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/doubleLong.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/extensionArray.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/extensionArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/extensionArray.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/extensionArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/extensionObject.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/extensionObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/extensionObject.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/extensionObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/intDouble.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/intDouble.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/intDouble.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/intDouble.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/intLong.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/intLong.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/intLong.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/intLong.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/longDouble.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/longDouble.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/longDouble.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/longDouble.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/longInt.kt b/backend.native/tests/external/codegen/box/operatorConventions/compareTo/longInt.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/compareTo/longInt.kt rename to backend.native/tests/external/codegen/box/operatorConventions/compareTo/longInt.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/incDecOnObject.kt b/backend.native/tests/external/codegen/box/operatorConventions/incDecOnObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/incDecOnObject.kt rename to backend.native/tests/external/codegen/box/operatorConventions/incDecOnObject.kt diff --git a/backend.native/tests/external/codegen/box/operatorConventions/infixFunctionOverBuiltinMember.kt b/backend.native/tests/external/codegen/box/operatorConventions/infixFunctionOverBuiltinMember.kt new file mode 100644 index 00000000000..d4ec1d41d6a --- /dev/null +++ b/backend.native/tests/external/codegen/box/operatorConventions/infixFunctionOverBuiltinMember.kt @@ -0,0 +1,18 @@ +infix fun Int.rem(other: Int) = 10 +infix operator fun Int.minus(other: Int): Int = 20 + +fun box(): String { + val a = 5 rem 2 + if (a != 10) return "fail 1" + + val b = 5 minus 3 + if (b != 20) return "fail 2" + + val a1 = 5.rem(2) + if (a1 != 1) return "fail 3" + + val b2 = 5.minus(3) + if (b2 != 2) return "fail 4" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/kt14201.kt b/backend.native/tests/external/codegen/box/operatorConventions/kt14201.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/kt14201.kt rename to backend.native/tests/external/codegen/box/operatorConventions/kt14201.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/kt14201_2.kt b/backend.native/tests/external/codegen/box/operatorConventions/kt14201_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/kt14201_2.kt rename to backend.native/tests/external/codegen/box/operatorConventions/kt14201_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/kt4152.kt b/backend.native/tests/external/codegen/box/operatorConventions/kt4152.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/kt4152.kt rename to backend.native/tests/external/codegen/box/operatorConventions/kt4152.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/kt4987.kt b/backend.native/tests/external/codegen/box/operatorConventions/kt4987.kt similarity index 61% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/kt4987.kt rename to backend.native/tests/external/codegen/box/operatorConventions/kt4987.kt index a95cdb8b491..ed28874dbbc 100644 --- a/backend.native/tests/external/codegen/blackbox/operatorConventions/kt4987.kt +++ b/backend.native/tests/external/codegen/box/operatorConventions/kt4987.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - fun box(): String { operator fun Int?.inc() = (this ?: 0) + 1 var counter: Int? = null diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/nestedMaps.kt b/backend.native/tests/external/codegen/box/operatorConventions/nestedMaps.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/nestedMaps.kt rename to backend.native/tests/external/codegen/box/operatorConventions/nestedMaps.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/operatorSetLambda.kt b/backend.native/tests/external/codegen/box/operatorConventions/operatorSetLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/operatorSetLambda.kt rename to backend.native/tests/external/codegen/box/operatorConventions/operatorSetLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/overloadedSet.kt b/backend.native/tests/external/codegen/box/operatorConventions/overloadedSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/overloadedSet.kt rename to backend.native/tests/external/codegen/box/operatorConventions/overloadedSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt b/backend.native/tests/external/codegen/box/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt rename to backend.native/tests/external/codegen/box/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt diff --git a/backend.native/tests/external/codegen/box/operatorConventions/plusExplicit.kt b/backend.native/tests/external/codegen/box/operatorConventions/plusExplicit.kt new file mode 100644 index 00000000000..8d45ed1b931 --- /dev/null +++ b/backend.native/tests/external/codegen/box/operatorConventions/plusExplicit.kt @@ -0,0 +1,29 @@ +// WITH_RUNTIME + +fun bar1(): String { + val l: List = listOf("O") + val s = l[0].plus("K") + return s +} + +fun bar2(): String { + val l: List = listOf("O") + val s = l[0]?.plus("K") + return s!! +} + +fun bar3(): String { + val l: List = listOf("O") + with(l[0]) { + return plus("K") + } + return "fail" +} + +fun box(): String { + if (bar1() != "OK") return "fail 1" + if (bar2() != "OK") return "fail 2" + if (bar3() != "OK") return "fail 3" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/remAssignmentOperation.kt b/backend.native/tests/external/codegen/box/operatorConventions/remAssignmentOperation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/remAssignmentOperation.kt rename to backend.native/tests/external/codegen/box/operatorConventions/remAssignmentOperation.kt diff --git a/backend.native/tests/external/codegen/blackbox/operatorConventions/remOverModOperation.kt b/backend.native/tests/external/codegen/box/operatorConventions/remOverModOperation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/operatorConventions/remOverModOperation.kt rename to backend.native/tests/external/codegen/box/operatorConventions/remOverModOperation.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/boxPrimitiveTypeInClinit.kt b/backend.native/tests/external/codegen/box/package/boxPrimitiveTypeInClinit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/boxPrimitiveTypeInClinit.kt rename to backend.native/tests/external/codegen/box/package/boxPrimitiveTypeInClinit.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/checkCast.kt b/backend.native/tests/external/codegen/box/package/checkCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/checkCast.kt rename to backend.native/tests/external/codegen/box/package/checkCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/incrementProperty.kt b/backend.native/tests/external/codegen/box/package/incrementProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/incrementProperty.kt rename to backend.native/tests/external/codegen/box/package/incrementProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/initializationOrder.kt b/backend.native/tests/external/codegen/box/package/initializationOrder.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/initializationOrder.kt rename to backend.native/tests/external/codegen/box/package/initializationOrder.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/invokespecial.kt b/backend.native/tests/external/codegen/box/package/invokespecial.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/package/invokespecial.kt rename to backend.native/tests/external/codegen/box/package/invokespecial.kt index fd15e17ff4d..b0dfae5ae86 100644 --- a/backend.native/tests/external/codegen/blackbox/package/invokespecial.kt +++ b/backend.native/tests/external/codegen/box/package/invokespecial.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // KT-2202 Wrong instruction for invoke private setter diff --git a/backend.native/tests/external/codegen/blackbox/package/mainInFiles.kt b/backend.native/tests/external/codegen/box/package/mainInFiles.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/mainInFiles.kt rename to backend.native/tests/external/codegen/box/package/mainInFiles.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/nullablePrimitiveNoFieldInitializer.kt b/backend.native/tests/external/codegen/box/package/nullablePrimitiveNoFieldInitializer.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/nullablePrimitiveNoFieldInitializer.kt rename to backend.native/tests/external/codegen/box/package/nullablePrimitiveNoFieldInitializer.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/packageLocalClassNotImportedWithDefaultImport.kt b/backend.native/tests/external/codegen/box/package/packageLocalClassNotImportedWithDefaultImport.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/packageLocalClassNotImportedWithDefaultImport.kt rename to backend.native/tests/external/codegen/box/package/packageLocalClassNotImportedWithDefaultImport.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/packageQualifiedMethod.kt b/backend.native/tests/external/codegen/box/package/packageQualifiedMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/packageQualifiedMethod.kt rename to backend.native/tests/external/codegen/box/package/packageQualifiedMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/package/privateTopLevelPropAndVarInInner.kt b/backend.native/tests/external/codegen/box/package/privateTopLevelPropAndVarInInner.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/package/privateTopLevelPropAndVarInInner.kt rename to backend.native/tests/external/codegen/box/package/privateTopLevelPropAndVarInInner.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/assign.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/assign.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/assign.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/assign.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/compareTo.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/compareTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/compareTo.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/compareTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/dec.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/dec.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/dec.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/dec.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/div.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/div.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/div.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/div.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/equals.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/equals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/equals.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/equals.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/hashCode.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/hashCode.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/hashCode.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/hashCode.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/identityEquals.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/identityEquals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/identityEquals.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/identityEquals.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/inc.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/inc.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/inc.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/inc.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/minus.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/minus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/minus.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/minus.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/mod.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/mod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/mod.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/mod.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/not.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/not.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/not.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/not.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/notEquals.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/notEquals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/notEquals.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/notEquals.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/plus.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/plus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/plus.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/plus.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/plusAssign.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/plusAssign.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/plusAssign.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/plusAssign.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/rangeTo.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/rangeTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/rangeTo.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/rangeTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/times.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/times.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/times.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/times.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/toShort.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/toShort.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/toShort.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/toShort.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/toString.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/toString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/toString.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/toString.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/unaryMinus.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/unaryMinus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/unaryMinus.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/unaryMinus.kt diff --git a/backend.native/tests/external/codegen/blackbox/platformTypes/primitives/unaryPlus.kt b/backend.native/tests/external/codegen/box/platformTypes/primitives/unaryPlus.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/platformTypes/primitives/unaryPlus.kt rename to backend.native/tests/external/codegen/box/platformTypes/primitives/unaryPlus.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/comparisonWithNaN.kt b/backend.native/tests/external/codegen/box/primitiveTypes/comparisonWithNaN.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/comparisonWithNaN.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/comparisonWithNaN.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/comparisonWithNullCallsFun.kt b/backend.native/tests/external/codegen/box/primitiveTypes/comparisonWithNullCallsFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/comparisonWithNullCallsFun.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/comparisonWithNullCallsFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/ea35963.kt b/backend.native/tests/external/codegen/box/primitiveTypes/ea35963.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/ea35963.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/ea35963.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/equalsHashCodeToString.kt b/backend.native/tests/external/codegen/box/primitiveTypes/equalsHashCodeToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/equalsHashCodeToString.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/equalsHashCodeToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/incrementByteCharShort.kt b/backend.native/tests/external/codegen/box/primitiveTypes/incrementByteCharShort.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/incrementByteCharShort.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/incrementByteCharShort.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/intLiteralIsNotNull.kt b/backend.native/tests/external/codegen/box/primitiveTypes/intLiteralIsNotNull.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/intLiteralIsNotNull.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/intLiteralIsNotNull.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1054.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt1054.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1054.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt1054.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1055.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt1055.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1055.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt1055.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1093.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt1093.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1093.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt1093.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt13023.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt13023.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt13023.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt13023.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt14868.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt14868.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt14868.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt14868.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1508.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt1508.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1508.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt1508.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1634.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt1634.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt1634.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt1634.kt diff --git a/backend.native/tests/external/codegen/box/primitiveTypes/kt16732.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt16732.kt new file mode 100644 index 00000000000..8b58c6f402b --- /dev/null +++ b/backend.native/tests/external/codegen/box/primitiveTypes/kt16732.kt @@ -0,0 +1,15 @@ +//WITH_RUNTIME + +fun valueFromDB(value: Any): Any { + return when (value) { + is Char -> value + is Number-> value.toChar() + is String -> value.single() + else -> error("Unexpected value of type Char: $value") + } +} + +fun box(): String { + valueFromDB(1) + return "" + valueFromDB("O") + valueFromDB("K") +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2251.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt2251.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2251.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt2251.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2269.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt2269.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2269.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt2269.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2275.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt2275.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2275.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt2275.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt239.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt239.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt239.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt239.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt242.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt242.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt242.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt242.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt243.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt243.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt243.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt243.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt248.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt248.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt248.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt248.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2768.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt2768.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2768.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt2768.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2794.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt2794.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt2794.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt2794.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3078.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt3078.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3078.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt3078.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3517.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt3517.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3517.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt3517.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3576.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt3576.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3576.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt3576.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3613.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt3613.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt3613.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt3613.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4097.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt4097.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4097.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt4097.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4098.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt4098.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4098.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt4098.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4210.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt4210.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4210.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt4210.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4251.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt4251.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt4251.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt4251.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt446.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt446.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt446.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt446.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt518.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt518.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt518.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt518.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt6590_identityEquals.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt6590_identityEquals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt6590_identityEquals.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt6590_identityEquals.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt665.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt665.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt665.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt665.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt684.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt684.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt684.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt684.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt711.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt711.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt711.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt711.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt737.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt737.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt737.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt737.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt752.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt752.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt752.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt752.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt753.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt753.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt753.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt753.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt756.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt756.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt756.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt756.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt757.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt757.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt757.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt757.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt828.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt828.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt828.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt828.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt877.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt877.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt877.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt877.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt882.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt882.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt882.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt882.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt887.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt887.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt887.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt887.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/kt935.kt b/backend.native/tests/external/codegen/box/primitiveTypes/kt935.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/kt935.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/kt935.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/nullAsNullableIntIsNull.kt b/backend.native/tests/external/codegen/box/primitiveTypes/nullAsNullableIntIsNull.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/nullAsNullableIntIsNull.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/nullAsNullableIntIsNull.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/nullableCharBoolean.kt b/backend.native/tests/external/codegen/box/primitiveTypes/nullableCharBoolean.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/nullableCharBoolean.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/nullableCharBoolean.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/number.kt b/backend.native/tests/external/codegen/box/primitiveTypes/number.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/number.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/number.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/rangeTo.kt b/backend.native/tests/external/codegen/box/primitiveTypes/rangeTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/rangeTo.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/rangeTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/substituteIntForGeneric.kt b/backend.native/tests/external/codegen/box/primitiveTypes/substituteIntForGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/substituteIntForGeneric.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/substituteIntForGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/primitiveTypes/unboxComparable.kt b/backend.native/tests/external/codegen/box/primitiveTypes/unboxComparable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/primitiveTypes/unboxComparable.kt rename to backend.native/tests/external/codegen/box/primitiveTypes/unboxComparable.kt diff --git a/backend.native/tests/external/codegen/blackbox/private/arrayConvention.kt b/backend.native/tests/external/codegen/box/private/arrayConvention.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/private/arrayConvention.kt rename to backend.native/tests/external/codegen/box/private/arrayConvention.kt diff --git a/backend.native/tests/external/codegen/blackbox/private/kt9855.kt b/backend.native/tests/external/codegen/box/private/kt9855.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/private/kt9855.kt rename to backend.native/tests/external/codegen/box/private/kt9855.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/base.kt b/backend.native/tests/external/codegen/box/privateConstructors/base.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/base.kt rename to backend.native/tests/external/codegen/box/privateConstructors/base.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/captured.kt b/backend.native/tests/external/codegen/box/privateConstructors/captured.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/captured.kt rename to backend.native/tests/external/codegen/box/privateConstructors/captured.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/companion.kt b/backend.native/tests/external/codegen/box/privateConstructors/companion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/companion.kt rename to backend.native/tests/external/codegen/box/privateConstructors/companion.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/inline.kt b/backend.native/tests/external/codegen/box/privateConstructors/inline.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/inline.kt rename to backend.native/tests/external/codegen/box/privateConstructors/inline.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/inner.kt b/backend.native/tests/external/codegen/box/privateConstructors/inner.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/inner.kt rename to backend.native/tests/external/codegen/box/privateConstructors/inner.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/kt4860.kt b/backend.native/tests/external/codegen/box/privateConstructors/kt4860.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/kt4860.kt rename to backend.native/tests/external/codegen/box/privateConstructors/kt4860.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/secondary.kt b/backend.native/tests/external/codegen/box/privateConstructors/secondary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/secondary.kt rename to backend.native/tests/external/codegen/box/privateConstructors/secondary.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/synthetic.kt b/backend.native/tests/external/codegen/box/privateConstructors/synthetic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/synthetic.kt rename to backend.native/tests/external/codegen/box/privateConstructors/synthetic.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/withArguments.kt b/backend.native/tests/external/codegen/box/privateConstructors/withArguments.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/withArguments.kt rename to backend.native/tests/external/codegen/box/privateConstructors/withArguments.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/withDefault.kt b/backend.native/tests/external/codegen/box/privateConstructors/withDefault.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/withDefault.kt rename to backend.native/tests/external/codegen/box/privateConstructors/withDefault.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/withLinkedClasses.kt b/backend.native/tests/external/codegen/box/privateConstructors/withLinkedClasses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/withLinkedClasses.kt rename to backend.native/tests/external/codegen/box/privateConstructors/withLinkedClasses.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/withLinkedObjects.kt b/backend.native/tests/external/codegen/box/privateConstructors/withLinkedObjects.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/withLinkedObjects.kt rename to backend.native/tests/external/codegen/box/privateConstructors/withLinkedObjects.kt diff --git a/backend.native/tests/external/codegen/blackbox/privateConstructors/withVarargs.kt b/backend.native/tests/external/codegen/box/privateConstructors/withVarargs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/privateConstructors/withVarargs.kt rename to backend.native/tests/external/codegen/box/privateConstructors/withVarargs.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/accessToPrivateProperty.kt b/backend.native/tests/external/codegen/box/properties/accessToPrivateProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/accessToPrivateProperty.kt rename to backend.native/tests/external/codegen/box/properties/accessToPrivateProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/accessToPrivateSetter.kt b/backend.native/tests/external/codegen/box/properties/accessToPrivateSetter.kt similarity index 87% rename from backend.native/tests/external/codegen/blackbox/properties/accessToPrivateSetter.kt rename to backend.native/tests/external/codegen/box/properties/accessToPrivateSetter.kt index adffd830622..881f5eae288 100644 --- a/backend.native/tests/external/codegen/blackbox/properties/accessToPrivateSetter.kt +++ b/backend.native/tests/external/codegen/box/properties/accessToPrivateSetter.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS class D { var foo = 1 diff --git a/backend.native/tests/external/codegen/blackbox/properties/augmentedAssignmentsAndIncrements.kt b/backend.native/tests/external/codegen/box/properties/augmentedAssignmentsAndIncrements.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/augmentedAssignmentsAndIncrements.kt rename to backend.native/tests/external/codegen/box/properties/augmentedAssignmentsAndIncrements.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/classArtificialFieldInsideNested.kt b/backend.native/tests/external/codegen/box/properties/classArtificialFieldInsideNested.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/classArtificialFieldInsideNested.kt rename to backend.native/tests/external/codegen/box/properties/classArtificialFieldInsideNested.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/classFieldInsideLambda.kt b/backend.native/tests/external/codegen/box/properties/classFieldInsideLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/classFieldInsideLambda.kt rename to backend.native/tests/external/codegen/box/properties/classFieldInsideLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/classFieldInsideLocalInSetter.kt b/backend.native/tests/external/codegen/box/properties/classFieldInsideLocalInSetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/classFieldInsideLocalInSetter.kt rename to backend.native/tests/external/codegen/box/properties/classFieldInsideLocalInSetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/classFieldInsideNested.kt b/backend.native/tests/external/codegen/box/properties/classFieldInsideNested.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/classFieldInsideNested.kt rename to backend.native/tests/external/codegen/box/properties/classFieldInsideNested.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/classObjectProperties.kt b/backend.native/tests/external/codegen/box/properties/classObjectProperties.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/classObjectProperties.kt rename to backend.native/tests/external/codegen/box/properties/classObjectProperties.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/classPrivateArtificialFieldInsideNested.kt b/backend.native/tests/external/codegen/box/properties/classPrivateArtificialFieldInsideNested.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/classPrivateArtificialFieldInsideNested.kt rename to backend.native/tests/external/codegen/box/properties/classPrivateArtificialFieldInsideNested.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/collectionSize.kt b/backend.native/tests/external/codegen/box/properties/collectionSize.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/collectionSize.kt rename to backend.native/tests/external/codegen/box/properties/collectionSize.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/commonPropertiesKJK.kt b/backend.native/tests/external/codegen/box/properties/commonPropertiesKJK.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/commonPropertiesKJK.kt rename to backend.native/tests/external/codegen/box/properties/commonPropertiesKJK.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/companionFieldInsideLambda.kt b/backend.native/tests/external/codegen/box/properties/companionFieldInsideLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/companionFieldInsideLambda.kt rename to backend.native/tests/external/codegen/box/properties/companionFieldInsideLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/companionObjectAccessor.kt b/backend.native/tests/external/codegen/box/properties/companionObjectAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/companionObjectAccessor.kt rename to backend.native/tests/external/codegen/box/properties/companionObjectAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/companionObjectPropertiesFromJava.kt b/backend.native/tests/external/codegen/box/properties/companionObjectPropertiesFromJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/companionObjectPropertiesFromJava.kt rename to backend.native/tests/external/codegen/box/properties/companionObjectPropertiesFromJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/companionPrivateField.kt b/backend.native/tests/external/codegen/box/properties/companionPrivateField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/companionPrivateField.kt rename to backend.native/tests/external/codegen/box/properties/companionPrivateField.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/companionPrivateFieldInsideLambda.kt b/backend.native/tests/external/codegen/box/properties/companionPrivateFieldInsideLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/companionPrivateFieldInsideLambda.kt rename to backend.native/tests/external/codegen/box/properties/companionPrivateFieldInsideLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/const/constFlags.kt b/backend.native/tests/external/codegen/box/properties/const/constFlags.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/const/constFlags.kt rename to backend.native/tests/external/codegen/box/properties/const/constFlags.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/const/constValInAnnotationDefault.kt b/backend.native/tests/external/codegen/box/properties/const/constValInAnnotationDefault.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/const/constValInAnnotationDefault.kt rename to backend.native/tests/external/codegen/box/properties/const/constValInAnnotationDefault.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/const/interfaceCompanion.kt b/backend.native/tests/external/codegen/box/properties/const/interfaceCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/const/interfaceCompanion.kt rename to backend.native/tests/external/codegen/box/properties/const/interfaceCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/field.kt b/backend.native/tests/external/codegen/box/properties/field.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/field.kt rename to backend.native/tests/external/codegen/box/properties/field.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/fieldInClass.kt b/backend.native/tests/external/codegen/box/properties/fieldInClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/fieldInClass.kt rename to backend.native/tests/external/codegen/box/properties/fieldInClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/fieldInsideField.kt b/backend.native/tests/external/codegen/box/properties/fieldInsideField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/fieldInsideField.kt rename to backend.native/tests/external/codegen/box/properties/fieldInsideField.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/fieldInsideLambda.kt b/backend.native/tests/external/codegen/box/properties/fieldInsideLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/fieldInsideLambda.kt rename to backend.native/tests/external/codegen/box/properties/fieldInsideLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/fieldInsideNested.kt b/backend.native/tests/external/codegen/box/properties/fieldInsideNested.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/fieldInsideNested.kt rename to backend.native/tests/external/codegen/box/properties/fieldInsideNested.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/fieldSimple.kt b/backend.native/tests/external/codegen/box/properties/fieldSimple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/fieldSimple.kt rename to backend.native/tests/external/codegen/box/properties/fieldSimple.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/generalAccess.kt b/backend.native/tests/external/codegen/box/properties/generalAccess.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/generalAccess.kt rename to backend.native/tests/external/codegen/box/properties/generalAccess.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/javaPropertyBoxedGetter.kt b/backend.native/tests/external/codegen/box/properties/javaPropertyBoxedGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/javaPropertyBoxedGetter.kt rename to backend.native/tests/external/codegen/box/properties/javaPropertyBoxedGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/javaPropertyBoxedSetter.kt b/backend.native/tests/external/codegen/box/properties/javaPropertyBoxedSetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/javaPropertyBoxedSetter.kt rename to backend.native/tests/external/codegen/box/properties/javaPropertyBoxedSetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt10715.kt b/backend.native/tests/external/codegen/box/properties/kt10715.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt10715.kt rename to backend.native/tests/external/codegen/box/properties/kt10715.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt10729.kt b/backend.native/tests/external/codegen/box/properties/kt10729.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt10729.kt rename to backend.native/tests/external/codegen/box/properties/kt10729.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1159.kt b/backend.native/tests/external/codegen/box/properties/kt1159.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1159.kt rename to backend.native/tests/external/codegen/box/properties/kt1159.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1165.kt b/backend.native/tests/external/codegen/box/properties/kt1165.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1165.kt rename to backend.native/tests/external/codegen/box/properties/kt1165.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1168.kt b/backend.native/tests/external/codegen/box/properties/kt1168.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1168.kt rename to backend.native/tests/external/codegen/box/properties/kt1168.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1170.kt b/backend.native/tests/external/codegen/box/properties/kt1170.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1170.kt rename to backend.native/tests/external/codegen/box/properties/kt1170.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt12200.kt b/backend.native/tests/external/codegen/box/properties/kt12200.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/properties/kt12200.kt rename to backend.native/tests/external/codegen/box/properties/kt12200.kt index 8d27165bb25..fab0ec15481 100644 --- a/backend.native/tests/external/codegen/blackbox/properties/kt12200.kt +++ b/backend.native/tests/external/codegen/box/properties/kt12200.kt @@ -30,4 +30,4 @@ fun box() : String { if (thingVar.prop != 1) return "fail 2" return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1398.kt b/backend.native/tests/external/codegen/box/properties/kt1398.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1398.kt rename to backend.native/tests/external/codegen/box/properties/kt1398.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1417.kt b/backend.native/tests/external/codegen/box/properties/kt1417.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1417.kt rename to backend.native/tests/external/codegen/box/properties/kt1417.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1482_2279.kt b/backend.native/tests/external/codegen/box/properties/kt1482_2279.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1482_2279.kt rename to backend.native/tests/external/codegen/box/properties/kt1482_2279.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1714.kt b/backend.native/tests/external/codegen/box/properties/kt1714.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1714.kt rename to backend.native/tests/external/codegen/box/properties/kt1714.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1714_minimal.kt b/backend.native/tests/external/codegen/box/properties/kt1714_minimal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1714_minimal.kt rename to backend.native/tests/external/codegen/box/properties/kt1714_minimal.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt1892.kt b/backend.native/tests/external/codegen/box/properties/kt1892.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt1892.kt rename to backend.native/tests/external/codegen/box/properties/kt1892.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt2331.kt b/backend.native/tests/external/codegen/box/properties/kt2331.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt2331.kt rename to backend.native/tests/external/codegen/box/properties/kt2331.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt257.kt b/backend.native/tests/external/codegen/box/properties/kt257.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt257.kt rename to backend.native/tests/external/codegen/box/properties/kt257.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt2655.kt b/backend.native/tests/external/codegen/box/properties/kt2655.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt2655.kt rename to backend.native/tests/external/codegen/box/properties/kt2655.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt2786.kt b/backend.native/tests/external/codegen/box/properties/kt2786.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt2786.kt rename to backend.native/tests/external/codegen/box/properties/kt2786.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt2892.kt b/backend.native/tests/external/codegen/box/properties/kt2892.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt2892.kt rename to backend.native/tests/external/codegen/box/properties/kt2892.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt3118.kt b/backend.native/tests/external/codegen/box/properties/kt3118.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt3118.kt rename to backend.native/tests/external/codegen/box/properties/kt3118.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt3524.kt b/backend.native/tests/external/codegen/box/properties/kt3524.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt3524.kt rename to backend.native/tests/external/codegen/box/properties/kt3524.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt3551.kt b/backend.native/tests/external/codegen/box/properties/kt3551.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt3551.kt rename to backend.native/tests/external/codegen/box/properties/kt3551.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt3556.kt b/backend.native/tests/external/codegen/box/properties/kt3556.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt3556.kt rename to backend.native/tests/external/codegen/box/properties/kt3556.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt3930.kt b/backend.native/tests/external/codegen/box/properties/kt3930.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt3930.kt rename to backend.native/tests/external/codegen/box/properties/kt3930.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt4140.kt b/backend.native/tests/external/codegen/box/properties/kt4140.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt4140.kt rename to backend.native/tests/external/codegen/box/properties/kt4140.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt4252.kt b/backend.native/tests/external/codegen/box/properties/kt4252.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt4252.kt rename to backend.native/tests/external/codegen/box/properties/kt4252.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt4252_2.kt b/backend.native/tests/external/codegen/box/properties/kt4252_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt4252_2.kt rename to backend.native/tests/external/codegen/box/properties/kt4252_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt4340.kt b/backend.native/tests/external/codegen/box/properties/kt4340.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt4340.kt rename to backend.native/tests/external/codegen/box/properties/kt4340.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt4373.kt b/backend.native/tests/external/codegen/box/properties/kt4373.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt4373.kt rename to backend.native/tests/external/codegen/box/properties/kt4373.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt4383.kt b/backend.native/tests/external/codegen/box/properties/kt4383.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/properties/kt4383.kt rename to backend.native/tests/external/codegen/box/properties/kt4383.kt index fb6d0a2465f..4b26b927544 100644 --- a/backend.native/tests/external/codegen/blackbox/properties/kt4383.kt +++ b/backend.native/tests/external/codegen/box/properties/kt4383.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS import kotlin.reflect.KProperty diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt613.kt b/backend.native/tests/external/codegen/box/properties/kt613.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt613.kt rename to backend.native/tests/external/codegen/box/properties/kt613.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt8928.kt b/backend.native/tests/external/codegen/box/properties/kt8928.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt8928.kt rename to backend.native/tests/external/codegen/box/properties/kt8928.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/kt9603.kt b/backend.native/tests/external/codegen/box/properties/kt9603.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/kt9603.kt rename to backend.native/tests/external/codegen/box/properties/kt9603.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/accessor.kt b/backend.native/tests/external/codegen/box/properties/lateinit/accessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/accessor.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/accessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/accessorException.kt b/backend.native/tests/external/codegen/box/properties/lateinit/accessorException.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/accessorException.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/accessorException.kt index d8022a1a2e9..eb0db631364 100644 --- a/backend.native/tests/external/codegen/blackbox/properties/lateinit/accessorException.kt +++ b/backend.native/tests/external/codegen/box/properties/lateinit/accessorException.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS public class A { diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/exceptionField.kt b/backend.native/tests/external/codegen/box/properties/lateinit/exceptionField.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/exceptionField.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/exceptionField.kt index 7f334665513..0c8a8eafe47 100644 --- a/backend.native/tests/external/codegen/blackbox/properties/lateinit/exceptionField.kt +++ b/backend.native/tests/external/codegen/box/properties/lateinit/exceptionField.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS class A { private lateinit var str: String diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/exceptionGetter.kt b/backend.native/tests/external/codegen/box/properties/lateinit/exceptionGetter.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/exceptionGetter.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/exceptionGetter.kt index 256d16b48fa..ca12a2442db 100644 --- a/backend.native/tests/external/codegen/blackbox/properties/lateinit/exceptionGetter.kt +++ b/backend.native/tests/external/codegen/box/properties/lateinit/exceptionGetter.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS class A { public lateinit var str: String diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/override.kt b/backend.native/tests/external/codegen/box/properties/lateinit/override.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/override.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/override.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/overrideException.kt b/backend.native/tests/external/codegen/box/properties/lateinit/overrideException.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/overrideException.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/overrideException.kt index 8a5f29fcff5..9b9ce777d53 100644 --- a/backend.native/tests/external/codegen/blackbox/properties/lateinit/overrideException.kt +++ b/backend.native/tests/external/codegen/box/properties/lateinit/overrideException.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS interface Intf { val str: String diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/privateSetter.kt b/backend.native/tests/external/codegen/box/properties/lateinit/privateSetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/privateSetter.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/privateSetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/privateSetterFromLambda.kt b/backend.native/tests/external/codegen/box/properties/lateinit/privateSetterFromLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/privateSetterFromLambda.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/privateSetterFromLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/simpleVar.kt b/backend.native/tests/external/codegen/box/properties/lateinit/simpleVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/simpleVar.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/simpleVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/lateinit/visibility.kt b/backend.native/tests/external/codegen/box/properties/lateinit/visibility.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/lateinit/visibility.kt rename to backend.native/tests/external/codegen/box/properties/lateinit/visibility.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/primitiveOverrideDefaultAccessor.kt b/backend.native/tests/external/codegen/box/properties/primitiveOverrideDefaultAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/primitiveOverrideDefaultAccessor.kt rename to backend.native/tests/external/codegen/box/properties/primitiveOverrideDefaultAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/primitiveOverrideDelegateAccessor.kt b/backend.native/tests/external/codegen/box/properties/primitiveOverrideDelegateAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/primitiveOverrideDelegateAccessor.kt rename to backend.native/tests/external/codegen/box/properties/primitiveOverrideDelegateAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/privatePropertyInConstructor.kt b/backend.native/tests/external/codegen/box/properties/privatePropertyInConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/privatePropertyInConstructor.kt rename to backend.native/tests/external/codegen/box/properties/privatePropertyInConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/privatePropertyWithoutBackingField.kt b/backend.native/tests/external/codegen/box/properties/privatePropertyWithoutBackingField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/privatePropertyWithoutBackingField.kt rename to backend.native/tests/external/codegen/box/properties/privatePropertyWithoutBackingField.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/protectedJavaFieldInInline.kt b/backend.native/tests/external/codegen/box/properties/protectedJavaFieldInInline.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/protectedJavaFieldInInline.kt rename to backend.native/tests/external/codegen/box/properties/protectedJavaFieldInInline.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/protectedJavaProperty.kt b/backend.native/tests/external/codegen/box/properties/protectedJavaProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/protectedJavaProperty.kt rename to backend.native/tests/external/codegen/box/properties/protectedJavaProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/protectedJavaPropertyInCompanion.kt b/backend.native/tests/external/codegen/box/properties/protectedJavaPropertyInCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/protectedJavaPropertyInCompanion.kt rename to backend.native/tests/external/codegen/box/properties/protectedJavaPropertyInCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/substituteJavaSuperField.kt b/backend.native/tests/external/codegen/box/properties/substituteJavaSuperField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/substituteJavaSuperField.kt rename to backend.native/tests/external/codegen/box/properties/substituteJavaSuperField.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/twoAnnotatedExtensionPropertiesWithoutBackingFields.kt b/backend.native/tests/external/codegen/box/properties/twoAnnotatedExtensionPropertiesWithoutBackingFields.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/twoAnnotatedExtensionPropertiesWithoutBackingFields.kt rename to backend.native/tests/external/codegen/box/properties/twoAnnotatedExtensionPropertiesWithoutBackingFields.kt diff --git a/backend.native/tests/external/codegen/blackbox/properties/typeInferredFromGetter.kt b/backend.native/tests/external/codegen/box/properties/typeInferredFromGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/properties/typeInferredFromGetter.kt rename to backend.native/tests/external/codegen/box/properties/typeInferredFromGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/publishedApi/noMangling.kt b/backend.native/tests/external/codegen/box/publishedApi/noMangling.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/publishedApi/noMangling.kt rename to backend.native/tests/external/codegen/box/publishedApi/noMangling.kt index deeb37b9064..6247ebb880b 100644 --- a/backend.native/tests/external/codegen/blackbox/publishedApi/noMangling.kt +++ b/backend.native/tests/external/codegen/box/publishedApi/noMangling.kt @@ -12,4 +12,4 @@ fun box() : String { val clazz = A::class.java if (clazz.getDeclaredMethod("published") == null) return "fail" return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/publishedApi/simple.kt b/backend.native/tests/external/codegen/box/publishedApi/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/publishedApi/simple.kt rename to backend.native/tests/external/codegen/box/publishedApi/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/publishedApi/topLevel.kt b/backend.native/tests/external/codegen/box/publishedApi/topLevel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/publishedApi/topLevel.kt rename to backend.native/tests/external/codegen/box/publishedApi/topLevel.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inComparableRange.kt b/backend.native/tests/external/codegen/box/ranges/contains/inComparableRange.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inComparableRange.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inComparableRange.kt index 9f3c461c773..71b784e107f 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inComparableRange.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inComparableRange.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inExtensionRange.kt b/backend.native/tests/external/codegen/box/ranges/contains/inExtensionRange.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inExtensionRange.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inExtensionRange.kt index b216292520a..53a4b73663e 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inExtensionRange.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inExtensionRange.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inIntRange.kt b/backend.native/tests/external/codegen/box/ranges/contains/inIntRange.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inIntRange.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inIntRange.kt index cf82a3033c8..59a939acf24 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inIntRange.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inIntRange.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableDoubleRange.kt b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableDoubleRange.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableDoubleRange.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inOptimizableDoubleRange.kt index 049667b8d18..f7aa5bf5729 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableDoubleRange.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableDoubleRange.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableFloatRange.kt b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableFloatRange.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableFloatRange.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inOptimizableFloatRange.kt index c58a00c6b20..8b21a83ad34 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableFloatRange.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableFloatRange.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableIntRange.kt b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableIntRange.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableIntRange.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inOptimizableIntRange.kt index 969571dcafb..9f4a914c9d1 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableIntRange.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableIntRange.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableLongRange.kt b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableLongRange.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableLongRange.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inOptimizableLongRange.kt index 61e9bf4c898..8bf77137b1a 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inOptimizableLongRange.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inOptimizableLongRange.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithCustomContains.kt b/backend.native/tests/external/codegen/box/ranges/contains/inRangeWithCustomContains.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithCustomContains.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inRangeWithCustomContains.kt index 0071b2d423a..277550e0034 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithCustomContains.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inRangeWithCustomContains.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithImplicitReceiver.kt b/backend.native/tests/external/codegen/box/ranges/contains/inRangeWithImplicitReceiver.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithImplicitReceiver.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inRangeWithImplicitReceiver.kt index d5bb738d866..8c39def7709 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithImplicitReceiver.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inRangeWithImplicitReceiver.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithNonmatchingArguments.kt b/backend.native/tests/external/codegen/box/ranges/contains/inRangeWithNonmatchingArguments.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithNonmatchingArguments.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inRangeWithNonmatchingArguments.kt index 23219eac00f..0b8e25beb45 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithNonmatchingArguments.kt +++ b/backend.native/tests/external/codegen/box/ranges/contains/inRangeWithNonmatchingArguments.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithSmartCast.kt b/backend.native/tests/external/codegen/box/ranges/contains/inRangeWithSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/inRangeWithSmartCast.kt rename to backend.native/tests/external/codegen/box/ranges/contains/inRangeWithSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/contains/rangeContainsString.kt b/backend.native/tests/external/codegen/box/ranges/contains/rangeContainsString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/contains/rangeContainsString.kt rename to backend.native/tests/external/codegen/box/ranges/contains/rangeContainsString.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/emptyDownto.kt b/backend.native/tests/external/codegen/box/ranges/expression/emptyDownto.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/emptyDownto.kt rename to backend.native/tests/external/codegen/box/ranges/expression/emptyDownto.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/emptyRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/emptyRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/emptyRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/emptyRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/inexactDownToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/inexactDownToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/inexactDownToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/inexactDownToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/inexactSteppedDownTo.kt b/backend.native/tests/external/codegen/box/ranges/expression/inexactSteppedDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/inexactSteppedDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/expression/inexactSteppedDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/inexactSteppedRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/inexactSteppedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/inexactSteppedRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/inexactSteppedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/inexactToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/inexactToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/inexactToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/inexactToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/maxValueMinusTwoToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/maxValueMinusTwoToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/maxValueMinusTwoToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/maxValueMinusTwoToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/maxValueToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/maxValueToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/maxValueToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/maxValueToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/maxValueToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/maxValueToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/maxValueToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/maxValueToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/oneElementDownTo.kt b/backend.native/tests/external/codegen/box/ranges/expression/oneElementDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/oneElementDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/expression/oneElementDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/oneElementRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/oneElementRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/oneElementRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/oneElementRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/openRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/openRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/openRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/openRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/progressionDownToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/progressionDownToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/progressionDownToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/progressionDownToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMaxValueMinusTwoToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/progressionMaxValueMinusTwoToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMaxValueMinusTwoToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/progressionMaxValueMinusTwoToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMaxValueToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/progressionMaxValueToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMaxValueToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/progressionMaxValueToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMaxValueToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/progressionMaxValueToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMaxValueToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/progressionMaxValueToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMinValueToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/expression/progressionMinValueToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/progressionMinValueToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/expression/progressionMinValueToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/reversedBackSequence.kt b/backend.native/tests/external/codegen/box/ranges/expression/reversedBackSequence.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/reversedBackSequence.kt rename to backend.native/tests/external/codegen/box/ranges/expression/reversedBackSequence.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/reversedEmptyBackSequence.kt b/backend.native/tests/external/codegen/box/ranges/expression/reversedEmptyBackSequence.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/reversedEmptyBackSequence.kt rename to backend.native/tests/external/codegen/box/ranges/expression/reversedEmptyBackSequence.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/reversedEmptyRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/reversedEmptyRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/reversedEmptyRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/reversedEmptyRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/reversedInexactSteppedDownTo.kt b/backend.native/tests/external/codegen/box/ranges/expression/reversedInexactSteppedDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/reversedInexactSteppedDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/expression/reversedInexactSteppedDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/reversedRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/reversedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/reversedRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/reversedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/reversedSimpleSteppedRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/reversedSimpleSteppedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/reversedSimpleSteppedRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/reversedSimpleSteppedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/simpleDownTo.kt b/backend.native/tests/external/codegen/box/ranges/expression/simpleDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/simpleDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/expression/simpleDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/simpleRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/simpleRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/simpleRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/simpleRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/simpleRangeWithNonConstantEnds.kt b/backend.native/tests/external/codegen/box/ranges/expression/simpleRangeWithNonConstantEnds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/simpleRangeWithNonConstantEnds.kt rename to backend.native/tests/external/codegen/box/ranges/expression/simpleRangeWithNonConstantEnds.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/simpleSteppedDownTo.kt b/backend.native/tests/external/codegen/box/ranges/expression/simpleSteppedDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/simpleSteppedDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/expression/simpleSteppedDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/expression/simpleSteppedRange.kt b/backend.native/tests/external/codegen/box/ranges/expression/simpleSteppedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/expression/simpleSteppedRange.kt rename to backend.native/tests/external/codegen/box/ranges/expression/simpleSteppedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forByteProgressionWithIntIncrement.kt b/backend.native/tests/external/codegen/box/ranges/forByteProgressionWithIntIncrement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forByteProgressionWithIntIncrement.kt rename to backend.native/tests/external/codegen/box/ranges/forByteProgressionWithIntIncrement.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forIntInDownTo.kt b/backend.native/tests/external/codegen/box/ranges/forInDownTo/forIntInDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forIntInDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/forInDownTo/forIntInDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forIntInNonOptimizedDownTo.kt b/backend.native/tests/external/codegen/box/ranges/forInDownTo/forIntInNonOptimizedDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forIntInNonOptimizedDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/forInDownTo/forIntInNonOptimizedDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forLongInDownTo.kt b/backend.native/tests/external/codegen/box/ranges/forInDownTo/forLongInDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forLongInDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/forInDownTo/forLongInDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forNullableIntInDownTo.kt b/backend.native/tests/external/codegen/box/ranges/forInDownTo/forNullableIntInDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInDownTo/forNullableIntInDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/forInDownTo/forNullableIntInDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInCharSequenceIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forInCharSequenceIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInCharSequenceIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forInCharSequenceIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInCollectionImplicitReceiverIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forInCollectionImplicitReceiverIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInCollectionImplicitReceiverIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forInCollectionImplicitReceiverIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInCollectionIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forInCollectionIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInCollectionIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forInCollectionIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInNonOptimizedIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forInNonOptimizedIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInNonOptimizedIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forInNonOptimizedIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInObjectArrayIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forInObjectArrayIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInObjectArrayIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forInObjectArrayIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInPrimitiveArrayIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forInPrimitiveArrayIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forInPrimitiveArrayIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forInPrimitiveArrayIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forNullableIntInArrayIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forNullableIntInArrayIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forNullableIntInArrayIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forNullableIntInArrayIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forNullableIntInCollectionIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/forNullableIntInCollectionIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/forNullableIntInCollectionIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/forNullableIntInCollectionIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInGenericArrayIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInGenericArrayIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInGenericArrayIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInGenericArrayIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInGenericCollectionIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInGenericCollectionIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInGenericCollectionIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInGenericCollectionIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInSpecificArrayIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInSpecificArrayIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInSpecificArrayIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInSpecificArrayIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInSpecificCollectionIndices.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInSpecificCollectionIndices.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt12983_forInSpecificCollectionIndices.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/kt12983_forInSpecificCollectionIndices.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt13241_Array.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt13241_Array.kt similarity index 74% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt13241_Array.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/kt13241_Array.kt index 0f73b57e33c..fdabe3cc1e6 100644 --- a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt13241_Array.kt +++ b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt13241_Array.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - // WITH_RUNTIME import kotlin.test.assertEquals diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt13241_CharSequence.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt13241_CharSequence.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt13241_CharSequence.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/kt13241_CharSequence.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt13241_Collection.kt b/backend.native/tests/external/codegen/box/ranges/forInIndices/kt13241_Collection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInIndices/kt13241_Collection.kt rename to backend.native/tests/external/codegen/box/ranges/forInIndices/kt13241_Collection.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forInRangeWithImplicitReceiver.kt b/backend.native/tests/external/codegen/box/ranges/forInRangeWithImplicitReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forInRangeWithImplicitReceiver.kt rename to backend.native/tests/external/codegen/box/ranges/forInRangeWithImplicitReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forIntRange.kt b/backend.native/tests/external/codegen/box/ranges/forIntRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forIntRange.kt rename to backend.native/tests/external/codegen/box/ranges/forIntRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/forNullableIntInRangeWithImplicitReceiver.kt b/backend.native/tests/external/codegen/box/ranges/forNullableIntInRangeWithImplicitReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/forNullableIntInRangeWithImplicitReceiver.kt rename to backend.native/tests/external/codegen/box/ranges/forNullableIntInRangeWithImplicitReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/emptyDownto.kt b/backend.native/tests/external/codegen/box/ranges/literal/emptyDownto.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/emptyDownto.kt rename to backend.native/tests/external/codegen/box/ranges/literal/emptyDownto.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/emptyRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/emptyRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/emptyRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/emptyRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/inexactDownToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/inexactDownToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/inexactDownToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/inexactDownToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/inexactSteppedDownTo.kt b/backend.native/tests/external/codegen/box/ranges/literal/inexactSteppedDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/inexactSteppedDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/literal/inexactSteppedDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/inexactSteppedRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/inexactSteppedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/inexactSteppedRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/inexactSteppedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/inexactToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/inexactToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/inexactToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/inexactToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/maxValueMinusTwoToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/maxValueMinusTwoToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/maxValueMinusTwoToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/maxValueMinusTwoToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/maxValueToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/maxValueToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/maxValueToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/maxValueToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/maxValueToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/maxValueToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/maxValueToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/maxValueToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/oneElementDownTo.kt b/backend.native/tests/external/codegen/box/ranges/literal/oneElementDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/oneElementDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/literal/oneElementDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/oneElementRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/oneElementRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/oneElementRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/oneElementRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/openRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/openRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/openRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/openRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/progressionDownToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/progressionDownToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/progressionDownToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/progressionDownToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMaxValueMinusTwoToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/progressionMaxValueMinusTwoToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMaxValueMinusTwoToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/progressionMaxValueMinusTwoToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMaxValueToMaxValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/progressionMaxValueToMaxValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMaxValueToMaxValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/progressionMaxValueToMaxValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMaxValueToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/progressionMaxValueToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMaxValueToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/progressionMaxValueToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMinValueToMinValue.kt b/backend.native/tests/external/codegen/box/ranges/literal/progressionMinValueToMinValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/progressionMinValueToMinValue.kt rename to backend.native/tests/external/codegen/box/ranges/literal/progressionMinValueToMinValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/reversedBackSequence.kt b/backend.native/tests/external/codegen/box/ranges/literal/reversedBackSequence.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/reversedBackSequence.kt rename to backend.native/tests/external/codegen/box/ranges/literal/reversedBackSequence.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/reversedEmptyBackSequence.kt b/backend.native/tests/external/codegen/box/ranges/literal/reversedEmptyBackSequence.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/reversedEmptyBackSequence.kt rename to backend.native/tests/external/codegen/box/ranges/literal/reversedEmptyBackSequence.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/reversedEmptyRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/reversedEmptyRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/reversedEmptyRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/reversedEmptyRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/reversedInexactSteppedDownTo.kt b/backend.native/tests/external/codegen/box/ranges/literal/reversedInexactSteppedDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/reversedInexactSteppedDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/literal/reversedInexactSteppedDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/reversedRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/reversedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/reversedRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/reversedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/reversedSimpleSteppedRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/reversedSimpleSteppedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/reversedSimpleSteppedRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/reversedSimpleSteppedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/simpleDownTo.kt b/backend.native/tests/external/codegen/box/ranges/literal/simpleDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/simpleDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/literal/simpleDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/simpleRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/simpleRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/simpleRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/simpleRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/simpleRangeWithNonConstantEnds.kt b/backend.native/tests/external/codegen/box/ranges/literal/simpleRangeWithNonConstantEnds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/simpleRangeWithNonConstantEnds.kt rename to backend.native/tests/external/codegen/box/ranges/literal/simpleRangeWithNonConstantEnds.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/simpleSteppedDownTo.kt b/backend.native/tests/external/codegen/box/ranges/literal/simpleSteppedDownTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/simpleSteppedDownTo.kt rename to backend.native/tests/external/codegen/box/ranges/literal/simpleSteppedDownTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/literal/simpleSteppedRange.kt b/backend.native/tests/external/codegen/box/ranges/literal/simpleSteppedRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/literal/simpleSteppedRange.kt rename to backend.native/tests/external/codegen/box/ranges/literal/simpleSteppedRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/multiAssignmentIterationOverIntRange.kt b/backend.native/tests/external/codegen/box/ranges/multiAssignmentIterationOverIntRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/multiAssignmentIterationOverIntRange.kt rename to backend.native/tests/external/codegen/box/ranges/multiAssignmentIterationOverIntRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/nullableLoopParameter/progressionExpression.kt b/backend.native/tests/external/codegen/box/ranges/nullableLoopParameter/progressionExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/nullableLoopParameter/progressionExpression.kt rename to backend.native/tests/external/codegen/box/ranges/nullableLoopParameter/progressionExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/nullableLoopParameter/rangeExpression.kt b/backend.native/tests/external/codegen/box/ranges/nullableLoopParameter/rangeExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/nullableLoopParameter/rangeExpression.kt rename to backend.native/tests/external/codegen/box/ranges/nullableLoopParameter/rangeExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/nullableLoopParameter/rangeLiteral.kt b/backend.native/tests/external/codegen/box/ranges/nullableLoopParameter/rangeLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/nullableLoopParameter/rangeLiteral.kt rename to backend.native/tests/external/codegen/box/ranges/nullableLoopParameter/rangeLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/ranges/safeCallRangeTo.kt b/backend.native/tests/external/codegen/box/ranges/safeCallRangeTo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/ranges/safeCallRangeTo.kt rename to backend.native/tests/external/codegen/box/ranges/safeCallRangeTo.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/annotationRetentionAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/annotations/annotationRetentionAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/annotationRetentionAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/annotationRetentionAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/annotationsOnJavaMembers.kt b/backend.native/tests/external/codegen/box/reflection/annotations/annotationsOnJavaMembers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/annotationsOnJavaMembers.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/annotationsOnJavaMembers.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/findAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/annotations/findAnnotation.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/findAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/findAnnotation.kt index b008bd65937..9db6204889b 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/annotations/findAnnotation.kt +++ b/backend.native/tests/external/codegen/box/reflection/annotations/findAnnotation.kt @@ -1,7 +1,7 @@ // IGNORE_BACKEND: JS, NATIVE // WITH_REFLECT -import kotlin.reflect.findAnnotation +import kotlin.reflect.full.findAnnotation import kotlin.test.assertNull annotation class Yes(val value: String) diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/propertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/annotations/propertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/propertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/propertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/propertyWithoutBackingField.kt b/backend.native/tests/external/codegen/box/reflection/annotations/propertyWithoutBackingField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/propertyWithoutBackingField.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/propertyWithoutBackingField.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/retentions.kt b/backend.native/tests/external/codegen/box/reflection/annotations/retentions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/retentions.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/retentions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleClassAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/annotations/simpleClassAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleClassAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/simpleClassAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleConstructorAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/annotations/simpleConstructorAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleConstructorAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/simpleConstructorAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleFunAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/annotations/simpleFunAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleFunAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/simpleFunAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleParamAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/annotations/simpleParamAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleParamAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/simpleParamAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleValAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/annotations/simpleValAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/annotations/simpleValAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/annotations/simpleValAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/companionObjectPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/companionObjectPropertyAccessors.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/companionObjectPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/companionObjectPropertyAccessors.kt index d3fe286da02..8d50e06674f 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/companionObjectPropertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/companionObjectPropertyAccessors.kt @@ -50,4 +50,4 @@ fun box(): String { assertEquals(200, c_y.getter.call()) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/extensionFunction.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/extensionFunction.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/extensionFunction.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/extensionFunction.kt index cd0c53f8123..6ab9b959aca 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/extensionFunction.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/extensionFunction.kt @@ -9,4 +9,4 @@ fun String.foo(x: String) = this + x fun String?.bar(x: String) = x fun box() = - (""::foo).call("O") + (null::bar).call("K") \ No newline at end of file + (""::foo).call("O") + (null::bar).call("K") diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/extensionPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/extensionPropertyAccessors.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/extensionPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/extensionPropertyAccessors.kt index 449d73d064b..4b56d041aca 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/extensionPropertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/extensionPropertyAccessors.kt @@ -42,4 +42,4 @@ fun box(): String { assertEquals(200, c_y.getter.call()) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/innerClassConstructor.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/innerClassConstructor.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/innerClassConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/innerClassConstructor.kt index c84e7893a23..57c2527502e 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/innerClassConstructor.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/innerClassConstructor.kt @@ -13,4 +13,4 @@ fun box(): String { val innerCtor = Outer("O")::Inner val inner = innerCtor.call("K") return inner.foo() -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/javaInstanceField.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/javaInstanceField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/javaInstanceField.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/javaInstanceField.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/javaInstanceMethod.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/javaInstanceMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/javaInstanceMethod.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/javaInstanceMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticCompanionObjectPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticCompanionObjectPropertyAccessors.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticCompanionObjectPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticCompanionObjectPropertyAccessors.kt index aacb455eeaf..783e11d7783 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticCompanionObjectPropertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticCompanionObjectPropertyAccessors.kt @@ -50,4 +50,4 @@ fun box(): String { assertEquals(200, c_y.getter.call()) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticObjectFunction.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticObjectFunction.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticObjectFunction.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticObjectFunction.kt index ba51aa848b6..0928bdf0e5a 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticObjectFunction.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticObjectFunction.kt @@ -16,4 +16,4 @@ class CompanionOwner { } fun box(): String = - (Host::foo).call("O") + (CompanionOwner.Companion::bar).call("K") \ No newline at end of file + (Host::foo).call("O") + (CompanionOwner.Companion::bar).call("K") diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticObjectPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticObjectPropertyAccessors.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticObjectPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticObjectPropertyAccessors.kt index 9f06a8cb7fa..26dec0d0f23 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/jvmStaticObjectPropertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/jvmStaticObjectPropertyAccessors.kt @@ -48,4 +48,4 @@ fun box(): String { assertEquals(200, c_y.getter.call()) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/memberFunction.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/memberFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/memberFunction.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/memberFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/memberPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/memberPropertyAccessors.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/memberPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/memberPropertyAccessors.kt index 7b1d165061e..35c955e3b15 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/memberPropertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/memberPropertyAccessors.kt @@ -47,4 +47,4 @@ fun box(): String { assertEquals(200, c_y.getter.call()) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/objectFunction.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/objectFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/objectFunction.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/objectFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/objectPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/call/bound/objectPropertyAccessors.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/call/bound/objectPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/call/bound/objectPropertyAccessors.kt index 89062735df3..780f4aa2cda 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/call/bound/objectPropertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/reflection/call/bound/objectPropertyAccessors.kt @@ -48,4 +48,4 @@ fun box(): String { assertEquals(200, c_y.getter.call()) return "OK" -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/callInstanceJavaMethod.kt b/backend.native/tests/external/codegen/box/reflection/call/callInstanceJavaMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/callInstanceJavaMethod.kt rename to backend.native/tests/external/codegen/box/reflection/call/callInstanceJavaMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/callPrivateJavaMethod.kt b/backend.native/tests/external/codegen/box/reflection/call/callPrivateJavaMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/callPrivateJavaMethod.kt rename to backend.native/tests/external/codegen/box/reflection/call/callPrivateJavaMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/callStaticJavaMethod.kt b/backend.native/tests/external/codegen/box/reflection/call/callStaticJavaMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/callStaticJavaMethod.kt rename to backend.native/tests/external/codegen/box/reflection/call/callStaticJavaMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/cannotCallEnumConstructor.kt b/backend.native/tests/external/codegen/box/reflection/call/cannotCallEnumConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/cannotCallEnumConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/call/cannotCallEnumConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/disallowNullValueForNotNullField.kt b/backend.native/tests/external/codegen/box/reflection/call/disallowNullValueForNotNullField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/disallowNullValueForNotNullField.kt rename to backend.native/tests/external/codegen/box/reflection/call/disallowNullValueForNotNullField.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/equalsHashCodeToString.kt b/backend.native/tests/external/codegen/box/reflection/call/equalsHashCodeToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/equalsHashCodeToString.kt rename to backend.native/tests/external/codegen/box/reflection/call/equalsHashCodeToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/exceptionHappened.kt b/backend.native/tests/external/codegen/box/reflection/call/exceptionHappened.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/exceptionHappened.kt rename to backend.native/tests/external/codegen/box/reflection/call/exceptionHappened.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/fakeOverride.kt b/backend.native/tests/external/codegen/box/reflection/call/fakeOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/fakeOverride.kt rename to backend.native/tests/external/codegen/box/reflection/call/fakeOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/fakeOverrideSubstituted.kt b/backend.native/tests/external/codegen/box/reflection/call/fakeOverrideSubstituted.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/fakeOverrideSubstituted.kt rename to backend.native/tests/external/codegen/box/reflection/call/fakeOverrideSubstituted.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/incorrectNumberOfArguments.kt b/backend.native/tests/external/codegen/box/reflection/call/incorrectNumberOfArguments.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/incorrectNumberOfArguments.kt rename to backend.native/tests/external/codegen/box/reflection/call/incorrectNumberOfArguments.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/innerClassConstructor.kt b/backend.native/tests/external/codegen/box/reflection/call/innerClassConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/innerClassConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/call/innerClassConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/jvmStatic.kt b/backend.native/tests/external/codegen/box/reflection/call/jvmStatic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/jvmStatic.kt rename to backend.native/tests/external/codegen/box/reflection/call/jvmStatic.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/jvmStaticInObjectIncorrectReceiver.kt b/backend.native/tests/external/codegen/box/reflection/call/jvmStaticInObjectIncorrectReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/jvmStaticInObjectIncorrectReceiver.kt rename to backend.native/tests/external/codegen/box/reflection/call/jvmStaticInObjectIncorrectReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/localClassMember.kt b/backend.native/tests/external/codegen/box/reflection/call/localClassMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/localClassMember.kt rename to backend.native/tests/external/codegen/box/reflection/call/localClassMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/memberOfGenericClass.kt b/backend.native/tests/external/codegen/box/reflection/call/memberOfGenericClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/memberOfGenericClass.kt rename to backend.native/tests/external/codegen/box/reflection/call/memberOfGenericClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/privateProperty.kt b/backend.native/tests/external/codegen/box/reflection/call/privateProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/privateProperty.kt rename to backend.native/tests/external/codegen/box/reflection/call/privateProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/propertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/call/propertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/propertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/call/propertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/propertyGetterAndGetFunctionDifferentReturnType.kt b/backend.native/tests/external/codegen/box/reflection/call/propertyGetterAndGetFunctionDifferentReturnType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/propertyGetterAndGetFunctionDifferentReturnType.kt rename to backend.native/tests/external/codegen/box/reflection/call/propertyGetterAndGetFunctionDifferentReturnType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/returnUnit.kt b/backend.native/tests/external/codegen/box/reflection/call/returnUnit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/returnUnit.kt rename to backend.native/tests/external/codegen/box/reflection/call/returnUnit.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/simpleConstructor.kt b/backend.native/tests/external/codegen/box/reflection/call/simpleConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/simpleConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/call/simpleConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/simpleMemberFunction.kt b/backend.native/tests/external/codegen/box/reflection/call/simpleMemberFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/simpleMemberFunction.kt rename to backend.native/tests/external/codegen/box/reflection/call/simpleMemberFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/call/simpleTopLevelFunctions.kt b/backend.native/tests/external/codegen/box/reflection/call/simpleTopLevelFunctions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/call/simpleTopLevelFunctions.kt rename to backend.native/tests/external/codegen/box/reflection/call/simpleTopLevelFunctions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/boundExtensionFunction.kt b/backend.native/tests/external/codegen/box/reflection/callBy/boundExtensionFunction.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/boundExtensionFunction.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/boundExtensionFunction.kt index 906dcb9d4fb..63fe644d988 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/callBy/boundExtensionFunction.kt +++ b/backend.native/tests/external/codegen/box/reflection/callBy/boundExtensionFunction.kt @@ -10,4 +10,4 @@ fun String.extFun(k: String, s: String = "") = this + k + s fun box(): String { val sExtFun = "O"::extFun return sExtFun.callBy(mapOf(sExtFun.parameters[0] to "K")) -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/boundExtensionPropertyAcessor.kt b/backend.native/tests/external/codegen/box/reflection/callBy/boundExtensionPropertyAcessor.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/boundExtensionPropertyAcessor.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/boundExtensionPropertyAcessor.kt index 1cd1409ca0d..8e833ec0601 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/callBy/boundExtensionPropertyAcessor.kt +++ b/backend.native/tests/external/codegen/box/reflection/callBy/boundExtensionPropertyAcessor.kt @@ -9,4 +9,4 @@ val String.plusK: String get() = this + "K" fun box(): String = - ("O"::plusK).getter.callBy(mapOf()) \ No newline at end of file + ("O"::plusK).getter.callBy(mapOf()) diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/boundJvmStaticInObject.kt b/backend.native/tests/external/codegen/box/reflection/callBy/boundJvmStaticInObject.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/boundJvmStaticInObject.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/boundJvmStaticInObject.kt index 47ffa196b2c..7af5da2333c 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/callBy/boundJvmStaticInObject.kt +++ b/backend.native/tests/external/codegen/box/reflection/callBy/boundJvmStaticInObject.kt @@ -16,4 +16,4 @@ fun box(): String { concatParams[1] to "O", concatParams[3] to "" )) -} \ No newline at end of file +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/companionObject.kt b/backend.native/tests/external/codegen/box/reflection/callBy/companionObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/companionObject.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/companionObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/defaultAndNonDefaultIntertwined.kt b/backend.native/tests/external/codegen/box/reflection/callBy/defaultAndNonDefaultIntertwined.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/defaultAndNonDefaultIntertwined.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/defaultAndNonDefaultIntertwined.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/extensionFunction.kt b/backend.native/tests/external/codegen/box/reflection/callBy/extensionFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/extensionFunction.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/extensionFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/jvmStaticInCompanionObject.kt b/backend.native/tests/external/codegen/box/reflection/callBy/jvmStaticInCompanionObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/jvmStaticInCompanionObject.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/jvmStaticInCompanionObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/jvmStaticInObject.kt b/backend.native/tests/external/codegen/box/reflection/callBy/jvmStaticInObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/jvmStaticInObject.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/jvmStaticInObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/manyArgumentsOnlyOneDefault.kt b/backend.native/tests/external/codegen/box/reflection/callBy/manyArgumentsOnlyOneDefault.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/manyArgumentsOnlyOneDefault.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/manyArgumentsOnlyOneDefault.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/manyMaskArguments.kt b/backend.native/tests/external/codegen/box/reflection/callBy/manyMaskArguments.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/manyMaskArguments.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/manyMaskArguments.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/nonDefaultParameterOmitted.kt b/backend.native/tests/external/codegen/box/reflection/callBy/nonDefaultParameterOmitted.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/nonDefaultParameterOmitted.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/nonDefaultParameterOmitted.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/nullValue.kt b/backend.native/tests/external/codegen/box/reflection/callBy/nullValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/nullValue.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/nullValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/ordinaryMethodIsInvokedWhenNoDefaultValuesAreUsed.kt b/backend.native/tests/external/codegen/box/reflection/callBy/ordinaryMethodIsInvokedWhenNoDefaultValuesAreUsed.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/ordinaryMethodIsInvokedWhenNoDefaultValuesAreUsed.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/ordinaryMethodIsInvokedWhenNoDefaultValuesAreUsed.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/primitiveDefaultValues.kt b/backend.native/tests/external/codegen/box/reflection/callBy/primitiveDefaultValues.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/primitiveDefaultValues.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/primitiveDefaultValues.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/privateMemberFunction.kt b/backend.native/tests/external/codegen/box/reflection/callBy/privateMemberFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/privateMemberFunction.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/privateMemberFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/simpleConstructor.kt b/backend.native/tests/external/codegen/box/reflection/callBy/simpleConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/simpleConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/simpleConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/simpleMemberFunciton.kt b/backend.native/tests/external/codegen/box/reflection/callBy/simpleMemberFunciton.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/simpleMemberFunciton.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/simpleMemberFunciton.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/callBy/simpleTopLevelFunction.kt b/backend.native/tests/external/codegen/box/reflection/callBy/simpleTopLevelFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/callBy/simpleTopLevelFunction.kt rename to backend.native/tests/external/codegen/box/reflection/callBy/simpleTopLevelFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classLiterals/annotationClassLiteral.kt b/backend.native/tests/external/codegen/box/reflection/classLiterals/annotationClassLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classLiterals/annotationClassLiteral.kt rename to backend.native/tests/external/codegen/box/reflection/classLiterals/annotationClassLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classLiterals/arrays.kt b/backend.native/tests/external/codegen/box/reflection/classLiterals/arrays.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classLiterals/arrays.kt rename to backend.native/tests/external/codegen/box/reflection/classLiterals/arrays.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classLiterals/builtinClassLiterals.kt b/backend.native/tests/external/codegen/box/reflection/classLiterals/builtinClassLiterals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classLiterals/builtinClassLiterals.kt rename to backend.native/tests/external/codegen/box/reflection/classLiterals/builtinClassLiterals.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classLiterals/genericArrays.kt b/backend.native/tests/external/codegen/box/reflection/classLiterals/genericArrays.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classLiterals/genericArrays.kt rename to backend.native/tests/external/codegen/box/reflection/classLiterals/genericArrays.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classLiterals/genericClass.kt b/backend.native/tests/external/codegen/box/reflection/classLiterals/genericClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classLiterals/genericClass.kt rename to backend.native/tests/external/codegen/box/reflection/classLiterals/genericClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classLiterals/reifiedTypeClassLiteral.kt b/backend.native/tests/external/codegen/box/reflection/classLiterals/reifiedTypeClassLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classLiterals/reifiedTypeClassLiteral.kt rename to backend.native/tests/external/codegen/box/reflection/classLiterals/reifiedTypeClassLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classLiterals/simpleClassLiteral.kt b/backend.native/tests/external/codegen/box/reflection/classLiterals/simpleClassLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classLiterals/simpleClassLiteral.kt rename to backend.native/tests/external/codegen/box/reflection/classLiterals/simpleClassLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/classSimpleName.kt b/backend.native/tests/external/codegen/box/reflection/classes/classSimpleName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/classSimpleName.kt rename to backend.native/tests/external/codegen/box/reflection/classes/classSimpleName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/companionObject.kt b/backend.native/tests/external/codegen/box/reflection/classes/companionObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/companionObject.kt rename to backend.native/tests/external/codegen/box/reflection/classes/companionObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/createInstance.kt b/backend.native/tests/external/codegen/box/reflection/classes/createInstance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/createInstance.kt rename to backend.native/tests/external/codegen/box/reflection/classes/createInstance.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/declaredMembers.kt b/backend.native/tests/external/codegen/box/reflection/classes/declaredMembers.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/declaredMembers.kt rename to backend.native/tests/external/codegen/box/reflection/classes/declaredMembers.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/jvmName.kt b/backend.native/tests/external/codegen/box/reflection/classes/jvmName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/jvmName.kt rename to backend.native/tests/external/codegen/box/reflection/classes/jvmName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/localClassSimpleName.kt b/backend.native/tests/external/codegen/box/reflection/classes/localClassSimpleName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/localClassSimpleName.kt rename to backend.native/tests/external/codegen/box/reflection/classes/localClassSimpleName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/nestedClasses.kt b/backend.native/tests/external/codegen/box/reflection/classes/nestedClasses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/nestedClasses.kt rename to backend.native/tests/external/codegen/box/reflection/classes/nestedClasses.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/nestedClassesJava.kt b/backend.native/tests/external/codegen/box/reflection/classes/nestedClassesJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/nestedClassesJava.kt rename to backend.native/tests/external/codegen/box/reflection/classes/nestedClassesJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/objectInstance.kt b/backend.native/tests/external/codegen/box/reflection/classes/objectInstance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/objectInstance.kt rename to backend.native/tests/external/codegen/box/reflection/classes/objectInstance.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/primitiveKClassEquality.kt b/backend.native/tests/external/codegen/box/reflection/classes/primitiveKClassEquality.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/primitiveKClassEquality.kt rename to backend.native/tests/external/codegen/box/reflection/classes/primitiveKClassEquality.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/qualifiedName.kt b/backend.native/tests/external/codegen/box/reflection/classes/qualifiedName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/qualifiedName.kt rename to backend.native/tests/external/codegen/box/reflection/classes/qualifiedName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/classes/starProjectedType.kt b/backend.native/tests/external/codegen/box/reflection/classes/starProjectedType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/classes/starProjectedType.kt rename to backend.native/tests/external/codegen/box/reflection/classes/starProjectedType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/constructors/annotationClass.kt b/backend.native/tests/external/codegen/box/reflection/constructors/annotationClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/constructors/annotationClass.kt rename to backend.native/tests/external/codegen/box/reflection/constructors/annotationClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/constructors/classesWithoutConstructors.kt b/backend.native/tests/external/codegen/box/reflection/constructors/classesWithoutConstructors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/constructors/classesWithoutConstructors.kt rename to backend.native/tests/external/codegen/box/reflection/constructors/classesWithoutConstructors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/constructors/constructorName.kt b/backend.native/tests/external/codegen/box/reflection/constructors/constructorName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/constructors/constructorName.kt rename to backend.native/tests/external/codegen/box/reflection/constructors/constructorName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/constructors/primaryConstructor.kt b/backend.native/tests/external/codegen/box/reflection/constructors/primaryConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/constructors/primaryConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/constructors/primaryConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/constructors/simpleGetConstructors.kt b/backend.native/tests/external/codegen/box/reflection/constructors/simpleGetConstructors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/constructors/simpleGetConstructors.kt rename to backend.native/tests/external/codegen/box/reflection/constructors/simpleGetConstructors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/annotationType.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/annotationType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/annotationType.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/annotationType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/arrayOfKClasses.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/arrayOfKClasses.kt similarity index 79% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/arrayOfKClasses.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/arrayOfKClasses.kt index b4f2c301ffd..5a25b437b24 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/arrayOfKClasses.kt +++ b/backend.native/tests/external/codegen/box/reflection/createAnnotation/arrayOfKClasses.kt @@ -10,7 +10,7 @@ annotation class Anno(val klasses: Array> = arrayOf(String::class, Int fun box(): String { val anno = Anno::class.constructors.single().callBy(emptyMap()) - assertEquals(listOf(String::class, Int::class), (anno.klasses as Array>).toList() /* TODO: KT-9453 */) + assertEquals(listOf(String::class, Int::class), anno.klasses.toList()) assertEquals("@Anno(klasses=[class java.lang.String, int])", anno.toString()) return "OK" } diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callByJava.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/callByJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callByJava.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/callByJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callByKotlin.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/callByKotlin.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callByKotlin.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/callByKotlin.kt index 7b2db38d382..1579deb2512 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callByKotlin.kt +++ b/backend.native/tests/external/codegen/box/reflection/createAnnotation/callByKotlin.kt @@ -42,7 +42,7 @@ fun box(): String { assertFails { create(mapOf("s" to "Fail", "x" to "Fail")) } val t5 = create(mapOf("string" to "OK")) - assertEquals(Number::class, t5.klass as KClass<*> /* TODO: KT-9453 */) + assertEquals(Number::class, t5.klass) assertFails("KClass (not Class) instances should be passed as arguments") { create(mapOf("klass" to String::class.java, "string" to "Fail")) diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callJava.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/callJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callJava.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/callJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callKotlin.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/callKotlin.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callKotlin.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/callKotlin.kt index d89d316c6a6..bc61c572b05 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/callKotlin.kt +++ b/backend.native/tests/external/codegen/box/reflection/createAnnotation/callKotlin.kt @@ -32,7 +32,7 @@ fun box(): String { } val k = create("OK", Int::class) - assertEquals(Int::class, k.klass as KClass<*> /* TODO: KT-9453 */) + assertEquals(Int::class, k.klass) return k.string } diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/createJdkAnnotationInstance.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/createJdkAnnotationInstance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/createJdkAnnotationInstance.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/createJdkAnnotationInstance.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/enumKClassAnnotation.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/enumKClassAnnotation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/enumKClassAnnotation.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/enumKClassAnnotation.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/equalsHashCodeToString.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/equalsHashCodeToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/equalsHashCodeToString.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/equalsHashCodeToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/floatingPointParameters.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/floatingPointParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/floatingPointParameters.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/floatingPointParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/parameterNamedEquals.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/parameterNamedEquals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/parameterNamedEquals.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/parameterNamedEquals.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/primitivesAndArrays.kt b/backend.native/tests/external/codegen/box/reflection/createAnnotation/primitivesAndArrays.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/createAnnotation/primitivesAndArrays.kt rename to backend.native/tests/external/codegen/box/reflection/createAnnotation/primitivesAndArrays.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/anonymousObjectInInlinedLambda.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/anonymousObjectInInlinedLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/anonymousObjectInInlinedLambda.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/anonymousObjectInInlinedLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/classInLambda.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/classInLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/classInLambda.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/classInLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/functionExpressionInProperty.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/functionExpressionInProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/functionExpressionInProperty.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/functionExpressionInProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/kt11969.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/kt11969.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/kt11969.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/kt11969.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/kt6368.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/kt6368.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/kt6368.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/kt6368.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/kt6691_lambdaInSamConstructor.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/kt6691_lambdaInSamConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/kt6691_lambdaInSamConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/kt6691_lambdaInSamConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInClassObject.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInClassObject.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInConstructor.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInFunction.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInFunction.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLambda.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLambda.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLocalClassConstructor.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLocalClassConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLocalClassConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLocalClassConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLocalClassSuperCall.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLocalClassSuperCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLocalClassSuperCall.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLocalClassSuperCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLocalFunction.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLocalFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInLocalFunction.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInLocalFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInMemberFunction.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInMemberFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInMemberFunction.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInMemberFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInMemberFunctionInLocalClass.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInMemberFunctionInLocalClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInMemberFunctionInLocalClass.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInMemberFunctionInLocalClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInMemberFunctionInNestedClass.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInMemberFunctionInNestedClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInMemberFunctionInNestedClass.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInMemberFunctionInNestedClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInObjectDeclaration.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInObjectDeclaration.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInObjectDeclaration.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInObjectDeclaration.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInObjectExpression.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInObjectExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInObjectExpression.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInObjectExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInObjectLiteralSuperCall.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInObjectLiteralSuperCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInObjectLiteralSuperCall.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInObjectLiteralSuperCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInPackage.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInPackage.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInPackage.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInPackage.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInPropertyGetter.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInPropertyGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInPropertyGetter.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInPropertyGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInPropertySetter.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInPropertySetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/lambdaInPropertySetter.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/lambdaInPropertySetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/localClassInTopLevelFunction.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/localClassInTopLevelFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/localClassInTopLevelFunction.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/localClassInTopLevelFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/enclosing/objectInLambda.kt b/backend.native/tests/external/codegen/box/reflection/enclosing/objectInLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/enclosing/objectInLambda.kt rename to backend.native/tests/external/codegen/box/reflection/enclosing/objectInLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/declaredVsInheritedFunctions.kt b/backend.native/tests/external/codegen/box/reflection/functions/declaredVsInheritedFunctions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/declaredVsInheritedFunctions.kt rename to backend.native/tests/external/codegen/box/reflection/functions/declaredVsInheritedFunctions.kt diff --git a/backend.native/tests/external/codegen/box/reflection/functions/functionFromStdlib.kt b/backend.native/tests/external/codegen/box/reflection/functions/functionFromStdlib.kt new file mode 100644 index 00000000000..1a48f5ed11a --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/functions/functionFromStdlib.kt @@ -0,0 +1,11 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KFunction1 +import kotlin.reflect.jvm.isAccessible + +fun doStuff(fn: KFunction1) = fn.call("oK") + +fun box(): String { + return doStuff(String::capitalize.apply { isAccessible = true }) +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/functionReferenceErasedToKFunction.kt b/backend.native/tests/external/codegen/box/reflection/functions/functionReferenceErasedToKFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/functionReferenceErasedToKFunction.kt rename to backend.native/tests/external/codegen/box/reflection/functions/functionReferenceErasedToKFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/genericOverriddenFunction.kt b/backend.native/tests/external/codegen/box/reflection/functions/genericOverriddenFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/genericOverriddenFunction.kt rename to backend.native/tests/external/codegen/box/reflection/functions/genericOverriddenFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/instanceOfFunction.kt b/backend.native/tests/external/codegen/box/reflection/functions/instanceOfFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/instanceOfFunction.kt rename to backend.native/tests/external/codegen/box/reflection/functions/instanceOfFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/javaClassGetFunctions.kt b/backend.native/tests/external/codegen/box/reflection/functions/javaClassGetFunctions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/javaClassGetFunctions.kt rename to backend.native/tests/external/codegen/box/reflection/functions/javaClassGetFunctions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/javaMethodsSmokeTest.kt b/backend.native/tests/external/codegen/box/reflection/functions/javaMethodsSmokeTest.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/javaMethodsSmokeTest.kt rename to backend.native/tests/external/codegen/box/reflection/functions/javaMethodsSmokeTest.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/platformName.kt b/backend.native/tests/external/codegen/box/reflection/functions/platformName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/platformName.kt rename to backend.native/tests/external/codegen/box/reflection/functions/platformName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/privateMemberFunction.kt b/backend.native/tests/external/codegen/box/reflection/functions/privateMemberFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/privateMemberFunction.kt rename to backend.native/tests/external/codegen/box/reflection/functions/privateMemberFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/simpleGetFunctions.kt b/backend.native/tests/external/codegen/box/reflection/functions/simpleGetFunctions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/simpleGetFunctions.kt rename to backend.native/tests/external/codegen/box/reflection/functions/simpleGetFunctions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/functions/simpleNames.kt b/backend.native/tests/external/codegen/box/reflection/functions/simpleNames.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/reflection/functions/simpleNames.kt rename to backend.native/tests/external/codegen/box/reflection/functions/simpleNames.kt index 25b3865ae44..9df53d8ee51 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/functions/simpleNames.kt +++ b/backend.native/tests/external/codegen/box/reflection/functions/simpleNames.kt @@ -1,6 +1,3 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE - // WITH_REFLECT import kotlin.test.assertEquals diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/covariantOverride.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/covariantOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/covariantOverride.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/covariantOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/defaultImplsGenericSignature.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/defaultImplsGenericSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/defaultImplsGenericSignature.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/defaultImplsGenericSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/functionLiteralGenericSignature.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/functionLiteralGenericSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/functionLiteralGenericSignature.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/functionLiteralGenericSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/genericBackingFieldSignature.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/genericBackingFieldSignature.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/genericMethodSignature.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/genericMethodSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/genericMethodSignature.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/genericMethodSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/kt11121.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/kt11121.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/kt11121.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/kt11121.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/kt5112.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/kt5112.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/kt5112.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/kt5112.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/genericSignature/kt6106.kt b/backend.native/tests/external/codegen/box/reflection/genericSignature/kt6106.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/genericSignature/kt6106.kt rename to backend.native/tests/external/codegen/box/reflection/genericSignature/kt6106.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/isInstance/isInstanceCastAndSafeCast.kt b/backend.native/tests/external/codegen/box/reflection/isInstance/isInstanceCastAndSafeCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/isInstance/isInstanceCastAndSafeCast.kt rename to backend.native/tests/external/codegen/box/reflection/isInstance/isInstanceCastAndSafeCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/array.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/array.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/array.kt rename to backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/array.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/arrayInJava.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/arrayInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/arrayInJava.kt rename to backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/arrayInJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/basic.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/basic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/basic.kt rename to backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/basic.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/basicInJava.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/basicInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/basicInJava.kt rename to backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/basicInJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/checkcast.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/checkcast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/checkcast.kt rename to backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/checkcast.kt diff --git a/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/forceWrapping.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/forceWrapping.kt new file mode 100644 index 00000000000..200df71516c --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/forceWrapping.kt @@ -0,0 +1,22 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KClass +import kotlin.test.assertEquals + +annotation class Anno( + val klass: KClass<*>, + val kClasses: Array>, + vararg val kClassesVararg: KClass<*> +) + +@Anno(String::class, arrayOf(Int::class), Double::class) +fun foo() {} + +fun box(): String { + val k = ::foo.annotations.single() as Anno + assertEquals(String::class, k.klass) + assertEquals(Int::class, k.kClasses[0]) + assertEquals(Double::class, k.kClassesVararg[0]) + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/vararg.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/vararg.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/vararg.kt rename to backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/vararg.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/varargInJava.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/varargInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/kClassInAnnotation/varargInJava.kt rename to backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/varargInJava.kt diff --git a/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/wrappingForCallableReferences.kt b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/wrappingForCallableReferences.kt new file mode 100644 index 00000000000..2734320a103 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/kClassInAnnotation/wrappingForCallableReferences.kt @@ -0,0 +1,41 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT +import kotlin.reflect.KClass +import kotlin.test.assertEquals + +annotation class Anno( + val klass: KClass<*>, + val kClasses: Array>, + vararg val kClassesVararg: KClass<*> +) + +@Anno(String::class, arrayOf(Int::class), Double::class) +fun foo() {} + +fun Anno.checkReference(expected: Any?, x: Anno.() -> Any?) { + assertEquals(expected, x()) +} + +fun Anno.checkReferenceArray(expected: Any?, x: Anno.() -> Array) { + assertEquals(expected, x()[0]) +} + +fun checkBoundReference(expected: Any?, x: () -> Any?) { + assertEquals(expected, x()) +} + +fun checkBoundReferenceArray(expected: Any?, x: () -> Array) { + assertEquals(expected, x()[0]) +} + +fun box(): String { + val k = ::foo.annotations.single() as Anno + k.checkReference(String::class, Anno::klass) + k.checkReferenceArray(Int::class, Anno::kClasses) + k.checkReferenceArray(Double::class, Anno::kClassesVararg) + + checkBoundReference(String::class, k::klass) + checkBoundReferenceArray(Int::class, k::kClasses) + checkBoundReferenceArray(Double::class, k::kClassesVararg) + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/lambdaClasses/parameterNamesAndNullability.kt b/backend.native/tests/external/codegen/box/reflection/lambdaClasses/parameterNamesAndNullability.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/lambdaClasses/parameterNamesAndNullability.kt rename to backend.native/tests/external/codegen/box/reflection/lambdaClasses/parameterNamesAndNullability.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/constructor.kt b/backend.native/tests/external/codegen/box/reflection/mapping/constructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/constructor.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/constructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/extensionProperty.kt b/backend.native/tests/external/codegen/box/reflection/mapping/extensionProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/extensionProperty.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/extensionProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/fakeOverrides/javaFieldGetterSetter.kt b/backend.native/tests/external/codegen/box/reflection/mapping/fakeOverrides/javaFieldGetterSetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/fakeOverrides/javaFieldGetterSetter.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/fakeOverrides/javaFieldGetterSetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/fakeOverrides/javaMethod.kt b/backend.native/tests/external/codegen/box/reflection/mapping/fakeOverrides/javaMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/fakeOverrides/javaMethod.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/fakeOverrides/javaMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/functions.kt b/backend.native/tests/external/codegen/box/reflection/mapping/functions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/functions.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/functions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/inlineReifiedFun.kt b/backend.native/tests/external/codegen/box/reflection/mapping/inlineReifiedFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/inlineReifiedFun.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/inlineReifiedFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/jvmStatic/companionObjectFunction.kt b/backend.native/tests/external/codegen/box/reflection/mapping/jvmStatic/companionObjectFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/jvmStatic/companionObjectFunction.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/jvmStatic/companionObjectFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/jvmStatic/objectFunction.kt b/backend.native/tests/external/codegen/box/reflection/mapping/jvmStatic/objectFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/jvmStatic/objectFunction.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/jvmStatic/objectFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/mappedClassIsEqualToClassLiteral.kt b/backend.native/tests/external/codegen/box/reflection/mapping/mappedClassIsEqualToClassLiteral.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/mappedClassIsEqualToClassLiteral.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/mappedClassIsEqualToClassLiteral.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/memberProperty.kt b/backend.native/tests/external/codegen/box/reflection/mapping/memberProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/memberProperty.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/memberProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/propertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/mapping/propertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/propertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/propertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/propertyAccessorsWithJvmName.kt b/backend.native/tests/external/codegen/box/reflection/mapping/propertyAccessorsWithJvmName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/propertyAccessorsWithJvmName.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/propertyAccessorsWithJvmName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/syntheticFields.kt b/backend.native/tests/external/codegen/box/reflection/mapping/syntheticFields.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/syntheticFields.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/syntheticFields.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/topLevelFunctionOtherFile.kt b/backend.native/tests/external/codegen/box/reflection/mapping/topLevelFunctionOtherFile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/topLevelFunctionOtherFile.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/topLevelFunctionOtherFile.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/topLevelProperty.kt b/backend.native/tests/external/codegen/box/reflection/mapping/topLevelProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/topLevelProperty.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/topLevelProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/annotationConstructorParameters.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/annotationConstructorParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/annotationConstructorParameters.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/annotationConstructorParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/array.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/array.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/array.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/array.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/constructors.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/constructors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/constructors.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/constructors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/genericArrayElementType.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/genericArrayElementType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/genericArrayElementType.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/genericArrayElementType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/innerGenericTypeArgument.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/innerGenericTypeArgument.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/innerGenericTypeArgument.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/innerGenericTypeArgument.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/memberFunctions.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/memberFunctions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/memberFunctions.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/memberFunctions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/overrideAnyWithPrimitive.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/overrideAnyWithPrimitive.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/overrideAnyWithPrimitive.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/overrideAnyWithPrimitive.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/parameterizedTypeArgument.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/parameterizedTypeArgument.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/parameterizedTypeArgument.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/parameterizedTypeArgument.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/parameterizedTypes.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/parameterizedTypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/parameterizedTypes.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/parameterizedTypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/propertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/propertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/propertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/propertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/rawTypeArgument.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/rawTypeArgument.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/rawTypeArgument.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/rawTypeArgument.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/supertypes.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/supertypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/supertypes.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/supertypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/topLevelFunctions.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/topLevelFunctions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/topLevelFunctions.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/topLevelFunctions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/typeParameters.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/typeParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/typeParameters.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/typeParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/unit.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/unit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/unit.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/unit.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/mapping/types/withNullability.kt b/backend.native/tests/external/codegen/box/reflection/mapping/types/withNullability.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/mapping/types/withNullability.kt rename to backend.native/tests/external/codegen/box/reflection/mapping/types/withNullability.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/callableReferencesEqualToCallablesFromAPI.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/callableReferencesEqualToCallablesFromAPI.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/callableReferencesEqualToCallablesFromAPI.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/callableReferencesEqualToCallablesFromAPI.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/classToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/classToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/classToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/classToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/extensionPropertyReceiverToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/extensionPropertyReceiverToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/extensionPropertyReceiverToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/extensionPropertyReceiverToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/functionEqualsHashCode.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionEqualsHashCode.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/functionEqualsHashCode.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionEqualsHashCode.kt diff --git a/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibMultiFileFacade.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibMultiFileFacade.kt new file mode 100644 index 00000000000..567bce31a49 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibMultiFileFacade.kt @@ -0,0 +1,13 @@ +// KT-12630 KotlinReflectionInternalError on referencing some functions from stdlib + +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.test.* + +fun box(): String { + val asIterable = List::asIterable + assertEquals("fun kotlin.collections.Iterable.asIterable(): kotlin.collections.Iterable", asIterable.toString()) + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibSingleFileFacade.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibSingleFileFacade.kt new file mode 100644 index 00000000000..70430a07e3b --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionFromStdlibSingleFileFacade.kt @@ -0,0 +1,13 @@ +// KT-12630 KotlinReflectionInternalError on referencing some functions from stdlib + +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.test.* + +fun box(): String { + val lazyOf: (String) -> Lazy = ::lazyOf + assertEquals("fun lazyOf(T): kotlin.Lazy", lazyOf.toString()) + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/functionToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/functionToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/functionToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/memberExtensionToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/memberExtensionToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/memberExtensionToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/memberExtensionToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/parametersEqualsHashCode.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/parametersEqualsHashCode.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/parametersEqualsHashCode.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/parametersEqualsHashCode.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/parametersToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/parametersToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/parametersToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/parametersToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/propertyEqualsHashCode.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/propertyEqualsHashCode.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/propertyEqualsHashCode.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/propertyEqualsHashCode.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/propertyToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/propertyToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/propertyToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/propertyToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeEqualsHashCode.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeEqualsHashCode.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeEqualsHashCode.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeEqualsHashCode.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeParametersEqualsHashCode.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeParametersEqualsHashCode.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeParametersEqualsHashCode.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeParametersEqualsHashCode.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeParametersToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeParametersToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeParametersToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeParametersToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeToString.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeToString.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeToStringInnerGeneric.kt b/backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeToStringInnerGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/methodsFromAny/typeToStringInnerGeneric.kt rename to backend.native/tests/external/codegen/box/reflection/methodsFromAny/typeToStringInnerGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/callableModality.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/callableModality.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/callableModality.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/callableModality.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/callableVisibility.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/callableVisibility.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/callableVisibility.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/callableVisibility.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/classModality.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/classModality.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/classModality.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/classModality.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/classVisibility.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/classVisibility.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/classVisibility.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/classVisibility.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/classes.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/classes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/classes.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/classes.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/functions.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/functions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/functions.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/functions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/javaVisibility.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/javaVisibility.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/javaVisibility.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/javaVisibility.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/properties.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/properties.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/properties.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/properties.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/modifiers/typeParameters.kt b/backend.native/tests/external/codegen/box/reflection/modifiers/typeParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/modifiers/typeParameters.kt rename to backend.native/tests/external/codegen/box/reflection/modifiers/typeParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/multifileClasses/callFunctionsInMultifileClass.kt b/backend.native/tests/external/codegen/box/reflection/multifileClasses/callFunctionsInMultifileClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/multifileClasses/callFunctionsInMultifileClass.kt rename to backend.native/tests/external/codegen/box/reflection/multifileClasses/callFunctionsInMultifileClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/multifileClasses/callPropertiesInMultifileClass.kt b/backend.native/tests/external/codegen/box/reflection/multifileClasses/callPropertiesInMultifileClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/multifileClasses/callPropertiesInMultifileClass.kt rename to backend.native/tests/external/codegen/box/reflection/multifileClasses/callPropertiesInMultifileClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/multifileClasses/javaFieldForVarAndConstVal.kt b/backend.native/tests/external/codegen/box/reflection/multifileClasses/javaFieldForVarAndConstVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/multifileClasses/javaFieldForVarAndConstVal.kt rename to backend.native/tests/external/codegen/box/reflection/multifileClasses/javaFieldForVarAndConstVal.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/javaClass.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/javaClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/javaClass.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/javaClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/methodsFromAny/callableReferences.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/callableReferences.kt similarity index 72% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/methodsFromAny/callableReferences.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/callableReferences.kt index b11712c344a..48031e6a259 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/methodsFromAny/callableReferences.kt +++ b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/callableReferences.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME @@ -11,6 +11,9 @@ class M { val bar = 1 } +fun topLevelFun() {} +val topLevelProp = "" + fun checkEquals(x: KCallable<*>, y: KCallable<*>) { assertEquals(x, y) assertEquals(y, x) @@ -26,9 +29,15 @@ fun box(): String { checkEquals(M::bar, M::bar) checkEquals(::M, ::M) + checkEquals(::topLevelFun, ::topLevelFun) + checkEquals(::topLevelProp, ::topLevelProp) + checkToString(M::foo, "function foo") checkToString(M::bar, "property bar") checkToString(::M, "constructor") + checkToString(::topLevelFun, "function topLevelFun") + checkToString(::topLevelProp, "property topLevelProp") + return "OK" } diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/methodsFromAny/classReference.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/classReference.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/methodsFromAny/classReference.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/classReference.kt diff --git a/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/delegatedProperty.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/delegatedProperty.kt new file mode 100644 index 00000000000..aba2096391e --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/methodsFromAny/delegatedProperty.kt @@ -0,0 +1,28 @@ +// IGNORE_BACKEND: JS +// WITH_RUNTIME + +import kotlin.reflect.KProperty +import kotlin.test.assertEquals + +object Delegate { + lateinit var prop: KProperty<*> + + operator fun provideDelegate(thiz: Any?, p: KProperty<*>): Delegate { + prop = p + return this + } + + operator fun getValue(x: Any?, p: KProperty<*>) { + assertEquals(prop, p) + assertEquals(p, prop) + assertEquals(p.hashCode(), prop.hashCode()) + assertEquals("property x (Kotlin reflection is not available)", p.toString()) + } +} + +val x: Unit by Delegate + +fun box(): String { + x + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/primitiveJavaClass.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/primitiveJavaClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/primitiveJavaClass.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/primitiveJavaClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/propertyGetSetName.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/propertyGetSetName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/propertyGetSetName.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/propertyGetSetName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/propertyInstanceof.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/propertyInstanceof.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/propertyInstanceof.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/propertyInstanceof.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/reifiedTypeJavaClass.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/reifiedTypeJavaClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/reifiedTypeJavaClass.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/reifiedTypeJavaClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/simpleClassLiterals.kt b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/simpleClassLiterals.kt similarity index 69% rename from backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/simpleClassLiterals.kt rename to backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/simpleClassLiterals.kt index 406b86f608d..dffd69ffd7e 100644 --- a/backend.native/tests/external/codegen/blackbox/reflection/noReflectAtRuntime/simpleClassLiterals.kt +++ b/backend.native/tests/external/codegen/box/reflection/noReflectAtRuntime/simpleClassLiterals.kt @@ -1,5 +1,4 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: NATIVE // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/boundInnerClassConstructor.kt b/backend.native/tests/external/codegen/box/reflection/parameters/boundInnerClassConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/boundInnerClassConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/boundInnerClassConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/boundObjectMemberReferences.kt b/backend.native/tests/external/codegen/box/reflection/parameters/boundObjectMemberReferences.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/boundObjectMemberReferences.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/boundObjectMemberReferences.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/boundReferences.kt b/backend.native/tests/external/codegen/box/reflection/parameters/boundReferences.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/boundReferences.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/boundReferences.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/findParameterByName.kt b/backend.native/tests/external/codegen/box/reflection/parameters/findParameterByName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/findParameterByName.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/findParameterByName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/functionParameterNameAndIndex.kt b/backend.native/tests/external/codegen/box/reflection/parameters/functionParameterNameAndIndex.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/functionParameterNameAndIndex.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/functionParameterNameAndIndex.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/instanceExtensionReceiverAndValueParameters.kt b/backend.native/tests/external/codegen/box/reflection/parameters/instanceExtensionReceiverAndValueParameters.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/instanceExtensionReceiverAndValueParameters.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/instanceExtensionReceiverAndValueParameters.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/isMarkedNullable.kt b/backend.native/tests/external/codegen/box/reflection/parameters/isMarkedNullable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/isMarkedNullable.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/isMarkedNullable.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/isOptional.kt b/backend.native/tests/external/codegen/box/reflection/parameters/isOptional.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/isOptional.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/isOptional.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/javaAnnotationConstructor.kt b/backend.native/tests/external/codegen/box/reflection/parameters/javaAnnotationConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/javaAnnotationConstructor.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/javaAnnotationConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/javaParametersHaveNoNames.kt b/backend.native/tests/external/codegen/box/reflection/parameters/javaParametersHaveNoNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/javaParametersHaveNoNames.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/javaParametersHaveNoNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/kinds.kt b/backend.native/tests/external/codegen/box/reflection/parameters/kinds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/kinds.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/kinds.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/parameters/propertySetter.kt b/backend.native/tests/external/codegen/box/reflection/parameters/propertySetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/parameters/propertySetter.kt rename to backend.native/tests/external/codegen/box/reflection/parameters/propertySetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/accessorNames.kt b/backend.native/tests/external/codegen/box/reflection/properties/accessors/accessorNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/accessorNames.kt rename to backend.native/tests/external/codegen/box/reflection/properties/accessors/accessorNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/extensionPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/properties/accessors/extensionPropertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/extensionPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/properties/accessors/extensionPropertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/memberExtensions.kt b/backend.native/tests/external/codegen/box/reflection/properties/accessors/memberExtensions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/memberExtensions.kt rename to backend.native/tests/external/codegen/box/reflection/properties/accessors/memberExtensions.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/memberPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/properties/accessors/memberPropertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/memberPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/properties/accessors/memberPropertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/topLevelPropertyAccessors.kt b/backend.native/tests/external/codegen/box/reflection/properties/accessors/topLevelPropertyAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/accessors/topLevelPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/properties/accessors/topLevelPropertyAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/allVsDeclared.kt b/backend.native/tests/external/codegen/box/reflection/properties/allVsDeclared.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/allVsDeclared.kt rename to backend.native/tests/external/codegen/box/reflection/properties/allVsDeclared.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/callPrivatePropertyFromGetProperties.kt b/backend.native/tests/external/codegen/box/reflection/properties/callPrivatePropertyFromGetProperties.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/callPrivatePropertyFromGetProperties.kt rename to backend.native/tests/external/codegen/box/reflection/properties/callPrivatePropertyFromGetProperties.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/declaredVsInheritedProperties.kt b/backend.native/tests/external/codegen/box/reflection/properties/declaredVsInheritedProperties.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/declaredVsInheritedProperties.kt rename to backend.native/tests/external/codegen/box/reflection/properties/declaredVsInheritedProperties.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/fakeOverridesInSubclass.kt b/backend.native/tests/external/codegen/box/reflection/properties/fakeOverridesInSubclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/fakeOverridesInSubclass.kt rename to backend.native/tests/external/codegen/box/reflection/properties/fakeOverridesInSubclass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/genericClassLiteralPropertyReceiverIsStar.kt b/backend.native/tests/external/codegen/box/reflection/properties/genericClassLiteralPropertyReceiverIsStar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/genericClassLiteralPropertyReceiverIsStar.kt rename to backend.native/tests/external/codegen/box/reflection/properties/genericClassLiteralPropertyReceiverIsStar.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/genericOverriddenProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/genericOverriddenProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/genericOverriddenProperty.kt rename to backend.native/tests/external/codegen/box/reflection/properties/genericOverriddenProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/genericProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/genericProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/genericProperty.kt rename to backend.native/tests/external/codegen/box/reflection/properties/genericProperty.kt diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/booleanPropertyNameStartsWithIs.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/booleanPropertyNameStartsWithIs.kt new file mode 100644 index 00000000000..1da4c341311 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/booleanPropertyNameStartsWithIs.kt @@ -0,0 +1,21 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + operator fun getValue(instance: Any?, property: KProperty<*>) = true +} + +class Foo { + val isOK: Boolean by Delegate +} + +fun box(): String { + val foo = Foo() + assertEquals(Delegate, Foo::isOK.apply { isAccessible = true }.getDelegate(foo)) + assertEquals(Delegate, foo::isOK.apply { isAccessible = true }.getDelegate()) + return if (foo.isOK) "OK" else "Fail" +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundExtensionProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundExtensionProperty.kt new file mode 100644 index 00000000000..263aa101cdb --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundExtensionProperty.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + var storage = "" + operator fun getValue(instance: Any?, property: KProperty<*>) = storage + operator fun setValue(instance: Any?, property: KProperty<*>, value: String) { storage = value } +} + +class Foo + +var Foo.result: String by Delegate + +fun box(): String { + val foo = Foo() + foo.result = "Fail" + val d = (foo::result).apply { isAccessible = true }.getDelegate() as Delegate + foo.result = "OK" + assertEquals(d, (foo::result).apply { isAccessible = true }.getDelegate()) + assertEquals(d, (Foo()::result).apply { isAccessible = true }.getDelegate()) + return d.getValue(foo, Foo::result) +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundMemberProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundMemberProperty.kt new file mode 100644 index 00000000000..0324af72ba3 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/boundMemberProperty.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + var storage = "" + operator fun getValue(instance: Any?, property: KProperty<*>) = storage + operator fun setValue(instance: Any?, property: KProperty<*>, value: String) { storage = value } +} + +class Foo { + var result: String by Delegate +} + +fun box(): String { + val foo = Foo() + foo.result = "Fail" + val d = (foo::result).apply { isAccessible = true }.getDelegate() as Delegate + foo.result = "OK" + assertEquals(d, (foo::result).apply { isAccessible = true }.getDelegate()) + assertEquals(d, (Foo()::result).apply { isAccessible = true }.getDelegate()) + return d.getValue(foo, Foo::result) +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/extensionProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/extensionProperty.kt new file mode 100644 index 00000000000..6c4997888b2 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/extensionProperty.kt @@ -0,0 +1,25 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + var storage = "" + operator fun getValue(instance: Any?, property: KProperty<*>) = storage + operator fun setValue(instance: Any?, property: KProperty<*>, value: String) { storage = value } +} + +class Foo + +var Foo.result: String by Delegate + +fun box(): String { + val foo = Foo() + foo.result = "Fail" + val d = Foo::result.apply { isAccessible = true }.getDelegate(foo) as Delegate + foo.result = "OK" + assertEquals(d, Foo::result.apply { isAccessible = true }.getDelegate(foo)) + return d.getValue(foo, Foo::result) +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/fakeOverride.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/fakeOverride.kt new file mode 100644 index 00000000000..c60317a052b --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/fakeOverride.kt @@ -0,0 +1,25 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + operator fun getValue(instance: Any?, property: KProperty<*>) = "OK" +} + +open class Base { + val x: String by Delegate +} + +class Derived : Base() + +fun box(): String { + val d = Derived() + assertEquals( + (Base::x).apply { isAccessible = true }.getDelegate(d), + (Derived::x).apply { isAccessible = true }.getDelegate(d) + ) + return d.x +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/getExtensionDelegate.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/getExtensionDelegate.kt new file mode 100644 index 00000000000..3c07f402756 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/getExtensionDelegate.kt @@ -0,0 +1,38 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.KProperty2 +import kotlin.reflect.jvm.isAccessible +import kotlin.reflect.full.getExtensionDelegate +import kotlin.test.* + +object Delegate { + operator fun getValue(instance: Any?, property: KProperty<*>) = true +} + +class Foo { + val member: Boolean by Delegate + val String.memberExtension: Boolean by Delegate +} + +val Foo.extension: Boolean by Delegate + +fun box(): String { + // Top level extension + assertEquals(Delegate, Foo::extension.apply { isAccessible = true }.getExtensionDelegate()) + + // Member extension + val me = Foo::class.members.single { it.name == "memberExtension" } as KProperty2 + assertEquals(Delegate, me.apply { isAccessible = true }.getExtensionDelegate(Foo())) + + // Member (should fail) + try { + Foo::member.apply { isAccessible = true }.getExtensionDelegate() + return "Fail: getExtensionDelegate() should fail on a non-extension property" + } catch (e: Exception) { + // OK + } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/kPropertyForDelegatedProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/kPropertyForDelegatedProperty.kt new file mode 100644 index 00000000000..3780053e976 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/kPropertyForDelegatedProperty.kt @@ -0,0 +1,32 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.KProperty0 +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +var ref: KProperty<*>? = null + +class Delegate { + var storage = "" + operator fun provideDelegate(instance: Any?, property: KProperty<*>): Delegate { + ref = property + return this + } + operator fun getValue(instance: Any?, property: KProperty<*>): String = storage + operator fun setValue(instance: Any?, property: KProperty<*>, value: String) { storage = value } +} + +var result: String by Delegate() + +fun box(): String { + result + val prop = ref as KProperty0<*> + + result = "Fail" + val d = prop.apply { isAccessible = true }.getDelegate() as Delegate + result = "OK" + assertEquals(d, prop.apply { isAccessible = true }.getDelegate()) + return result +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt new file mode 100644 index 00000000000..aa5d231a103 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberExtensionProperty.kt @@ -0,0 +1,29 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.* +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + var storage = "" + operator fun getValue(instance: Any?, property: KProperty<*>) = storage + operator fun setValue(instance: Any?, property: KProperty<*>, value: String) { storage = value } +} + +class Bar + +class Foo { + var Bar.result: String by Delegate +} + +fun box(): String { + val foo = Foo() + val bar = Bar() + with(foo) { bar.result = "Fail" } + val prop = Foo::class.members.single { it.name == "result" } as KMutableProperty2 + val d = prop.apply { isAccessible = true }.getDelegate(foo, bar) as Delegate + with(foo) { bar.result = "OK" } + assertEquals(d, prop.apply { isAccessible = true }.getDelegate(foo, bar)) + return d.getValue(foo, prop) +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberProperty.kt new file mode 100644 index 00000000000..c3988a780a0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/memberProperty.kt @@ -0,0 +1,25 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + var storage = "" + operator fun getValue(instance: Any?, property: KProperty<*>) = storage + operator fun setValue(instance: Any?, property: KProperty<*>, value: String) { storage = value } +} + +class Foo { + var result: String by Delegate +} + +fun box(): String { + val foo = Foo() + foo.result = "Fail" + val d = (Foo::result).apply { isAccessible = true }.getDelegate(foo) as Delegate + foo.result = "OK" + assertEquals(d, (Foo::result).apply { isAccessible = true }.getDelegate(foo)) + return d.getValue(foo, Foo::result) +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashClassAndCompanion.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashClassAndCompanion.kt new file mode 100644 index 00000000000..0335e77ff66 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashClassAndCompanion.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +class Delegate(val value: String) { + operator fun getValue(instance: Any?, property: KProperty<*>) = value +} + +class Foo { + val x: String by Delegate("class") + + companion object { + val x: String by Delegate("companion") + } +} + +fun box(): String { + val foo = Foo() + assertEquals("class", ((foo::x).apply { isAccessible = true }.getDelegate() as Delegate).value) + assertEquals("class", ((Foo::x).apply { isAccessible = true }.getDelegate(foo) as Delegate).value) + assertEquals("companion", ((Foo.Companion::x).apply { isAccessible = true }.getDelegate() as Delegate).value) + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashExtensionProperties.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashExtensionProperties.kt new file mode 100644 index 00000000000..70f021ba564 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/nameClashExtensionProperties.kt @@ -0,0 +1,42 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.* +import kotlin.reflect.full.extensionReceiverParameter +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +class Delegate(val value: String) { + operator fun getValue(instance: Any?, property: KProperty<*>) = value +} + +class Foo + +val Foo.bar: String by Delegate("Foo") +val String.bar: String by Delegate("String") +val Unit.bar: String by Delegate("Unit") + +class MemberExtensions { + val Foo?.bar: String by Delegate("Foo") + val String?.bar: String by Delegate("String") + val Unit?.bar: String by Delegate("Unit") +} + +fun box(): String { + val foo = Foo() + + assertEquals("Foo", ((foo::bar).apply { isAccessible = true }.getDelegate() as Delegate).value) + assertEquals("Foo", ((Foo::bar).apply { isAccessible = true }.getDelegate(foo) as Delegate).value) + assertEquals("String", ((""::bar).apply { isAccessible = true }.getDelegate() as Delegate).value) + assertEquals("String", ((String::bar).apply { isAccessible = true }.getDelegate("") as Delegate).value) + assertEquals("Unit", ((Unit::bar).apply { isAccessible = true }.getDelegate() as Delegate).value) + + val me = MemberExtensions::class.members.filter { it.name == "bar" } as List> + assertEquals(listOf("Foo", "String", "Unit"), me.sortedBy { + it.extensionReceiverParameter!!.type.toString() + }.map { + (it.apply { isAccessible = true }.getDelegate(MemberExtensions(), null) as Delegate).value + }) + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/noSetAccessibleTrue.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/noSetAccessibleTrue.kt new file mode 100644 index 00000000000..d65e382efb2 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/noSetAccessibleTrue.kt @@ -0,0 +1,44 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.KProperty2 +import kotlin.reflect.full.IllegalPropertyDelegateAccessException +import kotlin.test.* + +object Delegate { + operator fun getValue(instance: Any?, property: KProperty<*>) = true +} + +val topLevel: Boolean by Delegate +val String.extension: Boolean by Delegate + +class Foo { + val member: Boolean by Delegate + val String.memberExtension: Boolean by Delegate +} + +inline fun check(block: () -> Unit) { + try { + block() + throw AssertionError("No IllegalPropertyDelegateAccessException has been thrown") + } catch (e: IllegalPropertyDelegateAccessException) { + // OK + } +} + +fun box(): String { + check { ::topLevel.getDelegate() } + + check { String::extension.getDelegate("") } + check { ""::extension.getDelegate() } + + val foo = Foo() + check { Foo::member.getDelegate(foo) } + check { foo::member.getDelegate() } + + val me = Foo::class.members.single { it.name == "memberExtension" } as KProperty2 + check { me.getDelegate(foo, "") } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/notDelegatedProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/notDelegatedProperty.kt new file mode 100644 index 00000000000..f5450107076 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/notDelegatedProperty.kt @@ -0,0 +1,29 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty2 +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +val topLevel: Boolean = true +val String.extension: Boolean get() = true + +class Foo { + val member: Boolean = true + val String.memberExtension: Boolean get() = true +} + +fun box(): String { + assertNull(::topLevel.apply { isAccessible = true }.getDelegate()) + + assertNull(String::extension.apply { isAccessible = true }.getDelegate("")) + assertNull(""::extension.apply { isAccessible = true }.getDelegate()) + + assertNull(Foo::member.apply { isAccessible = true }.getDelegate(Foo())) + assertNull(Foo()::member.apply { isAccessible = true }.getDelegate()) + + val me = Foo::class.members.single { it.name == "memberExtension" } as KProperty2 + assertNull(me.apply { isAccessible = true }.getDelegate(Foo(), "")) + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/overrideDelegatedByDelegated.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/overrideDelegatedByDelegated.kt new file mode 100644 index 00000000000..d8c8a7b2f95 --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/overrideDelegatedByDelegated.kt @@ -0,0 +1,37 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +class Delegate(val value: String) { + operator fun getValue(instance: Any?, property: KProperty<*>) = value +} + +open class Base { + open val x: String by Delegate("Base") +} + +class Derived : Base() { + override val x: String by Delegate("Derived") +} + +fun check(expected: String, delegate: Any?) { + if (delegate == null) throw AssertionError("getDelegate returned null") + assertEquals(expected, (delegate as Delegate).value) +} + +fun box(): String { + val base = Base() + val derived = Derived() + + check("Base", (Base::x).apply { isAccessible = true }.getDelegate(base)) + check("Base", (base::x).apply { isAccessible = true }.getDelegate()) + check("Derived", (Derived::x).apply { isAccessible = true }.getDelegate(derived)) + check("Derived", (derived::x).apply { isAccessible = true }.getDelegate()) + + check("Base", (Base::x).apply { isAccessible = true }.getDelegate(derived)) + + return "OK" +} diff --git a/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/topLevelProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/topLevelProperty.kt new file mode 100644 index 00000000000..d42785763fe --- /dev/null +++ b/backend.native/tests/external/codegen/box/reflection/properties/getDelegate/topLevelProperty.kt @@ -0,0 +1,23 @@ +// IGNORE_BACKEND: JS, NATIVE +// WITH_REFLECT + +import kotlin.reflect.KProperty +import kotlin.reflect.jvm.isAccessible +import kotlin.test.* + +object Delegate { + var storage = "" + operator fun getValue(instance: Any?, property: KProperty<*>) = storage + operator fun setValue(instance: Any?, property: KProperty<*>, value: String) { storage = value } +} + +var result: String by Delegate + +fun box(): String { + result = "Fail" + val p = (::result).apply { isAccessible = true } + val d = p.getDelegate() as Delegate + result = "OK" + assertEquals(d, (::result).apply { isAccessible = true }.getDelegate()) + return d.getValue(null, p) +} diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/getExtensionPropertiesMutableVsReadonly.kt b/backend.native/tests/external/codegen/box/reflection/properties/getExtensionPropertiesMutableVsReadonly.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/getExtensionPropertiesMutableVsReadonly.kt rename to backend.native/tests/external/codegen/box/reflection/properties/getExtensionPropertiesMutableVsReadonly.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/getPropertiesMutableVsReadonly.kt b/backend.native/tests/external/codegen/box/reflection/properties/getPropertiesMutableVsReadonly.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/getPropertiesMutableVsReadonly.kt rename to backend.native/tests/external/codegen/box/reflection/properties/getPropertiesMutableVsReadonly.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/invokeKProperty.kt b/backend.native/tests/external/codegen/box/reflection/properties/invokeKProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/invokeKProperty.kt rename to backend.native/tests/external/codegen/box/reflection/properties/invokeKProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/javaPropertyInheritedInKotlin.kt b/backend.native/tests/external/codegen/box/reflection/properties/javaPropertyInheritedInKotlin.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/javaPropertyInheritedInKotlin.kt rename to backend.native/tests/external/codegen/box/reflection/properties/javaPropertyInheritedInKotlin.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/javaStaticField.kt b/backend.native/tests/external/codegen/box/reflection/properties/javaStaticField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/javaStaticField.kt rename to backend.native/tests/external/codegen/box/reflection/properties/javaStaticField.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/kotlinPropertyInheritedInJava.kt b/backend.native/tests/external/codegen/box/reflection/properties/kotlinPropertyInheritedInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/kotlinPropertyInheritedInJava.kt rename to backend.native/tests/external/codegen/box/reflection/properties/kotlinPropertyInheritedInJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/memberAndMemberExtensionWithSameName.kt b/backend.native/tests/external/codegen/box/reflection/properties/memberAndMemberExtensionWithSameName.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/memberAndMemberExtensionWithSameName.kt rename to backend.native/tests/external/codegen/box/reflection/properties/memberAndMemberExtensionWithSameName.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/mutatePrivateJavaInstanceField.kt b/backend.native/tests/external/codegen/box/reflection/properties/mutatePrivateJavaInstanceField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/mutatePrivateJavaInstanceField.kt rename to backend.native/tests/external/codegen/box/reflection/properties/mutatePrivateJavaInstanceField.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/mutatePrivateJavaStaticField.kt b/backend.native/tests/external/codegen/box/reflection/properties/mutatePrivateJavaStaticField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/mutatePrivateJavaStaticField.kt rename to backend.native/tests/external/codegen/box/reflection/properties/mutatePrivateJavaStaticField.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/noConflictOnKotlinGetterAndJavaField.kt b/backend.native/tests/external/codegen/box/reflection/properties/noConflictOnKotlinGetterAndJavaField.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/noConflictOnKotlinGetterAndJavaField.kt rename to backend.native/tests/external/codegen/box/reflection/properties/noConflictOnKotlinGetterAndJavaField.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/overrideKotlinPropertyByJavaMethod.kt b/backend.native/tests/external/codegen/box/reflection/properties/overrideKotlinPropertyByJavaMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/overrideKotlinPropertyByJavaMethod.kt rename to backend.native/tests/external/codegen/box/reflection/properties/overrideKotlinPropertyByJavaMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/privateClassVal.kt b/backend.native/tests/external/codegen/box/reflection/properties/privateClassVal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/privateClassVal.kt rename to backend.native/tests/external/codegen/box/reflection/properties/privateClassVal.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/privateClassVar.kt b/backend.native/tests/external/codegen/box/reflection/properties/privateClassVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/privateClassVar.kt rename to backend.native/tests/external/codegen/box/reflection/properties/privateClassVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/privateFakeOverrideFromSuperclass.kt b/backend.native/tests/external/codegen/box/reflection/properties/privateFakeOverrideFromSuperclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/privateFakeOverrideFromSuperclass.kt rename to backend.native/tests/external/codegen/box/reflection/properties/privateFakeOverrideFromSuperclass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/privateJvmStaticVarInObject.kt b/backend.native/tests/external/codegen/box/reflection/properties/privateJvmStaticVarInObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/privateJvmStaticVarInObject.kt rename to backend.native/tests/external/codegen/box/reflection/properties/privateJvmStaticVarInObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/privatePropertyCallIsAccessibleOnAccessors.kt b/backend.native/tests/external/codegen/box/reflection/properties/privatePropertyCallIsAccessibleOnAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/privatePropertyCallIsAccessibleOnAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/properties/privatePropertyCallIsAccessibleOnAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/privateToThisAccessors.kt b/backend.native/tests/external/codegen/box/reflection/properties/privateToThisAccessors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/privateToThisAccessors.kt rename to backend.native/tests/external/codegen/box/reflection/properties/privateToThisAccessors.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/propertyOfNestedClassAndArrayType.kt b/backend.native/tests/external/codegen/box/reflection/properties/propertyOfNestedClassAndArrayType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/propertyOfNestedClassAndArrayType.kt rename to backend.native/tests/external/codegen/box/reflection/properties/propertyOfNestedClassAndArrayType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/protectedClassVar.kt b/backend.native/tests/external/codegen/box/reflection/properties/protectedClassVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/protectedClassVar.kt rename to backend.native/tests/external/codegen/box/reflection/properties/protectedClassVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/publicClassValAccessible.kt b/backend.native/tests/external/codegen/box/reflection/properties/publicClassValAccessible.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/publicClassValAccessible.kt rename to backend.native/tests/external/codegen/box/reflection/properties/publicClassValAccessible.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/referenceToJavaFieldOfKotlinSubclass.kt b/backend.native/tests/external/codegen/box/reflection/properties/referenceToJavaFieldOfKotlinSubclass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/referenceToJavaFieldOfKotlinSubclass.kt rename to backend.native/tests/external/codegen/box/reflection/properties/referenceToJavaFieldOfKotlinSubclass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/properties/simpleGetProperties.kt b/backend.native/tests/external/codegen/box/reflection/properties/simpleGetProperties.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/properties/simpleGetProperties.kt rename to backend.native/tests/external/codegen/box/reflection/properties/simpleGetProperties.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/specialBuiltIns/getMembersOfStandardJavaClasses.kt b/backend.native/tests/external/codegen/box/reflection/specialBuiltIns/getMembersOfStandardJavaClasses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/specialBuiltIns/getMembersOfStandardJavaClasses.kt rename to backend.native/tests/external/codegen/box/reflection/specialBuiltIns/getMembersOfStandardJavaClasses.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/supertypes/builtInClassSupertypes.kt b/backend.native/tests/external/codegen/box/reflection/supertypes/builtInClassSupertypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/supertypes/builtInClassSupertypes.kt rename to backend.native/tests/external/codegen/box/reflection/supertypes/builtInClassSupertypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/supertypes/genericSubstitution.kt b/backend.native/tests/external/codegen/box/reflection/supertypes/genericSubstitution.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/supertypes/genericSubstitution.kt rename to backend.native/tests/external/codegen/box/reflection/supertypes/genericSubstitution.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/supertypes/isSubclassOfIsSuperclassOf.kt b/backend.native/tests/external/codegen/box/reflection/supertypes/isSubclassOfIsSuperclassOf.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/supertypes/isSubclassOfIsSuperclassOf.kt rename to backend.native/tests/external/codegen/box/reflection/supertypes/isSubclassOfIsSuperclassOf.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/supertypes/primitives.kt b/backend.native/tests/external/codegen/box/reflection/supertypes/primitives.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/supertypes/primitives.kt rename to backend.native/tests/external/codegen/box/reflection/supertypes/primitives.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/supertypes/simpleSupertypes.kt b/backend.native/tests/external/codegen/box/reflection/supertypes/simpleSupertypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/supertypes/simpleSupertypes.kt rename to backend.native/tests/external/codegen/box/reflection/supertypes/simpleSupertypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/typeParameters/declarationSiteVariance.kt b/backend.native/tests/external/codegen/box/reflection/typeParameters/declarationSiteVariance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/typeParameters/declarationSiteVariance.kt rename to backend.native/tests/external/codegen/box/reflection/typeParameters/declarationSiteVariance.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/typeParameters/typeParametersAndNames.kt b/backend.native/tests/external/codegen/box/reflection/typeParameters/typeParametersAndNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/typeParameters/typeParametersAndNames.kt rename to backend.native/tests/external/codegen/box/reflection/typeParameters/typeParametersAndNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/typeParameters/upperBounds.kt b/backend.native/tests/external/codegen/box/reflection/typeParameters/upperBounds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/typeParameters/upperBounds.kt rename to backend.native/tests/external/codegen/box/reflection/typeParameters/upperBounds.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/classifierIsClass.kt b/backend.native/tests/external/codegen/box/reflection/types/classifierIsClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/classifierIsClass.kt rename to backend.native/tests/external/codegen/box/reflection/types/classifierIsClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/classifierIsTypeParameter.kt b/backend.native/tests/external/codegen/box/reflection/types/classifierIsTypeParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/classifierIsTypeParameter.kt rename to backend.native/tests/external/codegen/box/reflection/types/classifierIsTypeParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/classifiersOfBuiltInTypes.kt b/backend.native/tests/external/codegen/box/reflection/types/classifiersOfBuiltInTypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/classifiersOfBuiltInTypes.kt rename to backend.native/tests/external/codegen/box/reflection/types/classifiersOfBuiltInTypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/createType/equality.kt b/backend.native/tests/external/codegen/box/reflection/types/createType/equality.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/createType/equality.kt rename to backend.native/tests/external/codegen/box/reflection/types/createType/equality.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/createType/innerGeneric.kt b/backend.native/tests/external/codegen/box/reflection/types/createType/innerGeneric.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/createType/innerGeneric.kt rename to backend.native/tests/external/codegen/box/reflection/types/createType/innerGeneric.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/createType/simpleCreateType.kt b/backend.native/tests/external/codegen/box/reflection/types/createType/simpleCreateType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/createType/simpleCreateType.kt rename to backend.native/tests/external/codegen/box/reflection/types/createType/simpleCreateType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/createType/typeParameter.kt b/backend.native/tests/external/codegen/box/reflection/types/createType/typeParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/createType/typeParameter.kt rename to backend.native/tests/external/codegen/box/reflection/types/createType/typeParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/createType/wrongNumberOfArguments.kt b/backend.native/tests/external/codegen/box/reflection/types/createType/wrongNumberOfArguments.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/createType/wrongNumberOfArguments.kt rename to backend.native/tests/external/codegen/box/reflection/types/createType/wrongNumberOfArguments.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/innerGenericArguments.kt b/backend.native/tests/external/codegen/box/reflection/types/innerGenericArguments.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/innerGenericArguments.kt rename to backend.native/tests/external/codegen/box/reflection/types/innerGenericArguments.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/jvmErasureOfClass.kt b/backend.native/tests/external/codegen/box/reflection/types/jvmErasureOfClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/jvmErasureOfClass.kt rename to backend.native/tests/external/codegen/box/reflection/types/jvmErasureOfClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/jvmErasureOfTypeParameter.kt b/backend.native/tests/external/codegen/box/reflection/types/jvmErasureOfTypeParameter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/jvmErasureOfTypeParameter.kt rename to backend.native/tests/external/codegen/box/reflection/types/jvmErasureOfTypeParameter.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/platformTypeClassifier.kt b/backend.native/tests/external/codegen/box/reflection/types/platformTypeClassifier.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/platformTypeClassifier.kt rename to backend.native/tests/external/codegen/box/reflection/types/platformTypeClassifier.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/platformTypeNotEqualToKotlinType.kt b/backend.native/tests/external/codegen/box/reflection/types/platformTypeNotEqualToKotlinType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/platformTypeNotEqualToKotlinType.kt rename to backend.native/tests/external/codegen/box/reflection/types/platformTypeNotEqualToKotlinType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/platformTypeToString.kt b/backend.native/tests/external/codegen/box/reflection/types/platformTypeToString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/platformTypeToString.kt rename to backend.native/tests/external/codegen/box/reflection/types/platformTypeToString.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/platformType.kt b/backend.native/tests/external/codegen/box/reflection/types/subtyping/platformType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/platformType.kt rename to backend.native/tests/external/codegen/box/reflection/types/subtyping/platformType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/simpleGenericTypes.kt b/backend.native/tests/external/codegen/box/reflection/types/subtyping/simpleGenericTypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/simpleGenericTypes.kt rename to backend.native/tests/external/codegen/box/reflection/types/subtyping/simpleGenericTypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/simpleSubtypeSupertype.kt b/backend.native/tests/external/codegen/box/reflection/types/subtyping/simpleSubtypeSupertype.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/simpleSubtypeSupertype.kt rename to backend.native/tests/external/codegen/box/reflection/types/subtyping/simpleSubtypeSupertype.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/typeProjection.kt b/backend.native/tests/external/codegen/box/reflection/types/subtyping/typeProjection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/subtyping/typeProjection.kt rename to backend.native/tests/external/codegen/box/reflection/types/subtyping/typeProjection.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/typeArguments.kt b/backend.native/tests/external/codegen/box/reflection/types/typeArguments.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/typeArguments.kt rename to backend.native/tests/external/codegen/box/reflection/types/typeArguments.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/useSiteVariance.kt b/backend.native/tests/external/codegen/box/reflection/types/useSiteVariance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/useSiteVariance.kt rename to backend.native/tests/external/codegen/box/reflection/types/useSiteVariance.kt diff --git a/backend.native/tests/external/codegen/blackbox/reflection/types/withNullability.kt b/backend.native/tests/external/codegen/box/reflection/types/withNullability.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reflection/types/withNullability.kt rename to backend.native/tests/external/codegen/box/reflection/types/withNullability.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/Kt1149.kt b/backend.native/tests/external/codegen/box/regressions/Kt1149.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/Kt1149.kt rename to backend.native/tests/external/codegen/box/regressions/Kt1149.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/Kt1619Test.kt b/backend.native/tests/external/codegen/box/regressions/Kt1619Test.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/Kt1619Test.kt rename to backend.native/tests/external/codegen/box/regressions/Kt1619Test.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/Kt2495Test.kt b/backend.native/tests/external/codegen/box/regressions/Kt2495Test.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/Kt2495Test.kt rename to backend.native/tests/external/codegen/box/regressions/Kt2495Test.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/arrayLengthNPE.kt b/backend.native/tests/external/codegen/box/regressions/arrayLengthNPE.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/arrayLengthNPE.kt rename to backend.native/tests/external/codegen/box/regressions/arrayLengthNPE.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/collections.kt b/backend.native/tests/external/codegen/box/regressions/collections.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/collections.kt rename to backend.native/tests/external/codegen/box/regressions/collections.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/commonSupertypeContravariant.kt b/backend.native/tests/external/codegen/box/regressions/commonSupertypeContravariant.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/commonSupertypeContravariant.kt rename to backend.native/tests/external/codegen/box/regressions/commonSupertypeContravariant.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/commonSupertypeContravariant2.kt b/backend.native/tests/external/codegen/box/regressions/commonSupertypeContravariant2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/commonSupertypeContravariant2.kt rename to backend.native/tests/external/codegen/box/regressions/commonSupertypeContravariant2.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/doubleMerge.kt b/backend.native/tests/external/codegen/box/regressions/doubleMerge.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/doubleMerge.kt rename to backend.native/tests/external/codegen/box/regressions/doubleMerge.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/floatMerge.kt b/backend.native/tests/external/codegen/box/regressions/floatMerge.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/floatMerge.kt rename to backend.native/tests/external/codegen/box/regressions/floatMerge.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/generic.kt b/backend.native/tests/external/codegen/box/regressions/generic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/generic.kt rename to backend.native/tests/external/codegen/box/regressions/generic.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/getGenericInterfaces.kt b/backend.native/tests/external/codegen/box/regressions/getGenericInterfaces.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/getGenericInterfaces.kt rename to backend.native/tests/external/codegen/box/regressions/getGenericInterfaces.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/hashCodeNPE.kt b/backend.native/tests/external/codegen/box/regressions/hashCodeNPE.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/hashCodeNPE.kt rename to backend.native/tests/external/codegen/box/regressions/hashCodeNPE.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/internalTopLevelOtherPackage.kt b/backend.native/tests/external/codegen/box/regressions/internalTopLevelOtherPackage.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/internalTopLevelOtherPackage.kt rename to backend.native/tests/external/codegen/box/regressions/internalTopLevelOtherPackage.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt10143.kt b/backend.native/tests/external/codegen/box/regressions/kt10143.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt10143.kt rename to backend.native/tests/external/codegen/box/regressions/kt10143.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt10934.kt b/backend.native/tests/external/codegen/box/regressions/kt10934.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt10934.kt rename to backend.native/tests/external/codegen/box/regressions/kt10934.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1172.kt b/backend.native/tests/external/codegen/box/regressions/kt1172.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1172.kt rename to backend.native/tests/external/codegen/box/regressions/kt1172.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1202.kt b/backend.native/tests/external/codegen/box/regressions/kt1202.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1202.kt rename to backend.native/tests/external/codegen/box/regressions/kt1202.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt13381.kt b/backend.native/tests/external/codegen/box/regressions/kt13381.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt13381.kt rename to backend.native/tests/external/codegen/box/regressions/kt13381.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1406.kt b/backend.native/tests/external/codegen/box/regressions/kt1406.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1406.kt rename to backend.native/tests/external/codegen/box/regressions/kt1406.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt14447.kt b/backend.native/tests/external/codegen/box/regressions/kt14447.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt14447.kt rename to backend.native/tests/external/codegen/box/regressions/kt14447.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1515.kt b/backend.native/tests/external/codegen/box/regressions/kt1515.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1515.kt rename to backend.native/tests/external/codegen/box/regressions/kt1515.kt diff --git a/backend.native/tests/external/codegen/box/regressions/kt15196.kt b/backend.native/tests/external/codegen/box/regressions/kt15196.kt new file mode 100644 index 00000000000..debf64aeb70 --- /dev/null +++ b/backend.native/tests/external/codegen/box/regressions/kt15196.kt @@ -0,0 +1,10 @@ +// WITH_RUNTIME +fun foo() { + val array = Array(0, { IntArray(0) } ) + array.forEach { println(it.asList()) } +} + +fun box(): String { + foo() // just to be sure, that no exception happens + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1528.kt b/backend.native/tests/external/codegen/box/regressions/kt1528.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1528.kt rename to backend.native/tests/external/codegen/box/regressions/kt1528.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1568.kt b/backend.native/tests/external/codegen/box/regressions/kt1568.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1568.kt rename to backend.native/tests/external/codegen/box/regressions/kt1568.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1779.kt b/backend.native/tests/external/codegen/box/regressions/kt1779.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1779.kt rename to backend.native/tests/external/codegen/box/regressions/kt1779.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1800.kt b/backend.native/tests/external/codegen/box/regressions/kt1800.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1800.kt rename to backend.native/tests/external/codegen/box/regressions/kt1800.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1845.kt b/backend.native/tests/external/codegen/box/regressions/kt1845.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1845.kt rename to backend.native/tests/external/codegen/box/regressions/kt1845.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt1932.kt b/backend.native/tests/external/codegen/box/regressions/kt1932.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt1932.kt rename to backend.native/tests/external/codegen/box/regressions/kt1932.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt2017.kt b/backend.native/tests/external/codegen/box/regressions/kt2017.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt2017.kt rename to backend.native/tests/external/codegen/box/regressions/kt2017.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt2060.kt b/backend.native/tests/external/codegen/box/regressions/kt2060.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt2060.kt rename to backend.native/tests/external/codegen/box/regressions/kt2060.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt2210.kt b/backend.native/tests/external/codegen/box/regressions/kt2210.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt2210.kt rename to backend.native/tests/external/codegen/box/regressions/kt2210.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt2246.kt b/backend.native/tests/external/codegen/box/regressions/kt2246.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/regressions/kt2246.kt rename to backend.native/tests/external/codegen/box/regressions/kt2246.kt index e03cc3155fc..28bbc2321b2 100644 --- a/backend.native/tests/external/codegen/blackbox/regressions/kt2246.kt +++ b/backend.native/tests/external/codegen/box/regressions/kt2246.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt2318.kt b/backend.native/tests/external/codegen/box/regressions/kt2318.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt2318.kt rename to backend.native/tests/external/codegen/box/regressions/kt2318.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt2509.kt b/backend.native/tests/external/codegen/box/regressions/kt2509.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt2509.kt rename to backend.native/tests/external/codegen/box/regressions/kt2509.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt2593.kt b/backend.native/tests/external/codegen/box/regressions/kt2593.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt2593.kt rename to backend.native/tests/external/codegen/box/regressions/kt2593.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt274.kt b/backend.native/tests/external/codegen/box/regressions/kt274.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt274.kt rename to backend.native/tests/external/codegen/box/regressions/kt274.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt3046.kt b/backend.native/tests/external/codegen/box/regressions/kt3046.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt3046.kt rename to backend.native/tests/external/codegen/box/regressions/kt3046.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt3107.kt b/backend.native/tests/external/codegen/box/regressions/kt3107.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt3107.kt rename to backend.native/tests/external/codegen/box/regressions/kt3107.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt3421.kt b/backend.native/tests/external/codegen/box/regressions/kt3421.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt3421.kt rename to backend.native/tests/external/codegen/box/regressions/kt3421.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt344.kt b/backend.native/tests/external/codegen/box/regressions/kt344.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt344.kt rename to backend.native/tests/external/codegen/box/regressions/kt344.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt3442.kt b/backend.native/tests/external/codegen/box/regressions/kt3442.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt3442.kt rename to backend.native/tests/external/codegen/box/regressions/kt3442.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt3587.kt b/backend.native/tests/external/codegen/box/regressions/kt3587.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt3587.kt rename to backend.native/tests/external/codegen/box/regressions/kt3587.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt3850.kt b/backend.native/tests/external/codegen/box/regressions/kt3850.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt3850.kt rename to backend.native/tests/external/codegen/box/regressions/kt3850.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt3903.kt b/backend.native/tests/external/codegen/box/regressions/kt3903.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt3903.kt rename to backend.native/tests/external/codegen/box/regressions/kt3903.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt4142.kt b/backend.native/tests/external/codegen/box/regressions/kt4142.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt4142.kt rename to backend.native/tests/external/codegen/box/regressions/kt4142.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt4259.kt b/backend.native/tests/external/codegen/box/regressions/kt4259.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt4259.kt rename to backend.native/tests/external/codegen/box/regressions/kt4259.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt4262.kt b/backend.native/tests/external/codegen/box/regressions/kt4262.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt4262.kt rename to backend.native/tests/external/codegen/box/regressions/kt4262.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt4281.kt b/backend.native/tests/external/codegen/box/regressions/kt4281.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt4281.kt rename to backend.native/tests/external/codegen/box/regressions/kt4281.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt5056.kt b/backend.native/tests/external/codegen/box/regressions/kt5056.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt5056.kt rename to backend.native/tests/external/codegen/box/regressions/kt5056.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt528.kt b/backend.native/tests/external/codegen/box/regressions/kt528.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt528.kt rename to backend.native/tests/external/codegen/box/regressions/kt528.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt529.kt b/backend.native/tests/external/codegen/box/regressions/kt529.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt529.kt rename to backend.native/tests/external/codegen/box/regressions/kt529.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt533.kt b/backend.native/tests/external/codegen/box/regressions/kt533.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt533.kt rename to backend.native/tests/external/codegen/box/regressions/kt533.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt5395.kt b/backend.native/tests/external/codegen/box/regressions/kt5395.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt5395.kt rename to backend.native/tests/external/codegen/box/regressions/kt5395.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt5445.kt b/backend.native/tests/external/codegen/box/regressions/kt5445.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt5445.kt rename to backend.native/tests/external/codegen/box/regressions/kt5445.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt5445_2.kt b/backend.native/tests/external/codegen/box/regressions/kt5445_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt5445_2.kt rename to backend.native/tests/external/codegen/box/regressions/kt5445_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt5786_privateWithDefault.kt b/backend.native/tests/external/codegen/box/regressions/kt5786_privateWithDefault.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt5786_privateWithDefault.kt rename to backend.native/tests/external/codegen/box/regressions/kt5786_privateWithDefault.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt5953.kt b/backend.native/tests/external/codegen/box/regressions/kt5953.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt5953.kt rename to backend.native/tests/external/codegen/box/regressions/kt5953.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt6153.kt b/backend.native/tests/external/codegen/box/regressions/kt6153.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt6153.kt rename to backend.native/tests/external/codegen/box/regressions/kt6153.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt6434.kt b/backend.native/tests/external/codegen/box/regressions/kt6434.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt6434.kt rename to backend.native/tests/external/codegen/box/regressions/kt6434.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt6434_2.kt b/backend.native/tests/external/codegen/box/regressions/kt6434_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt6434_2.kt rename to backend.native/tests/external/codegen/box/regressions/kt6434_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt6485.kt b/backend.native/tests/external/codegen/box/regressions/kt6485.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt6485.kt rename to backend.native/tests/external/codegen/box/regressions/kt6485.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt715.kt b/backend.native/tests/external/codegen/box/regressions/kt715.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt715.kt rename to backend.native/tests/external/codegen/box/regressions/kt715.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt7401.kt b/backend.native/tests/external/codegen/box/regressions/kt7401.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt7401.kt rename to backend.native/tests/external/codegen/box/regressions/kt7401.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt789.kt b/backend.native/tests/external/codegen/box/regressions/kt789.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt789.kt rename to backend.native/tests/external/codegen/box/regressions/kt789.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt864.kt b/backend.native/tests/external/codegen/box/regressions/kt864.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt864.kt rename to backend.native/tests/external/codegen/box/regressions/kt864.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/kt998.kt b/backend.native/tests/external/codegen/box/regressions/kt998.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/kt998.kt rename to backend.native/tests/external/codegen/box/regressions/kt998.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/nestedIntersection.kt b/backend.native/tests/external/codegen/box/regressions/nestedIntersection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/nestedIntersection.kt rename to backend.native/tests/external/codegen/box/regressions/nestedIntersection.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/objectCaptureOuterConstructorProperty.kt b/backend.native/tests/external/codegen/box/regressions/objectCaptureOuterConstructorProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/objectCaptureOuterConstructorProperty.kt rename to backend.native/tests/external/codegen/box/regressions/objectCaptureOuterConstructorProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/referenceToSelfInLocal.kt b/backend.native/tests/external/codegen/box/regressions/referenceToSelfInLocal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/referenceToSelfInLocal.kt rename to backend.native/tests/external/codegen/box/regressions/referenceToSelfInLocal.kt diff --git a/backend.native/tests/external/codegen/blackbox/regressions/typeCastException.kt b/backend.native/tests/external/codegen/box/regressions/typeCastException.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/regressions/typeCastException.kt rename to backend.native/tests/external/codegen/box/regressions/typeCastException.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/DIExample.kt b/backend.native/tests/external/codegen/box/reified/DIExample.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/DIExample.kt rename to backend.native/tests/external/codegen/box/reified/DIExample.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/anonymousObject.kt b/backend.native/tests/external/codegen/box/reified/anonymousObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/anonymousObject.kt rename to backend.native/tests/external/codegen/box/reified/anonymousObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/anonymousObjectNoPropagate.kt b/backend.native/tests/external/codegen/box/reified/anonymousObjectNoPropagate.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/anonymousObjectNoPropagate.kt rename to backend.native/tests/external/codegen/box/reified/anonymousObjectNoPropagate.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/anonymousObjectReifiedSupertype.kt b/backend.native/tests/external/codegen/box/reified/anonymousObjectReifiedSupertype.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/anonymousObjectReifiedSupertype.kt rename to backend.native/tests/external/codegen/box/reified/anonymousObjectReifiedSupertype.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/approximateCapturedTypes.kt b/backend.native/tests/external/codegen/box/reified/approximateCapturedTypes.kt similarity index 84% rename from backend.native/tests/external/codegen/blackbox/reified/approximateCapturedTypes.kt rename to backend.native/tests/external/codegen/box/reified/approximateCapturedTypes.kt index a270f4f0d7e..0e19fd0d5bd 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/approximateCapturedTypes.kt +++ b/backend.native/tests/external/codegen/box/reified/approximateCapturedTypes.kt @@ -19,7 +19,7 @@ fun box(): String { val inv = o.lift(SwOperator()) val signature = inv.javaClass.genericSuperclass.toString() - if (signature != "Inv>") return "fail 1: $signature" + if (signature != "Inv>") return "fail 1: $signature" return "OK" } diff --git a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/instanceOf.kt b/backend.native/tests/external/codegen/box/reified/arraysReification/instanceOf.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/reified/arraysReification/instanceOf.kt rename to backend.native/tests/external/codegen/box/reified/arraysReification/instanceOf.kt index eb8f592b691..b3db2462a04 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/instanceOf.kt +++ b/backend.native/tests/external/codegen/box/reified/arraysReification/instanceOf.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/instanceOfArrays.kt b/backend.native/tests/external/codegen/box/reified/arraysReification/instanceOfArrays.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/reified/arraysReification/instanceOfArrays.kt rename to backend.native/tests/external/codegen/box/reified/arraysReification/instanceOfArrays.kt index 1ea7f096e4b..0557c36171b 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/instanceOfArrays.kt +++ b/backend.native/tests/external/codegen/box/reified/arraysReification/instanceOfArrays.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/jClass.kt b/backend.native/tests/external/codegen/box/reified/arraysReification/jClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/arraysReification/jClass.kt rename to backend.native/tests/external/codegen/box/reified/arraysReification/jClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/jaggedArray.kt b/backend.native/tests/external/codegen/box/reified/arraysReification/jaggedArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/arraysReification/jaggedArray.kt rename to backend.native/tests/external/codegen/box/reified/arraysReification/jaggedArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/jaggedArrayOfNulls.kt b/backend.native/tests/external/codegen/box/reified/arraysReification/jaggedArrayOfNulls.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/arraysReification/jaggedArrayOfNulls.kt rename to backend.native/tests/external/codegen/box/reified/arraysReification/jaggedArrayOfNulls.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/arraysReification/jaggedDeep.kt b/backend.native/tests/external/codegen/box/reified/arraysReification/jaggedDeep.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/arraysReification/jaggedDeep.kt rename to backend.native/tests/external/codegen/box/reified/arraysReification/jaggedDeep.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/asOnPlatformType.kt b/backend.native/tests/external/codegen/box/reified/asOnPlatformType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/asOnPlatformType.kt rename to backend.native/tests/external/codegen/box/reified/asOnPlatformType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/checkcast.kt b/backend.native/tests/external/codegen/box/reified/checkcast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/checkcast.kt rename to backend.native/tests/external/codegen/box/reified/checkcast.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/copyToArray.kt b/backend.native/tests/external/codegen/box/reified/copyToArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/copyToArray.kt rename to backend.native/tests/external/codegen/box/reified/copyToArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/defaultJavaClass.kt b/backend.native/tests/external/codegen/box/reified/defaultJavaClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/defaultJavaClass.kt rename to backend.native/tests/external/codegen/box/reified/defaultJavaClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/filterIsInstance.kt b/backend.native/tests/external/codegen/box/reified/filterIsInstance.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/reified/filterIsInstance.kt rename to backend.native/tests/external/codegen/box/reified/filterIsInstance.kt index 489c8b6bcc0..f346e09fb54 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/filterIsInstance.kt +++ b/backend.native/tests/external/codegen/box/reified/filterIsInstance.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reified/innerAnonymousObject.kt b/backend.native/tests/external/codegen/box/reified/innerAnonymousObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/innerAnonymousObject.kt rename to backend.native/tests/external/codegen/box/reified/innerAnonymousObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/instanceof.kt b/backend.native/tests/external/codegen/box/reified/instanceof.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/reified/instanceof.kt rename to backend.native/tests/external/codegen/box/reified/instanceof.kt index 3d56c9f4771..e3b8f5ce6c8 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/instanceof.kt +++ b/backend.native/tests/external/codegen/box/reified/instanceof.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reified/isOnPlatformType.kt b/backend.native/tests/external/codegen/box/reified/isOnPlatformType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/isOnPlatformType.kt rename to backend.native/tests/external/codegen/box/reified/isOnPlatformType.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/javaClass.kt b/backend.native/tests/external/codegen/box/reified/javaClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/javaClass.kt rename to backend.native/tests/external/codegen/box/reified/javaClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/nestedReified.kt b/backend.native/tests/external/codegen/box/reified/nestedReified.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/nestedReified.kt rename to backend.native/tests/external/codegen/box/reified/nestedReified.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/nestedReifiedSignature.kt b/backend.native/tests/external/codegen/box/reified/nestedReifiedSignature.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/nestedReifiedSignature.kt rename to backend.native/tests/external/codegen/box/reified/nestedReifiedSignature.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/newArrayInt.kt b/backend.native/tests/external/codegen/box/reified/newArrayInt.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/reified/newArrayInt.kt rename to backend.native/tests/external/codegen/box/reified/newArrayInt.kt index 74ea8b366f7..b1d92cfbef9 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/newArrayInt.kt +++ b/backend.native/tests/external/codegen/box/reified/newArrayInt.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reified/nonInlineableLambdaInReifiedFunction.kt b/backend.native/tests/external/codegen/box/reified/nonInlineableLambdaInReifiedFunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/nonInlineableLambdaInReifiedFunction.kt rename to backend.native/tests/external/codegen/box/reified/nonInlineableLambdaInReifiedFunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/recursiveInnerAnonymousObject.kt b/backend.native/tests/external/codegen/box/reified/recursiveInnerAnonymousObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/recursiveInnerAnonymousObject.kt rename to backend.native/tests/external/codegen/box/reified/recursiveInnerAnonymousObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/recursiveNewArray.kt b/backend.native/tests/external/codegen/box/reified/recursiveNewArray.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/reified/recursiveNewArray.kt rename to backend.native/tests/external/codegen/box/reified/recursiveNewArray.kt index 7925668cc22..edd797547fd 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/recursiveNewArray.kt +++ b/backend.native/tests/external/codegen/box/reified/recursiveNewArray.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reified/recursiveNonInlineableLambda.kt b/backend.native/tests/external/codegen/box/reified/recursiveNonInlineableLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/recursiveNonInlineableLambda.kt rename to backend.native/tests/external/codegen/box/reified/recursiveNonInlineableLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/reifiedChain.kt b/backend.native/tests/external/codegen/box/reified/reifiedChain.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/reifiedChain.kt rename to backend.native/tests/external/codegen/box/reified/reifiedChain.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/reifiedInlineFunOfObject.kt b/backend.native/tests/external/codegen/box/reified/reifiedInlineFunOfObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/reifiedInlineFunOfObject.kt rename to backend.native/tests/external/codegen/box/reified/reifiedInlineFunOfObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/reifiedInlineFunOfObjectWithinReified.kt b/backend.native/tests/external/codegen/box/reified/reifiedInlineFunOfObjectWithinReified.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/reifiedInlineFunOfObjectWithinReified.kt rename to backend.native/tests/external/codegen/box/reified/reifiedInlineFunOfObjectWithinReified.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/reifiedInlineIntoNonInlineableLambda.kt b/backend.native/tests/external/codegen/box/reified/reifiedInlineIntoNonInlineableLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/reifiedInlineIntoNonInlineableLambda.kt rename to backend.native/tests/external/codegen/box/reified/reifiedInlineIntoNonInlineableLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/safecast.kt b/backend.native/tests/external/codegen/box/reified/safecast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/safecast.kt rename to backend.native/tests/external/codegen/box/reified/safecast.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/sameIndexRecursive.kt b/backend.native/tests/external/codegen/box/reified/sameIndexRecursive.kt similarity index 96% rename from backend.native/tests/external/codegen/blackbox/reified/sameIndexRecursive.kt rename to backend.native/tests/external/codegen/box/reified/sameIndexRecursive.kt index b5fc6022839..0b5bde0eaef 100644 --- a/backend.native/tests/external/codegen/blackbox/reified/sameIndexRecursive.kt +++ b/backend.native/tests/external/codegen/box/reified/sameIndexRecursive.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/reified/spreads.kt b/backend.native/tests/external/codegen/box/reified/spreads.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/spreads.kt rename to backend.native/tests/external/codegen/box/reified/spreads.kt diff --git a/backend.native/tests/external/codegen/blackbox/reified/varargs.kt b/backend.native/tests/external/codegen/box/reified/varargs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/reified/varargs.kt rename to backend.native/tests/external/codegen/box/reified/varargs.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/genericNull.kt b/backend.native/tests/external/codegen/box/safeCall/genericNull.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/genericNull.kt rename to backend.native/tests/external/codegen/box/safeCall/genericNull.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/kt1572.kt b/backend.native/tests/external/codegen/box/safeCall/kt1572.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/kt1572.kt rename to backend.native/tests/external/codegen/box/safeCall/kt1572.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/kt232.kt b/backend.native/tests/external/codegen/box/safeCall/kt232.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/kt232.kt rename to backend.native/tests/external/codegen/box/safeCall/kt232.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/kt245.kt b/backend.native/tests/external/codegen/box/safeCall/kt245.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/kt245.kt rename to backend.native/tests/external/codegen/box/safeCall/kt245.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/kt247.kt b/backend.native/tests/external/codegen/box/safeCall/kt247.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/kt247.kt rename to backend.native/tests/external/codegen/box/safeCall/kt247.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/kt3430.kt b/backend.native/tests/external/codegen/box/safeCall/kt3430.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/kt3430.kt rename to backend.native/tests/external/codegen/box/safeCall/kt3430.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/kt4733.kt b/backend.native/tests/external/codegen/box/safeCall/kt4733.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/kt4733.kt rename to backend.native/tests/external/codegen/box/safeCall/kt4733.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/primitive.kt b/backend.native/tests/external/codegen/box/safeCall/primitive.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/primitive.kt rename to backend.native/tests/external/codegen/box/safeCall/primitive.kt diff --git a/backend.native/tests/external/codegen/blackbox/safeCall/safeCallOnLong.kt b/backend.native/tests/external/codegen/box/safeCall/safeCallOnLong.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/safeCall/safeCallOnLong.kt rename to backend.native/tests/external/codegen/box/safeCall/safeCallOnLong.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/comparator.kt b/backend.native/tests/external/codegen/box/sam/constructors/comparator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/comparator.kt rename to backend.native/tests/external/codegen/box/sam/constructors/comparator.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/filenameFilter.kt b/backend.native/tests/external/codegen/box/sam/constructors/filenameFilter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/filenameFilter.kt rename to backend.native/tests/external/codegen/box/sam/constructors/filenameFilter.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/nonLiteralComparator.kt b/backend.native/tests/external/codegen/box/sam/constructors/nonLiteralComparator.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/nonLiteralComparator.kt rename to backend.native/tests/external/codegen/box/sam/constructors/nonLiteralComparator.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/nonLiteralFilenameFilter.kt b/backend.native/tests/external/codegen/box/sam/constructors/nonLiteralFilenameFilter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/nonLiteralFilenameFilter.kt rename to backend.native/tests/external/codegen/box/sam/constructors/nonLiteralFilenameFilter.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/nonLiteralRunnable.kt b/backend.native/tests/external/codegen/box/sam/constructors/nonLiteralRunnable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/nonLiteralRunnable.kt rename to backend.native/tests/external/codegen/box/sam/constructors/nonLiteralRunnable.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/nonTrivialRunnable.kt b/backend.native/tests/external/codegen/box/sam/constructors/nonTrivialRunnable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/nonTrivialRunnable.kt rename to backend.native/tests/external/codegen/box/sam/constructors/nonTrivialRunnable.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/runnable.kt b/backend.native/tests/external/codegen/box/sam/constructors/runnable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/runnable.kt rename to backend.native/tests/external/codegen/box/sam/constructors/runnable.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/runnableAccessingClosure1.kt b/backend.native/tests/external/codegen/box/sam/constructors/runnableAccessingClosure1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/runnableAccessingClosure1.kt rename to backend.native/tests/external/codegen/box/sam/constructors/runnableAccessingClosure1.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/runnableAccessingClosure2.kt b/backend.native/tests/external/codegen/box/sam/constructors/runnableAccessingClosure2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/runnableAccessingClosure2.kt rename to backend.native/tests/external/codegen/box/sam/constructors/runnableAccessingClosure2.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/samWrappersDifferentFiles.kt b/backend.native/tests/external/codegen/box/sam/constructors/samWrappersDifferentFiles.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/samWrappersDifferentFiles.kt rename to backend.native/tests/external/codegen/box/sam/constructors/samWrappersDifferentFiles.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/sameWrapperClass.kt b/backend.native/tests/external/codegen/box/sam/constructors/sameWrapperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/sameWrapperClass.kt rename to backend.native/tests/external/codegen/box/sam/constructors/sameWrapperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/sam/constructors/syntheticVsReal.kt b/backend.native/tests/external/codegen/box/sam/constructors/syntheticVsReal.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sam/constructors/syntheticVsReal.kt rename to backend.native/tests/external/codegen/box/sam/constructors/syntheticVsReal.kt diff --git a/backend.native/tests/external/codegen/blackbox/sealed/objects.kt b/backend.native/tests/external/codegen/box/sealed/objects.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sealed/objects.kt rename to backend.native/tests/external/codegen/box/sealed/objects.kt diff --git a/backend.native/tests/external/codegen/blackbox/sealed/simple.kt b/backend.native/tests/external/codegen/box/sealed/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/sealed/simple.kt rename to backend.native/tests/external/codegen/box/sealed/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/accessToCompanion.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/accessToCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/accessToCompanion.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/accessToCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/accessToNestedObject.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/accessToNestedObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/accessToNestedObject.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/accessToNestedObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/basicNoPrimaryManySinks.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/basicNoPrimaryManySinks.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/basicNoPrimaryManySinks.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/basicNoPrimaryManySinks.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/basicNoPrimaryOneSink.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/basicNoPrimaryOneSink.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/basicNoPrimaryOneSink.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/basicNoPrimaryOneSink.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/basicPrimary.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/basicPrimary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/basicPrimary.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/basicPrimary.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromLocalSubClass.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/callFromLocalSubClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromLocalSubClass.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/callFromLocalSubClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromPrimaryWithNamedArgs.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/callFromPrimaryWithNamedArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromPrimaryWithNamedArgs.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/callFromPrimaryWithNamedArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromPrimaryWithOptionalArgs.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/callFromPrimaryWithOptionalArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromPrimaryWithOptionalArgs.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/callFromPrimaryWithOptionalArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromSubClass.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/callFromSubClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/callFromSubClass.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/callFromSubClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/clashingDefaultConstructors.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/clashingDefaultConstructors.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/clashingDefaultConstructors.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/clashingDefaultConstructors.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/dataClasses.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/dataClasses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/dataClasses.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/dataClasses.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/defaultArgs.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/defaultArgs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/defaultArgs.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/defaultArgs.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/defaultParametersNotDuplicated.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/defaultParametersNotDuplicated.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/defaultParametersNotDuplicated.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/defaultParametersNotDuplicated.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/delegateWithComplexExpression.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/delegateWithComplexExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/delegateWithComplexExpression.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/delegateWithComplexExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/delegatedThisWithLambda.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/delegatedThisWithLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/delegatedThisWithLambda.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/delegatedThisWithLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/delegationWithPrimary.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/delegationWithPrimary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/delegationWithPrimary.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/delegationWithPrimary.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/enums.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/enums.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/enums.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/enums.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/generics.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/generics.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/generics.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/generics.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/innerClasses.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/innerClasses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/innerClasses.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/innerClasses.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/innerClassesInheritance.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/innerClassesInheritance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/innerClassesInheritance.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/innerClassesInheritance.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/localClasses.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/localClasses.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/localClasses.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/localClasses.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/superCallPrimary.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/superCallPrimary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/superCallPrimary.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/superCallPrimary.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/superCallSecondary.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/superCallSecondary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/superCallSecondary.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/superCallSecondary.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/varargs.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/varargs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/varargs.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/varargs.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withGenerics.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/withGenerics.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/withGenerics.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/withGenerics.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withNonLocalReturn.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/withNonLocalReturn.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/withNonLocalReturn.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/withNonLocalReturn.kt index 97e4d24e68a..2e56fdc0e88 100644 --- a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withNonLocalReturn.kt +++ b/backend.native/tests/external/codegen/box/secondaryConstructors/withNonLocalReturn.kt @@ -1,5 +1,5 @@ // TODO enable for JS backend too when KT-14549 will be fixed -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS inline fun run(block: () -> Unit) = block() diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withPrimary.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/withPrimary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/withPrimary.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/withPrimary.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withReturn.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/withReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/withReturn.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/withReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withReturnUnit.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/withReturnUnit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/withReturnUnit.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/withReturnUnit.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withVarargs.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/withVarargs.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/withVarargs.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/withVarargs.kt diff --git a/backend.native/tests/external/codegen/blackbox/secondaryConstructors/withoutPrimary.kt b/backend.native/tests/external/codegen/box/secondaryConstructors/withoutPrimary.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/secondaryConstructors/withoutPrimary.kt rename to backend.native/tests/external/codegen/box/secondaryConstructors/withoutPrimary.kt diff --git a/backend.native/tests/external/codegen/blackbox/smap/chainCalls.kt b/backend.native/tests/external/codegen/box/smap/chainCalls.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smap/chainCalls.kt rename to backend.native/tests/external/codegen/box/smap/chainCalls.kt diff --git a/backend.native/tests/external/codegen/blackbox/smap/infixCalls.kt b/backend.native/tests/external/codegen/box/smap/infixCalls.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smap/infixCalls.kt rename to backend.native/tests/external/codegen/box/smap/infixCalls.kt diff --git a/backend.native/tests/external/codegen/blackbox/smap/simpleCallWithParams.kt b/backend.native/tests/external/codegen/box/smap/simpleCallWithParams.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smap/simpleCallWithParams.kt rename to backend.native/tests/external/codegen/box/smap/simpleCallWithParams.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/falseSmartCast.kt b/backend.native/tests/external/codegen/box/smartCasts/falseSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/falseSmartCast.kt rename to backend.native/tests/external/codegen/box/smartCasts/falseSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/genericIntersection.kt b/backend.native/tests/external/codegen/box/smartCasts/genericIntersection.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/genericIntersection.kt rename to backend.native/tests/external/codegen/box/smartCasts/genericIntersection.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/genericSet.kt b/backend.native/tests/external/codegen/box/smartCasts/genericSet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/genericSet.kt rename to backend.native/tests/external/codegen/box/smartCasts/genericSet.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/implicitExtensionReceiver.kt b/backend.native/tests/external/codegen/box/smartCasts/implicitExtensionReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/implicitExtensionReceiver.kt rename to backend.native/tests/external/codegen/box/smartCasts/implicitExtensionReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/implicitMemberReceiver.kt b/backend.native/tests/external/codegen/box/smartCasts/implicitMemberReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/implicitMemberReceiver.kt rename to backend.native/tests/external/codegen/box/smartCasts/implicitMemberReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/implicitReceiver.kt b/backend.native/tests/external/codegen/box/smartCasts/implicitReceiver.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/implicitReceiver.kt rename to backend.native/tests/external/codegen/box/smartCasts/implicitReceiver.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/implicitReceiverInWhen.kt b/backend.native/tests/external/codegen/box/smartCasts/implicitReceiverInWhen.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/implicitReceiverInWhen.kt rename to backend.native/tests/external/codegen/box/smartCasts/implicitReceiverInWhen.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/implicitToGrandSon.kt b/backend.native/tests/external/codegen/box/smartCasts/implicitToGrandSon.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/implicitToGrandSon.kt rename to backend.native/tests/external/codegen/box/smartCasts/implicitToGrandSon.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/lambdaArgumentWithoutType.kt b/backend.native/tests/external/codegen/box/smartCasts/lambdaArgumentWithoutType.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/smartCasts/lambdaArgumentWithoutType.kt rename to backend.native/tests/external/codegen/box/smartCasts/lambdaArgumentWithoutType.kt index b385b115457..a5e38e427a0 100644 --- a/backend.native/tests/external/codegen/blackbox/smartCasts/lambdaArgumentWithoutType.kt +++ b/backend.native/tests/external/codegen/box/smartCasts/lambdaArgumentWithoutType.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS class Foo(val s: String) fun foo(): Foo? = Foo("OK") diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/nullSmartCast.kt b/backend.native/tests/external/codegen/box/smartCasts/nullSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/nullSmartCast.kt rename to backend.native/tests/external/codegen/box/smartCasts/nullSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/smartCastInsideIf.kt b/backend.native/tests/external/codegen/box/smartCasts/smartCastInsideIf.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/smartCastInsideIf.kt rename to backend.native/tests/external/codegen/box/smartCasts/smartCastInsideIf.kt diff --git a/backend.native/tests/external/codegen/blackbox/smartCasts/whenSmartCast.kt b/backend.native/tests/external/codegen/box/smartCasts/whenSmartCast.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/smartCasts/whenSmartCast.kt rename to backend.native/tests/external/codegen/box/smartCasts/whenSmartCast.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/bridgeNotEmptyMap.kt b/backend.native/tests/external/codegen/box/specialBuiltins/bridgeNotEmptyMap.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/bridgeNotEmptyMap.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/bridgeNotEmptyMap.kt index bdc90a71a2c..1b1d43a9c20 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/bridgeNotEmptyMap.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/bridgeNotEmptyMap.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS private object NotEmptyMap : MutableMap { override fun containsKey(key: Any): Boolean = true diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/bridges.kt b/backend.native/tests/external/codegen/box/specialBuiltins/bridges.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/bridges.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/bridges.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/collectionImpl.kt b/backend.native/tests/external/codegen/box/specialBuiltins/collectionImpl.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/collectionImpl.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/collectionImpl.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/commonBridgesTarget.kt b/backend.native/tests/external/codegen/box/specialBuiltins/commonBridgesTarget.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/commonBridgesTarget.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/commonBridgesTarget.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/emptyList.kt b/backend.native/tests/external/codegen/box/specialBuiltins/emptyList.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/emptyList.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/emptyList.kt index d7c4c262b7e..51ff7cd35e7 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/emptyList.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/emptyList.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS private object EmptyList : List { override fun contains(element: Nothing): Boolean = false diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/emptyMap.kt b/backend.native/tests/external/codegen/box/specialBuiltins/emptyMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/emptyMap.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/emptyMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/emptyStringMap.kt b/backend.native/tests/external/codegen/box/specialBuiltins/emptyStringMap.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/emptyStringMap.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/emptyStringMap.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/entrySetSOE.kt b/backend.native/tests/external/codegen/box/specialBuiltins/entrySetSOE.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/entrySetSOE.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/entrySetSOE.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/enumAsOrdinaled.kt b/backend.native/tests/external/codegen/box/specialBuiltins/enumAsOrdinaled.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/enumAsOrdinaled.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/enumAsOrdinaled.kt diff --git a/backend.native/tests/external/codegen/box/specialBuiltins/exceptionCause.kt b/backend.native/tests/external/codegen/box/specialBuiltins/exceptionCause.kt new file mode 100644 index 00000000000..cd0501bdf1d --- /dev/null +++ b/backend.native/tests/external/codegen/box/specialBuiltins/exceptionCause.kt @@ -0,0 +1,25 @@ +class CustomException : Throwable { + constructor(message: String?, cause: Throwable?) : super(message, cause) + + constructor(message: String?) : super(message, null) + + constructor(cause: Throwable?) : super(cause) + + constructor() : super() +} + +fun box(): String { + var t = CustomException("O", Throwable("K")) + if (t.message != "O" || t.cause?.message != "K") return "fail1" + + t = CustomException(Throwable("OK")) + if (t.message == null || t.message == "OK" || t.cause?.message != "OK") return "fail2" + + t = CustomException("OK") + if (t.message != "OK" || t.cause != null) return "fail3" + + t = CustomException() + if (t.message != null || t.cause != null) return "fail4" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/explicitSuperCall.kt b/backend.native/tests/external/codegen/box/specialBuiltins/explicitSuperCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/explicitSuperCall.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/explicitSuperCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/irrelevantRemoveAtOverride.kt b/backend.native/tests/external/codegen/box/specialBuiltins/irrelevantRemoveAtOverride.kt similarity index 99% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/irrelevantRemoveAtOverride.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/irrelevantRemoveAtOverride.kt index 0e385c6fc30..747fb11092b 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/irrelevantRemoveAtOverride.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/irrelevantRemoveAtOverride.kt @@ -1,3 +1,5 @@ +// IGNORE_BACKEND: NATIVE + interface Container { fun removeAt(x: Int): String } diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/maps.kt b/backend.native/tests/external/codegen/box/specialBuiltins/maps.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/maps.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/maps.kt index d3dedeef878..e16c06cba11 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/maps.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/maps.kt @@ -1,3 +1,5 @@ +// IGNORE_BACKEND: NATIVE + class A : Map { override val size: Int get() = 56 diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/noSpecialBridgeInSuperClass.kt b/backend.native/tests/external/codegen/box/specialBuiltins/noSpecialBridgeInSuperClass.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/noSpecialBridgeInSuperClass.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/noSpecialBridgeInSuperClass.kt index df49fe5a5cb..8857356fa06 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/noSpecialBridgeInSuperClass.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/noSpecialBridgeInSuperClass.kt @@ -1,3 +1,5 @@ +// IGNORE_BACKEND: NATIVE + var result = "" public abstract class AbstractFoo : Map { diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/notEmptyListAny.kt b/backend.native/tests/external/codegen/box/specialBuiltins/notEmptyListAny.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/notEmptyListAny.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/notEmptyListAny.kt index 7bb922953d7..e289d230889 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/notEmptyListAny.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/notEmptyListAny.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS private object NotEmptyList : MutableList { override fun contains(element: Any): Boolean = true diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/notEmptyMap.kt b/backend.native/tests/external/codegen/box/specialBuiltins/notEmptyMap.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/notEmptyMap.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/notEmptyMap.kt index 875c615b4ca..3e19df62282 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/notEmptyMap.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/notEmptyMap.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS private object NotEmptyMap : MutableMap { override fun containsKey(key: Any): Boolean = true diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/redundantStubForSize.kt b/backend.native/tests/external/codegen/box/specialBuiltins/redundantStubForSize.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/redundantStubForSize.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/redundantStubForSize.kt diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/removeAtTwoSpecialBridges.kt b/backend.native/tests/external/codegen/box/specialBuiltins/removeAtTwoSpecialBridges.kt similarity index 98% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/removeAtTwoSpecialBridges.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/removeAtTwoSpecialBridges.kt index 86f4b09d05c..7ab209eefea 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/removeAtTwoSpecialBridges.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/removeAtTwoSpecialBridges.kt @@ -1,3 +1,5 @@ +// IGNORE_BACKEND: NATIVE + open class A0 : MutableList { override fun add(element: E): Boolean { throw UnsupportedOperationException() diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/throwable.kt b/backend.native/tests/external/codegen/box/specialBuiltins/throwable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/throwable.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/throwable.kt diff --git a/backend.native/tests/external/codegen/box/specialBuiltins/throwableCause.kt b/backend.native/tests/external/codegen/box/specialBuiltins/throwableCause.kt new file mode 100644 index 00000000000..ade7379bb50 --- /dev/null +++ b/backend.native/tests/external/codegen/box/specialBuiltins/throwableCause.kt @@ -0,0 +1,15 @@ +fun box(): String { + var t = Throwable("O", Throwable("K")) + if (t.message != "O" || t.cause?.message != "K") return "fail1" + + t = Throwable(Throwable("OK")) + if (t.message == null || t.message == "OK" || t.cause?.message != "OK") return "fail2" + + t = Throwable("OK") + if (t.message != "OK" || t.cause != null) return "fail3" + + t = Throwable() + if (t.message != null || t.cause != null) return "fail4" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/throwableImpl.kt b/backend.native/tests/external/codegen/box/specialBuiltins/throwableImpl.kt similarity index 91% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/throwableImpl.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/throwableImpl.kt index 2f6aeaa6b55..ad070a0298c 100644 --- a/backend.native/tests/external/codegen/blackbox/specialBuiltins/throwableImpl.kt +++ b/backend.native/tests/external/codegen/box/specialBuiltins/throwableImpl.kt @@ -17,5 +17,5 @@ fun box(): String { return "OK" } - return "fail: MyThrowable wasn't catched." + return "fail: MyThrowable wasn't caught." } diff --git a/backend.native/tests/external/codegen/box/specialBuiltins/throwableImplWithSecondaryConstructor.kt b/backend.native/tests/external/codegen/box/specialBuiltins/throwableImplWithSecondaryConstructor.kt new file mode 100644 index 00000000000..afa627c4598 --- /dev/null +++ b/backend.native/tests/external/codegen/box/specialBuiltins/throwableImplWithSecondaryConstructor.kt @@ -0,0 +1,21 @@ +class MyThrowable : Throwable { + val x: String + + constructor(x: String, message: String, cause: Throwable? = null) : super(x + message, cause) { + this.x = x + } +} + +fun box(): String { + try { + throw MyThrowable("O", "K") + } + catch (t: MyThrowable) { + if (t.cause != null) return "fail t.cause" + if (t.message != "OK") return "fail t.message: ${t.message}" + if (t.x != "O") return "fail t.x: ${t.x}" + return "OK" + } + + return "fail: MyThrowable wasn't caught." +} diff --git a/backend.native/tests/external/codegen/blackbox/specialBuiltins/valuesInsideEnum.kt b/backend.native/tests/external/codegen/box/specialBuiltins/valuesInsideEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/specialBuiltins/valuesInsideEnum.kt rename to backend.native/tests/external/codegen/box/specialBuiltins/valuesInsideEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/anonymousInitializerIObject.kt b/backend.native/tests/external/codegen/box/statics/anonymousInitializerIObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/anonymousInitializerIObject.kt rename to backend.native/tests/external/codegen/box/statics/anonymousInitializerIObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/anonymousInitializerInClassObject.kt b/backend.native/tests/external/codegen/box/statics/anonymousInitializerInClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/anonymousInitializerInClassObject.kt rename to backend.native/tests/external/codegen/box/statics/anonymousInitializerInClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/fields.kt b/backend.native/tests/external/codegen/box/statics/fields.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/fields.kt rename to backend.native/tests/external/codegen/box/statics/fields.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/functions.kt b/backend.native/tests/external/codegen/box/statics/functions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/functions.kt rename to backend.native/tests/external/codegen/box/statics/functions.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/hidePrivateByPublic.kt b/backend.native/tests/external/codegen/box/statics/hidePrivateByPublic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/hidePrivateByPublic.kt rename to backend.native/tests/external/codegen/box/statics/hidePrivateByPublic.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/incInClassObject.kt b/backend.native/tests/external/codegen/box/statics/incInClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/incInClassObject.kt rename to backend.native/tests/external/codegen/box/statics/incInClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/incInObject.kt b/backend.native/tests/external/codegen/box/statics/incInObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/incInObject.kt rename to backend.native/tests/external/codegen/box/statics/incInObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/inheritedPropertyInClassObject.kt b/backend.native/tests/external/codegen/box/statics/inheritedPropertyInClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/inheritedPropertyInClassObject.kt rename to backend.native/tests/external/codegen/box/statics/inheritedPropertyInClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/inheritedPropertyInObject.kt b/backend.native/tests/external/codegen/box/statics/inheritedPropertyInObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/inheritedPropertyInObject.kt rename to backend.native/tests/external/codegen/box/statics/inheritedPropertyInObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/inlineCallsStaticMethod.kt b/backend.native/tests/external/codegen/box/statics/inlineCallsStaticMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/inlineCallsStaticMethod.kt rename to backend.native/tests/external/codegen/box/statics/inlineCallsStaticMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/kt8089.kt b/backend.native/tests/external/codegen/box/statics/kt8089.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/kt8089.kt rename to backend.native/tests/external/codegen/box/statics/kt8089.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/protectedSamConstructor.kt b/backend.native/tests/external/codegen/box/statics/protectedSamConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/protectedSamConstructor.kt rename to backend.native/tests/external/codegen/box/statics/protectedSamConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/protectedStatic.kt b/backend.native/tests/external/codegen/box/statics/protectedStatic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/protectedStatic.kt rename to backend.native/tests/external/codegen/box/statics/protectedStatic.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/protectedStatic2.kt b/backend.native/tests/external/codegen/box/statics/protectedStatic2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/protectedStatic2.kt rename to backend.native/tests/external/codegen/box/statics/protectedStatic2.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/protectedStaticAndInline.kt b/backend.native/tests/external/codegen/box/statics/protectedStaticAndInline.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/protectedStaticAndInline.kt rename to backend.native/tests/external/codegen/box/statics/protectedStaticAndInline.kt diff --git a/backend.native/tests/external/codegen/blackbox/statics/syntheticAccessor.kt b/backend.native/tests/external/codegen/box/statics/syntheticAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/statics/syntheticAccessor.kt rename to backend.native/tests/external/codegen/box/statics/syntheticAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/differentTypes.kt b/backend.native/tests/external/codegen/box/storeStackBeforeInline/differentTypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/differentTypes.kt rename to backend.native/tests/external/codegen/box/storeStackBeforeInline/differentTypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/primitiveMerge.kt b/backend.native/tests/external/codegen/box/storeStackBeforeInline/primitiveMerge.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/primitiveMerge.kt rename to backend.native/tests/external/codegen/box/storeStackBeforeInline/primitiveMerge.kt diff --git a/backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/simple.kt b/backend.native/tests/external/codegen/box/storeStackBeforeInline/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/simple.kt rename to backend.native/tests/external/codegen/box/storeStackBeforeInline/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/unreachableMarker.kt b/backend.native/tests/external/codegen/box/storeStackBeforeInline/unreachableMarker.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/unreachableMarker.kt rename to backend.native/tests/external/codegen/box/storeStackBeforeInline/unreachableMarker.kt diff --git a/backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/withLambda.kt b/backend.native/tests/external/codegen/box/storeStackBeforeInline/withLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/storeStackBeforeInline/withLambda.kt rename to backend.native/tests/external/codegen/box/storeStackBeforeInline/withLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/ea35743.kt b/backend.native/tests/external/codegen/box/strings/ea35743.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/ea35743.kt rename to backend.native/tests/external/codegen/box/strings/ea35743.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/forInString.kt b/backend.native/tests/external/codegen/box/strings/forInString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/forInString.kt rename to backend.native/tests/external/codegen/box/strings/forInString.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/interpolation.kt b/backend.native/tests/external/codegen/box/strings/interpolation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/interpolation.kt rename to backend.native/tests/external/codegen/box/strings/interpolation.kt diff --git a/backend.native/tests/external/codegen/box/strings/kt2592.kt b/backend.native/tests/external/codegen/box/strings/kt2592.kt new file mode 100644 index 00000000000..013ad56f0d6 --- /dev/null +++ b/backend.native/tests/external/codegen/box/strings/kt2592.kt @@ -0,0 +1,4 @@ +fun box(): String { + String() + return String() + "OK" + String() +} diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt3571.kt b/backend.native/tests/external/codegen/box/strings/kt3571.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/kt3571.kt rename to backend.native/tests/external/codegen/box/strings/kt3571.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt3652.kt b/backend.native/tests/external/codegen/box/strings/kt3652.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/kt3652.kt rename to backend.native/tests/external/codegen/box/strings/kt3652.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt5389_stringBuilderGet.kt b/backend.native/tests/external/codegen/box/strings/kt5389_stringBuilderGet.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/kt5389_stringBuilderGet.kt rename to backend.native/tests/external/codegen/box/strings/kt5389_stringBuilderGet.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt5956.kt b/backend.native/tests/external/codegen/box/strings/kt5956.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/kt5956.kt rename to backend.native/tests/external/codegen/box/strings/kt5956.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt881.kt b/backend.native/tests/external/codegen/box/strings/kt881.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/kt881.kt rename to backend.native/tests/external/codegen/box/strings/kt881.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt889.kt b/backend.native/tests/external/codegen/box/strings/kt889.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/kt889.kt rename to backend.native/tests/external/codegen/box/strings/kt889.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/kt894.kt b/backend.native/tests/external/codegen/box/strings/kt894.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/strings/kt894.kt rename to backend.native/tests/external/codegen/box/strings/kt894.kt index f8e9620a8fc..d822bcd3456 100644 --- a/backend.native/tests/external/codegen/blackbox/strings/kt894.kt +++ b/backend.native/tests/external/codegen/box/strings/kt894.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun stringConcat(n : Int) : String? { var string : String? = "" diff --git a/backend.native/tests/external/codegen/blackbox/strings/multilineStringsWithTemplates.kt b/backend.native/tests/external/codegen/box/strings/multilineStringsWithTemplates.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/multilineStringsWithTemplates.kt rename to backend.native/tests/external/codegen/box/strings/multilineStringsWithTemplates.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/rawStrings.kt b/backend.native/tests/external/codegen/box/strings/rawStrings.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/rawStrings.kt rename to backend.native/tests/external/codegen/box/strings/rawStrings.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/rawStringsWithManyQuotes.kt b/backend.native/tests/external/codegen/box/strings/rawStringsWithManyQuotes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/rawStringsWithManyQuotes.kt rename to backend.native/tests/external/codegen/box/strings/rawStringsWithManyQuotes.kt diff --git a/backend.native/tests/external/codegen/blackbox/strings/stringBuilderAppend.kt b/backend.native/tests/external/codegen/box/strings/stringBuilderAppend.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/strings/stringBuilderAppend.kt rename to backend.native/tests/external/codegen/box/strings/stringBuilderAppend.kt index e11087ddfd5..c994f4c4a0a 100644 --- a/backend.native/tests/external/codegen/blackbox/strings/stringBuilderAppend.kt +++ b/backend.native/tests/external/codegen/box/strings/stringBuilderAppend.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS class A() { diff --git a/backend.native/tests/external/codegen/blackbox/strings/stringPlusOnlyWorksOnString.kt b/backend.native/tests/external/codegen/box/strings/stringPlusOnlyWorksOnString.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/strings/stringPlusOnlyWorksOnString.kt rename to backend.native/tests/external/codegen/box/strings/stringPlusOnlyWorksOnString.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/basicmethodSuperClass.kt b/backend.native/tests/external/codegen/box/super/basicmethodSuperClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/basicmethodSuperClass.kt rename to backend.native/tests/external/codegen/box/super/basicmethodSuperClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/basicmethodSuperTrait.kt b/backend.native/tests/external/codegen/box/super/basicmethodSuperTrait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/basicmethodSuperTrait.kt rename to backend.native/tests/external/codegen/box/super/basicmethodSuperTrait.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/basicproperty.kt b/backend.native/tests/external/codegen/box/super/basicproperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/basicproperty.kt rename to backend.native/tests/external/codegen/box/super/basicproperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/enclosedFun.kt b/backend.native/tests/external/codegen/box/super/enclosedFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/enclosedFun.kt rename to backend.native/tests/external/codegen/box/super/enclosedFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/enclosedVar.kt b/backend.native/tests/external/codegen/box/super/enclosedVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/enclosedVar.kt rename to backend.native/tests/external/codegen/box/super/enclosedVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuper.kt b/backend.native/tests/external/codegen/box/super/innerClassLabeledSuper.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuper.kt rename to backend.native/tests/external/codegen/box/super/innerClassLabeledSuper.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuper2.kt b/backend.native/tests/external/codegen/box/super/innerClassLabeledSuper2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuper2.kt rename to backend.native/tests/external/codegen/box/super/innerClassLabeledSuper2.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuperProperty.kt b/backend.native/tests/external/codegen/box/super/innerClassLabeledSuperProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuperProperty.kt rename to backend.native/tests/external/codegen/box/super/innerClassLabeledSuperProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuperProperty2.kt b/backend.native/tests/external/codegen/box/super/innerClassLabeledSuperProperty2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/innerClassLabeledSuperProperty2.kt rename to backend.native/tests/external/codegen/box/super/innerClassLabeledSuperProperty2.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/innerClassQualifiedFunctionCall.kt b/backend.native/tests/external/codegen/box/super/innerClassQualifiedFunctionCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/innerClassQualifiedFunctionCall.kt rename to backend.native/tests/external/codegen/box/super/innerClassQualifiedFunctionCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/innerClassQualifiedPropertyAccess.kt b/backend.native/tests/external/codegen/box/super/innerClassQualifiedPropertyAccess.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/innerClassQualifiedPropertyAccess.kt rename to backend.native/tests/external/codegen/box/super/innerClassQualifiedPropertyAccess.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt14243.kt b/backend.native/tests/external/codegen/box/super/kt14243.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt14243.kt rename to backend.native/tests/external/codegen/box/super/kt14243.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt14243_2.kt b/backend.native/tests/external/codegen/box/super/kt14243_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt14243_2.kt rename to backend.native/tests/external/codegen/box/super/kt14243_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt14243_class.kt b/backend.native/tests/external/codegen/box/super/kt14243_class.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt14243_class.kt rename to backend.native/tests/external/codegen/box/super/kt14243_class.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt14243_prop.kt b/backend.native/tests/external/codegen/box/super/kt14243_prop.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt14243_prop.kt rename to backend.native/tests/external/codegen/box/super/kt14243_prop.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt3492ClassFun.kt b/backend.native/tests/external/codegen/box/super/kt3492ClassFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt3492ClassFun.kt rename to backend.native/tests/external/codegen/box/super/kt3492ClassFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt3492ClassProperty.kt b/backend.native/tests/external/codegen/box/super/kt3492ClassProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt3492ClassProperty.kt rename to backend.native/tests/external/codegen/box/super/kt3492ClassProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt3492TraitFun.kt b/backend.native/tests/external/codegen/box/super/kt3492TraitFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt3492TraitFun.kt rename to backend.native/tests/external/codegen/box/super/kt3492TraitFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt3492TraitProperty.kt b/backend.native/tests/external/codegen/box/super/kt3492TraitProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt3492TraitProperty.kt rename to backend.native/tests/external/codegen/box/super/kt3492TraitProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt4173.kt b/backend.native/tests/external/codegen/box/super/kt4173.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt4173.kt rename to backend.native/tests/external/codegen/box/super/kt4173.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt4173_2.kt b/backend.native/tests/external/codegen/box/super/kt4173_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt4173_2.kt rename to backend.native/tests/external/codegen/box/super/kt4173_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt4173_3.kt b/backend.native/tests/external/codegen/box/super/kt4173_3.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt4173_3.kt rename to backend.native/tests/external/codegen/box/super/kt4173_3.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/kt4982.kt b/backend.native/tests/external/codegen/box/super/kt4982.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/kt4982.kt rename to backend.native/tests/external/codegen/box/super/kt4982.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/multipleSuperTraits.kt b/backend.native/tests/external/codegen/box/super/multipleSuperTraits.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/multipleSuperTraits.kt rename to backend.native/tests/external/codegen/box/super/multipleSuperTraits.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/traitproperty.kt b/backend.native/tests/external/codegen/box/super/traitproperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/traitproperty.kt rename to backend.native/tests/external/codegen/box/super/traitproperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/unqualifiedSuper.kt b/backend.native/tests/external/codegen/box/super/unqualifiedSuper.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/unqualifiedSuper.kt rename to backend.native/tests/external/codegen/box/super/unqualifiedSuper.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/unqualifiedSuperWithDeeperHierarchies.kt b/backend.native/tests/external/codegen/box/super/unqualifiedSuperWithDeeperHierarchies.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/unqualifiedSuperWithDeeperHierarchies.kt rename to backend.native/tests/external/codegen/box/super/unqualifiedSuperWithDeeperHierarchies.kt diff --git a/backend.native/tests/external/codegen/blackbox/super/unqualifiedSuperWithMethodsOfAny.kt b/backend.native/tests/external/codegen/box/super/unqualifiedSuperWithMethodsOfAny.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/super/unqualifiedSuperWithMethodsOfAny.kt rename to backend.native/tests/external/codegen/box/super/unqualifiedSuperWithMethodsOfAny.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/changeMonitor.kt b/backend.native/tests/external/codegen/box/synchronized/changeMonitor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/changeMonitor.kt rename to backend.native/tests/external/codegen/box/synchronized/changeMonitor.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/exceptionInMonitorExpression.kt b/backend.native/tests/external/codegen/box/synchronized/exceptionInMonitorExpression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/exceptionInMonitorExpression.kt rename to backend.native/tests/external/codegen/box/synchronized/exceptionInMonitorExpression.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/finally.kt b/backend.native/tests/external/codegen/box/synchronized/finally.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/finally.kt rename to backend.native/tests/external/codegen/box/synchronized/finally.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/longValue.kt b/backend.native/tests/external/codegen/box/synchronized/longValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/longValue.kt rename to backend.native/tests/external/codegen/box/synchronized/longValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/nestedDifferentObjects.kt b/backend.native/tests/external/codegen/box/synchronized/nestedDifferentObjects.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/nestedDifferentObjects.kt rename to backend.native/tests/external/codegen/box/synchronized/nestedDifferentObjects.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/nestedSameObject.kt b/backend.native/tests/external/codegen/box/synchronized/nestedSameObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/nestedSameObject.kt rename to backend.native/tests/external/codegen/box/synchronized/nestedSameObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/nonLocalReturn.kt b/backend.native/tests/external/codegen/box/synchronized/nonLocalReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/nonLocalReturn.kt rename to backend.native/tests/external/codegen/box/synchronized/nonLocalReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/objectValue.kt b/backend.native/tests/external/codegen/box/synchronized/objectValue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/objectValue.kt rename to backend.native/tests/external/codegen/box/synchronized/objectValue.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/sync.kt b/backend.native/tests/external/codegen/box/synchronized/sync.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/sync.kt rename to backend.native/tests/external/codegen/box/synchronized/sync.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/value.kt b/backend.native/tests/external/codegen/box/synchronized/value.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/value.kt rename to backend.native/tests/external/codegen/box/synchronized/value.kt diff --git a/backend.native/tests/external/codegen/blackbox/synchronized/wait.kt b/backend.native/tests/external/codegen/box/synchronized/wait.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/synchronized/wait.kt rename to backend.native/tests/external/codegen/box/synchronized/wait.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/accessorForProtected.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/accessorForProtected.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/accessorForProtected.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/accessorForProtected.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/accessorForProtectedInvokeVirtual.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/accessorForProtectedInvokeVirtual.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/accessorForProtectedInvokeVirtual.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/accessorForProtectedInvokeVirtual.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt10047.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/kt10047.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt10047.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/kt10047.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9717.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/kt9717.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9717.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/kt9717.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9717DifferentPackages.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/kt9717DifferentPackages.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9717DifferentPackages.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/kt9717DifferentPackages.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9958.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/kt9958.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9958.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/kt9958.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9958Interface.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/kt9958Interface.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/kt9958Interface.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/kt9958Interface.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/protectedFromLambda.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/protectedFromLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/protectedFromLambda.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/protectedFromLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/syntheticAccessors/syntheticAccessorNames.kt b/backend.native/tests/external/codegen/box/syntheticAccessors/syntheticAccessorNames.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/syntheticAccessors/syntheticAccessorNames.kt rename to backend.native/tests/external/codegen/box/syntheticAccessors/syntheticAccessorNames.kt diff --git a/backend.native/tests/external/codegen/blackbox/toArray/kt3177-toTypedArray.kt b/backend.native/tests/external/codegen/box/toArray/kt3177-toTypedArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/toArray/kt3177-toTypedArray.kt rename to backend.native/tests/external/codegen/box/toArray/kt3177-toTypedArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/toArray/returnToTypedArray.kt b/backend.native/tests/external/codegen/box/toArray/returnToTypedArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/toArray/returnToTypedArray.kt rename to backend.native/tests/external/codegen/box/toArray/returnToTypedArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/toArray/toArray.kt b/backend.native/tests/external/codegen/box/toArray/toArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/toArray/toArray.kt rename to backend.native/tests/external/codegen/box/toArray/toArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/toArray/toArrayAlreadyPresent.kt b/backend.native/tests/external/codegen/box/toArray/toArrayAlreadyPresent.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/toArray/toArrayAlreadyPresent.kt rename to backend.native/tests/external/codegen/box/toArray/toArrayAlreadyPresent.kt diff --git a/backend.native/tests/external/codegen/blackbox/toArray/toArrayShouldBePublic.kt b/backend.native/tests/external/codegen/box/toArray/toArrayShouldBePublic.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/toArray/toArrayShouldBePublic.kt rename to backend.native/tests/external/codegen/box/toArray/toArrayShouldBePublic.kt index 3e0d76bede1..78f1b92f895 100644 --- a/backend.native/tests/external/codegen/blackbox/toArray/toArrayShouldBePublic.kt +++ b/backend.native/tests/external/codegen/box/toArray/toArrayShouldBePublic.kt @@ -8,10 +8,10 @@ open class SingletonCollection(val value: T) : AbstractCollection() { override val size = 1 override fun iterator(): Iterator = listOf(value).iterator() - protected fun toArray(): Array = + protected override final fun toArray(): Array = arrayOf(value) - protected fun toArray(a: Array): Array { + protected override final fun toArray(a: Array): Array { a[0] = value as E return a } diff --git a/backend.native/tests/external/codegen/blackbox/toArray/toArrayShouldBePublicWithJava.kt b/backend.native/tests/external/codegen/box/toArray/toArrayShouldBePublicWithJava.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/toArray/toArrayShouldBePublicWithJava.kt rename to backend.native/tests/external/codegen/box/toArray/toArrayShouldBePublicWithJava.kt index ff00b887294..097d62f3907 100644 --- a/backend.native/tests/external/codegen/blackbox/toArray/toArrayShouldBePublicWithJava.kt +++ b/backend.native/tests/external/codegen/box/toArray/toArrayShouldBePublicWithJava.kt @@ -8,10 +8,10 @@ open class SingletonCollection(val value: T) : AbstractCollection() { override val size = 1 override fun iterator(): Iterator = listOf(value).iterator() - protected open fun toArray(): Array = + protected override fun toArray(): Array = arrayOf(value) - protected open fun toArray(a: Array): Array { + protected override fun toArray(a: Array): Array { a[0] = value as E return a } diff --git a/backend.native/tests/external/codegen/blackbox/toArray/toTypedArray.kt b/backend.native/tests/external/codegen/box/toArray/toTypedArray.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/toArray/toTypedArray.kt rename to backend.native/tests/external/codegen/box/toArray/toTypedArray.kt index 4a98b0cf943..694f4905d8b 100644 --- a/backend.native/tests/external/codegen/blackbox/toArray/toTypedArray.kt +++ b/backend.native/tests/external/codegen/box/toArray/toTypedArray.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // missing isArrayOf on JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade.kt b/backend.native/tests/external/codegen/box/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade.kt rename to backend.native/tests/external/codegen/box/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade.kt diff --git a/backend.native/tests/external/codegen/blackbox/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade2.kt b/backend.native/tests/external/codegen/box/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade2.kt rename to backend.native/tests/external/codegen/box/topLevelPrivate/noPrivateNoAccessorsInMultiFileFacade2.kt diff --git a/backend.native/tests/external/codegen/blackbox/topLevelPrivate/privateInInlineNested.kt b/backend.native/tests/external/codegen/box/topLevelPrivate/privateInInlineNested.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/topLevelPrivate/privateInInlineNested.kt rename to backend.native/tests/external/codegen/box/topLevelPrivate/privateInInlineNested.kt diff --git a/backend.native/tests/external/codegen/blackbox/topLevelPrivate/privateVisibility.kt b/backend.native/tests/external/codegen/box/topLevelPrivate/privateVisibility.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/topLevelPrivate/privateVisibility.kt rename to backend.native/tests/external/codegen/box/topLevelPrivate/privateVisibility.kt diff --git a/backend.native/tests/external/codegen/blackbox/topLevelPrivate/syntheticAccessor.kt b/backend.native/tests/external/codegen/box/topLevelPrivate/syntheticAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/topLevelPrivate/syntheticAccessor.kt rename to backend.native/tests/external/codegen/box/topLevelPrivate/syntheticAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/topLevelPrivate/syntheticAccessorInMultiFile.kt b/backend.native/tests/external/codegen/box/topLevelPrivate/syntheticAccessorInMultiFile.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/topLevelPrivate/syntheticAccessorInMultiFile.kt rename to backend.native/tests/external/codegen/box/topLevelPrivate/syntheticAccessorInMultiFile.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/abstractClassInheritsFromInterface.kt b/backend.native/tests/external/codegen/box/traits/abstractClassInheritsFromInterface.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/abstractClassInheritsFromInterface.kt rename to backend.native/tests/external/codegen/box/traits/abstractClassInheritsFromInterface.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/diamondPropertyAccessors.kt b/backend.native/tests/external/codegen/box/traits/diamondPropertyAccessors.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/traits/diamondPropertyAccessors.kt rename to backend.native/tests/external/codegen/box/traits/diamondPropertyAccessors.kt index a0eede09d5a..ce344d9014f 100644 --- a/backend.native/tests/external/codegen/blackbox/traits/diamondPropertyAccessors.kt +++ b/backend.native/tests/external/codegen/box/traits/diamondPropertyAccessors.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS interface A { var bar: Boolean diff --git a/backend.native/tests/external/codegen/blackbox/traits/genericMethod.kt b/backend.native/tests/external/codegen/box/traits/genericMethod.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/genericMethod.kt rename to backend.native/tests/external/codegen/box/traits/genericMethod.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/indirectlyInheritPropertyGetter.kt b/backend.native/tests/external/codegen/box/traits/indirectlyInheritPropertyGetter.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/indirectlyInheritPropertyGetter.kt rename to backend.native/tests/external/codegen/box/traits/indirectlyInheritPropertyGetter.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/inheritJavaInterface.kt b/backend.native/tests/external/codegen/box/traits/inheritJavaInterface.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/inheritJavaInterface.kt rename to backend.native/tests/external/codegen/box/traits/inheritJavaInterface.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/inheritedFun.kt b/backend.native/tests/external/codegen/box/traits/inheritedFun.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/inheritedFun.kt rename to backend.native/tests/external/codegen/box/traits/inheritedFun.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/inheritedVar.kt b/backend.native/tests/external/codegen/box/traits/inheritedVar.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/inheritedVar.kt rename to backend.native/tests/external/codegen/box/traits/inheritedVar.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/interfaceDefaultImpls.kt b/backend.native/tests/external/codegen/box/traits/interfaceDefaultImpls.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/interfaceDefaultImpls.kt rename to backend.native/tests/external/codegen/box/traits/interfaceDefaultImpls.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt1936.kt b/backend.native/tests/external/codegen/box/traits/kt1936.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt1936.kt rename to backend.native/tests/external/codegen/box/traits/kt1936.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt1936_1.kt b/backend.native/tests/external/codegen/box/traits/kt1936_1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt1936_1.kt rename to backend.native/tests/external/codegen/box/traits/kt1936_1.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt2260.kt b/backend.native/tests/external/codegen/box/traits/kt2260.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt2260.kt rename to backend.native/tests/external/codegen/box/traits/kt2260.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt2399.kt b/backend.native/tests/external/codegen/box/traits/kt2399.kt similarity index 97% rename from backend.native/tests/external/codegen/blackbox/traits/kt2399.kt rename to backend.native/tests/external/codegen/box/traits/kt2399.kt index 54dbd833474..9b59cb8cab1 100644 --- a/backend.native/tests/external/codegen/blackbox/traits/kt2399.kt +++ b/backend.native/tests/external/codegen/box/traits/kt2399.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // on JS Parser.parse and MultiParser.parse clash in ProjectInfoJsonParser class JsonObject { diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt2541.kt b/backend.native/tests/external/codegen/box/traits/kt2541.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt2541.kt rename to backend.native/tests/external/codegen/box/traits/kt2541.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt3315.kt b/backend.native/tests/external/codegen/box/traits/kt3315.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt3315.kt rename to backend.native/tests/external/codegen/box/traits/kt3315.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt3500.kt b/backend.native/tests/external/codegen/box/traits/kt3500.kt similarity index 90% rename from backend.native/tests/external/codegen/blackbox/traits/kt3500.kt rename to backend.native/tests/external/codegen/box/traits/kt3500.kt index 94cf3925737..92954f58c8d 100644 --- a/backend.native/tests/external/codegen/blackbox/traits/kt3500.kt +++ b/backend.native/tests/external/codegen/box/traits/kt3500.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS interface BK { fun foo(): String = 10.toString() diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt3579.kt b/backend.native/tests/external/codegen/box/traits/kt3579.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt3579.kt rename to backend.native/tests/external/codegen/box/traits/kt3579.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt3579_2.kt b/backend.native/tests/external/codegen/box/traits/kt3579_2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt3579_2.kt rename to backend.native/tests/external/codegen/box/traits/kt3579_2.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt5393.kt b/backend.native/tests/external/codegen/box/traits/kt5393.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt5393.kt rename to backend.native/tests/external/codegen/box/traits/kt5393.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/kt5393_property.kt b/backend.native/tests/external/codegen/box/traits/kt5393_property.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/kt5393_property.kt rename to backend.native/tests/external/codegen/box/traits/kt5393_property.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/multiple.kt b/backend.native/tests/external/codegen/box/traits/multiple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/multiple.kt rename to backend.native/tests/external/codegen/box/traits/multiple.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/noPrivateDelegation.kt b/backend.native/tests/external/codegen/box/traits/noPrivateDelegation.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/noPrivateDelegation.kt rename to backend.native/tests/external/codegen/box/traits/noPrivateDelegation.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/syntheticAccessor.kt b/backend.native/tests/external/codegen/box/traits/syntheticAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/syntheticAccessor.kt rename to backend.native/tests/external/codegen/box/traits/syntheticAccessor.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/traitImplDelegationWithCovariantOverride.kt b/backend.native/tests/external/codegen/box/traits/traitImplDelegationWithCovariantOverride.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/traitImplDelegationWithCovariantOverride.kt rename to backend.native/tests/external/codegen/box/traits/traitImplDelegationWithCovariantOverride.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/traitImplDiamond.kt b/backend.native/tests/external/codegen/box/traits/traitImplDiamond.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/traits/traitImplDiamond.kt rename to backend.native/tests/external/codegen/box/traits/traitImplDiamond.kt index 1fe1ebfad15..7c0a3eaa1ad 100644 --- a/backend.native/tests/external/codegen/blackbox/traits/traitImplDiamond.kt +++ b/backend.native/tests/external/codegen/box/traits/traitImplDiamond.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS interface A { fun foo() = "Fail" diff --git a/backend.native/tests/external/codegen/blackbox/traits/traitImplGenericDelegation.kt b/backend.native/tests/external/codegen/box/traits/traitImplGenericDelegation.kt similarity index 93% rename from backend.native/tests/external/codegen/blackbox/traits/traitImplGenericDelegation.kt rename to backend.native/tests/external/codegen/box/traits/traitImplGenericDelegation.kt index 65253011fd9..a76414d686d 100644 --- a/backend.native/tests/external/codegen/blackbox/traits/traitImplGenericDelegation.kt +++ b/backend.native/tests/external/codegen/box/traits/traitImplGenericDelegation.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: NATIVE interface A { fun foo(t: T, u: U): V? { return null diff --git a/backend.native/tests/external/codegen/blackbox/traits/traitWithPrivateExtension.kt b/backend.native/tests/external/codegen/box/traits/traitWithPrivateExtension.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/traitWithPrivateExtension.kt rename to backend.native/tests/external/codegen/box/traits/traitWithPrivateExtension.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/traitWithPrivateMember.kt b/backend.native/tests/external/codegen/box/traits/traitWithPrivateMember.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/traitWithPrivateMember.kt rename to backend.native/tests/external/codegen/box/traits/traitWithPrivateMember.kt diff --git a/backend.native/tests/external/codegen/blackbox/traits/traitWithPrivateMemberAccessFromLambda.kt b/backend.native/tests/external/codegen/box/traits/traitWithPrivateMemberAccessFromLambda.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/traits/traitWithPrivateMemberAccessFromLambda.kt rename to backend.native/tests/external/codegen/box/traits/traitWithPrivateMemberAccessFromLambda.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeInfo/asInLoop.kt b/backend.native/tests/external/codegen/box/typeInfo/asInLoop.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeInfo/asInLoop.kt rename to backend.native/tests/external/codegen/box/typeInfo/asInLoop.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeInfo/ifOrWhenSpecialCall.kt b/backend.native/tests/external/codegen/box/typeInfo/ifOrWhenSpecialCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeInfo/ifOrWhenSpecialCall.kt rename to backend.native/tests/external/codegen/box/typeInfo/ifOrWhenSpecialCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeInfo/implicitSmartCastThis.kt b/backend.native/tests/external/codegen/box/typeInfo/implicitSmartCastThis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeInfo/implicitSmartCastThis.kt rename to backend.native/tests/external/codegen/box/typeInfo/implicitSmartCastThis.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeInfo/inheritance.kt b/backend.native/tests/external/codegen/box/typeInfo/inheritance.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeInfo/inheritance.kt rename to backend.native/tests/external/codegen/box/typeInfo/inheritance.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeInfo/kt2811.kt b/backend.native/tests/external/codegen/box/typeInfo/kt2811.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeInfo/kt2811.kt rename to backend.native/tests/external/codegen/box/typeInfo/kt2811.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeInfo/primitiveTypeInfo.kt b/backend.native/tests/external/codegen/box/typeInfo/primitiveTypeInfo.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeInfo/primitiveTypeInfo.kt rename to backend.native/tests/external/codegen/box/typeInfo/primitiveTypeInfo.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeInfo/smartCastThis.kt b/backend.native/tests/external/codegen/box/typeInfo/smartCastThis.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeInfo/smartCastThis.kt rename to backend.native/tests/external/codegen/box/typeInfo/smartCastThis.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/enhancedPrimitives.kt b/backend.native/tests/external/codegen/box/typeMapping/enhancedPrimitives.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/enhancedPrimitives.kt rename to backend.native/tests/external/codegen/box/typeMapping/enhancedPrimitives.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/genericTypeWithNothing.kt b/backend.native/tests/external/codegen/box/typeMapping/genericTypeWithNothing.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/genericTypeWithNothing.kt rename to backend.native/tests/external/codegen/box/typeMapping/genericTypeWithNothing.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/kt2831.kt b/backend.native/tests/external/codegen/box/typeMapping/kt2831.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/kt2831.kt rename to backend.native/tests/external/codegen/box/typeMapping/kt2831.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/kt309.kt b/backend.native/tests/external/codegen/box/typeMapping/kt309.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/kt309.kt rename to backend.native/tests/external/codegen/box/typeMapping/kt309.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/kt3286.kt b/backend.native/tests/external/codegen/box/typeMapping/kt3286.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/kt3286.kt rename to backend.native/tests/external/codegen/box/typeMapping/kt3286.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/kt3863.kt b/backend.native/tests/external/codegen/box/typeMapping/kt3863.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/kt3863.kt rename to backend.native/tests/external/codegen/box/typeMapping/kt3863.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/kt3976.kt b/backend.native/tests/external/codegen/box/typeMapping/kt3976.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/kt3976.kt rename to backend.native/tests/external/codegen/box/typeMapping/kt3976.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/nothing.kt b/backend.native/tests/external/codegen/box/typeMapping/nothing.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/nothing.kt rename to backend.native/tests/external/codegen/box/typeMapping/nothing.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/nullableNothing.kt b/backend.native/tests/external/codegen/box/typeMapping/nullableNothing.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/nullableNothing.kt rename to backend.native/tests/external/codegen/box/typeMapping/nullableNothing.kt diff --git a/backend.native/tests/external/codegen/blackbox/typeMapping/typeParameterMultipleBounds.kt b/backend.native/tests/external/codegen/box/typeMapping/typeParameterMultipleBounds.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typeMapping/typeParameterMultipleBounds.kt rename to backend.native/tests/external/codegen/box/typeMapping/typeParameterMultipleBounds.kt diff --git a/backend.native/tests/external/codegen/box/typealias/enumEntryQualifier.kt b/backend.native/tests/external/codegen/box/typealias/enumEntryQualifier.kt new file mode 100644 index 00000000000..19c383aaed0 --- /dev/null +++ b/backend.native/tests/external/codegen/box/typealias/enumEntryQualifier.kt @@ -0,0 +1,10 @@ +enum class MyEnum { + O; + companion object { + val K = "K" + } +} + +typealias MyAlias = MyEnum + +fun box() = MyAlias.O.name + MyAlias.K \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/typealias/genericTypeAliasConstructor.kt b/backend.native/tests/external/codegen/box/typealias/genericTypeAliasConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/genericTypeAliasConstructor.kt rename to backend.native/tests/external/codegen/box/typealias/genericTypeAliasConstructor.kt diff --git a/backend.native/tests/external/codegen/box/typealias/genericTypeAliasConstructor2.kt b/backend.native/tests/external/codegen/box/typealias/genericTypeAliasConstructor2.kt new file mode 100644 index 00000000000..845d35b4aed --- /dev/null +++ b/backend.native/tests/external/codegen/box/typealias/genericTypeAliasConstructor2.kt @@ -0,0 +1,8 @@ +class Pair(val x1: T1, val x2: T2) + +typealias ST = Pair + +fun box(): String { + val st = ST("O", "K") + return st.x1 + st.x2 +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/typealias/innerClassTypeAliasConstructor.kt b/backend.native/tests/external/codegen/box/typealias/innerClassTypeAliasConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/innerClassTypeAliasConstructor.kt rename to backend.native/tests/external/codegen/box/typealias/innerClassTypeAliasConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/innerClassTypeAliasConstructorInSupertypes.kt b/backend.native/tests/external/codegen/box/typealias/innerClassTypeAliasConstructorInSupertypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/innerClassTypeAliasConstructorInSupertypes.kt rename to backend.native/tests/external/codegen/box/typealias/innerClassTypeAliasConstructorInSupertypes.kt diff --git a/backend.native/tests/external/codegen/box/typealias/kt15109.kt b/backend.native/tests/external/codegen/box/typealias/kt15109.kt new file mode 100644 index 00000000000..f6846176bf5 --- /dev/null +++ b/backend.native/tests/external/codegen/box/typealias/kt15109.kt @@ -0,0 +1,9 @@ +open class A(private val s: String = "") { + fun foo() = s +} + +typealias B = A + +class C : B(s = "OK") + +fun box() = C().foo() diff --git a/backend.native/tests/external/codegen/box/typealias/objectLiteralConstructor.kt b/backend.native/tests/external/codegen/box/typealias/objectLiteralConstructor.kt new file mode 100644 index 00000000000..eab3abf7d1d --- /dev/null +++ b/backend.native/tests/external/codegen/box/typealias/objectLiteralConstructor.kt @@ -0,0 +1,10 @@ +open class LockFreeLinkedListNode(val s: String) +private class SendBuffered(s: String) : LockFreeLinkedListNode(s) +open class AddLastDesc2(val node: T) +typealias AddLastDesc = AddLastDesc2 + +fun describeSendBuffered(): AddLastDesc<*> { + return object : AddLastDesc(SendBuffered("OK")) {} +} + +fun box() = describeSendBuffered().node.s diff --git a/backend.native/tests/external/codegen/blackbox/typealias/simple.kt b/backend.native/tests/external/codegen/box/typealias/simple.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/simple.kt rename to backend.native/tests/external/codegen/box/typealias/simple.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasAsBareType.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasAsBareType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasAsBareType.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasAsBareType.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasCompanion.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasCompanion.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasCompanion.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasCompanion.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasConstructor.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasConstructor.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasConstructorAccessor.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasConstructorAccessor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasConstructorAccessor.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasConstructorAccessor.kt diff --git a/backend.native/tests/external/codegen/box/typealias/typeAliasConstructorForArray.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasConstructorForArray.kt new file mode 100644 index 00000000000..8be95d2e91d --- /dev/null +++ b/backend.native/tests/external/codegen/box/typealias/typeAliasConstructorForArray.kt @@ -0,0 +1,16 @@ +typealias BoolArray = Array +typealias IArray = IntArray +typealias MyArray = Array + +fun box(): String { + val ba = BoolArray(1) { true } + if (!ba[0]) return "Fail #1" + + val ia = IArray(1) { 42 } + if (ia[0] != 42) return "Fail #2" + + val ma = MyArray(1) { 42 } + if (ma[0] != 42) return "Fail #2" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasConstructorInSuperCall.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasConstructorInSuperCall.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasConstructorInSuperCall.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasConstructorInSuperCall.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasInAnonymousObjectType.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasInAnonymousObjectType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasInAnonymousObjectType.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasInAnonymousObjectType.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasObject.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasObject.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasObjectCallable.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasObjectCallable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasObjectCallable.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasObjectCallable.kt diff --git a/backend.native/tests/external/codegen/blackbox/typealias/typeAliasSecondaryConstructor.kt b/backend.native/tests/external/codegen/box/typealias/typeAliasSecondaryConstructor.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/typealias/typeAliasSecondaryConstructor.kt rename to backend.native/tests/external/codegen/box/typealias/typeAliasSecondaryConstructor.kt diff --git a/backend.native/tests/external/codegen/blackbox/unaryOp/call.kt b/backend.native/tests/external/codegen/box/unaryOp/call.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unaryOp/call.kt rename to backend.native/tests/external/codegen/box/unaryOp/call.kt diff --git a/backend.native/tests/external/codegen/blackbox/unaryOp/callNullable.kt b/backend.native/tests/external/codegen/box/unaryOp/callNullable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unaryOp/callNullable.kt rename to backend.native/tests/external/codegen/box/unaryOp/callNullable.kt diff --git a/backend.native/tests/external/codegen/blackbox/unaryOp/callWithCommonType.kt b/backend.native/tests/external/codegen/box/unaryOp/callWithCommonType.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unaryOp/callWithCommonType.kt rename to backend.native/tests/external/codegen/box/unaryOp/callWithCommonType.kt diff --git a/backend.native/tests/external/codegen/blackbox/unaryOp/intrinsic.kt b/backend.native/tests/external/codegen/box/unaryOp/intrinsic.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unaryOp/intrinsic.kt rename to backend.native/tests/external/codegen/box/unaryOp/intrinsic.kt diff --git a/backend.native/tests/external/codegen/blackbox/unaryOp/intrinsicNullable.kt b/backend.native/tests/external/codegen/box/unaryOp/intrinsicNullable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unaryOp/intrinsicNullable.kt rename to backend.native/tests/external/codegen/box/unaryOp/intrinsicNullable.kt diff --git a/backend.native/tests/external/codegen/blackbox/unaryOp/longOverflow.kt b/backend.native/tests/external/codegen/box/unaryOp/longOverflow.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unaryOp/longOverflow.kt rename to backend.native/tests/external/codegen/box/unaryOp/longOverflow.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/UnitValue.kt b/backend.native/tests/external/codegen/box/unit/UnitValue.kt similarity index 83% rename from backend.native/tests/external/codegen/blackbox/unit/UnitValue.kt rename to backend.native/tests/external/codegen/box/unit/UnitValue.kt index 8b5744d17db..1fef505f0af 100644 --- a/backend.native/tests/external/codegen/blackbox/unit/UnitValue.kt +++ b/backend.native/tests/external/codegen/box/unit/UnitValue.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun foo() {} diff --git a/backend.native/tests/external/codegen/blackbox/unit/closureReturnsNullableUnit.kt b/backend.native/tests/external/codegen/box/unit/closureReturnsNullableUnit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/closureReturnsNullableUnit.kt rename to backend.native/tests/external/codegen/box/unit/closureReturnsNullableUnit.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/ifElse.kt b/backend.native/tests/external/codegen/box/unit/ifElse.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/ifElse.kt rename to backend.native/tests/external/codegen/box/unit/ifElse.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/kt3634.kt b/backend.native/tests/external/codegen/box/unit/kt3634.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/kt3634.kt rename to backend.native/tests/external/codegen/box/unit/kt3634.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/kt4212.kt b/backend.native/tests/external/codegen/box/unit/kt4212.kt similarity index 92% rename from backend.native/tests/external/codegen/blackbox/unit/kt4212.kt rename to backend.native/tests/external/codegen/box/unit/kt4212.kt index 6db8f894a26..e0c04071aca 100644 --- a/backend.native/tests/external/codegen/blackbox/unit/kt4212.kt +++ b/backend.native/tests/external/codegen/box/unit/kt4212.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS fun foo(): Any? = bar() diff --git a/backend.native/tests/external/codegen/blackbox/unit/kt4265.kt b/backend.native/tests/external/codegen/box/unit/kt4265.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/kt4265.kt rename to backend.native/tests/external/codegen/box/unit/kt4265.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/nullableUnit.kt b/backend.native/tests/external/codegen/box/unit/nullableUnit.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/nullableUnit.kt rename to backend.native/tests/external/codegen/box/unit/nullableUnit.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/nullableUnitInWhen1.kt b/backend.native/tests/external/codegen/box/unit/nullableUnitInWhen1.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/nullableUnitInWhen1.kt rename to backend.native/tests/external/codegen/box/unit/nullableUnitInWhen1.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/nullableUnitInWhen2.kt b/backend.native/tests/external/codegen/box/unit/nullableUnitInWhen2.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/nullableUnitInWhen2.kt rename to backend.native/tests/external/codegen/box/unit/nullableUnitInWhen2.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/nullableUnitInWhen3.kt b/backend.native/tests/external/codegen/box/unit/nullableUnitInWhen3.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/nullableUnitInWhen3.kt rename to backend.native/tests/external/codegen/box/unit/nullableUnitInWhen3.kt diff --git a/backend.native/tests/external/codegen/blackbox/unit/unitClassObject.kt b/backend.native/tests/external/codegen/box/unit/unitClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/unit/unitClassObject.kt rename to backend.native/tests/external/codegen/box/unit/unitClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/kt1978.kt b/backend.native/tests/external/codegen/box/vararg/kt1978.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/kt1978.kt rename to backend.native/tests/external/codegen/box/vararg/kt1978.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/kt581.kt b/backend.native/tests/external/codegen/box/vararg/kt581.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/kt581.kt rename to backend.native/tests/external/codegen/box/vararg/kt581.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/kt6192.kt b/backend.native/tests/external/codegen/box/vararg/kt6192.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/kt6192.kt rename to backend.native/tests/external/codegen/box/vararg/kt6192.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/kt796_797.kt b/backend.native/tests/external/codegen/box/vararg/kt796_797.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/kt796_797.kt rename to backend.native/tests/external/codegen/box/vararg/kt796_797.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/spreadCopiesArray.kt b/backend.native/tests/external/codegen/box/vararg/spreadCopiesArray.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/spreadCopiesArray.kt rename to backend.native/tests/external/codegen/box/vararg/spreadCopiesArray.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/varargInFunParam.kt b/backend.native/tests/external/codegen/box/vararg/varargInFunParam.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/varargInFunParam.kt rename to backend.native/tests/external/codegen/box/vararg/varargInFunParam.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/varargInJava.kt b/backend.native/tests/external/codegen/box/vararg/varargInJava.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/varargInJava.kt rename to backend.native/tests/external/codegen/box/vararg/varargInJava.kt diff --git a/backend.native/tests/external/codegen/blackbox/vararg/varargsAndFunctionLiterals.kt b/backend.native/tests/external/codegen/box/vararg/varargsAndFunctionLiterals.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/vararg/varargsAndFunctionLiterals.kt rename to backend.native/tests/external/codegen/box/vararg/varargsAndFunctionLiterals.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/callProperty.kt b/backend.native/tests/external/codegen/box/when/callProperty.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/callProperty.kt rename to backend.native/tests/external/codegen/box/when/callProperty.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/emptyWhen.kt b/backend.native/tests/external/codegen/box/when/emptyWhen.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/emptyWhen.kt rename to backend.native/tests/external/codegen/box/when/emptyWhen.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/bigEnum.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/bigEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/bigEnum.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/bigEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/duplicatingItems.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/duplicatingItems.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/duplicatingItems.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/duplicatingItems.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/enumInsideClassObject.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/enumInsideClassObject.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/enumInsideClassObject.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/enumInsideClassObject.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/expression.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/expression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/expression.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/expression.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/functionLiteralInTopLevel.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/functionLiteralInTopLevel.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/functionLiteralInTopLevel.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/functionLiteralInTopLevel.kt diff --git a/backend.native/tests/external/codegen/box/when/enumOptimization/kt14597.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/kt14597.kt new file mode 100644 index 00000000000..bd278f2a72e --- /dev/null +++ b/backend.native/tests/external/codegen/box/when/enumOptimization/kt14597.kt @@ -0,0 +1,22 @@ +enum class En { A, B, С } + +fun box(): String { + var res = "" + // nullable variable + val en2: Any? = En.A + if (en2 is En) { + when (en2) { + En.A -> {res += "O"} + En.B -> {} + En.С -> {} + } + + when (en2 as En) { + En.A -> {res += "K"} + En.B -> {} + En.С -> {} + } + } + + return res +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/when/enumOptimization/kt14597_full.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/kt14597_full.kt new file mode 100644 index 00000000000..7eeb15cf184 --- /dev/null +++ b/backend.native/tests/external/codegen/box/when/enumOptimization/kt14597_full.kt @@ -0,0 +1,60 @@ +enum class En { A, B, С } + +fun main(args: Array) { + +} + +fun box(): String { + var res1 = "fail" + var res2 = "fail2" + + val en: En = En.A + when (en) { + En.A -> {res1 = ""} + En.B -> {} + En.С -> {} + } + + when (en as En) { + En.A -> {res1 += "O"} + En.B -> {} + En.С -> {} + } + + + // nullable variable + val en2: Any? = En.A + if (en2 is En) { + when (en2) { + En.A -> {res1 += "K"} + En.B -> {} + En.С -> {} + } + + when (en2 as En) { + En.A -> {res2 = ""} + En.B -> {} + En.С -> {} + } + } + + + // not nullable variable + val en1: Any = En.A + if (en1 is En) { + when (en1) { + En.A -> {res2 += "O"} + En.B -> {} + En.С -> {} + } + // Working without other examples + when (en1 as En) { + En.A -> {res2 += "K"} + En.B -> {} + En.С -> {} + } + } + + if (res1 != res2) return "different results: $res1 != $res2" + return res1 +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/when/enumOptimization/kt14802.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/kt14802.kt new file mode 100644 index 00000000000..bdfc991c967 --- /dev/null +++ b/backend.native/tests/external/codegen/box/when/enumOptimization/kt14802.kt @@ -0,0 +1,25 @@ +class EncapsulatedEnum>(val value: T) + +enum class MyEnum(val value: String) { + VALUE_A("OK"), + VALUE_B("fail"), +} + +private fun crash(encapsulated: EncapsulatedEnum<*>) { + val myEnum = encapsulated.value + if (myEnum !is MyEnum) { + return + } + + when (myEnum) { + MyEnum.VALUE_A -> res = myEnum.value + MyEnum.VALUE_B -> res = myEnum.value + } +} + +var res = "fail" + +fun box(): String { + crash(EncapsulatedEnum(MyEnum.VALUE_A)) + return res +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/box/when/enumOptimization/kt15806.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/kt15806.kt new file mode 100644 index 00000000000..ad603bf7a5f --- /dev/null +++ b/backend.native/tests/external/codegen/box/when/enumOptimization/kt15806.kt @@ -0,0 +1,25 @@ + +private fun Any?.doTheThing(): String { + when (this) { + is String -> return this + is Level -> { + when (this) { + Level.O -> return Level.O.name + Level.K -> return Level.K.name + } + } + + else -> return "fail" + } +} + + +enum class Level { + O, + K +} + + +fun box(): String { + return "O".doTheThing() + Level.K.doTheThing() +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/manyWhensWithinClass.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/manyWhensWithinClass.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/manyWhensWithinClass.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/manyWhensWithinClass.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/nonConstantEnum.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/nonConstantEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/nonConstantEnum.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/nonConstantEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/nullability.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/nullability.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/nullability.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/nullability.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/nullableEnum.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/nullableEnum.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/nullableEnum.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/nullableEnum.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/subjectAny.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/subjectAny.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/subjectAny.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/subjectAny.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/enumOptimization/withoutElse.kt b/backend.native/tests/external/codegen/box/when/enumOptimization/withoutElse.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/enumOptimization/withoutElse.kt rename to backend.native/tests/external/codegen/box/when/enumOptimization/withoutElse.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/exceptionOnNoMatch.kt b/backend.native/tests/external/codegen/box/when/exceptionOnNoMatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/exceptionOnNoMatch.kt rename to backend.native/tests/external/codegen/box/when/exceptionOnNoMatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/exhaustiveBoolean.kt b/backend.native/tests/external/codegen/box/when/exhaustiveBoolean.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/exhaustiveBoolean.kt rename to backend.native/tests/external/codegen/box/when/exhaustiveBoolean.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/exhaustiveBreakContinue.kt b/backend.native/tests/external/codegen/box/when/exhaustiveBreakContinue.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/exhaustiveBreakContinue.kt rename to backend.native/tests/external/codegen/box/when/exhaustiveBreakContinue.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/exhaustiveWhenInitialization.kt b/backend.native/tests/external/codegen/box/when/exhaustiveWhenInitialization.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/exhaustiveWhenInitialization.kt rename to backend.native/tests/external/codegen/box/when/exhaustiveWhenInitialization.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/exhaustiveWhenReturn.kt b/backend.native/tests/external/codegen/box/when/exhaustiveWhenReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/exhaustiveWhenReturn.kt rename to backend.native/tests/external/codegen/box/when/exhaustiveWhenReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/implicitExhaustiveAndReturn.kt b/backend.native/tests/external/codegen/box/when/implicitExhaustiveAndReturn.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/implicitExhaustiveAndReturn.kt rename to backend.native/tests/external/codegen/box/when/implicitExhaustiveAndReturn.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/integralWhenWithNoInlinedConstants.kt b/backend.native/tests/external/codegen/box/when/integralWhenWithNoInlinedConstants.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/integralWhenWithNoInlinedConstants.kt rename to backend.native/tests/external/codegen/box/when/integralWhenWithNoInlinedConstants.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/is.kt b/backend.native/tests/external/codegen/box/when/is.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/is.kt rename to backend.native/tests/external/codegen/box/when/is.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/kt2457.kt b/backend.native/tests/external/codegen/box/when/kt2457.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/kt2457.kt rename to backend.native/tests/external/codegen/box/when/kt2457.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/kt2466.kt b/backend.native/tests/external/codegen/box/when/kt2466.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/kt2466.kt rename to backend.native/tests/external/codegen/box/when/kt2466.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/kt5307.kt b/backend.native/tests/external/codegen/box/when/kt5307.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/kt5307.kt rename to backend.native/tests/external/codegen/box/when/kt5307.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/kt5448.kt b/backend.native/tests/external/codegen/box/when/kt5448.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/kt5448.kt rename to backend.native/tests/external/codegen/box/when/kt5448.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/longInRange.kt b/backend.native/tests/external/codegen/box/when/longInRange.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/longInRange.kt rename to backend.native/tests/external/codegen/box/when/longInRange.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/matchNotNullAgainstNullable.kt b/backend.native/tests/external/codegen/box/when/matchNotNullAgainstNullable.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/matchNotNullAgainstNullable.kt rename to backend.native/tests/external/codegen/box/when/matchNotNullAgainstNullable.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/multipleEntries.kt b/backend.native/tests/external/codegen/box/when/multipleEntries.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/multipleEntries.kt rename to backend.native/tests/external/codegen/box/when/multipleEntries.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/noElseExhaustive.kt b/backend.native/tests/external/codegen/box/when/noElseExhaustive.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/noElseExhaustive.kt rename to backend.native/tests/external/codegen/box/when/noElseExhaustive.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/noElseExhaustiveStatement.kt b/backend.native/tests/external/codegen/box/when/noElseExhaustiveStatement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/noElseExhaustiveStatement.kt rename to backend.native/tests/external/codegen/box/when/noElseExhaustiveStatement.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/noElseExhaustiveUnitExpected.kt b/backend.native/tests/external/codegen/box/when/noElseExhaustiveUnitExpected.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/noElseExhaustiveUnitExpected.kt rename to backend.native/tests/external/codegen/box/when/noElseExhaustiveUnitExpected.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/noElseInStatement.kt b/backend.native/tests/external/codegen/box/when/noElseInStatement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/noElseInStatement.kt rename to backend.native/tests/external/codegen/box/when/noElseInStatement.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/noElseNoMatch.kt b/backend.native/tests/external/codegen/box/when/noElseNoMatch.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/noElseNoMatch.kt rename to backend.native/tests/external/codegen/box/when/noElseNoMatch.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/nullableWhen.kt b/backend.native/tests/external/codegen/box/when/nullableWhen.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/nullableWhen.kt rename to backend.native/tests/external/codegen/box/when/nullableWhen.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/range.kt b/backend.native/tests/external/codegen/box/when/range.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/range.kt rename to backend.native/tests/external/codegen/box/when/range.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/sealedWhenInitialization.kt b/backend.native/tests/external/codegen/box/when/sealedWhenInitialization.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/sealedWhenInitialization.kt rename to backend.native/tests/external/codegen/box/when/sealedWhenInitialization.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/duplicatingItems.kt b/backend.native/tests/external/codegen/box/when/stringOptimization/duplicatingItems.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/stringOptimization/duplicatingItems.kt rename to backend.native/tests/external/codegen/box/when/stringOptimization/duplicatingItems.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/duplicatingItemsSameHashCode.kt b/backend.native/tests/external/codegen/box/when/stringOptimization/duplicatingItemsSameHashCode.kt similarity index 94% rename from backend.native/tests/external/codegen/blackbox/when/stringOptimization/duplicatingItemsSameHashCode.kt rename to backend.native/tests/external/codegen/box/when/stringOptimization/duplicatingItemsSameHashCode.kt index 53f6754fb71..00ff2e6812e 100644 --- a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/duplicatingItemsSameHashCode.kt +++ b/backend.native/tests/external/codegen/box/when/stringOptimization/duplicatingItemsSameHashCode.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/expression.kt b/backend.native/tests/external/codegen/box/when/stringOptimization/expression.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/stringOptimization/expression.kt rename to backend.native/tests/external/codegen/box/when/stringOptimization/expression.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/nullability.kt b/backend.native/tests/external/codegen/box/when/stringOptimization/nullability.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/stringOptimization/nullability.kt rename to backend.native/tests/external/codegen/box/when/stringOptimization/nullability.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/sameHashCode.kt b/backend.native/tests/external/codegen/box/when/stringOptimization/sameHashCode.kt similarity index 95% rename from backend.native/tests/external/codegen/blackbox/when/stringOptimization/sameHashCode.kt rename to backend.native/tests/external/codegen/box/when/stringOptimization/sameHashCode.kt index fd4d11e6b65..2114ac50d26 100644 --- a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/sameHashCode.kt +++ b/backend.native/tests/external/codegen/box/when/stringOptimization/sameHashCode.kt @@ -1,5 +1,5 @@ // TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/backend.native/tests/external/codegen/blackbox/when/stringOptimization/statement.kt b/backend.native/tests/external/codegen/box/when/stringOptimization/statement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/stringOptimization/statement.kt rename to backend.native/tests/external/codegen/box/when/stringOptimization/statement.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/switchOptimizationDense.kt b/backend.native/tests/external/codegen/box/when/switchOptimizationDense.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/switchOptimizationDense.kt rename to backend.native/tests/external/codegen/box/when/switchOptimizationDense.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/switchOptimizationMultipleConditions.kt b/backend.native/tests/external/codegen/box/when/switchOptimizationMultipleConditions.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/switchOptimizationMultipleConditions.kt rename to backend.native/tests/external/codegen/box/when/switchOptimizationMultipleConditions.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/switchOptimizationSparse.kt b/backend.native/tests/external/codegen/box/when/switchOptimizationSparse.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/switchOptimizationSparse.kt rename to backend.native/tests/external/codegen/box/when/switchOptimizationSparse.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/switchOptimizationStatement.kt b/backend.native/tests/external/codegen/box/when/switchOptimizationStatement.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/switchOptimizationStatement.kt rename to backend.native/tests/external/codegen/box/when/switchOptimizationStatement.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/switchOptimizationTypes.kt b/backend.native/tests/external/codegen/box/when/switchOptimizationTypes.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/switchOptimizationTypes.kt rename to backend.native/tests/external/codegen/box/when/switchOptimizationTypes.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/switchOptimizationUnordered.kt b/backend.native/tests/external/codegen/box/when/switchOptimizationUnordered.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/switchOptimizationUnordered.kt rename to backend.native/tests/external/codegen/box/when/switchOptimizationUnordered.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/typeDisjunction.kt b/backend.native/tests/external/codegen/box/when/typeDisjunction.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/typeDisjunction.kt rename to backend.native/tests/external/codegen/box/when/typeDisjunction.kt diff --git a/backend.native/tests/external/codegen/blackbox/when/whenArgumentIsEvaluatedOnlyOnce.kt b/backend.native/tests/external/codegen/box/when/whenArgumentIsEvaluatedOnlyOnce.kt similarity index 100% rename from backend.native/tests/external/codegen/blackbox/when/whenArgumentIsEvaluatedOnlyOnce.kt rename to backend.native/tests/external/codegen/box/when/whenArgumentIsEvaluatedOnlyOnce.kt diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSite.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSite.kt new file mode 100644 index 00000000000..7a81294a751 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSite.kt @@ -0,0 +1,45 @@ +// FILE: 1.kt + +package test + +abstract class A { + abstract fun getO() : R + + abstract fun getK() : R +} + + +inline fun doWork(job: ()-> R) : R { + return job() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box() : String { + val o = "O" + val p = "GOOD" + val result = doWork { + val k = "K" + val s = object : A() { + + val param = p; + + override fun getO(): String { + return o; + } + + override fun getK(): String { + return k; + } + } + + s.getO() + s.getK() + s.param + } + + if (result != "OKGOOD") return "fail $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSiteSuperParams.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSiteSuperParams.kt new file mode 100644 index 00000000000..bfbbb44d282 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnCallSiteSuperParams.kt @@ -0,0 +1,41 @@ +// FILE: 1.kt + +package test + +abstract class A(val param: R) { + abstract fun getO() : R + + abstract fun getK() : R +} + + +inline fun doWork(job: ()-> R) : R { + return job() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box() : String { + val o = "O" + val result = doWork { + val k = "K" + val s = object : A("11") { + override fun getO(): String { + return o; + } + + override fun getK(): String { + return k; + } + } + + s.getO() + s.getK() + s.param + } + + if (result != "OK11") return "fail $result" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.kt new file mode 100644 index 00000000000..9a8d1f21d2f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.kt @@ -0,0 +1,85 @@ +// FILE: 1.kt + +package test + + +abstract class A { + abstract fun getO() : R + + abstract fun getK() : R + + abstract fun getParam() : R +} + +inline fun doWork(crossinline jobO: ()-> R, crossinline jobK: ()-> R, param: R) : A { + val s = object : A() { + + override fun getO(): R { + return jobO() + } + override fun getK(): R { + return jobK() + } + + override fun getParam(): R { + return param + } + } + return s; +} + +inline fun doWorkInConstructor(crossinline jobO: ()-> R, crossinline jobK: ()-> R, param: R) : A { + val s = object : A() { + + val p = param; + + val o1 = jobO() + + val k1 = jobK() + + override fun getO(): R { + return o1 + } + override fun getK(): R { + return k1 + } + + override fun getParam(): R { + return p + } + } + return s; +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun test1(): String { + val o = "O" + + val result = doWork ({o}, {"K"}, "GOOD") + + return result.getO() + result.getK() + result.getParam() +} + +fun test2() : String { + //same names as in object + val o1 = "O" + val k1 = "K" + + val result = doWorkInConstructor ({o1}, {k1}, "GOOD") + + return result.getO() + result.getK() + result.getParam() +} + +fun box() : String { + val result1 = test1(); + if (result1 != "OKGOOD") return "fail1 $result1" + + val result2 = test2(); + if (result2 != "OKGOOD") return "fail2 $result2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.kt new file mode 100644 index 00000000000..9344cbacd75 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.kt @@ -0,0 +1,72 @@ +// FILE: 1.kt + +package test + + +abstract class A(val param : R) { + abstract fun getO() : R + + abstract fun getK() : R +} + +inline fun doWork(crossinline jobO: ()-> R, crossinline jobK: ()-> R, param: R) : A { + val s = object : A(param) { + + override fun getO(): R { + return jobO() + } + override fun getK(): R { + return jobK() + } + } + return s; +} + +inline fun doWorkInConstructor(crossinline jobO: ()-> R, crossinline jobK: ()-> R, crossinline param: () -> R) : A { + val s = object : A(param()) { + val o1 = jobO() + + val k1 = jobK() + + override fun getO(): R { + return o1 + } + override fun getK(): R { + return k1 + } + } + return s; +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun test1(): String { + val o = "O" + + val result = doWork ({o}, {"K"}, "11") + + return result.getO() + result.getK() + result.param +} + +fun test2() : String { + //same names as in object + val o1 = "O" + val k1 = "K" + val param = "11" + val result = doWorkInConstructor ({o1}, {k1}, {param}) + + return result.getO() + result.getK() + result.param +} + +fun box() : String { + val result1 = test1(); + if (result1 != "OK11") return "fail1 $result1" + + val result2 = test2(); + if (result2 != "OK11") return "fail2 $result2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline.kt new file mode 100644 index 00000000000..e93b5834074 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline.kt @@ -0,0 +1,18 @@ +// FILE: 1.kt + +package test + +inline fun bar(crossinline y: () -> String) = { + call(y) +} + +public inline fun call(f: () -> T): T = f() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return bar {"OK"} () +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline2.kt new file mode 100644 index 00000000000..65bd20276ef --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline2.kt @@ -0,0 +1,18 @@ +// FILE: 1.kt + +package test + +inline fun bar(crossinline y: () -> String) = { + { { call(y) }() }() +} + +public inline fun call(f: () -> T): T = f() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return bar {"OK"} () +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline3.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline3.kt new file mode 100644 index 00000000000..c8ad1f3620a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInline3.kt @@ -0,0 +1,24 @@ +// FILE: 1.kt + +package test + +inline fun bar(crossinline y: () -> String) = { + { { call(y) }() }() +} + +public inline fun call(crossinline f: () -> T): T = {{ f() }()}() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + val bar1 = bar {"123"} () + val bar2 = bar2 { "1234" } () + return if (bar1 == "123" && bar2 == "1234") "OK" else "fail: $bar1 $bar2" +} + +inline fun bar2(crossinline y: () -> String) = { + { { call(y) }() }() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInlineObject.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInlineObject.kt new file mode 100644 index 00000000000..575323aa02a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/capturedLambdaInInlineObject.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt + +package test + +internal interface A { + fun run(): T; +} + +internal inline fun bar(crossinline y: () -> String) = object : A { + override fun run() : String { + return call(y) + } +} + +public inline fun call(crossinline f: () -> T): T = object : A { + override fun run() : T { + return f() + } +}.run() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return bar { "OK" }.run() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/changingReturnType.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/changingReturnType.kt new file mode 100644 index 00000000000..7f115210d1e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/changingReturnType.kt @@ -0,0 +1,30 @@ +// FILE: 1.kt + +package test + +open class Entity(val value: String) + +public abstract class Task() { + abstract fun calc(): T +} + +fun nullableTask(factory: () -> Task): Task { + return factory() +} + +inline fun Self.directed(): Task = + nullableTask { + object : Task() { + override fun calc(): Self = this@directed + } + } + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +//KT-7490 +import test.* + +fun box(): String { + return Entity("OK").directed().calc().value +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibility.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibility.kt new file mode 100644 index 00000000000..08f1968bdcf --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibility.kt @@ -0,0 +1,23 @@ +// FILE: 1.kt + +package test + +interface Run { + fun run(): String +} + +internal class A { + inline fun doSomething(): Run { + return object : Run { + override fun run(): String = "OK" + } + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return A().doSomething().run() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInConstLambda.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInConstLambda.kt new file mode 100644 index 00000000000..a1bd16a0116 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInConstLambda.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +internal class A { + inline fun doSomething(): String { + return { + "OK" + }() + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return A().doSomething() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInLambda.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInLambda.kt new file mode 100644 index 00000000000..e31ce7b1575 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/constructorVisibilityInLambda.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +internal class A { + inline fun doSomething(s: String): String { + return { + s + }() + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return A().doSomething("OK") +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/defineClass.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/defineClass.kt new file mode 100644 index 00000000000..788602e4de7 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/defineClass.kt @@ -0,0 +1,54 @@ +// FILE: 1.kt + +package test + +interface Run { + fun run(): String +} + +inline fun i2(crossinline s: () -> String): Run { + return i1 { + object : Run { + override fun run(): String { + return s() + } + }.run() + } +} + +inline fun i1(crossinline s: () -> String): Run { + return object : Run { + override fun run(): String { + return s() + } + } +} + +// FILE: 2.kt + +import test.* + +inline fun i4(crossinline s: () -> String): Run { + return i3 { + object : Run { + override fun run(): String { + return s() + } + }.run() + } +} + +inline fun i3(crossinline s: () -> String): Run { + return i2 { + object : Run { + override fun run(): String { + return s() + } + }.run() + } +} + +fun box(): String { + val i4 = i4 { "OK" } + return i4.run() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/callSite.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/callSite.kt new file mode 100644 index 00000000000..3539bbfb478 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/callSite.kt @@ -0,0 +1,30 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +enum class X { + A, + B +} + +inline fun test(x: X, s: (X) -> String): String { + return s(x) +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return test(X.A) { + when(it) { + X.A-> "O" + X.B-> "K" + } + } + test(X.B) { + when(it) { + X.A-> "O" + X.B-> "K" + } + } +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSite.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSite.kt new file mode 100644 index 00000000000..e5942e3987e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSite.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt + +package test + +enum class X { + A, + B +} + +inline fun test(e: X): String { + return when(e) { + X.A-> "O" + X.B-> "K" + } +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return test(X.A) + test(X.B) +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappings.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappings.kt new file mode 100644 index 00000000000..7e01061e0df --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappings.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt + +package test + +enum class X { + A, + B +} + +enum class Y { + A, + B +} + +inline fun test(e: X): String { + return when(e) { + X.A-> "O" + X.B-> "K" + } +} + +fun funForAdditionalMappingArrayInMappingFile(e: Y): String { + return when(e) { + Y.A-> "O" + Y.B-> "K" + } +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return test(X.A) + test(X.B) +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappingsDifOrder.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappingsDifOrder.kt new file mode 100644 index 00000000000..a54536a0b2f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/enumWhen/declSiteSeveralMappingsDifOrder.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt + +package test + +enum class X { + A, + B +} + +enum class Y { + A, + B +} + +fun funForAdditionalMappingArrayInMappingFile(e: Y): String { + return when(e) { + Y.A-> "O" + Y.B-> "K" + } +} + +inline fun test(e: X): String { + return when(e) { + X.A-> "O" + X.B-> "K" + } +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return test(X.A) + test(X.B) +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13133.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13133.kt new file mode 100644 index 00000000000..f3cbff09ac5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13133.kt @@ -0,0 +1,34 @@ +// IGNORE_BACKEND: NATIVE +// WITH_REFLECT +// FILE: 1.kt + +package test + +inline fun inf(crossinline cif: Any.() -> String): () -> String { + return { + object : () -> String { + override fun invoke() = cif() + } + }() +} +// FILE: 2.kt + +import test.* + +fun box(): String { + val simpleName = inf { + javaClass.simpleName + }() + + if (simpleName != "" ) return "fail 1: $simpleName" + + val name = inf { + javaClass.name + }() + + if (name != "_2Kt\$box$\$inlined\$inf$2$1" ) return "fail 2: $name" + + + return "OK" +} + diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13182.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13182.kt new file mode 100644 index 00000000000..91d42494a12 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13182.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt + +package test + +inline fun test(cond: Boolean, crossinline cif: () -> String): String { + return if (cond) { + { cif() }() + } + else { + cif() + } +} +// FILE: 2.kt + +import test.* + +fun box(): String { + val s = "OK" + return test(true) { + { + s + }() + } +} + diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13374.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13374.kt new file mode 100644 index 00000000000..5db8f48053e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt13374.kt @@ -0,0 +1,37 @@ +// FILE: 1.kt + +package test + +interface IZ { + fun z() +} + +interface IZZ : IZ { + fun zz() +} + +inline fun implZZ(zImpl: IZ, crossinline zzImpl: () -> Unit): IZZ = + object : IZZ, IZ by zImpl { + override fun zz() = zzImpl() + } + + +// FILE: 2.kt + +import test.* + +var result = "fail"; + +object ZImpl : IZ { + override fun z() { + result = "O" + } +} + +fun box(): String { + val zz = implZZ(ZImpl) { result += "K" } + zz.z() + zz.zz() + return result +} + diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011.kt new file mode 100644 index 00000000000..1e8e1ab579c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt +package test + +inline fun inline1(crossinline action: () -> Unit) { + action(); + { action() }() +} + +inline fun inline2(crossinline action: () -> Unit) = { action() } + + +// FILE: 2.kt +import test.* + +var result = "fail" +fun box(): String { + inline1 { inline2 { result = "OK" }() } + + return result +} + diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_2.kt new file mode 100644 index 00000000000..3997d2aa02f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_2.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt +package test + +inline fun inline1(crossinline action: () -> Unit) { + { action () } + action(); +} + +inline fun inline2(crossinline action: () -> Unit) = { action() } + + +// FILE: 2.kt +import test.* + +var result = "fail" +fun box(): String { + inline1 { inline2 { result ="OK" }() } + + return result +} + diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_3.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_3.kt new file mode 100644 index 00000000000..77cf8a653b5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt14011_3.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +package test + +inline fun inline1(crossinline action: () -> Unit) { + { action () } + action(); +} + +inline fun inline2(crossinline action: () -> Unit) = { + action() +} + + +// FILE: 2.kt +import test.* + +var result = "fail" +fun box(): String { + inline1 { + inline2 { { result ="OK" }() }() + } + + return result +} + diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt16193.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt16193.kt new file mode 100644 index 00000000000..28c677f229f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt16193.kt @@ -0,0 +1,30 @@ +// IGNORE_BACKEND: NATIVE +//WITH_RUNTIME +//FULL_JDK +// FILE: 1.kt +package test + +inline fun crashMe(crossinline callback: () -> Unit): Function0 { + return object: Function0 { + override fun invoke() { + callback() + } + } +} + +// FILE: 2.kt + +import test.* +import java.lang.reflect.Modifier + +var result = "fail" + + +fun box(): String { + val crashMe = crashMe { result = "OK" } + val modifiers = crashMe::class.java.getDeclaredConstructor().modifiers + if (!Modifier.isPublic(modifiers)) return "fail $modifiers" + + crashMe.invoke() + return result +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt6552.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt6552.kt new file mode 100644 index 00000000000..fefcc854cbc --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt6552.kt @@ -0,0 +1,18 @@ +// FILE: 1.kt + +package test + +public enum class X { A, B } + +public inline fun switch(x: X): String = when (x) { + X.A -> "O" + X.B -> "K" +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return switch(X.A) + switch(X.B) +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt8133.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt8133.kt new file mode 100644 index 00000000000..afbe87298a7 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt8133.kt @@ -0,0 +1,23 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +public inline fun T.myLet(f: (T) -> R): R = f(this) + +// FILE: 2.kt + +import test.* + +interface foo { + fun bar(): String +} + +fun box(): String { + val baz = "OK".myLet { + object : foo { + override fun bar() = it + } + } + return baz.bar() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064.kt new file mode 100644 index 00000000000..d5a4c742c58 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064.kt @@ -0,0 +1,31 @@ +// FILE: 1.kt + +package test + +class Test(val _member: String) { + val _parameter: Z = test { + object : Z { + override val property = _member + } + } +} + +interface Z { + val property: String +} + +inline fun test(s: () -> Z): Z { + return s() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + + val test = Test("OK") + + return test._parameter.property +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064v2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064v2.kt new file mode 100644 index 00000000000..c68ac612b04 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9064v2.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +class Test(val _member: String) { + val _parameter: Z> = test { + object : Z> { + override val property = test { + object : Z { + override val property = _member + } + } + } + } +} + +interface Z { + val property: T +} + +inline fun test(s: () -> Z): Z { + return s() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + + val test = Test("OK") + + return test._parameter.property.property +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9591.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9591.kt new file mode 100644 index 00000000000..858e2bd78d1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9591.kt @@ -0,0 +1,29 @@ +// NO_CHECK_LAMBDA_INLINING +// WITH_RUNTIME +// FILE: 1.kt +package test + + + +inline fun inlineFun(p: () -> Unit) { + p() +} + +// FILE: 2.kt + +import test.* + +public fun box(): String { + var z = "fail" + inlineFun { + val obj = object { + val _delegate by lazy { + z = "OK" + } + } + + obj._delegate + } + + return z; +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877.kt new file mode 100644 index 00000000000..cd05b1f097d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877.kt @@ -0,0 +1,33 @@ +// NO_CHECK_LAMBDA_INLINING +// WITH_RUNTIME +// FILE: 1.kt +package test + +fun T.noInline(p: (T) -> Unit) { + p(this) +} + +inline fun inlineCall(p: () -> Unit) { + p() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val loci = listOf("a", "b", "c") + var gene = "g1" + + inlineCall { + val value = 10.0 + loci.forEach { + var locusMap = 1.0 + { + locusMap = value + gene = "OK" + }() + } + } + return gene +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877_2.kt new file mode 100644 index 00000000000..74159b48cb9 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/kt9877_2.kt @@ -0,0 +1,28 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +inline fun inlineCall(p: () -> Unit) { + p() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var gene = "g1" + + inlineCall { + val value = 10.0 + inlineCall { + { + value + gene = "OK" + }() + } + } + + return gene +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt new file mode 100644 index 00000000000..165d34191c8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt +package test + +public inline fun myRun(block: () -> Unit) { + return block() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + var res = "" + myRun { + val x = object { + fun foo() { + res = "OK" + } + } + object { + fun bar() = x.foo() + }.bar() + } + + return res +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/inlineChain.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/inlineChain.kt new file mode 100644 index 00000000000..ff2504b3164 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/inlineChain.kt @@ -0,0 +1,29 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +inline fun testNested(crossinline f: (String) -> Unit) { + object : A { + override fun run() { + f("OK") + } + }.run() +} + +inline fun test(crossinline f: (String) -> Unit) { + testNested { it -> { f(it) }()} +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + test { it -> result = it } + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain.kt new file mode 100644 index 00000000000..317e87c1467 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain.kt @@ -0,0 +1,30 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +inline fun inlineFun(arg: T, f: (T) -> Unit) { + f(arg) +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val param = "start" + var result = "fail" + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param + c + a + }() + }() + } + }() + } + + return if (result == "start12") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChainSimple.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChainSimple.kt new file mode 100644 index 00000000000..8cba9323d98 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChainSimple.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt + +package test + +inline fun inlineFun(arg: T, crossinline f: (T) -> Unit) { + { + f(arg) + }() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val param = "start" + var result = "fail" + + inlineFun("2") { a -> + { + result = param + a + }() + } + + + return if (result == "start2") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_2.kt new file mode 100644 index 00000000000..b746026fa96 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_2.kt @@ -0,0 +1,31 @@ +// FILE: 1.kt + +package test + +inline fun inlineFun(arg: T, crossinline f: (T) -> Unit) { + { + f(arg) + }() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val param = "start" + var result = "fail" + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param + c + a + }() + }() + } + }() + } + + return if (result == "start12") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_3.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_3.kt new file mode 100644 index 00000000000..a65c88f9e09 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/lambdaChain_3.kt @@ -0,0 +1,29 @@ +// FILE: 1.kt + +package test + +inline fun inlineFun(arg: T, crossinline f: (T) -> Unit) { + { + f(arg) + }() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val param = "start" + var result = "fail" + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + result = param + c + a + }() + } + }() + } + + return if (result == "start12") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/noInlineLambda.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/noInlineLambda.kt new file mode 100644 index 00000000000..8aa242bb0fd --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturing/noInlineLambda.kt @@ -0,0 +1,29 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +inline fun testNested(crossinline f: (String) -> Unit) { + object : A { + override fun run() { + f("OK") + } + }.run() +} + +fun test(f: (String) -> Unit) { + testNested { it -> { f(it) }()} +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + test { it -> result = it } + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlineChain.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlineChain.kt new file mode 100644 index 00000000000..324fa7fb4b2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlineChain.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +class B(val o: String, val k: String) { + + inline fun testNested(crossinline f: (String) -> Unit) { + object : A { + override fun run() { + f(o) + } + }.run() + } + + inline fun test(crossinline f: (String) -> Unit) { + testNested { it -> { f(it + k) }() } + } + + +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + B("O", "K").test { it -> result = it } + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlinelambdaChain.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlinelambdaChain.kt new file mode 100644 index 00000000000..2d1ad3de754 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/inlinelambdaChain.kt @@ -0,0 +1,41 @@ +// FILE: 1.kt + +package test + +class A { + val param = "start" + var result = "fail" + var addParam = "_additional_" + + inline fun inlineFun(arg: String, crossinline f: (String) -> Unit) { + { + f(arg + addParam) + }() + } + + fun box(): String { + { + inlineFun("1") { c -> + inlineFun("2") { a -> + { + { + result = param + c + a + }() + }() + } + + } + }() + + return if (result == "start1_additional_2_additional_") "OK" else "fail: $result" + } +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return A().box() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain.kt new file mode 100644 index 00000000000..e9a6f6be895 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt + +package test + +class A { + val param = "start" + var result = "fail" + var addParam = "_additional_" + + inline fun inlineFun(arg: String, f: (String) -> Unit) { + f(arg + addParam) + } + + fun box(): String { + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param + c + a + }() + }() + } + }() + } + + return if (result == "start1_additional_2_additional_") "OK" else "fail: $result" + } + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return A().box() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple.kt new file mode 100644 index 00000000000..6a46172ff5c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +class A { + val param = "start" + var result = "fail" + var addParam = "_additional_" + + inline fun inlineFun(arg: String, crossinline f: (String) -> Unit) { + { + f(arg + addParam) + }() + } + + + fun box(): String { + inlineFun("2") { a -> + { + result = param + a + }() + } + return if (result == "start2_additional_") "OK" else "fail: $result" + } + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return A().box() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple_2.kt new file mode 100644 index 00000000000..2229d03b306 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChainSimple_2.kt @@ -0,0 +1,37 @@ +// FILE: 1.kt + +package test + +class A { + val param = "start" + var result = "fail" + var addParam = "_additional_" + + inline fun inlineFun(arg: String, crossinline f: (String) -> Unit) { + { + f(arg + addParam) + }() + } + + + fun box(): String { + { + inlineFun("2") { a -> + { + result = param + a + }() + } + }() + return if (result == "start2_additional_") "OK" else "fail: $result" + } + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return A().box() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_2.kt new file mode 100644 index 00000000000..52e6faed839 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_2.kt @@ -0,0 +1,40 @@ +// FILE: 1.kt + +package test + +class A { + val param = "start" + var result = "fail" + var addParam = "_additional_" + + inline fun inlineFun(arg: String, crossinline f: (String) -> Unit) { + { + f(arg + addParam) + }() + } + + fun box(): String { + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param + c + a + }() + }() + } + }() + } + + return if (result == "start1_additional_2_additional_") "OK" else "fail: $result" + } +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return A().box() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_3.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_3.kt new file mode 100644 index 00000000000..94cfc46759f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/lambdaChain_3.kt @@ -0,0 +1,40 @@ +// FILE: 1.kt + +package test + +class A { + val param = "start" + var result = "fail" + var addParam = "_additional_" + + inline fun inlineFun(arg: String, crossinline f: (String) -> Unit) { + { + f(arg + addParam) + }() + } + + fun box(): String { + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + result = param + c + a + }() + } + }() + } + + return if (result == "start1_additional_2_additional_") "OK" else "fail: $result" + } + + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return A().box() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noCapturedThisOnCallSite.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noCapturedThisOnCallSite.kt new file mode 100644 index 00000000000..867a8a040bb --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noCapturedThisOnCallSite.kt @@ -0,0 +1,33 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +class B(val o: String, val k: String) { + + inline fun testNested(crossinline f: (String) -> Unit) { + object : A { + override fun run() { + f(o) + } + }.run() + } + + inline fun test(crossinline f: (String) -> Unit) { + testNested { it -> { f(it + "K") }() } + } + +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + B("O", "fail").test { it -> result = it } + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noInlineLambda.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noInlineLambda.kt new file mode 100644 index 00000000000..fa95495148c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/noInlineLambda.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +class B(val o: String, val k: String) { + + inline fun testNested(crossinline f: (String) -> Unit) { + object : A { + override fun run() { + f(o) + } + }.run() + } + + fun test(f: (String) -> Unit) { + testNested { it -> { f(it + k) }() } + } + + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + var result = "fail" + B("O", "K").test { it -> result = it } + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambda.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambda.kt new file mode 100644 index 00000000000..09d238f9d76 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambda.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +class B(val o: String, val k: String) { + + inline fun testNested(crossinline f2: (String) -> Unit, crossinline f3: (String) -> Unit) { + object : A { + override fun run() { + f2(o) + f3(k) + } + }.run() + } + + inline fun test(crossinline f: (String) -> Unit) { + testNested ({ it -> f(it + o) }) { it -> f(it + k) } + } + +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "" + B("O", "K").test { it -> result += it } + return if (result == "OOKK") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex.kt new file mode 100644 index 00000000000..2459a2f67e6 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex.kt @@ -0,0 +1,43 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +class B(val o: String, val k: String) { + + inline fun testNested(crossinline f: (String) -> Unit, crossinline f2: (String) -> Unit) { + object : A { + override fun run() { + f(o) + f2(k) + } + }.run() + } + + inline fun test(crossinline f: (String) -> Unit) { + call { + { + testNested ({ it -> { f(it + o) }() }) { it -> { f(it + k) }() } + }() + } + } + + inline fun call(f: () -> Unit) { + f() + } + + +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "" + B("O", "K").test { it -> result += it } + return if (result == "OOKK") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex_2.kt new file mode 100644 index 00000000000..472657d058b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/properRecapturingInClass/twoInlineLambdaComplex_2.kt @@ -0,0 +1,44 @@ +// FILE: 1.kt + +package test + +interface A { + fun run() +} + +class B(val o: String, val k: String) { + + inline fun testNested(crossinline f: (String) -> Unit, crossinline f2: (String) -> Unit) { + object : A { + override fun run() { + f(o) + f2(k) + } + }.run() + } + + inline fun test(crossinline f: (String) -> Unit) { + call { + f("start"); + { + testNested ({ it -> { f(it + o) }() }) { it -> { f(it + k) }() } + }() + } + } + + inline fun call(f: () -> Unit) { + f() + } + + +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "" + B("O", "K").test { it -> result += it } + return if (result == "startOOKK") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall.kt new file mode 100644 index 00000000000..761baaab332 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall.kt @@ -0,0 +1,24 @@ +// FILE: 1.kt + +package test + +class W(val value: Any) + +inline fun W.safe(crossinline body : Any.() -> Unit) { + { + this.value?.body() + }() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + W("OK").safe { + result = this as String + } + + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall_2.kt new file mode 100644 index 00000000000..ed67f8175f0 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/safeCall_2.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt + +package test + +class W(val value: Any) + +inline fun W.safe(crossinline body : Any.() -> Unit) { + { + this.value?.body() + }() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + W("OK").safe { + { + result = this as String + }() + } + + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/sam.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/sam.kt new file mode 100644 index 00000000000..8fa1a21446e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/sam.kt @@ -0,0 +1,20 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +package test + +inline fun makeRunnable(noinline lambda: ()->Unit) : Runnable { + return Runnable(lambda) +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + + makeRunnable { result = "OK" }.run() + + return result +} + diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668.kt new file mode 100644 index 00000000000..6aabb90b5b5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668.kt @@ -0,0 +1,31 @@ +// FILE: 1.kt + +package test + +class A { + + fun callK(): String { + return "K" + } + + fun callO(): String { + return "O" + } + + fun testCall(): String = test { callO() } + + inline fun test(crossinline l: () -> String): String { + return { + l() + callK() + }() + } +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return A().testCall() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_2.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_2.kt new file mode 100644 index 00000000000..c25485dceac --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_2.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt + +package test + +class Person(val name: String) { + + fun sayName() = doSayName { name } + + inline fun doSayName(crossinline call: () -> String): String { + return nestedSayName1 { nestedSayName2 { call() } } + } + + fun nestedSayName1(call: () -> String) = call() + + inline fun nestedSayName2(call: () -> String) = call() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return Person("OK").sayName() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_3.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_3.kt new file mode 100644 index 00000000000..66f310e4426 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/kt8668_3.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt + +package test + +class Person(val name: String) { + + fun sayName() = doSayName { name } + + inline fun doSayName(crossinline call: () -> String): String { + return nestedSayName1 { name + Person("sub").nestedSayName2 { call() } } + } + + fun nestedSayName1(call: () -> String) = call() + + inline fun nestedSayName2(call: () -> String) = name + call() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + val res = Person("OK").sayName() + if (res != "OKsubOK") return "fail: $res" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoDifferentDispatchReceivers.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoDifferentDispatchReceivers.kt new file mode 100644 index 00000000000..d1188cc9d1f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoDifferentDispatchReceivers.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt + +package test + +class Company(val name: String) { + fun sayName() = Person("test").doSayName { name } +} + +class Person(val name: String) { + + inline fun doSayName(crossinline call: () -> String): String { + return companyName { parsonName { call() } } + } + + inline fun parsonName(call: () -> String) = call() + + fun companyName(call: () -> String) = call() + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return Company("OK").sayName() +} diff --git a/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoExtensionReceivers.kt b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoExtensionReceivers.kt new file mode 100644 index 00000000000..569b29472d2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/anonymousObject/twoCapturedReceivers/twoExtensionReceivers.kt @@ -0,0 +1,24 @@ +// FILE: 1.kt + +package test + +fun Person.sayName() = doSayName { name } + +class Person(val name: String) + +inline fun Person.doSayName(crossinline call: () -> String): String { + return companyName { parsonName { call() } } +} + +inline fun Person.parsonName(call: () -> String) = call() + +fun Person.companyName(call: () -> String) = call() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return Person("OK").sayName() +} diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference.kt new file mode 100644 index 00000000000..0607fff5303 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference.kt @@ -0,0 +1,41 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +inline fun test(a: String, b: String, c: () -> String): String { + return a + b + c(); +} + +// FILE: 2.kt + +import test.* + +var res = "" + +fun String.id() = this + +val receiver: String + get() { + res += "L" + return "L" + } + + +fun box(): String { + res = "" + var call = test(b = { res += "K"; "K" }(), a = { res += "O"; "O" }(), c = receiver::id) + if (res != "KOL" || call != "OKL") return "fail 1: $res != KOL or $call != OKL" + + res = "" + call = test(b = { res += "K"; "K" }(), c = receiver::id, a = { res += "O"; "O" }()) + if (res != "KLO" || call != "OKL") return "fail 2: $res != KLO or $call != OKL" + + + res = "" + call = test(c = receiver::id, b = { res += "K"; "K" }(), a = { res += "O"; "O" }()) + if (res != "LKO" || call != "OKL") return "fail 3: $res != LKO or $call != OKL" + + return "OK" +} + diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference2.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference2.kt new file mode 100644 index 00000000000..afeec54fea1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/boundFunctionReference2.kt @@ -0,0 +1,41 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +inline fun test(a: String, b: Long, c: () -> String): String { + return a + b + c(); +} + +// FILE: 2.kt + +import test.* + +var res = "" + +fun String.id() = this + +val receiver: String + get() { + res += "L" + return "L" + } + + +fun box(): String { + res = "" + var call = test(b = { res += "K"; 1L }(), a = { res += "O"; "O" }(), c = receiver::id) + if (res != "KOL" || call != "O1L") return "fail 1: $res != KOL or $call != O1L" + + res = "" + call = test(b = { res += "K"; 1L }(), c = receiver::id, a = { res += "O"; "O" }()) + if (res != "KLO" || call != "O1L") return "fail 2: $res != KLO or $call != O1L" + + + res = "" + call = test(c = receiver::id, b = { res += "K"; 1L }(), a = { res += "O"; "O" }()) + if (res != "LKO" || call != "O1L") return "fail 3: $res != LKO or $call != O1L" + + return "OK" +} + diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/captured.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/captured.kt new file mode 100644 index 00000000000..0388cd57054 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/captured.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt + +package test + +inline fun test(a: Int, b: Long, crossinline c: () -> String): String { + return { "${a}_${b}_${c()}"} () +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var invokeOrder = ""; + val expectedResult = "0_1_9" + val expectedInvokeOrder = "1_0_9" + var l = 1L + var i = 0 + val captured = 9L + + var result = test(b = {invokeOrder += "1_"; l}(), a = {invokeOrder+="0_"; i}(), c = {invokeOrder += "$captured"; "$captured"}) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 1: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + invokeOrder = ""; + result = test(b = {invokeOrder += "1_"; l}(), c = {invokeOrder += "$captured"; "$captured"}, a = {invokeOrder+="0_"; i}()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 2: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + + invokeOrder = ""; + result = test(c = {invokeOrder += "$captured"; "$captured"}, b = {invokeOrder += "1_"; l}(), a = {invokeOrder+="0_"; i}()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 3: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + + invokeOrder = ""; + result = test(a = {invokeOrder+="0_"; i}(), c = {invokeOrder += "$captured"; "$captured"}, b = {invokeOrder += "1_"; l}()) + if (invokeOrder != "0_1_9" || result != expectedResult) return "fail 4: $invokeOrder != 0_1_9 or $result != $expectedResult" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/capturedInExtension.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/capturedInExtension.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/capturedInExtension.kt rename to backend.native/tests/external/codegen/boxInline/argumentOrder/capturedInExtension.kt index 72ed6b1c2bc..096c5fe75e4 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/capturedInExtension.kt +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/capturedInExtension.kt @@ -1,5 +1,15 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// FILE: 1.kt + +package test + +inline fun Double.test(a: Int, b: Long, crossinline c: () -> String): String { + + return { "${this}_${a}_${b}_${c()}"} () +} + +// FILE: 2.kt + +import test.* fun box(): String { var invokeOrder = ""; @@ -27,7 +37,3 @@ fun box(): String { return "OK" } - -fun Double.test(a: Int, b: Long, c: () -> String): String { - return { "${this}_${a}_${b}_${c()}"} () -} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/blackbox/argumentOrder/extension.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/extension.kt similarity index 89% rename from backend.native/tests/external/codegen/blackbox/argumentOrder/extension.kt rename to backend.native/tests/external/codegen/boxInline/argumentOrder/extension.kt index c95a3b491c1..94fa2176376 100644 --- a/backend.native/tests/external/codegen/blackbox/argumentOrder/extension.kt +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/extension.kt @@ -1,5 +1,15 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS, NATIVE +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +inline fun Double.test(a: Int, b: Long, c: () -> String): String { + return "${this}_${a}_${b}_${c()}" +} + +// FILE: 2.kt + +import test.* fun box(): String { var invokeOrder = ""; @@ -27,7 +37,3 @@ fun box(): String { return "OK" } - -fun Double.test(a: Int, b: Long, c: () -> String): String { - return "${this}_${a}_${b}_${c()}" -} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/extensionInClass.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/extensionInClass.kt new file mode 100644 index 00000000000..a6c970d4c36 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/extensionInClass.kt @@ -0,0 +1,43 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +// WITH_RUNTIME +package test + +class Z { + inline fun Double.test(a: Int, b: Long, c: () -> String): String { + return "${this}_${a}_${b}_${c()}" + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + with (Z()) { + var invokeOrder = ""; + val expectedResult = "1.0_0_1_L" + val expectedInvokeOrder = "1_0_L" + var l = 1L + var i = 0 + + var result = 1.0.test(b = { invokeOrder += "1_"; l }(), a = { invokeOrder += "0_"; i }(), c = { invokeOrder += "L"; "L" }) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 1: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + invokeOrder = ""; + result = 1.0.test(b = { invokeOrder += "1_"; l }(), c = { invokeOrder += "L"; "L" }, a = { invokeOrder += "0_"; i }()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 2: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + + invokeOrder = ""; + result = 1.0.test(c = { invokeOrder += "L"; "L" }, b = { invokeOrder += "1_"; l }(), a = { invokeOrder += "0_"; i }()) + if (invokeOrder != expectedInvokeOrder || result != expectedResult) return "fail 3: $invokeOrder != $expectedInvokeOrder or $result != $expectedResult" + + + invokeOrder = ""; + result = 1.0.test(a = { invokeOrder += "0_"; i }(), c = { invokeOrder += "L"; "L" }, b = { invokeOrder += "1_"; l }()) + if (invokeOrder != "0_1_L" || result != expectedResult) return "fail 4: $invokeOrder != 0_1_L or $result != $expectedResult" + } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigration.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigration.kt new file mode 100644 index 00000000000..71d688725b8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigration.kt @@ -0,0 +1,30 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +inline fun test(a: String, b: String, c: () -> String): String { + return a + b + c(); +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var res = ""; + var call = test(a = {res += "K"; "K"}(), b = {res+="O"; "O"}(), c = {res += "L"; "L"}) + if (res != "KOL" || call != "KOL") return "fail 1: $res != KOL or $call != KOL" + + res = ""; + call = test(a = {res += "K"; "K"}(), c = {res += "L"; "L"}, b = {res+="O"; "O"}()) + if (res != "KOL" || call != "KOL") return "fail 2: $res != KOL or $call != KOL" + + + res = ""; + call = test(c = {res += "L"; "L"}, a = {res += "K"; "K"}(), b = {res+="O"; "O"}()) + if (res != "KOL" || call != "KOL") return "fail 3: $res != KOL or $call != KOL" + + return "OK" + +} diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigrationInClass.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigrationInClass.kt new file mode 100644 index 00000000000..e371e456f9f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/lambdaMigrationInClass.kt @@ -0,0 +1,34 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +class Z(val p: String) { + + inline fun test(a: String, b: String, c: () -> String): String { + return a + b + c() + p; + } + +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var res = ""; + var call = Z("Z").test(a = {res += "K"; "K"}(), b = {res+="O"; "O"}(), c = {res += "L"; "L"}) + if (res != "KOL" || call != "KOLZ") return "fail 1: $res != KOL or $call != KOLZ" + + res = ""; + call = Z("Z").test(a = {res += "K"; "K"}(), c = {res += "L"; "L"}, b = {res+="O"; "O"}()) + if (res != "KOL" || call != "KOLZ") return "fail 2: $res != KOL or $call != KOLZ" + + + res = ""; + call = Z("Z").test(c = {res += "L"; "L"}, a = {res += "K"; "K"}(), b = {res+="O"; "O"}()) + if (res != "KOL" || call != "KOLZ") return "fail 3: $res != KOL or $call != KOLZ" + + return "OK" + +} diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/simple.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/simple.kt new file mode 100644 index 00000000000..e7dd36ac31a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/simple.kt @@ -0,0 +1,30 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +inline fun test(a: String, b: String, c: () -> String): String { + return a + b + c(); +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var res = ""; + var call = test(b = {res += "K"; "K"}(), a = {res+="O"; "O"}(), c = {res += "L"; "L"}) + if (res != "KOL" || call != "OKL") return "fail 1: $res != KOL or $call != OKL" + + res = ""; + call = test(b = {res += "K"; "K"}(), c = {res += "L"; "L"}, a = {res+="O"; "O"}()) + if (res != "KOL" || call != "OKL") return "fail 2: $res != KOL or $call != OKL" + + + res = ""; + call = test(c = {res += "L"; "L"}, b = {res += "K"; "K"}(), a = {res+="O"; "O"}()) + if (res != "KOL" || call != "OKL") return "fail 3: $res != KOL or $call != OKL" + + return "OK" + +} diff --git a/backend.native/tests/external/codegen/boxInline/argumentOrder/simpleInClass.kt b/backend.native/tests/external/codegen/boxInline/argumentOrder/simpleInClass.kt new file mode 100644 index 00000000000..ae7f9c84f67 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/argumentOrder/simpleInClass.kt @@ -0,0 +1,32 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt + +package test + +class Z(val p: String) { + inline fun test(a: String, b: String, c: () -> String): String { + return a + b + c() + p; + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var res = ""; + var call = Z("Z").test(b = {res += "K"; "K"}(), a = {res+="O"; "O"}(), c = {res += "L"; "L"}) + if (res != "KOL" || call != "OKLZ") return "fail 1: $res != KOL or $call != OKLZ" + + res = ""; + call = Z("Z").test(b = {res += "K"; "K"}(), c = {res += "L"; "L"}, a = {res+="O"; "O"}()) + if (res != "KOL" || call != "OKLZ") return "fail 2: $res != KOL or $call != OKLZ" + + + res = ""; + call = Z("Z").test(c = {res += "L"; "L"}, b = {res += "K"; "K"}(), a = {res+="O"; "O"}()) + if (res != "KOL" || call != "OKLZ") return "fail 3: $res != KOL or $call != OKLZ" + + return "OK" + +} diff --git a/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccess.kt b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccess.kt new file mode 100644 index 00000000000..39130114ad1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccess.kt @@ -0,0 +1,29 @@ +// FILE: 1.kt + +package test + +var res = 1 + +inline operator fun Int.get(z: Int, p: Int) = this + z + p + +inline operator fun Int.set(z: Int, p: Int, l: Int) { + res = this + z + p + l +} + +// FILE: 2.kt + +import test.* + + +fun box(): String { + + val z = 1; + + val p = z[2, 3] + if (p != 6) return "fail 1: $p" + + z[2, 3] = p + if (res != 12) return "fail 2: $res" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessInClass.kt b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessInClass.kt new file mode 100644 index 00000000000..98947d35b34 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessInClass.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +var res = 1 + +class A { + + inline operator fun Int.get(z: Int, p: Int) = this + z + p + + inline operator fun Int.set(z: Int, p: Int, l: Int) { + res = this + z + p + l + } + +} + +// FILE: 2.kt + +import test.* + + +fun box(): String { + + with(A()) { + val z = 1; + + val p = z[2, 3] + if (p != 6) return "fail 1: $p" + + z[2, 3] = p + if (res != 12) return "fail 2: $res" + } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefault.kt b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefault.kt new file mode 100644 index 00000000000..08697f40633 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefault.kt @@ -0,0 +1,30 @@ +// FILE: 1.kt + +package test + +var res = 1 + +inline operator fun Int.get(z: Int, p: () -> Int, defaultt: Int = 100) = this + z + p() + defaultt + +inline operator fun Int.set(z: Int, p: () -> Int, l: Int/*, x : Int = 1000*/) { + res = this + z + p() + l /*+ x*/ +} + +// FILE: 2.kt + +import test.* + + +fun box(): String { + + val z = 1; + + val p = z[2, { 3 }] + if (p != 106) return "fail 1: $p" + + val captured = 3; + z[2, { captured } ] = p + if (res != 112) return "fail 2: $res" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefaultInClass.kt b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefaultInClass.kt new file mode 100644 index 00000000000..974b843f626 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithDefaultInClass.kt @@ -0,0 +1,36 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +var res = 1 + +class A { + + inline operator fun Int.get(z: Int, p: () -> Int, defaultt: Int = 100) = this + z + p() + defaultt + + inline operator fun Int.set(z: Int, p: () -> Int, l: Int/*, x : Int = 1000*/) { + res = this + z + p() + l /*+ x*/ + } +} + +// FILE: 2.kt + +import test.* + + +fun box(): String { + + val z = 1; + + with(A()) { + + val p = z[2, { 3 }] + if (p != 106) return "fail 1: $p" + + val captured = 3; + z[2, { captured }] = p + if (res != 112) return "fail 2: $res" + } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambda.kt b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambda.kt new file mode 100644 index 00000000000..15ee64d9166 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambda.kt @@ -0,0 +1,30 @@ +// FILE: 1.kt + +package test + +var res = 1 + +inline operator fun Int.get(z: Int, p: () -> Int) = this + z + p() + +inline operator fun Int.set(z: Int, p: () -> Int, l: Int) { + res = this + z + p() + l +} + +// FILE: 2.kt + +import test.* + + +fun box(): String { + + val z = 1; + + val p = z[2, { 3 }] + if (p != 6) return "fail 1: $p" + + val captured = 3; + z[2, { captured } ] = p + if (res != 12) return "fail 2: $res" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambdaInClass.kt b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambdaInClass.kt new file mode 100644 index 00000000000..550aa88fa5d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/arrayConvention/simpleAccessWithLambdaInClass.kt @@ -0,0 +1,37 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +var res = 1 + +class A { + + inline operator fun Int.get(z: Int, p: () -> Int) = this + z + p() + + inline operator fun Int.set(z: Int, p: () -> Int, l: Int) { + res = this + z + p() + l + } + +} + +// FILE: 2.kt + +import test.* + + +fun box(): String { + + val z = 1; + + with(A()) { + + val p = z[2, { 3 }] + if (p != 6) return "fail 1: $p" + + val captured = 3; + z[2, { captured }] = p + if (res != 12) return "fail 2: $res" + } + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/builders/builders.kt b/backend.native/tests/external/codegen/boxInline/builders/builders.kt new file mode 100644 index 00000000000..c272ab3269f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/builders/builders.kt @@ -0,0 +1,288 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +package builders + +import java.util.ArrayList +import java.util.HashMap + +abstract class Element { + abstract fun render(builder: StringBuilder, indent: String) + + override fun toString(): String { + val builder = StringBuilder() + render(builder, "") + return builder.toString() + } +} + +class TextElement(val text: String) : Element() { + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent$text\n") + } +} + +abstract class Tag(val name: String) : Element() { + val children = ArrayList() + val attributes = HashMap() + + inline protected fun initTag(tag: T, init: T.() -> Unit): T { + tag.init() + children.add(tag) + return tag + } + + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent<$name${renderAttributes()}>\n") + for (c in children) { + c.render(builder, indent + " ") + } + builder.append("$indent\n") + } + + private fun renderAttributes(): String? { + val builder = StringBuilder() + for (a in attributes.keys) { + builder.append(" $a=\"${attributes[a]}\"") + } + return builder.toString() + } +} + +abstract class TagWithText(name: String) : Tag(name) { + operator fun String.unaryPlus() { + children.add(TextElement(this)) + } +} + +class HTML() : TagWithText("html") { + inline fun head(init: Head.() -> Unit) = initTag(Head(), init) + + inline fun body(init: Body.() -> Unit) = initTag(Body(), init) + + fun bodyNoInline(init: Body.() -> Unit) = initTag(Body(), init) +} + +class Head() : TagWithText("head") { + inline fun title(init: Title.() -> Unit) = initTag(Title(), init) +} + +class Title() : TagWithText("title") + +abstract class BodyTag(name: String) : TagWithText(name) { + inline fun b(init: B.() -> Unit) = initTag(B(), init) + inline fun p(init: P.() -> Unit) = initTag(P(), init) + inline fun pNoInline(init: P.() -> Unit) = initTag(P(), init) + inline fun h1(init: H1.() -> Unit) = initTag(H1(), init) + inline fun ul(init: UL.() -> Unit) = initTag(UL(), init) + inline fun a(href: String, init: A.() -> Unit) { + val a = initTag(A(), init) + a.href = href + } +} + +class Body() : BodyTag("body") +class UL() : BodyTag("ul") { + inline fun li(init: LI.() -> Unit) = initTag(LI(), init) +} + +class B() : BodyTag("b") +class LI() : BodyTag("li") +class P() : BodyTag("p") +class H1() : BodyTag("h1") +class A() : BodyTag("a") { + public var href: String + get() = attributes["href"]!! + set(value) { + attributes["href"] = value + } +} + +inline fun html(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html +} + +fun htmlNoInline(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import builders.* + +fun testAllInline() : String { + val args = arrayOf("1", "2", "3") + val result = + html { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + body { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar" } + } + } + } + } + + return result.toString()!! +} + +fun testHtmlNoInline() : String { + val args = arrayOf("1", "2", "3") + val result = + htmlNoInline() { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + body { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar" } + } + } + } + } + + return result.toString()!! +} + +fun testBodyNoInline() : String { + val args = arrayOf("1", "2", "3") + val result = + html { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + bodyNoInline { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar" } + } + } + } + } + + return result.toString()!! +} + +fun testBodyHtmlNoInline() : String { + val args = arrayOf("1", "2", "3") + val result = + htmlNoInline { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + bodyNoInline { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar" } + } + } + } + } + + return result.toString()!! +} + +fun box(): String { + var expected = testAllInline(); + + if (expected != testHtmlNoInline()) return "fail 1: ${testHtmlNoInline()}\nbut expected\n${expected} " + + if (expected != testBodyNoInline()) return "fail 2: ${testBodyNoInline()}\nbut expected\n${expected} " + + if (expected != testBodyHtmlNoInline()) return "fail 3: ${testBodyHtmlNoInline()}\nbut expected\n${expected} " + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/builders/buildersAndLambdaCapturing.kt b/backend.native/tests/external/codegen/boxInline/builders/buildersAndLambdaCapturing.kt new file mode 100644 index 00000000000..118e0c5043c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/builders/buildersAndLambdaCapturing.kt @@ -0,0 +1,292 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +package builders + +import java.util.ArrayList +import java.util.HashMap + +abstract class Element { + abstract fun render(builder: StringBuilder, indent: String) + + override fun toString(): String { + val builder = StringBuilder() + render(builder, "") + return builder.toString() + } +} + +class TextElement(val text: String) : Element() { + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent$text\n") + } +} + +abstract class Tag(val name: String) : Element() { + val children = ArrayList() + val attributes = HashMap() + + inline protected fun initTag(tag: T, init: T.() -> Unit): T { + tag.init() + children.add(tag) + return tag + } + + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent<$name${renderAttributes()}>\n") + for (c in children) { + c.render(builder, indent + " ") + } + builder.append("$indent\n") + } + + private fun renderAttributes(): String? { + val builder = StringBuilder() + for (a in attributes.keys) { + builder.append(" $a=\"${attributes[a]}\"") + } + return builder.toString() + } +} + +abstract class TagWithText(name: String) : Tag(name) { + operator fun String.unaryPlus() { + children.add(TextElement(this)) + } +} + +class HTML() : TagWithText("html") { + inline fun head(init: Head.() -> Unit) = initTag(Head(), init) + + inline fun body(init: Body.() -> Unit) = initTag(Body(), init) + + fun bodyNoInline(init: Body.() -> Unit) = initTag(Body(), init) +} + +class Head() : TagWithText("head") { + inline fun title(init: Title.() -> Unit) = initTag(Title(), init) +} + +class Title() : TagWithText("title") + +abstract class BodyTag(name: String) : TagWithText(name) { + inline fun b(init: B.() -> Unit) = initTag(B(), init) + inline fun p(init: P.() -> Unit) = initTag(P(), init) + fun pNoInline(init: P.() -> Unit) = initTag(P(), init) + inline fun h1(init: H1.() -> Unit) = initTag(H1(), init) + inline fun ul(init: UL.() -> Unit) = initTag(UL(), init) + inline fun a(href: String, init: A.() -> Unit) { + val a = initTag(A(), init) + a.href = href + } +} + +class Body() : BodyTag("body") +class UL() : BodyTag("ul") { + inline fun li(init: LI.() -> Unit) = initTag(LI(), init) +} + +class B() : BodyTag("b") +class LI() : BodyTag("li") +class P() : BodyTag("p") +class H1() : BodyTag("h1") +class A() : BodyTag("a") { + public var href: String + get() = attributes["href"]!! + set(value) { + attributes["href"] = value + } +} + +inline fun html(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html +} + +fun htmlNoInline(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import builders.* + +inline fun testAllInline(f: () -> String) : String { + val args = arrayOf("1", "2", "3") + val result = + html { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + body { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar"; +"${f()}" } + } + } + } + } + + return result.toString()!! +} + +inline fun testHtmlNoInline(crossinline f: () -> String) : String { + val args = arrayOf("1", "2", "3") + val result = + htmlNoInline() { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + body { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar"; +"${f()}" } + } + } + } + } + + return result.toString()!! +} + +inline fun testBodyNoInline(crossinline f: () -> String) : String { + val args = arrayOf("1", "2", "3") + val result = + html { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + bodyNoInline { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar"; +"${f()}" } + } + } + } + } + + return result.toString()!! +} + +inline fun testBodyHtmlNoInline(crossinline f: () -> String) : String { + val args = arrayOf("1", "2", "3") + val result = + htmlNoInline { + val htmlVal = 0 + head { + title { +"XML encoding with Kotlin" } + } + bodyNoInline { + var bodyVar = 1 + h1 { +"XML encoding with Kotlin" } + p { +"this format can be used as an alternative markup to XML" } + + // an element with attributes and text content + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + + // mixed content + p { + +"This is some" + b { +"mixed" } + +"text. For more see the" + a(href = "http://jetbrains.com/kotlin") { +"Kotlin" } + +"project" + } + p { +"some text" } + + // content generated from command-line arguments + p { + +"Command line arguments were:" + ul { + for (arg in args) + li { +arg; +"$htmlVal"; +"$bodyVar"; +"${f()}" } + } + } + } + } + + return result.toString()!! +} + +fun box(): String { + var expected = testAllInline({"x"}); + print(expected + " " + testHtmlNoInline({"x"})) + + if (expected != testHtmlNoInline({"x"})) return "fail 1: ${testHtmlNoInline({"x"})}\nbut expected\n${expected} " + if (expected != testBodyNoInline({"x"})) return "fail 2: ${testBodyNoInline({"x"})}\nbut expected\n${expected} " + if (expected != testBodyHtmlNoInline({"x"})) return "fail 3: ${testBodyHtmlNoInline({"x"})}\nbut expected\n${expected} " + + var captured = "x" + if (expected != testHtmlNoInline({captured})) return "fail 4: ${testHtmlNoInline({captured})}\nbut expected\n${expected} " + if (expected != testBodyNoInline({captured})) return "fail 5: ${testBodyNoInline({captured})}\nbut expected\n${expected} " + if (expected != testBodyHtmlNoInline({captured})) return "fail 6: ${testBodyHtmlNoInline({captured})}\nbut expected\n${expected} " + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/classProperty.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/classProperty.kt new file mode 100644 index 00000000000..d005b752b41 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/classProperty.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt + +package test + +class Foo(val a: String) + +inline fun test(s: () -> String): String { + return s() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return test(Foo("OK")::a) +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/expression.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/expression.kt new file mode 100644 index 00000000000..5c83f97b312 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/expression.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt + +package test + +inline fun go(f: () -> String) = f() + +fun String.id(): String = this + +fun foo(x: String, y: String): String { + return go((x + y)::id) +} + +// FILE: 2.kt + +import test.* + +fun box() = foo("O", "K") diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/extensionReceiver.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/extensionReceiver.kt new file mode 100644 index 00000000000..c031c5192d7 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/extensionReceiver.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: () -> String, z: String) = x() + z + +fun String.id() = this + +// FILE: 2.kt + +import test.* + +fun String.test() : String { + return foo(this::id, "K") +} + + +fun box() : String { + return "O".test() +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/filter.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/filter.kt new file mode 100644 index 00000000000..552c9e17da0 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/filter.kt @@ -0,0 +1,21 @@ +// WITH_RUNTIME +// FILE: 1.kt + +package test + +inline fun stub(f: () -> String): String = f() + +// FILE: 2.kt + +import test.* + +class A(val z: String) { + fun filter(s: String) = z == s +} + + +fun box(): String { + val a = A("OK") + val s = arrayOf("OK") + return s.filter(a::filter).first() +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/intrinsic.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/intrinsic.kt new file mode 100644 index 00000000000..ab6fb03092d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/intrinsic.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: (String) -> String, z: String) = x(z) + +fun String.id() = this + +// FILE: 2.kt + +import test.* + +fun box() : String { + var zeroSlot = "fail"; + val z = "O" + return foo(z::plus, "K") +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/map.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/map.kt new file mode 100644 index 00000000000..2a561a1547a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/map.kt @@ -0,0 +1,21 @@ +// WITH_RUNTIME +// FILE: 1.kt + +package test + +inline fun stub(f: () -> String): String = f() + +// FILE: 2.kt + +import test.* + +class A(val z: String) { + fun map(s: String) = z + s +} + + +fun box(): String { + val a = A("O") + val s = arrayOf("K") + return s.map(a::map).first() +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/objectProperty.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/objectProperty.kt new file mode 100644 index 00000000000..4400cd85b8d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/objectProperty.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +object Foo { + val a: String = "OK" +} + +inline fun test(s: () -> String): String { + return s() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return test(Foo::a) +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/propertyImportedFromObject.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/propertyImportedFromObject.kt new file mode 100644 index 00000000000..c08e617e2b1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/propertyImportedFromObject.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +package test + +object Foo { + val a: String = "OK" +} + +inline fun test(s: () -> String): String { + return s() +} + +// FILE: 2.kt + +import test.Foo.a +import test.test + +fun box(): String { + return test(::a) +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/simple.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/simple.kt new file mode 100644 index 00000000000..6b4306c4705 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/simple.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: () -> String, z: String) = x() + z + +fun String.id() = this + +// FILE: 2.kt + +import test.* + +fun box() : String { + var zeroSlot = "fail"; + val z = "O" + return foo(z::id, "K") +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/bound/topLevelExtensionProperty.kt b/backend.native/tests/external/codegen/boxInline/callableReference/bound/topLevelExtensionProperty.kt new file mode 100644 index 00000000000..ad0438b07f4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/bound/topLevelExtensionProperty.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +package test + +class Foo(val z: String) + +val Foo.a: String + get() = z + +inline fun test(s: () -> String): String { + return s() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return test(Foo("OK")::a) +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/classLevel.kt b/backend.native/tests/external/codegen/boxInline/callableReference/classLevel.kt new file mode 100644 index 00000000000..384931b1398 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/classLevel.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +package test + +class A(val z: Int) { + fun calc() = z +} + +inline fun call(p: A, s: A.() -> Int): Int { + return p.s() +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + val call = call(A(11), A::calc) + return if (call == 11) "OK" else "fail" +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/classLevel2.kt b/backend.native/tests/external/codegen/boxInline/callableReference/classLevel2.kt new file mode 100644 index 00000000000..893b834aed8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/classLevel2.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt + +package test + +class A(val z: Int) { + fun calc() = z + + fun test() = call(A(z), A::calc) +} + +inline fun call(p: A, s: A.() -> Int): Int { + return p.s() +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + val call = A(11).test() + return if (call == 11) "OK" else "fail" +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/constructor.kt b/backend.native/tests/external/codegen/boxInline/callableReference/constructor.kt new file mode 100644 index 00000000000..d16c19fb284 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/constructor.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +package test + +class A(val z: Int) { + fun calc() = z +} + +inline fun call(p: Int, s: (Int) -> A): Int { + return s(p).z +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + val call = call(11, ::A) + return if (call == 11) "OK" else "fail" +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/intrinsic.kt b/backend.native/tests/external/codegen/boxInline/callableReference/intrinsic.kt new file mode 100644 index 00000000000..e1ef3a40ca3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/intrinsic.kt @@ -0,0 +1,16 @@ +// Enable when callable references to builtin members and using lambdas as extension lambdas (KT-13312) is supported +// FILE: 1.kt + +package test + +inline fun call(a: String, b: String, s: String.(String) -> String): String { + return a.s(b) +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + return call("O", "K", String::plus) +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/kt15449.kt b/backend.native/tests/external/codegen/boxInline/callableReference/kt15449.kt new file mode 100644 index 00000000000..7d537bbffa9 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/kt15449.kt @@ -0,0 +1,40 @@ +// FILE: 1.kt + +package test + +inline fun linearLayout2(init: X.() -> Unit) { + return X().init() +} + +var result = "fail" +class X { + fun calc() { + result = "OK" + } +} + +// FILE: 2.kt +//NO_CHECK_LAMBDA_INLINING +import test.* + +class A { + fun test() { + linearLayout2 { + { + apply2 { + this@linearLayout2::calc + }() + }() + } + } + + public fun T.apply2(block: T.() -> Z): Z { + return block() + } + +} + +fun box(): String { + A().test() + return result +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/kt16411.kt b/backend.native/tests/external/codegen/boxInline/callableReference/kt16411.kt new file mode 100644 index 00000000000..d9465d269b3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/kt16411.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt + +inline fun startFlow( + flowConstructor: (String) -> R +): R { + return flowConstructor("OK") +} + +object Foo { + class Requester(val dealToBeOffered: String) +} + +// FILE: 2.kt + +fun box(): String { + return startFlow(Foo::Requester).dealToBeOffered +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/propertyIntrinsic.kt b/backend.native/tests/external/codegen/boxInline/callableReference/propertyIntrinsic.kt new file mode 100644 index 00000000000..83710b2f5f4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/propertyIntrinsic.kt @@ -0,0 +1,16 @@ +// Enable when callable references to builtin members and using lambdas as extension lambdas (KT-13312) is supported +// FILE: 1.kt + +package test + +inline fun call(p: String, s: String.() -> Int): Int { + return p.s() +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + return if (call("123", String::length) == 3) "OK" else "fail" +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/propertyReference.kt b/backend.native/tests/external/codegen/boxInline/callableReference/propertyReference.kt new file mode 100644 index 00000000000..8a1091e81c6 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/propertyReference.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt + +package test + +class Foo(val a: String) + +inline fun test(receiver: T, selector: (T) -> String): String { + return selector(receiver) +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return test(Foo("OK"), Foo::a) +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/topLevel.kt b/backend.native/tests/external/codegen/boxInline/callableReference/topLevel.kt new file mode 100644 index 00000000000..87208f55ed4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/topLevel.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +inline fun call(p: Int, s: (Int) -> Int): Int { + return s(p) +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + return if (call(10, ::calc) == 5) "OK" else "fail" +} + +fun calc(p: Int) : Int { + return p / 2 +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/topLevelExtension.kt b/backend.native/tests/external/codegen/boxInline/callableReference/topLevelExtension.kt new file mode 100644 index 00000000000..eaabbf11261 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/topLevelExtension.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +inline fun call(p: Int, s: Int.(Int) -> Int): Int { + return p.s(p) +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + return if (call(10, Int::calc) == 100) "OK" else "fail" +} + +fun Int.calc(p: Int) : Int { + return p * this +} diff --git a/backend.native/tests/external/codegen/boxInline/callableReference/topLevelProperty.kt b/backend.native/tests/external/codegen/boxInline/callableReference/topLevelProperty.kt new file mode 100644 index 00000000000..ae31ab979ce --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/callableReference/topLevelProperty.kt @@ -0,0 +1,18 @@ +// FILE: 1.kt + +package test + +val a: String + get() = "OK" + +inline fun test(s: () -> String): String { + return s() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return test(::a) +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/capture/captureInlinable.kt b/backend.native/tests/external/codegen/boxInline/capture/captureInlinable.kt new file mode 100644 index 00000000000..0e55f8165c5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/capture/captureInlinable.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt + +package test + + +inline fun doWork(crossinline job: ()-> R) : R { + return notInline({job()}) +} + +fun notInline(job: ()-> R) : R { + return job() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + val result = doWork({11}) + if (result != 11) return "test1: ${result}" + + val result2 = doWork({12; result+1}) + if (result2 != 12) return "test2: ${result2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/capture/captureInlinableAndOther.kt b/backend.native/tests/external/codegen/boxInline/capture/captureInlinableAndOther.kt new file mode 100644 index 00000000000..222c0cabea3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/capture/captureInlinableAndOther.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt + +package test + + +inline fun doWork(crossinline job: ()-> R) : R { + val k = 10; + return notInline({k; job()}) +} + +fun notInline(job: ()-> R) : R { + return job() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + val result = doWork({11}) + if (result != 11) return "test1: ${result}" + + val result2 = doWork({12; result+1}) + if (result2 != 12) return "test2: ${result2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/capture/captureThisAndReceiver.kt b/backend.native/tests/external/codegen/boxInline/capture/captureThisAndReceiver.kt new file mode 100644 index 00000000000..d2f288948e0 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/capture/captureThisAndReceiver.kt @@ -0,0 +1,38 @@ +// FILE: 1.kt + +class My(val value: Int) + +inline fun T.perform(job: (T)-> R) : R { + return job(this) +} + +// FILE: 2.kt + +fun test1() : Int { + val inlineX = My(111) + + return inlineX.perform{ + + val outX = My(1111111) + outX.perform( + {inlineX.value} + ) + } +} + +inline fun My.execute(): Int { + return perform { this.value } +} + +fun test2(): Int { + val inlineX = My(11) + + return inlineX.execute() +} + +fun box(): String { + if (test1() != 111) return "test1: ${test1()}" + if (test2() != 11) return "test2: ${test2()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/capture/generics.kt b/backend.native/tests/external/codegen/boxInline/capture/generics.kt new file mode 100644 index 00000000000..925c4bf703e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/capture/generics.kt @@ -0,0 +1,31 @@ +// FILE: 1.kt + +package test + +inline fun mfun(arg: T, f: (T) -> R) : R { + return f(arg) +} + +inline fun doSmth(a: T): String { + return a.toString() +} + +// FILE: 2.kt + +import test.* + +fun test1(s: Long): String { + var result = "OK" + result = mfun(s) { a -> + result + doSmth(s) + doSmth(a) + } + + return result +} + +fun box(): String { + val result = test1(11.toLong()) + if (result != "OK1111") return "fail1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInClass.kt b/backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInClass.kt new file mode 100644 index 00000000000..1122dc88f07 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInClass.kt @@ -0,0 +1,82 @@ +// FILE: 1.kt + +class InlineAll { + + inline fun inline(s: (Int, Double, Double, String, Long) -> String, + a1: Int, a2: Double, a3: Double, a4: String, a5: Long): String { + return s(a1, a2, a3, a4, a5) + } +} + +// FILE: 2.kt + +fun testAll(): String { + val inlineX = InlineAll() + + return inlineX.inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5}, + 1, 12.0, 13.0, "14", 15) +} + +fun testAllWithCapturedVal(): String { + val inlineX = InlineAll() + + val c1 = 21 + val c2 = 22.0 + val c3 = 23.0 + val c4 = "24" + val c5 = 25.toLong() + val c6 = 'H' + val c7 = 26.toByte() + val c8 = 27.toShort() + val c9 = 28.toFloat() + + return inlineX.inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5 + c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9}, + 1, 12.0, 13.0, "14", 15) +} + +fun testAllWithCapturedVar(): String { + val inlineX = InlineAll() + + var c1 = 21 + var c2 = 22.0 + var c3 = 23.0 + var c4 = "24" + var c5 = 25.toLong() + var c6 = 'H' + var c7 = 26.toByte() + var c8 = 27.toShort() + val c9 = 28.toFloat() + + return inlineX.inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5 + c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9}, + 1, 12.0, 13.0, "14", 15) +} + +fun testAllWithCapturedValAndVar(): String { + val inlineX = InlineAll() + + var c1 = 21 + var c2 = 22.0 + val c3 = 23.0 + val c4 = "24" + var c5 = 25.toLong() + val c6 = 'H' + var c7 = 26.toByte() + var c8 = 27.toShort() + val c9 = 28.toFloat() + + return inlineX.inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5 + c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9}, + 1, 12.0, 13.0, "14", 15) +} + + +fun box(): String { + if (testAll() != "112.013.01415") return "testAll: ${testAll()}" + if (testAllWithCapturedVal() != "112.013.014152122.023.02425H262728.0") return "testAllWithCapturedVal: ${testAllWithCapturedVal()}" + if (testAllWithCapturedVar() != "112.013.014152122.023.02425H262728.0") return "testAllWithCapturedVar: ${testAllWithCapturedVar()}" + if (testAllWithCapturedValAndVar() != "112.013.014152122.023.02425H262728.0") return "testAllWithCapturedVal: ${testAllWithCapturedValAndVar()}" + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInPackage.kt b/backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInPackage.kt new file mode 100644 index 00000000000..6577399d232 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/capture/simpleCapturingInPackage.kt @@ -0,0 +1,71 @@ +// FILE: 1.kt + +inline fun inline(s: (Int, Double, Double, String, Long) -> String, + a1: Int, a2: Double, a3: Double, a4: String, a5: Long): String { + return s(a1, a2, a3, a4, a5) +} + +// FILE: 2.kt + +fun testAll(): String { + return inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5}, + 1, 12.0, 13.0, "14", 15) +} + +fun testAllWithCapturedVal(): String { + val c1 = 21 + val c2 = 22.0 + val c3 = 23.0 + val c4 = "24" + val c5 = 25.toLong() + val c6 = 'H' + val c7 = 26.toByte() + val c8 = 27.toShort() + val c9 = 28.toFloat() + + return inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5 + c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9}, + 1, 12.0, 13.0, "14", 15) +} + +fun testAllWithCapturedVar(): String { + var c1 = 21 + var c2 = 22.0 + var c3 = 23.0 + var c4 = "24" + var c5 = 25.toLong() + var c6 = 'H' + var c7 = 26.toByte() + var c8 = 27.toShort() + val c9 = 28.toFloat() + + return inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5 + c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9}, + 1, 12.0, 13.0, "14", 15) +} + +fun testAllWithCapturedValAndVar(): String { + var c1 = 21 + var c2 = 22.0 + val c3 = 23.0 + val c4 = "24" + var c5 = 25.toLong() + val c6 = 'H' + var c7 = 26.toByte() + var c8 = 27.toShort() + val c9 = 28.toFloat() + + return inline({ a1: Int, a2: Double, a3: Double, a4: String, a5: Long -> + "" + a1 + a2 + a3 + a4 + a5 + c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9}, + 1, 12.0, 13.0, "14", 15) +} + + +fun box(): String { + if (testAll() != "112.013.01415") return "testAll: ${testAll()}" + if (testAllWithCapturedVal() != "112.013.014152122.023.02425H262728.0") return "testAllWithCapturedVal: ${testAllWithCapturedVal()}" + if (testAllWithCapturedVar() != "112.013.014152122.023.02425H262728.0") return "testAllWithCapturedVar: ${testAllWithCapturedVar()}" + if (testAllWithCapturedValAndVar() != "112.013.014152122.023.02425H262728.0") return "testAllWithCapturedVal: ${testAllWithCapturedValAndVar()}" + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/complex/closureChain.kt b/backend.native/tests/external/codegen/boxInline/complex/closureChain.kt new file mode 100644 index 00000000000..369c9e65d6e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complex/closureChain.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt + +class Inline() { + + inline fun foo(closure1 : (l: Int) -> String, param: Int, closure2: String.() -> Int) : Int { + return closure1(param).closure2() + } +} + +// FILE: 2.kt + +fun test1(): Int { + val inlineX = Inline() + return inlineX.foo({ z: Int -> "" + z}, 25, fun String.(): Int = this.length) +} + +fun box(): String { + if (test1() != 2) return "test1: ${test1()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/complex/forEachLine.kt b/backend.native/tests/external/codegen/boxInline/complex/forEachLine.kt new file mode 100644 index 00000000000..b642024b5f4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complex/forEachLine.kt @@ -0,0 +1,48 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +package test + +public class Input(val s1: String, val s2: String) { + public fun iterator() : Iterator { + return arrayListOf(s1, s2).iterator() + } +} + +public inline fun T.use(block: (T)-> R) : R { + return block(this) +} + +public inline fun Input.forEachLine(block: (String) -> Unit): Unit { + useLines { lines -> lines.forEach(block) } +} + +public inline fun Input.useLines(block2: (Iterator) -> Unit): Unit { + this.use{ block2(it.iterator()) } +} + +// FILE: 2.kt + +import test.* +import java.util.* + + +fun sample(): Input { + return Input("Hello", "World"); +} + +fun testForEachLine() { + val list = ArrayList() + val reader = sample() + + reader.forEachLine{ + list.add(it) + } +} + + +fun box(): String { + testForEachLine() + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/complex/lambdaInLambda.kt b/backend.native/tests/external/codegen/boxInline/complex/lambdaInLambda.kt new file mode 100644 index 00000000000..334d345ea21 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complex/lambdaInLambda.kt @@ -0,0 +1,48 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +package test + +public class Input(val s1: String, val s2: String) { + public fun iterator() : Iterator { + return arrayListOf(s1, s2).iterator() + } +} + +public inline fun T.use(block: ()-> R) : R { + return block() +} + +public inline fun T.use2(block: ()-> R) : R { + return block() +} + +public inline fun Input.forEachLine(block: () -> Unit): Unit { + use { use2 (block) } +} + +// FILE: 2.kt + +import test.* +import java.util.* + + +fun sample(): Input { + return Input("Hello", "World"); +} + +fun testForEachLine() { + val list = ArrayList() + val reader = sample() + + reader.forEachLine{ + list.add("111") + } +} + + +fun box(): String { + testForEachLine() + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/complex/swapAndWith.kt b/backend.native/tests/external/codegen/boxInline/complex/swapAndWith.kt new file mode 100644 index 00000000000..0c1f2a7c6ed --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complex/swapAndWith.kt @@ -0,0 +1,20 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +public inline fun with2(receiver: T, body: T.() -> String) = receiver.body() + +// FILE: 2.kt +import test.* + +fun test(item: T?, defaultLink: T.() -> String): String { + return with2("") { + item?.defaultLink() ?: "fail" + } +} + +fun box(): String { + return test("O") { + this + "K" + } +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/complex/swapAndWith2.kt b/backend.native/tests/external/codegen/boxInline/complex/swapAndWith2.kt new file mode 100644 index 00000000000..bd914e909a6 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complex/swapAndWith2.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt +package test + +public inline fun with2(receiver: T, body: T.() -> String) = receiver.body() + +// FILE: 2.kt +import test.* + +inline fun test(item: T?, defaultLink: T.() -> String): String { + return with2("") { + item?.defaultLink() ?: "fail" + } +} + +fun box(): String { + return test("O") { + this + "K" + } +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/complex/use.kt b/backend.native/tests/external/codegen/boxInline/complex/use.kt new file mode 100644 index 00000000000..97dc7fdfbd7 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complex/use.kt @@ -0,0 +1,65 @@ +// FILE: 1.kt + +package test + +public class Data() + +public class Input(val d: Data) : Closeable { + public fun data() : Int = 100 +} +public class Output(val d: Data) : Closeable { + public fun doOutput(data: Int): Int = data +} + +public interface Closeable { + open public fun close() {} +} + +public inline fun T.use(block: (T)-> R) : R { + var closed = false + try { + return block(this) + } catch (e: Exception) { + closed = true + try { + this.close() + } catch (closeException: Exception) { + + } + throw e + } finally { + if (!closed) { + this.close() + } + } +} + + +public fun Input.copyTo(output: Output, size: Int): Long { + return output.doOutput(this.data()).toLong() +} + +// FILE: 2.kt + +import test.* + + +fun Data.test1(d: Data) : Long { + val input2 = Input(this) + val input = Input(this) + return input.use{ + val output = Output(d) + output.use{ + input.copyTo(output, 10) + } + } +} + + +fun box(): String { + + val result = Data().test1(Data()) + if (result != 100.toLong()) return "test1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/complex/with.kt b/backend.native/tests/external/codegen/boxInline/complex/with.kt new file mode 100644 index 00000000000..54e147cfeeb --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complex/with.kt @@ -0,0 +1,80 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + + +public class Data() + +public class Input(val d: Data) : Closeable { + public fun data() : Int = 100 +} +public class Output(val d: Data) : Closeable { + public fun doOutput(data: Int): Int = data +} + +public interface Closeable { + open public fun close() {} +} + +public inline fun use(block: ()-> R) : R { + return block() +} + +public fun useNoInline(block: ()-> R) : R { + return block() +} + + +public fun Input.copyTo(output: Output, size: Int): Long { + return output.doOutput(this.data()).toLong() +} + + +public inline fun with2(receiver : T, crossinline body : T.() -> Unit) : Unit = {receiver.body()}() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun Data.test1(d: Data) : Long { + val input = Input(this) + var result = 10.toLong() + with(input) { + result = use{ + val output = Output(d) + use{ + data() + copyTo(output, 10) + } + } + } + return result +} + +fun Data.test2(d: Data) : Long { + val input = Input(this) + var result = 10.toLong() + with2(input) { + result = use{ + val output = Output(d) + useNoInline{ + data() + copyTo(output, 10) + } + } + } + return result +} + + +fun box(): String { + + val result = Data().test1(Data()) + if (result != 100.toLong()) return "test1: ${result}" + + val result2 = Data().test2(Data()) + if (result2 != 100.toLong()) return "test2: ${result2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/complexStack/asCheck.kt b/backend.native/tests/external/codegen/boxInline/complexStack/asCheck.kt new file mode 100644 index 00000000000..7612ca6abd5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complexStack/asCheck.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +object ContentTypeByExtension { + inline fun processRecords(crossinline operation: (String) -> String) = + listOf("O", "K").map { + val ext = B(it) + operation(ext.toLowerCase()) + }.joinToString("") +} + + + + +inline fun A.toLowerCase(): String = (this as B).value + +open class A + +open class B(val value: String) : A() + +// FILE: 2.kt + +import test.* + +fun box(): String { + return ContentTypeByExtension.processRecords { ext -> ext } +} diff --git a/backend.native/tests/external/codegen/boxInline/complexStack/asCheck2.kt b/backend.native/tests/external/codegen/boxInline/complexStack/asCheck2.kt new file mode 100644 index 00000000000..18a0bd3273d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complexStack/asCheck2.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt + +package test + +object ContentTypeByExtension { + inline fun processRecords(crossinline operation: (String) -> String) = + { + val ext = B("OK") + operation(ext.toLowerCase()) + }() +} + + + + +inline fun A.toLowerCase(): String = (this as B).value + +open class A + +open class B(val value: String) : A() + +// FILE: 2.kt + +import test.* + +fun box(): String { + return ContentTypeByExtension.processRecords { ext -> ext } +} diff --git a/backend.native/tests/external/codegen/boxInline/complexStack/simple.kt b/backend.native/tests/external/codegen/boxInline/complexStack/simple.kt new file mode 100644 index 00000000000..616f28638a4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complexStack/simple.kt @@ -0,0 +1,15 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: String) = x + +inline fun processRecords(block: (String) -> String) = block(foo("O")) + +// FILE: 2.kt + +import test.* + +fun box(): String { + return processRecords { ext -> ext + "K" } +} diff --git a/backend.native/tests/external/codegen/boxInline/complexStack/simple2.kt b/backend.native/tests/external/codegen/boxInline/complexStack/simple2.kt new file mode 100644 index 00000000000..500ee47930d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complexStack/simple2.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: String) = x + +class A { + fun test(s: String) = s +} + +inline fun processRecords(block: (String) -> String): String { + return A().test(block(foo("K"))) +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return processRecords { "O" + it } +} diff --git a/backend.native/tests/external/codegen/boxInline/complexStack/simple3.kt b/backend.native/tests/external/codegen/boxInline/complexStack/simple3.kt new file mode 100644 index 00000000000..1604d306de2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complexStack/simple3.kt @@ -0,0 +1,23 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: String, y: String) = x + y + +class A { + fun test(s: String) = s +} + +inline fun processRecords(block: (String) -> String): String { + return A().test(block(foo("O", foo("K", "1")))) +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val result = processRecords { "B" + it } + + return if (result == "BOK1") "OK" else "fail: $result" +} diff --git a/backend.native/tests/external/codegen/boxInline/complexStack/simple4.kt b/backend.native/tests/external/codegen/boxInline/complexStack/simple4.kt new file mode 100644 index 00000000000..cab0e2460d3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complexStack/simple4.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: String) = x + +fun test(a: String, s: String) = s + + +inline fun processRecords(block: (String, String) -> String): String { + return test("stub", block(foo("O"), foo("K"))) +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return processRecords { a, b -> a + b} +} diff --git a/backend.native/tests/external/codegen/boxInline/complexStack/simpleExtension.kt b/backend.native/tests/external/codegen/boxInline/complexStack/simpleExtension.kt new file mode 100644 index 00000000000..f8e565554ae --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/complexStack/simpleExtension.kt @@ -0,0 +1,15 @@ +// FILE: 1.kt + +package test + +inline fun foo(x: String) = x + +inline fun processRecords(s: String?, block: String.(String) -> String) = s?.block(foo("O")) + +// FILE: 2.kt + +import test.* + +fun box(): String? { + return processRecords("O") { this + "K" } +} diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/defaultInExtension.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultInExtension.kt new file mode 100644 index 00000000000..c48b83e2365 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultInExtension.kt @@ -0,0 +1,61 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline public fun String.run(p1: String? = null): String { + return this + p1 +} + +inline public fun String.run(p1: String = "", lambda: (a: String, b: Int) -> String, p2: Int = 0): String { + return lambda(p1, p2) + this +} + +public class Z(val value: Int = 0) { + + inline public fun String.run(p1: String? = null): String? { + return this + p1 + } + + inline public fun String.run(p1: String = "", lambda: (a: String, b: Int) -> String, p2: Int = 0): String { + return lambda(p1, p2) + this + } + +} + +// FILE: 2.kt + +import test.* + +fun testExtensionInClass() : String { + + var res = with(Z(1)) { "1".run("OK") } + if (res != "1OK") return "failed in class 1: $res" + + res = with(Z(1)) { "1".run() } + if (res != "1null") return "failed in class 2: $res" + + res = with(Z(2)) { "3".run("OK", { a, b -> a + b + value }, 1) } + if (res != "OK123") return "failed in class 3: $res" + + res = with(Z(3)) { "4".run(lambda = { a, b -> a + b + value }) } + if (res != "034") return "failed in class 4: $res" + + return "OK" +} + +fun box(): String { + + var res = "1".run("OK") + if (res != "1OK") return "failed 1: $res" + + res = "1".run() + if (res != "1null") return "failed 2: $res" + + res = "3".run("OK", { a, b -> a + b}, 1) + if (res != "OK13") return "failed 3: $res" + + res = "4".run(lambda = { a, b -> a + b}) + if (res != "04") return "failed 4: $res" + + return testExtensionInClass() +} diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethod.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethod.kt new file mode 100644 index 00000000000..398f6768a0f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethod.kt @@ -0,0 +1,38 @@ +// FILE: 1.kt + +package test + + +inline fun simpleFun(arg: String = "O", lambda: (String) -> T): T { + return lambda(arg) +} + + +inline fun simpleFunR(lambda: (String) -> T, arg: String = "O"): T { + return lambda(arg) +} + +// FILE: 2.kt + +import test.* + +fun simple(): String { + val k = "K" + return simpleFun(lambda = {it + "O"}) + simpleFun("K", {k + it}) +} + +fun simpleR(): String { + val k = "K" + return simpleFunR({it + "O"}) + simpleFunR({k + it}, "K") +} + +fun box(): String { + + var result = simple() + if (result != "OOKK") return "fail1: ${result}" + + result = simpleR() + if (result != "OOKK") return "fail2: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethodInClass.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethodInClass.kt new file mode 100644 index 00000000000..912517ea563 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultMethodInClass.kt @@ -0,0 +1,31 @@ +// FILE: 1.kt + +package test + +public class Z(public val value: Int = 0) { + + inline public fun run(p1: String? = null): String? { + return p1 + value + } + + + inline public fun run(p1: String = "", lambda: (a: String, b: Int) -> String, p2: Int = 0): String { + return lambda(p1, p2) + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (Z().run() != "null0") return "fail 1: ${Z().run()}" + + if (Z().run("OK") != "OK0") return "fail 2" + + if (Z().run("OK", { a, b -> a + b }, 1) != "OK1") return "fail 3" + + if (Z().run(lambda = { a: String, b: Int -> a + b }) != "0") return "fail 4" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/defaultParamRemapping.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultParamRemapping.kt new file mode 100644 index 00000000000..948111cf500 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/defaultParamRemapping.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +inline fun a(s1: String = "s1", s2: String = "s2", body: (a1: String, a2: String) -> String) = body(s1, s2) + +inline fun String.b(body: (a1: String, a2: String) -> String) = a(s2 = this, body = body) + +// FILE: 2.kt + +import test.* + +fun box(): String { + val z = "OK".b { a, b -> + a + b + } + + return if (z == "s1OK") "OK" else "fail $z" +} diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/inlineInDefaultParameter.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/inlineInDefaultParameter.kt new file mode 100644 index 00000000000..191d6171085 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/inlineInDefaultParameter.kt @@ -0,0 +1,36 @@ +// FILE: 1.kt + +package test + +inline fun getStringInline(): String { + return "OK" +} + +// FILE: 2.kt + +import test.* + +fun testCompilation(arg: String = getStringInline()): String { + return arg +} + +inline fun testCompilationInline(arg: String = getStringInline()): String { + return arg +} + +fun box(): String { + var result = testCompilation() + if (result != "OK") return "fail1: ${result}" + + result = testCompilation("OKOK") + if (result != "OKOK") return "fail2: ${result}" + + + result = testCompilationInline() + if (result != "OK") return "fail3: ${result}" + + result = testCompilationInline("OKOK") + if (result != "OKOK") return "fail4: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/kt11479.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/kt11479.kt new file mode 100644 index 00000000000..9c757fcfdab --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/kt11479.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +package test + +inline fun log(lazyMessage: () -> Any?) { + lazyMessage() +} + +// FILE: 2.kt + +import test.* + +inline fun getOrCreate( + z : Boolean = false, + s: () -> String +) { + log { s() } +} + + +fun box(): String { + var z = "fail" + getOrCreate { z = "OK"; z } + + return z +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/kt11479InlinedDefaultParameter.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/kt11479InlinedDefaultParameter.kt new file mode 100644 index 00000000000..65308a1fd16 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/kt11479InlinedDefaultParameter.kt @@ -0,0 +1,30 @@ +// FILE: 1.kt +package test + +inline fun log(lazyMessage: () -> Any?) { + lazyMessage() +} + +inline fun z(): Boolean { + "zzz" + return true +} + +// FILE: 2.kt + +import test.* + +inline fun getOrCreate( + z : Boolean = z(), + s: () -> String +) { + log { s() } +} + + +fun box(): String { + var z = "fail" + getOrCreate { z = "OK"; z } + + return z +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/kt5685.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/kt5685.kt new file mode 100644 index 00000000000..287dd42f56b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/kt5685.kt @@ -0,0 +1,24 @@ +// FILE: 1.kt + +package test + +class Measurements +{ + inline fun measure(key: String, logEvery: Long = -1, divisor: Int = 1, body: () -> Unit): String { + body() + return key + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var s1 = "" + val s2 = Measurements().measure("K") { + s1 = "O" + } + + return s1 + s2 +} diff --git a/backend.native/tests/external/codegen/boxInline/defaultValues/simpleDefaultMethod.kt b/backend.native/tests/external/codegen/boxInline/defaultValues/simpleDefaultMethod.kt new file mode 100644 index 00000000000..6e401f286af --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/defaultValues/simpleDefaultMethod.kt @@ -0,0 +1,46 @@ +// FILE: 1.kt + +package test + +inline fun emptyFun(arg: String = "O") { + +} + +inline fun simpleFun(arg: String = "O"): String { + val r = arg; + return r; +} + + +inline fun simpleDoubleFun(arg: Double = 1.0): Double { + val r = arg + 1; + return r; +} + +// FILE: 2.kt + +import test.* + +fun testCompilation(): String { + emptyFun() + emptyFun("K") + + return "OK" +} + +fun simple(): String { + return simpleFun() + simpleFun("K") +} + +fun box(): String { + var result = testCompilation() + if (result != "OK") return "fail1: ${result}" + + result = simple() + if (result != "OK") return "fail2: ${result}" + + var result2 = simpleDoubleFun(2.0) + if (result2 != 2.0 + 1.0) return "fail3: ${result2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/delegatedProperty/local.kt b/backend.native/tests/external/codegen/boxInline/delegatedProperty/local.kt new file mode 100644 index 00000000000..36fc9fc367e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/delegatedProperty/local.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt +package test + +import kotlin.reflect.KProperty + +class Delegate { + operator fun getValue(t: Any?, p: KProperty<*>): String = "OK" +} + +inline fun test(): String { + val prop: String by Delegate() + return prop +} + + +// FILE: 2.kt +import test.* + +fun box(): String { + return test() +} diff --git a/backend.native/tests/external/codegen/boxInline/enclosingInfo/anonymousInLambda.kt b/backend.native/tests/external/codegen/boxInline/enclosingInfo/anonymousInLambda.kt new file mode 100644 index 00000000000..7c0113e6a32 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enclosingInfo/anonymousInLambda.kt @@ -0,0 +1,25 @@ +// IGNORE_BACKEND: NATIVE +// NO_CHECK_LAMBDA_INLINING +// WITH_REFLECT +// FILE: 1.kt +package test + +inline fun call(s: () -> R) = s() + +// FILE: 2.kt + +import test.* + +fun box(): String { + val res = call { + { "OK" } + } + + var enclosingMethod = res.javaClass.enclosingMethod + if (enclosingMethod?.name != "box") return "fail 1: ${enclosingMethod?.name}" + + var enclosingClass = res.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt") return "fail 2: ${enclosingClass?.name}" + + return res() +} diff --git a/backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain.kt b/backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain.kt new file mode 100644 index 00000000000..73844c7f794 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain.kt @@ -0,0 +1,38 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +inline fun call(s: () -> R) = s() + +inline fun test(crossinline z: () -> String) = { z() } + +// FILE: 2.kt + +import test.* + +fun box(): String { + val res = call { + test { "OK" } + } + + var enclosingMethod = res.javaClass.enclosingMethod + if (enclosingMethod?.name != "box") return "fail 1: ${enclosingMethod?.name}" + + var enclosingClass = res.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt") return "fail 2: ${enclosingClass?.name}" + + val res2 = call { + call { + test { "OK" } + } + } + + enclosingMethod = res2.javaClass.enclosingMethod + if (enclosingMethod?.name != "box") return "fail 1: ${enclosingMethod?.name}" + + enclosingClass = res2.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt") return "fail 2: ${enclosingClass?.name}" + + return res2() +} diff --git a/backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain2.kt b/backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain2.kt new file mode 100644 index 00000000000..1f2e6456ec1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enclosingInfo/inlineChain2.kt @@ -0,0 +1,38 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +inline fun call(crossinline s: () -> R) = { s() }() + +inline fun test(crossinline z: () -> String) = { z() } + +// FILE: 2.kt + +import test.* + +fun box(): String { + val res = call { + test { "OK" } + } + + var enclosingMethod = res.javaClass.enclosingMethod + if (enclosingMethod?.name != "invoke") return "fail 1: ${enclosingMethod?.name}" + + var enclosingClass = res.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt\$box$\$inlined\$call$1") return "fail 2: ${enclosingClass?.name}" + + val res2 = call { + call { + test { "OK" } + } + } + + enclosingMethod = res2.javaClass.enclosingMethod + if (enclosingMethod?.name != "invoke") return "fail 1: ${enclosingMethod?.name}" + + enclosingClass = res2.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt\$box$\$inlined\$call$2\$lambda$1") return "fail 2: ${enclosingClass?.name}" + + return res2() +} diff --git a/backend.native/tests/external/codegen/boxInline/enclosingInfo/objectInInlineFun.kt b/backend.native/tests/external/codegen/boxInline/enclosingInfo/objectInInlineFun.kt new file mode 100644 index 00000000000..23e4bc1add5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enclosingInfo/objectInInlineFun.kt @@ -0,0 +1,31 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface Z { + fun a(): String +} + +inline fun test(crossinline z: () -> String) = + object : Z { + override fun a() = z() + } + +// FILE: 2.kt + +import test.* + +fun box(): String { + val res = test { + "OK" + } + + val enclosingMethod = res.javaClass.enclosingMethod + if (enclosingMethod?.name != "box") return "fail 1: ${enclosingMethod?.name}" + + val enclosingClass = res.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt") return "fail 2: ${enclosingClass?.name}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructor.kt b/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructor.kt new file mode 100644 index 00000000000..3fa860dc68f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructor.kt @@ -0,0 +1,42 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface Z { + fun a() : String +} + +inline fun test(crossinline z: () -> String) = + object : Z { + + val p = z() + + override fun a() = p + } + +// FILE: 2.kt + +import test.* + +fun box(): String { + /*This captured parameter would be added to object constructor*/ + val captured = "OK"; + var z: Any = "fail" + val res = test { + + z = { + captured + } + (z as Function0)() + } + + + val enclosingConstructor = z.javaClass.enclosingConstructor + if (enclosingConstructor?.name != "_2Kt\$box$\$inlined\$test$1") return "fail 1: ${enclosingConstructor?.name}" + + val enclosingClass = z.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt\$box$\$inlined\$test$1") return "fail 2: ${enclosingClass?.name}" + + return res.a() +} diff --git a/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithAdditionalObject.kt b/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithAdditionalObject.kt new file mode 100644 index 00000000000..d17ee44c246 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithAdditionalObject.kt @@ -0,0 +1,52 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface Z { + fun a() : T +} + +inline fun test(crossinline z: () -> String) = + object : Z> { + + val p: Z = object : Z { + + val p2 = z() + + override fun a() = p2 + } + + override fun a() = p + } + +// FILE: 2.kt + +import test.* + +fun box(): String { + var z = "OK" + val res = test { + z + } + + + val javaClass1 = res.javaClass + val enclosingMethod = javaClass1.enclosingMethod + if (enclosingMethod?.name != "box") return "fail 1: ${enclosingMethod?.name}" + + val enclosingClass = javaClass1.enclosingClass + if (enclosingClass?.name != "_2Kt") return "fail 2: ${enclosingClass?.name}" + + + val res2 = res.a() + val enclosingConstructor = res2.javaClass.enclosingConstructor + if (enclosingConstructor?.name != javaClass1.name) return "fail 3: ${enclosingConstructor?.name} != ${javaClass1.name}" + + val enclosingClass2 = res2.javaClass.enclosingClass + if (enclosingClass2?.name != javaClass1.name) return "fail 4: ${enclosingClass2?.name} != ${javaClass1.name}" + + + + return res2.a() +} diff --git a/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithNestedInline.kt b/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithNestedInline.kt new file mode 100644 index 00000000000..ef9453887eb --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enclosingInfo/transformedConstructorWithNestedInline.kt @@ -0,0 +1,48 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface Z { + fun a() : String +} + +inline fun test(crossinline z: () -> String) = + object : Z { + + val p = z() + + override fun a() = p + } + + +inline fun call(crossinline z: () -> T) = z() + +// FILE: 2.kt + +import test.* + +fun box(): String { + /*This captured parameter would be added to object constructor*/ + val captured = "OK"; + var z: Any = "fail" + val res = test { + + call { + z = { + captured + } + } + + (z as Function0)() + } + + + val enclosingConstructor = z.javaClass.enclosingConstructor + if (enclosingConstructor?.name != "_2Kt\$box$\$inlined\$test$1") return "fail 1: ${enclosingConstructor?.name}" + + val enclosingClass = z.javaClass.enclosingClass + if (enclosingClass?.name != "_2Kt\$box$\$inlined\$test$1") return "fail 2: ${enclosingClass?.name}" + + return res.a() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/kt10569.kt b/backend.native/tests/external/codegen/boxInline/enum/kt10569.kt new file mode 100644 index 00000000000..2ffd30c8ad8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/kt10569.kt @@ -0,0 +1,31 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +var result = "" + +inline fun > renderOptions(render: (T) -> String) { + val values = enumValues() + for (v in values) { + result += render(v) + } +} + +enum class Z { + O, K; + + val myParam = name +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + renderOptions { + it.myParam + } + return result +} + diff --git a/backend.native/tests/external/codegen/boxInline/enum/valueOf.kt b/backend.native/tests/external/codegen/boxInline/enum/valueOf.kt new file mode 100644 index 00000000000..85d4e64100b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valueOf.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValueOf(): String { + return enumValueOf("OK").name +} + +enum class Z { + OK +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValueOf() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valueOfCapturedType.kt b/backend.native/tests/external/codegen/boxInline/enum/valueOfCapturedType.kt new file mode 100644 index 00000000000..c0519a81e3e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valueOfCapturedType.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValueOf(): String { + return { enumValueOf("OK") }().name +} + +enum class Z { + OK +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValueOf() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valueOfChain.kt b/backend.native/tests/external/codegen/boxInline/enum/valueOfChain.kt new file mode 100644 index 00000000000..15d240b28c5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valueOfChain.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValueOf(): String { + return myValueOf2() +} + +inline fun > myValueOf2(): String { + return enumValueOf("OK").name +} + + +enum class Z { + OK +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValueOf() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valueOfChainCapturedType.kt b/backend.native/tests/external/codegen/boxInline/enum/valueOfChainCapturedType.kt new file mode 100644 index 00000000000..48e1b314d51 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valueOfChainCapturedType.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValueOf(): String { + return myValueOf2() +} + +inline fun > myValueOf2(): String { + return { enumValueOf("OK").name }() +} + + +enum class Z { + OK +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValueOf() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valueOfNonReified.kt b/backend.native/tests/external/codegen/boxInline/enum/valueOfNonReified.kt new file mode 100644 index 00000000000..761813faec2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valueOfNonReified.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun myValueOf(): String { + return enumValueOf("OK").name +} + +enum class Z { + OK +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValueOf() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/values.kt b/backend.native/tests/external/codegen/boxInline/enum/values.kt new file mode 100644 index 00000000000..b0f397f5a1a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/values.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValues(): String { + val values = enumValues() + return values.joinToString("") +} + +enum class Z { + O, K +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValues() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valuesAsArray.kt b/backend.native/tests/external/codegen/boxInline/enum/valuesAsArray.kt new file mode 100644 index 00000000000..027b228d6be --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valuesAsArray.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValues(): Array { + return enumValues() +} + +enum class Z { + O, K; + + val myParam = name +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return test(myValues()) +} + +fun test(myValues: Array): String { + return myValues.map { it.myParam }.joinToString (""); +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valuesCapturedType.kt b/backend.native/tests/external/codegen/boxInline/enum/valuesCapturedType.kt new file mode 100644 index 00000000000..99ce9e279c1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valuesCapturedType.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValues(): String { + val values = { enumValues() }() + return values.joinToString("") +} + +enum class Z { + O, K +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValues() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valuesChain.kt b/backend.native/tests/external/codegen/boxInline/enum/valuesChain.kt new file mode 100644 index 00000000000..2207e07e806 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valuesChain.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValues2(): String { + val values = enumValues() + return values.joinToString("") +} + +inline fun > myValues(): String { + return myValues2() +} + +enum class Z { + O, K +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValues() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valuesChainCapturedType.kt b/backend.native/tests/external/codegen/boxInline/enum/valuesChainCapturedType.kt new file mode 100644 index 00000000000..12436f80868 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valuesChainCapturedType.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun > myValues2(): String { + val values = { enumValues() }() + return values.joinToString("") +} + +inline fun > myValues(): String { + return myValues2() +} + +enum class Z { + O, K +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValues() +} diff --git a/backend.native/tests/external/codegen/boxInline/enum/valuesNonReified.kt b/backend.native/tests/external/codegen/boxInline/enum/valuesNonReified.kt new file mode 100644 index 00000000000..fee857c2c3c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/enum/valuesNonReified.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun myValues(): String { + val values = enumValues() + return values.joinToString("") +} + +enum class Z { + O, K +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + return myValues() +} diff --git a/backend.native/tests/external/codegen/boxInline/functionExpression/extension.kt b/backend.native/tests/external/codegen/boxInline/functionExpression/extension.kt new file mode 100644 index 00000000000..747e96a6b61 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/functionExpression/extension.kt @@ -0,0 +1,71 @@ +// FILE: 1.kt +// WITH_RUNTIME +inline fun Inline.calcExt(s: (Int) -> Int, p: Int) : Int { + return s(p) +} + +inline fun Inline.calcExt2(s: Int.() -> Int, p: Int) : Int { + return p.s() +} + +class InlineX(val value : Int) {} + +class Inline(val res: Int) { + + inline fun InlineX.calcInt(s: (Int, Int) -> Int) : Int { + return s(res, this.value) + } + + inline fun Double.calcDouble(s: (Int, Double) -> Double) : Double { + return s(res, this) + } + + fun doWork(l : InlineX) : Int { + return l.calcInt(fun (a: Int, b: Int) = a + b) + } + + fun doWorkWithDouble(s : Double) : Double { + return s.calcDouble(fun (a: Int, b: Double) = a + b) + } + +} + +// FILE: 2.kt + +fun test1(): Int { + val inlineX = Inline(9) + return inlineX.calcExt(fun(z: Int) = z, 25) +} + +fun test2(): Int { + val inlineX = Inline(9) + return inlineX.calcExt2(fun Int.(): Int = this, 25) +} + +fun test3(): Int { + val inlineX = Inline(9) + return inlineX.doWork(InlineX(11)) +} + +fun test4(): Double { + val inlineX = Inline(9) + return inlineX.doWorkWithDouble(11.0) +} + +fun test5(): Double { + val inlineX = Inline(9) + with(inlineX) { + 11.0.calcDouble(fun (a: Int, b: Double) = a + b) + } + return inlineX.doWorkWithDouble(11.0) +} + +fun box(): String { + if (test1() != 25) return "test1: ${test1()}" + if (test2() != 25) return "test2: ${test2()}" + if (test3() != 20) return "test3: ${test3()}" + if (test4() != 20.0) return "test4: ${test4()}" + if (test5() != 20.0) return "test5: ${test5()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/innerClasses/innerLambda.kt b/backend.native/tests/external/codegen/boxInline/innerClasses/innerLambda.kt new file mode 100644 index 00000000000..737b62c60cc --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/innerClasses/innerLambda.kt @@ -0,0 +1,33 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun foo1() = run { + { + "OK" + } +} + +var sideEffects = "fail" + +inline fun foo2() = run { + { + Runnable { + sideEffects = "OK" + } + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val x1 = foo1()() + if (x1 != "OK") return "fail 1: $x1" + + foo2()().run() + + return sideEffects +} diff --git a/backend.native/tests/external/codegen/boxInline/innerClasses/kt10259.kt b/backend.native/tests/external/codegen/boxInline/innerClasses/kt10259.kt new file mode 100644 index 00000000000..bd1ad8fa1fe --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/innerClasses/kt10259.kt @@ -0,0 +1,34 @@ +// IGNORE_BACKEND: NATIVE +// NO_CHECK_LAMBDA_INLINING +// WITH_RUNTIME +// FILE: 1.kt +package test + +inline fun test(s: () -> Unit) { + s() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var encl1 = "fail"; + var encl2 = "fail"; + test { + { + val p = object {} + encl1 = p.javaClass.enclosingMethod.declaringClass.name + { + + val p = object {} + encl2 = p.javaClass.enclosingMethod.declaringClass.name + }() + }() + } + + if (encl1 != "_2Kt\$box\$\$inlined\$test\$lambda$1") return "fail 1: $encl1" + if (encl2 != "_2Kt\$box\$\$inlined\$test\$lambda$1$2") return "fail 2: $encl2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/lambdaClassClash/lambdaClassClash.kt b/backend.native/tests/external/codegen/boxInline/lambdaClassClash/lambdaClassClash.kt new file mode 100644 index 00000000000..6b77f48e346 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/lambdaClassClash/lambdaClassClash.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt + +package zzz + + +inline fun calc(crossinline lambda: () -> Int): Int { + return doCalc { lambda() } +} + +fun doCalc(lambda2: () -> Int): Int { + return lambda2() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import zzz.* + +fun box(): String { + + val p = { calc { 11 }} () + + val z = { calc { 12 }}() + + if (p == z) return "fail" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/lambdaClassClash/noInlineLambdaX2.kt b/backend.native/tests/external/codegen/boxInline/lambdaClassClash/noInlineLambdaX2.kt new file mode 100644 index 00000000000..97ac05955d3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/lambdaClassClash/noInlineLambdaX2.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt + +package test +var s: Int = 1; + +inline fun Int.inlineMethod() : Int { + noInlineLambda() + return noInlineLambda() +} + +inline fun Int.noInlineLambda() = { s++ } () + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* +fun test1(): Int { + return 1.inlineMethod() +} + +fun box(): String { + val result = test1() + if (result != 2) return "test1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaCloning.kt b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaCloning.kt new file mode 100644 index 00000000000..0d4a9e06dba --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaCloning.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt + +package test + +inline fun doSmth(a: T) : String { + return {a.toString()}() +} + +inline fun doSmth2(a: T) : String { + return {{a.toString()}()}() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun test1(s: Long): String { + return doSmth(s) +} + +fun test2(s: Int): String { + return doSmth2(s) +} + +fun box(): String { + var result = test1(11.toLong()) + if (result != "11") return "fail1: ${result}" + + result = test2(11) + if (result != "11") return "fail2: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambda2.kt b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambda2.kt new file mode 100644 index 00000000000..442a0ba56ef --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambda2.kt @@ -0,0 +1,38 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun mfun(f: () -> R) { + f() +} + +fun noInline(suffix: String, l: (s: String) -> Unit) { + l(suffix) +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* +import java.util.* + +fun test1(prefix: String): String { + var result = "fail" + mfun { + noInline("start") { + if (it.startsWith(prefix)) { + result = "OK" + } + } + } + + return result +} + +fun box(): String { + if (test1("start") != "OK") return "fail1" + if (test1("nostart") != "fail") return "fail2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.kt b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.kt new file mode 100644 index 00000000000..86aab34cb6d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.kt @@ -0,0 +1,72 @@ +// FILE: 1.kt + +package test + +fun concat(suffix: String, l: (s: String) -> Unit) { + l(suffix) +} + +fun noInlineFun(arg: T, f: (T) -> Unit) { + f(arg) +} + +inline fun doSmth(a: String): String { + return a.toString() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun test1(param: String): String { + var result = "fail1" + noInlineFun(param) { a -> + concat("start") { + result = doSmth(a).toString() + } + } + + return result +} + +fun test11(param: String): String { + var result = "fail1" + noInlineFun("stub") { a -> + concat("start") { + result = doSmth(param).toString() + } + } + + return result +} + +inline fun test2(crossinline param: () -> String): String { + var result = "fail1" + noInlineFun("stub") { a -> + concat(param()) { + result = doSmth(param()).toString() + } + } + + return result +} + +inline fun test22(crossinline param: () -> String): String { + var result = "fail1" + {{result = param()}()}() + + return result +} + + +fun box(): String { + if (test1("start") != "start") return "fail1: ${test1("start")}" + if (test1("nostart") != "nostart") return "fail2: ${test1("nostart")}" + if (test11("start") != "start") return "fail3: ${test11("start")}" + + if (test2({"start"}) != "start") return "fail4: ${test2({"start"})}" + if (test22({"start"}) != "start") return "fail5: ${test22({"start"})}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.kt b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.kt new file mode 100644 index 00000000000..80e630ccc3b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + + +inline fun call(crossinline f: () -> R) : R { + return {f()} () +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun sameName(s: Long): Long { + return call { + s + } +} + +fun sameName(s: Int): Int { + return call { + s + } +} + +fun box(): String { + val result = sameName(1.toLong()) + if (result != 1.toLong()) return "fail1: ${result}" + + val result2 = sameName(2) + if (result2 != 2) return "fail2: ${result2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/lambdaTransformation/sameCaptured.kt b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/sameCaptured.kt new file mode 100644 index 00000000000..3cdd3687bf2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/lambdaTransformation/sameCaptured.kt @@ -0,0 +1,44 @@ +// FILE: 1.kt + +package test + + +inline fun doWork(crossinline job: ()-> R) : R { + val k = 10; + return notInline({k; job()}) +} + +inline fun doWork(crossinline job: ()-> R, crossinline job2: () -> R) : R { + val k = 10; + return notInline({k; job(); job2()}) +} + +fun notInline(job: ()-> R) : R { + return job() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun testSameCaptured() : String { + var result = 0; + result = doWork({result+=1; result}, {result += 11; result}) + return if (result == 12) "OK" else "fail ${result}" +} + +inline fun testSameCaptured(crossinline lambdaWithResultCaptured: () -> Unit) : String { + var result = 1; + result = doWork({result+=11; lambdaWithResultCaptured(); result}) + return if (result == 12) "OK" else "fail ${result}" +} + +fun box(): String { + if (testSameCaptured() != "OK") return "test1 : ${testSameCaptured()}" + + var result = 0; + if (testSameCaptured{result += 1111} != "OK") return "test2 : ${testSameCaptured{result = 1111}}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/localFunInLambda/lambdaInLambdaCapturesAnotherFun.kt b/backend.native/tests/external/codegen/boxInline/localFunInLambda/lambdaInLambdaCapturesAnotherFun.kt new file mode 100644 index 00000000000..ba32dcfee23 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/localFunInLambda/lambdaInLambdaCapturesAnotherFun.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt +package test + +public inline fun myRun(block: () -> Unit) { + return block() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + var res = "" + myRun { + fun f1() { + res = "OK" + } + val x: () -> Unit = { + f1() + } + + x() + } + + return res +} diff --git a/backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambda.kt b/backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambda.kt new file mode 100644 index 00000000000..aef72d1f305 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambda.kt @@ -0,0 +1,38 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +public class Data(val value: Int) + +public class Input(val d: Data) { + public fun data() : Int = 100 +} + +public inline fun use(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun test1(d: Data): Int { + val input = Input(d) + var result = 10 + with(input) { + fun localFun() { + result = input.d.value + } + localFun() + } + return result +} + + +fun box(): String { + val result = test1(Data(11)) + if (result != 11) return "test1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambdaCapturesAnotherFun.kt b/backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambdaCapturesAnotherFun.kt new file mode 100644 index 00000000000..f5ae9ebb3db --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/localFunInLambda/localFunInLambdaCapturesAnotherFun.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt +package test + +public inline fun myRun(block: () -> Unit) { + return block() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + var res = "" + myRun { + fun f1() { + res = "OK" + } + fun f2() { + f1() + } + f2() + } + + return res +} diff --git a/backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOptimizedMultifileClass.kt b/backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOptimizedMultifileClass.kt new file mode 100644 index 00000000000..94c8b563259 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOptimizedMultifileClass.kt @@ -0,0 +1,23 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// KOTLIN_CONFIGURATION_FLAGS: +JVM.INHERIT_MULTIFILE_PARTS +// FILE: 1.kt + +@file:[JvmName("MultifileClass") JvmMultifileClass] +package a + +inline fun foo(body: () -> String): String = bar(body()) + +public fun bar(x: String): String = x + +inline fun inlineOnly(x: Any?): Boolean = x is T + +// FILE: 2.kt + +import a.foo +import a.inlineOnly + +fun box(): String { + if (!inlineOnly("OK")) return "fail 1" + return foo { "OK" } +} diff --git a/backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOtherPackage.kt b/backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOtherPackage.kt new file mode 100644 index 00000000000..202e8186c30 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/multifileClasses/inlineFromOtherPackage.kt @@ -0,0 +1,21 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +@file:[JvmName("MultifileClass") JvmMultifileClass] +package a + +inline fun foo(body: () -> String): String = bar(body()) + +public fun bar(x: String): String = x + +inline fun inlineOnly(x: Any?): Boolean = x is T + +// FILE: 2.kt + +import a.foo +import a.inlineOnly + +fun box(): String { + if (!inlineOnly("OK")) return "fail 1" + return foo { "OK" } +} diff --git a/backend.native/tests/external/codegen/boxInline/noInline/extensionReceiver.kt b/backend.native/tests/external/codegen/boxInline/noInline/extensionReceiver.kt new file mode 100644 index 00000000000..40555a42091 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/noInline/extensionReceiver.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +inline fun (() -> String).test(): (() -> String) = { invoke() + this.invoke() + this() } + +// call this.hashCode() guarantees that extension receiver is noinline by default +inline fun (() -> String).extensionNoInline(): String = this() + (this.hashCode().toString()) + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +fun box(): String { + val res = { "OK" }.test()() + if (res != "OKOKOK") return "fail 1: $res" + + val res2 = { "OK" }.extensionNoInline().subSequence(0, 2) + if (res2 != "OK") return "fail 2: $res2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/noInline/lambdaAsGeneric.kt b/backend.native/tests/external/codegen/boxInline/noInline/lambdaAsGeneric.kt new file mode 100644 index 00000000000..fa760a238c1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/noInline/lambdaAsGeneric.kt @@ -0,0 +1,14 @@ +// FILE: 1.kt + +inline fun test(p: T) { + p.toString() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +fun box() : String { + test {"123"} + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/noInline/lambdaAsNonFunction.kt b/backend.native/tests/external/codegen/boxInline/noInline/lambdaAsNonFunction.kt new file mode 100644 index 00000000000..98751109cac --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/noInline/lambdaAsNonFunction.kt @@ -0,0 +1,14 @@ +// FILE: 1.kt + +inline fun test(p: Any) { + p.toString() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +fun box() : String { + test {"123"} + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/noInline/noInline.kt b/backend.native/tests/external/codegen/boxInline/noInline/noInline.kt new file mode 100644 index 00000000000..8c313f6bba9 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/noInline/noInline.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt + +inline fun calc(s: (Int) -> Int, noinline p: (Int) -> Int) : Int { + val z = p + return s(11) + z(11) + p(11) +} + +inline fun extensionLambda(noinline bar: Int.() -> Int) = 10.bar() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +fun test1(): Int { + return calc( { l: Int -> 2*l}, { l: Int -> 4*l}) +} + +fun test2(): Int { + return extensionLambda({this * 16}) +} + +fun box(): String { + if (test1() != 110) return "test1: ${test1()}" + if (test2() != 160) return "test2: ${test2()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChain.kt b/backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChain.kt new file mode 100644 index 00000000000..541efe7cbf3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChain.kt @@ -0,0 +1,71 @@ +// FILE: 1.kt + +package test + +inline fun inlineFun(arg: T, f: (T) -> Unit) { + f(arg) +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun test1(param: String): String { + var result = "fail" + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param + c + a + }() + }() + } + }() + } + + return result +} + + +fun test2(param: String): String { + var result = "fail" + inlineFun("2") { a -> + { + { + result = param + a + }() + }() + } + + return result +} + +fun test3(param: String): String { + var result = "fail" + inlineFun("2") { d -> + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param + c + a + }() + }() + } + }() + } + } + + return result +} + + +fun box(): String { + if (test1("start") != "start12") return "fail1: ${test1("start")}" + if (test2("start") != "start2") return "fail2: ${test2("start")}" + if (test3("start") != "start12") return "fail3: ${test3("start")}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.kt b/backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.kt new file mode 100644 index 00000000000..97254e08ff8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/noInline/noInlineLambdaChainWithCapturedInline.kt @@ -0,0 +1,83 @@ +// FILE: 1.kt + +package test + +inline fun inlineFun(arg: T, f: (T) -> Unit) { + f(arg) +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +inline fun test1(crossinline param: () -> String): String { + var result = "fail" + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param() + c + a + }() + }() + } + }() + } + + return result +} + + +inline fun test2(crossinline param: () -> String): String { + var result = "fail" + inlineFun("2") { a -> + { + { + result = param() + a + }() + }() + } + + return result +} + +inline fun test3(crossinline param: () -> String): String { + var result = "fail" + inlineFun("2") { d -> + inlineFun("1") { c -> + { + inlineFun("2") { a -> + { + { + result = param() + c + a + }() + }() + } + }() + } + } + + return result +} + + +fun box(): String { + if (test1({"start"}) != "start12") return "fail1: ${test1({"start"})}" + if (test2({"start"}) != "start2") return "fail2: ${test2({"start"})}" + if (test3({"start"}) != "start12") return "fail3: ${test3({"start"})}" + + var captured1 = "sta"; + val captured2 = "rt"; + if (test1({captured1 + captured2}) != "start12") return "fail4: ${test1({captured1 + captured2})}" + if (test2({captured1 + captured2}) != "start2") return "fail5: ${test2({captured1 + captured2})}" + if (test3({captured1 + captured2}) != "start12") return "fail6: ${test3({captured1 + captured2})}" + + return { + if (test1 { captured1 + captured2 } != "start12") "fail7: ${test1 { captured1 + captured2 }}" + else if (test2 { captured1 + captured2 } != "start2") "fail8: ${test2 { captured1 + captured2 }}" + else if (test3 { captured1 + captured2 } != "start12") "fail9: ${test3 { captured1 + captured2 }}" + else "OK" + } () + +} diff --git a/backend.native/tests/external/codegen/boxInline/noInline/withoutInline.kt b/backend.native/tests/external/codegen/boxInline/noInline/withoutInline.kt new file mode 100644 index 00000000000..7508473e98b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/noInline/withoutInline.kt @@ -0,0 +1,23 @@ +// FILE: 1.kt + +class Inline { + + inline fun calc(s: (Int) -> Int, p: Int) : Int { + return s(p) + } +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +fun test1(): Int { + val inlineX = Inline() + var p = { l : Int -> l}; + return inlineX.calc(p, 25) +} + +fun box(): String { + if (test1() != 25) return "test1: ${test1()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/bracket.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/bracket.kt new file mode 100644 index 00000000000..8d3805a819a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/bracket.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +fun test1(b: Boolean): String { + val localResult = doCall ((local@ { + if (b) { + return@local "local" + } else { + return "nonLocal" + } + })) + + return "result=" + localResult; +} + +fun test2(nonLocal: String): String { + val localResult = doCall { + return nonLocal + } +} + +fun box(): String { + val test1 = test1(true) + if (test1 != "result=local") return "test1: ${test1}" + + val test2 = test1(false) + if (test2 != "nonLocal") return "test2: ${test2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/labeled.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/labeled.kt new file mode 100644 index 00000000000..34b99e73279 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/deparenthesize/labeled.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +fun test1(b: Boolean): String { + val localResult = doCall local@ { + if (b) { + return@local "local" + } else { + return "nonLocal" + } + } + + return "localResult=" + localResult; +} + +fun test2(nonLocal: String): String { + val localResult = doCall { + return nonLocal + } +} + +fun box(): String { + val test1 = test1(true) + if (test1 != "localResult=local") return "test1: ${test1}" + + val test2 = test1(false) + if (test2 != "nonLocal") return "test2: ${test2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/explicitLocalReturn.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/explicitLocalReturn.kt new file mode 100644 index 00000000000..34b99e73279 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/explicitLocalReturn.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +fun test1(b: Boolean): String { + val localResult = doCall local@ { + if (b) { + return@local "local" + } else { + return "nonLocal" + } + } + + return "localResult=" + localResult; +} + +fun test2(nonLocal: String): String { + val localResult = doCall { + return nonLocal + } +} + +fun box(): String { + val test1 = test1(true) + if (test1 != "localResult=local") return "test1: ${test1}" + + val test2 = test1(false) + if (test2 != "nonLocal") return "test2: ${test2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/justReturnInLambda.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/justReturnInLambda.kt new file mode 100644 index 00000000000..200ee54cf38 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/justReturnInLambda.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +class Z {} + +fun test1(nonLocal: String): String { + + val localResult = doCall { + return nonLocal + } +} + +fun box(): String { + val test2 = test1("OK_NONLOCAL") + if (test2 != "OK_NONLOCAL") return "test2: ${test2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt5199.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt5199.kt new file mode 100644 index 00000000000..d7e1c7edc17 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt5199.kt @@ -0,0 +1,24 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +fun test1(nonLocal: String): String { + val localResult = doCall { + return nonLocal + } + + return "NON_LOCAL_FAILED" +} + + +fun box(): String { + return test1("OK") +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948.kt new file mode 100644 index 00000000000..a4cffc30e40 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt + +package test + +inline fun foo(f: () -> Unit) { + try { + f() + } + finally { + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + foo { + try { + return "OK" + } catch(e: Exception) { + return "fail 1" + } + } + + return "fail 2" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948v2.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948v2.kt new file mode 100644 index 00000000000..7a0be75b0a4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/kt8948v2.kt @@ -0,0 +1,36 @@ +// FILE: 1.kt + +package test + +inline fun foo(f: () -> Unit) { + try { + f() + } + finally { + 1 + } +} + +// FILE: 2.kt + +import test.* + +var p = "fail" + +fun test1() { + foo { + try { + p = "O" + return + } catch(e: Exception) { + return + } finally { + p += "K" + } + } +} + +fun box(): String { + test1() + return p +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/nestedNonLocals.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/nestedNonLocals.kt new file mode 100644 index 00000000000..97ff7ccdaeb --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/nestedNonLocals.kt @@ -0,0 +1,81 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* +import Kind.* + +enum class Kind { + LOCAL, + EXTERNAL, + GLOBAL +} + +class Internal(val value: String) + +class External(val value: String) + +class Global(val value: String) + +fun test1(intKind: Kind, extKind: Kind): Global { + + var externalResult = doCall ext@ { + + val internalResult = doCall int@ { + if (intKind == Kind.GLOBAL) { + return@test1 Global("internal -> global") + } else if (intKind == EXTERNAL) { + return@ext External("internal -> external") + } + return@int Internal("internal -> local") + } + + if (extKind == GLOBAL || extKind == EXTERNAL) { + return Global("external -> global") + } + + External(internalResult.value + ": external -> local"); + } + + return Global(externalResult.value + ": exit") +} + +fun box(): String { + var test1 = test1(LOCAL, LOCAL).value + if (test1 != "internal -> local: external -> local: exit") return "test1: ${test1}" + + test1 = test1(EXTERNAL, LOCAL).value + if (test1 != "internal -> external: exit") return "test2: ${test1}" + + test1 = test1(GLOBAL, LOCAL).value + if (test1 != "internal -> global") return "test3: ${test1}" + + + test1 = test1(LOCAL, EXTERNAL).value + if (test1 != "external -> global") return "test4: ${test1}" + + test1 = test1(EXTERNAL, EXTERNAL).value + if (test1 != "internal -> external: exit") return "test5: ${test1}" + + test1 = test1(GLOBAL, EXTERNAL).value + if (test1 != "internal -> global") return "test6: ${test1}" + + + test1 = test1(LOCAL, GLOBAL).value + if (test1 != "external -> global") return "test7: ${test1}" + + test1 = test1(EXTERNAL, GLOBAL).value + if (test1 != "internal -> external: exit") return "test8: ${test1}" + + test1 = test1(GLOBAL, GLOBAL).value + if (test1 != "internal -> global") return "test9: ${test1}" + + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/noInlineLocalReturn.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/noInlineLocalReturn.kt new file mode 100644 index 00000000000..cc2c560762a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/noInlineLocalReturn.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt + +package test + +public fun noInlineCall(block: ()-> R) : R { + return block() +} + +public inline fun notUsed(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun test1(b: Boolean): String { + val localResult = noInlineCall local@ { + if (b) { + return@local 1 + } else { + return@local 2 + } + 3 + } + + return "result=" + localResult; +} + +fun box(): String { + val test1 = test1(true) + if (test1 != "result=1") return "test1: ${test1}" + + val test2 = test1(false) + if (test2 != "result=2") return "test2: ${test2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/nonLocalReturnFromOuterLambda.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/nonLocalReturnFromOuterLambda.kt new file mode 100644 index 00000000000..af6f1e3d223 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/nonLocalReturnFromOuterLambda.kt @@ -0,0 +1,59 @@ +// FILE: 1.kt + +package test + +fun a(b: () -> String) : String { + return b() +} + +inline fun test(l: () -> String): String { + return l() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +import test.* + +fun test1() : String { + return a { + test { + return@a "OK" + } + } +} + +fun test2() : String { + return test z@ { + return@z "OK" + } +} + +fun test3() : String { + return test { + return@test "OK" + } +} + +fun test4() : String { + return a z@ { + test { + return@z "OK" + } + } +} + + + +fun box() : String { + if (test1() != "OK") return "fail 1: ${test1()}" + + if (test2() != "OK") return "fail 2: ${test2()}" + + if (test3() != "OK") return "fail 3: ${test3()}" + + if (test4() != "OK") return "fail 4: ${test4()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/propertyAccessors.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/propertyAccessors.kt new file mode 100644 index 00000000000..275024ae34f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/propertyAccessors.kt @@ -0,0 +1,40 @@ +// FILE: 1.kt + +package test + +inline fun doCall(p: () -> R) { + p() +} + +// FILE: 2.kt + +import test.* + +class A { + var result = 0; + + var field: Int + get() { + doCall { return 1 } + return 2 + } + set(v: Int) { + doCall { + result = v / 2 + return + } + result = v + } +} + + +fun box(): String { + + val a = A() + if (a.field != 1) return "fail 1: ${a.field}" + + a.field = 4 + if (a.result != 2) return "fail 2: ${a.result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/returnFromFunctionExpr.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/returnFromFunctionExpr.kt new file mode 100644 index 00000000000..d653a70cc5a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/returnFromFunctionExpr.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt + +inline fun foo(f: () -> Unit) { + f() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +fun test(): String = fun (): String { + foo { return "OK" } + return "fail" +} () + +fun test2(): String = (l@ fun (): String { + foo { return@l "OK" } + return "fail" +}) () + +fun box(): String { + if (test() != "OK") return "fail 1: ${test()}" + + if (test2() != "OK") return "fail 2: ${test2()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simple.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simple.kt new file mode 100644 index 00000000000..efe029b8d69 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simple.kt @@ -0,0 +1,61 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +fun test1(local: Int, nonLocal: String, doNonLocal: Boolean): String { + + val localResult = doCall { + if (doNonLocal) { + return nonLocal + } + local + } + + if (localResult == 11) { + return "OK_LOCAL" + } + else { + return "LOCAL_FAILED" + } +} + +fun test2(local: Int, nonLocal: String, doNonLocal: Boolean): String { + + val localResult = doCall { + if (doNonLocal) { + return@test2 nonLocal + } + local + } + + if (localResult == 11) { + return "OK_LOCAL" + } + else { + return "LOCAL_FAILED" + } +} + +fun box(): String { + var test1 = test1(11, "fail", false) + if (test1 != "OK_LOCAL") return "test1: ${test1}" + + test1 = test1(-1, "OK_NONLOCAL", true) + if (test1 != "OK_NONLOCAL") return "test2: ${test1}" + + var test2 = test2(11, "fail", false) + if (test2 != "OK_LOCAL") return "test1: ${test2}" + + test2 = test2(-1, "OK_NONLOCAL", true) + if (test2 != "OK_NONLOCAL") return "test2: ${test2}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleFunctional.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleFunctional.kt new file mode 100644 index 00000000000..4790c794384 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleFunctional.kt @@ -0,0 +1,87 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +fun test1(local: Int, nonLocal: String, doNonLocal: Boolean): String { + + val localResult = doCall( + fun (): Int { + if (doNonLocal) { + return@test1 nonLocal + } + return local + }) + + if (localResult == 11) { + return "OK_LOCAL" + } + else { + return "LOCAL_FAILED" + } +} + +fun test2(local: Int, nonLocal: String, doNonLocal: Boolean): String { + + val localResult = doCall( + xxx@ fun(): Int { + if (doNonLocal) { + return@test2 nonLocal + } + return@xxx local + }) + + if (localResult == 11) { + return "OK_LOCAL" + } + else { + return "LOCAL_FAILED" + } +} + +fun test3(local: Int, nonLocal: String, doNonLocal: Boolean): String { + + val localResult = doCall( + yy@ fun(): Int { + if (doNonLocal) { + return@test3 nonLocal + } + return@yy local + }) + + if (localResult == 11) { + return "OK_LOCAL" + } + else { + return "LOCAL_FAILED" + } +} + +fun box(): String { + var test1 = test1(11, "fail", false) + if (test1 != "OK_LOCAL") return "test1: ${test1}" + + test1 = test1(-1, "OK_NONLOCAL", true) + if (test1 != "OK_NONLOCAL") return "test2: ${test1}" + + var test2 = test2(11, "fail", false) + if (test2 != "OK_LOCAL") return "test1: ${test2}" + + test2 = test2(-1, "OK_NONLOCAL", true) + if (test2 != "OK_NONLOCAL") return "test2: ${test2}" + + var test3 = test3(11, "fail", false) + if (test3 != "OK_LOCAL") return "test1: ${test3}" + + test3 = test3(-1, "OK_NONLOCAL", true) + if (test3 != "OK_NONLOCAL") return "test2: ${test3}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleVoid.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleVoid.kt new file mode 100644 index 00000000000..8cebf05330e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/simpleVoid.kt @@ -0,0 +1,40 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +class Holder(var value: Int) + +fun test1(holder: Holder, doNonLocal: Boolean) { + holder.value = -1; + + val localResult = doCall { + if (doNonLocal) { + holder.value = 1000 + return + } + 10 + } + + holder.value = localResult +} + + +fun box(): String { + val h = Holder(-1) + + test1(h, false) + if (h.value != 10) return "test1: ${h.value}" + + test1(h, true) + if (h.value != 1000) return "test2: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSite.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSite.kt new file mode 100644 index 00000000000..0b168a75dbe --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSite.kt @@ -0,0 +1,108 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* +import Kind.* + +enum class Kind { + LOCAL, + EXTERNAL, + GLOBAL +} + +class Holder { + var value: String = "" +} + +val FINALLY_CHAIN = "in local finally, in external finally, in global finally" + +class Internal(val value: String) + +class External(val value: String) + +class Global(val value: String) + +fun test1(intKind: Kind, extKind: Kind, holder: Holder): Global { + holder.value = "" + try { + var externalResult = doCall ext@ { + + try { + val internalResult = doCall int@ { + try { + if (intKind == Kind.GLOBAL) { + return@test1 Global("internal -> global") + } + else if (intKind == EXTERNAL) { + return@ext External("internal -> external") + } + return@int Internal("internal -> local") + } + finally { + holder.value += "in local finally" + } + } + + if (extKind == GLOBAL || extKind == EXTERNAL) { + return Global("external -> global") + } + + External(internalResult.value + ": external -> local"); + + } + finally { + holder.value += ", in external finally" + } + } + + return Global(externalResult.value + ": exit") + } + finally { + holder.value += ", in global finally" + } + + +} + +fun box(): String { + var holder = Holder() + + var test1 = test1(LOCAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> local: external -> local: exit") return "test1: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test2: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test3: ${test1}, finally = ${holder.value}" + + + test1 = test1(LOCAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "external -> global") return "test4: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test5: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test6: ${test1}, finally = ${holder.value}" + + + test1 = test1(LOCAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "external -> global") return "test7: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test8: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test9: ${test1}, finally = ${holder.value}" + + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSiteComplex.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSiteComplex.kt new file mode 100644 index 00000000000..304d0c1b23b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/callSiteComplex.kt @@ -0,0 +1,112 @@ +// FILE: 1.kt + +package test + +class Holder { + var value: String = "" +} + +inline fun doCall(block: ()-> R, h: Holder) : R { + try { + return block() + } finally { + h.value += ", in doCall finally" + } +} + +// FILE: 2.kt + +import test.* +import Kind.* + +enum class Kind { + LOCAL, + EXTERNAL, + GLOBAL +} + +val FINALLY_CHAIN = "in local finally, in doCall finally, in external finally, in doCall finally, in global finally" + +class Internal(val value: String) + +class External(val value: String) + +class Global(val value: String) + +fun test1(intKind: Kind, extKind: Kind, holder: Holder): Global { + holder.value = "" + try { + var externalResult = doCall (ext@ { + try { + + val internalResult = doCall (int@ { + try { + if (intKind == Kind.GLOBAL) { + return@test1 Global("internal -> global") + } + else if (intKind == EXTERNAL) { + return@ext External("internal -> external") + } + return@int Internal("internal -> local") + } + finally { + holder.value += "in local finally" + } + }, holder) + + if (extKind == GLOBAL || extKind == EXTERNAL) { + return Global("external -> global") + } + + External(internalResult.value + ": external -> local"); + + } + finally { + holder.value += ", in external finally" + } + }, holder) + + return Global(externalResult.value + ": exit") + } + finally { + holder.value += ", in global finally" + } + + +} + +fun box(): String { + var holder = Holder() + + var test1 = test1(LOCAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> local: external -> local: exit") return "test1: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test2: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test3: ${test1}, finally = ${holder.value}" + + + test1 = test1(LOCAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "external -> global") return "test4: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test5: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test6: ${test1}, finally = ${holder.value}" + + + test1 = test1(LOCAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "external -> global") return "test7: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test8: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test9: ${test1}, finally = ${holder.value}" + + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplit.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplit.kt new file mode 100644 index 00000000000..4d944fae4c0 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplit.kt @@ -0,0 +1,139 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +public class Holder(var value: String = "") { + + operator fun plusAssign(s: String?) { + if (value.length != 0) { + value += " -> " + } + value += s + } + + override fun toString(): String { + return value + } + +} + +public inline fun doCall(h: Holder, block: ()-> R) : R { + try { + return block() + } finally { + h += "inline fun finally" + } +} + +public inline fun doCallWithException(h: Holder, block: ()-> R) : R { + try { + return block() + } finally { + h += "inline fun finally" + throw RuntimeException("fail"); + } +} + +// FILE: 2.kt + +import test.* +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import kotlin.test.fail + +fun test1(): Holder { + val h = Holder("") + + try { + val internalResult = doCall(h) { + h += "in lambda body" + return h + } + } + finally { + h += "in call site finally" + } + + h += "local" + return h +} + +fun test1Lambda(): Holder { + val h = Holder("") + + val internalResult = doCall(h) { + try { + h += "in lambda body" + return h + } + finally { + h += "in lambda finally" + } + } + + + h += "local" + return h +} + +fun test2(h: Holder): Holder { + try { + val internalResult = doCallWithException(h) { + h += "in lambda body" + return h + } + } + finally { + h += "in call site finally" + } + + h += "local" + return h +} + +fun test2Lambda(h: Holder): Holder { + + val internalResult = doCallWithException(h) { + try { + h += "in lambda body" + return h + } + finally { + h += "in lambda finally" + } + } + + h += "local" + return h +} + +fun box(): String { + val test = test1() + if (test.value != "in lambda body -> inline fun finally -> in call site finally") return "fail 1: $test" + + val testLambda = test1Lambda() + if (testLambda.value != "in lambda body -> in lambda finally -> inline fun finally") return "fail 1 lambda: $testLambda" + + var h = Holder() + assertError(2, h, "in lambda body -> inline fun finally -> in call site finally") { + test2(h) + } + + h = Holder() + assertError(22, h, "in lambda body -> in lambda finally -> inline fun finally") { + test2Lambda(h) + } + + return "OK" +} + + +inline fun assertError(index: Int, h: Holder, expected: String, l: (h: Holder) -> Holder) { + try { + l(h) + fail("fail $index: no error") + } + catch (e: Exception) { + assertEquals(expected, h.value, "failed on $index") + } +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplitNoReturn.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplitNoReturn.kt new file mode 100644 index 00000000000..91c01700263 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/exceptionTableSplitNoReturn.kt @@ -0,0 +1,139 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +public class Holder(var value: String = "") { + + operator fun plusAssign(s: String?) { + if (value.length != 0) { + value += " -> " + } + value += s + } + + override fun toString(): String { + return value + } + +} + +public inline fun doCall(h: Holder, block: ()-> R) { + try { + block() + } finally { + h += "inline fun finally" + } +} + +public inline fun doCallWithException(h: Holder, block: ()-> R) { + try { + block() + } finally { + h += "inline fun finally" + throw RuntimeException("fail"); + } +} + +// FILE: 2.kt + +import test.* +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import kotlin.test.fail + +fun test1(): Holder { + val h = Holder("") + + try { + doCall(h) { + h += "in lambda body" + return h + } + } + finally { + h += "in call site finally" + } + + h += "local" + return h +} + +fun test1Lambda(): Holder { + val h = Holder("") + + doCall(h) { + try { + h += "in lambda body" + return h + } + finally { + h += "in lambda finally" + } + } + + + h += "local" + return h +} + +fun test2(h: Holder): Holder { + try { + doCallWithException(h) { + h += "in lambda body" + return h + } + } + finally { + h += "in call site finally" + } + + h += "local" + return h +} + +fun test2Lambda(h: Holder): Holder { + + doCallWithException(h) { + try { + h += "in lambda body" + return h + } + finally { + h += "in lambda finally" + } + } + + h += "local" + return h +} + +fun box(): String { + val test = test1() + if (test.value != "in lambda body -> inline fun finally -> in call site finally") return "fail 1: $test" + + val testLambda = test1Lambda() + if (testLambda.value != "in lambda body -> in lambda finally -> inline fun finally") return "fail 1 lambda: $testLambda" + + var h = Holder() + assertError(2, h, "in lambda body -> inline fun finally -> in call site finally") { + test2(h) + } + + h = Holder() + assertError(22, h, "in lambda body -> in lambda finally -> inline fun finally") { + test2Lambda(h) + } + + return "OK" +} + + +inline fun assertError(index: Int, h: Holder, expected: String, l: (h: Holder) -> Holder) { + try { + l(h) + fail("fail $index: no error") + } + catch (e: Exception) { + assertEquals(expected, h.value, "failed on $index") + } +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/finallyInFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/finallyInFinally.kt new file mode 100644 index 00000000000..32d8b0ebec0 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/finallyInFinally.kt @@ -0,0 +1,83 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> Unit, finallyBlock1: ()-> Unit) { + try { + block() + } finally { + finallyBlock1() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder, doReturn: Int): String { + doCall ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + { + h.value += ", OF_FINALLY1" + return "OF_FINALLY1" + } + ) + + return "LOCAL"; +} + + +fun test2(h: Holder, doReturn: Int): String { + doCall ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + { + try { + h.value += ", OF_FINALLY1" + return "OF_FINALLY1" + } finally { + h.value += ", OF_FINALLY1_FINALLY" + } + } + ) + + return "FAIL"; +} + +fun box(): String { + var h = Holder() + val test10 = test1(h, 0) + if (test10 != "OF_FINALLY1" || h.value != "OK_NONLOCAL, OF_FINALLY1") return "test10: ${test10}, holder: ${h.value}" + + h = Holder() + val test11 = test1(h, 1) + if (test11 != "OF_FINALLY1" || h.value != "LOCAL, OF_FINALLY1") return "test11: ${test11}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h, 0) + if (test2 != "OF_FINALLY1" || h.value != "OK_NONLOCAL, OF_FINALLY1, OF_FINALLY1_FINALLY") return "test20: ${test2}, holder: ${h.value}" + + h = Holder() + val test21 = test2(h, 1) + if (test21 != "OF_FINALLY1" || h.value != "LOCAL, OF_FINALLY1, OF_FINALLY1_FINALLY") return "test21: ${test21}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/wrongVarInterval.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/wrongVarInterval.kt new file mode 100644 index 00000000000..6d8641272e2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/callSite/wrongVarInterval.kt @@ -0,0 +1,45 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R) : R { + return block() +} + +// FILE: 2.kt + +import test.* + +fun test1(): String { + try { + doCall { + try { + doCall { + val a = 1 + if (1 == 1) { + return "a" + } + else if (2 == 2) { + return "b" + } + } + + return "d" + } + finally { + "1" + } + } + + } + finally { + "2" + } + return "f" +} + +fun box(): String { + test1() + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally.kt new file mode 100644 index 00000000000..8ea6a0004ac --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally.kt @@ -0,0 +1,98 @@ +// FILE: 1.kt + +package test + +class Holder { + var value: String = "" +} + +inline fun doCall_1(block: ()-> Unit, h: Holder) { + try { + doCall(block) { + h.value += ", OF_FINALLY1" + return + } + } finally { + h.value += ", DO_CALL_1_FINALLY" + } +} + +inline fun doCall_2(block: ()-> Unit, h: Holder) { + try { + doCall(block) { + try { + h.value += ", OF_FINALLY1" + return + } + finally { + h.value += ", OF_FINALLY1_FINALLY" + } + } + } finally { + h.value += ", DO_CALL_1_FINALLY" + } +} + +inline fun doCall(block: ()-> Unit, finallyBlock1: ()-> Unit) { + try { + block() + } finally { + finallyBlock1() + } +} + +// FILE: 2.kt + +import test.* + +fun test1(h: Holder, doReturn: Int): String { + doCall_1 ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + h + ) + + return "TEST1"; +} + +fun test2(h: Holder, doReturn: Int): String { + doCall_2 ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + h + ) + + return "TEST2"; +} + +fun box(): String { + var h = Holder() + val test10 = test1(h, 0) + if (test10 != "TEST1" || h.value != "OK_NONLOCAL, OF_FINALLY1, DO_CALL_1_FINALLY") return "test10: ${test10}, holder: ${h.value}" + + h = Holder() + val test11 = test1(h, 1) + if (test11 != "TEST1" || h.value != "LOCAL, OF_FINALLY1, DO_CALL_1_FINALLY") return "test11: ${test11}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h, 0) + if (test2 != "TEST2" || h.value != "OK_NONLOCAL, OF_FINALLY1, OF_FINALLY1_FINALLY, DO_CALL_1_FINALLY") return "test20: ${test2}, holder: ${h.value}" + + h = Holder() + val test21 = test2(h, 1) + if (test21 != "TEST2" || h.value != "LOCAL, OF_FINALLY1, OF_FINALLY1_FINALLY, DO_CALL_1_FINALLY") return "test21: ${test21}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally2.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally2.kt new file mode 100644 index 00000000000..8b4b28414fe --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/finallyInFinally2.kt @@ -0,0 +1,96 @@ +// FILE: 1.kt + +package test + +class Holder { + var value: String = "" +} + +inline fun doCall_1(block: ()-> Unit, h: Holder) { + try { + doCall(block) { + h.value += ", OF_FINALLY1" + } + } finally { + h.value += ", DO_CALL_1_FINALLY" + } +} + +inline fun doCall_2(block: ()-> Unit, h: Holder) { + try { + doCall(block) { + try { + h.value += ", OF_FINALLY1" + } + finally { + h.value += ", OF_FINALLY1_FINALLY" + } + } + } finally { + h.value += ", DO_CALL_1_FINALLY" + } +} + +inline fun doCall(block: ()-> Unit, finallyBlock1: ()-> Unit) { + try { + block() + } finally { + finallyBlock1() + } +} + +// FILE: 2.kt + +import test.* + +fun test1(h: Holder, doReturn: Int): String { + doCall_1 ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + h + ) + + return "TEST1"; +} + +fun test2(h: Holder, doReturn: Int): String { + doCall_2 ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + h + ) + + return "TEST2"; +} + +fun box(): String { + var h = Holder() + val test10 = test1(h, 0) + if (test10 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OF_FINALLY1, DO_CALL_1_FINALLY") return "test10: ${test10}, holder: ${h.value}" + + h = Holder() + val test11 = test1(h, 1) + if (test11 != "TEST1" || h.value != "LOCAL, OF_FINALLY1, DO_CALL_1_FINALLY") return "test11: ${test11}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h, 0) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OF_FINALLY1, OF_FINALLY1_FINALLY, DO_CALL_1_FINALLY") return "test20: ${test2}, holder: ${h.value}" + + h = Holder() + val test21 = test2(h, 1) + if (test21 != "TEST2" || h.value != "LOCAL, OF_FINALLY1, OF_FINALLY1_FINALLY, DO_CALL_1_FINALLY") return "test21: ${test21}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturn.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturn.kt new file mode 100644 index 00000000000..a57aa8087e6 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturn.kt @@ -0,0 +1,67 @@ +// FILE: 1.kt + +package test + +public class Holder { + public var value: String = "" +} + +public inline fun doCall2_2(block: () -> R, res: R, h: Holder): R { + return doCall2_1(block, { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, res, h) +} + +public inline fun doCall2_1(block: () -> R, exception: (e: Exception) -> Unit, res: R, h: Holder): R { + return doCall2(block, exception, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, res) +} + +public inline fun doCall2(block: () -> R, exception: (e: Exception) -> Unit, finallyBlock: () -> Unit, res: R): R { + try { + return block() + } + catch (e: Exception) { + exception(e) + } + finally { + finallyBlock() + } + return res +} + +// FILE: 2.kt + +import test.* + + +fun test0(h: Holder, throwException: Boolean): Int { + val localResult = doCall2_2 ( + { + h.value += "OK_NONLOCAL" + if (throwException) { + throw RuntimeException() + } + return 1 + }, + "FAIL", + h + ) + + return -1; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h, true) + if (test0 != -1 || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test0(h, false) + if (test1 != 1 || h.value != "OK_NONLOCAL, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex.kt new file mode 100644 index 00000000000..7baefdcce3b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex.kt @@ -0,0 +1,71 @@ +// FILE: 1.kt + +package test + +public class Holder { + public var value: String = "" +} + +public inline fun doCall2_2(block: () -> R, res: R, h: Holder): R { + return doCall2_1(block, { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, res, h) +} + +public inline fun doCall2_1(block: () -> R, exception: (e: Exception) -> Unit, res: R, h: Holder): R { + return doCall2(block, exception, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, res, h) +} + +public inline fun doCall2(block: () -> R, exception: (e: Exception) -> Unit, finallyBlock: () -> Unit, res: R, h: Holder): R { + try { + try { + return block() + } + catch (e: Exception) { + exception(e) + } + finally { + finallyBlock() + } + } finally { + h.value += ", DO_CALL_2_FINALLY" + } + return res +} + +// FILE: 2.kt + +import test.* + + +fun test0(h: Holder, throwException: Boolean): Int { + val localResult = doCall2_2 ( + { + h.value += "OK_NONLOCAL" + if (throwException) { + throw RuntimeException() + } + return 1 + }, + "FAIL", + h + ) + + return -1; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h, true) + if (test0 != -1 || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY, DO_CALL_2_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test0(h, false) + if (test1 != 1 || h.value != "OK_NONLOCAL, OK_FINALLY, DO_CALL_2_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex2.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex2.kt new file mode 100644 index 00000000000..5f930d23e92 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex2.kt @@ -0,0 +1,79 @@ +// FILE: 1.kt + +package test + +public class Holder { + public var value: String = "" +} + +public inline fun doCall2_2(block: () -> R, res: R, h: Holder): R { + try { + return doCall2_1(block, { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, res, h) + } finally{ + h.value += ", DO_CALL_2_2_FINALLY" + } +} + +public inline fun doCall2_1(block: () -> R, exception: (e: Exception) -> Unit, res: R, h: Holder): R { + try { + return doCall2(block, exception, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, res, h) + } finally { + h.value += ", DO_CALL_2_1_FINALLY" + } +} + +public inline fun doCall2(block: () -> R, exception: (e: Exception) -> Unit, finallyBlock: () -> Unit, res: R, h: Holder): R { + try { + try { + return block() + } + catch (e: Exception) { + exception(e) + } + finally { + finallyBlock() + } + } finally { + h.value += ", DO_CALL_2_FINALLY" + } + return res +} + +// FILE: 2.kt + +import test.* + + +fun test0(h: Holder, throwException: Boolean): Int { + val localResult = doCall2_2 ( + { + h.value += "OK_NONLOCAL" + if (throwException) { + throw RuntimeException() + } + return 1 + }, + "FAIL", + h + ) + + return -1; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h, true) + if (test0 != -1 || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY, DO_CALL_2_FINALLY, DO_CALL_2_1_FINALLY, DO_CALL_2_2_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test0(h, false) + if (test1 != 1 || h.value != "OK_NONLOCAL, OK_FINALLY, DO_CALL_2_FINALLY, DO_CALL_2_1_FINALLY, DO_CALL_2_2_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex3.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex3.kt new file mode 100644 index 00000000000..90cfc9e8785 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex3.kt @@ -0,0 +1,81 @@ +// FILE: 1.kt + +package test + +public class Holder { + public var value: String = "" +} + +public inline fun doCall2_2(block: () -> String, res: String, h: Holder): String { + try { + return doCall2_1(block, { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, res, h) + } finally{ + h.value += ", DO_CALL_2_2_FINALLY" + } +} + +public inline fun doCall2_1(block: () -> R, exception: (e: Exception) -> Unit, res: R, h: Holder): R { + try { + return doCall2(block, exception, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, res, h) + } finally { + h.value += ", DO_CALL_2_1_FINALLY" + } +} + +public inline fun doCall2(block: () -> R, exception: (e: Exception) -> Unit, finallyBlock: () -> Unit, res: R, h: Holder): R { + try { + try { + return block() + } + catch (e: Exception) { + exception(e) + } + finally { + finallyBlock() + } + } finally { + h.value += ", DO_CALL_2_FINALLY" + } + return res +} + +// FILE: 2.kt + +import test.* + + +fun test0(h: Holder, throwException: Boolean): Int { + val localResult = doCall2_2 ( + { + h.value += "OK_NONLOCAL" + if (throwException) { + throw RuntimeException() + } + return 1 + }, + "FAIL", + h + ) + + return -1; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h, true) + if (test0 != -1 || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY, DO_CALL_2_FINALLY, DO_CALL_2_1_FINALLY, DO_CALL_2_2_FINALLY") + return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test0(h, false) + if (test1 != 1 || h.value != "OK_NONLOCAL, OK_FINALLY, DO_CALL_2_FINALLY, DO_CALL_2_1_FINALLY, DO_CALL_2_2_FINALLY") + return "test1: ${test1}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex4.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex4.kt new file mode 100644 index 00000000000..3b507b537bd --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/intReturnComplex4.kt @@ -0,0 +1,85 @@ +// FILE: 1.kt + +package test + +public class Holder { + public var value: String = "" +} + +public inline fun doCall2_2(block: () -> String, res: String, h: Holder): String { + try { + return doCall2_1(block, { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, res, h) + } finally{ + h.value += ", DO_CALL_2_2_FINALLY" + } +} + +public inline fun doCall2_1(block: () -> R, exception: (e: Exception) -> Unit, res: R, h: Holder): R { + try { + return doCall2(block, exception, { + try { + h.value += ", OK_FINALLY" + "OK_FINALLY" + } finally { + h.value += ", OK_FINALLY_NESTED" + } + }, res, h) + } finally { + h.value += ", DO_CALL_2_1_FINALLY" + } +} + +public inline fun doCall2(block: () -> R, exception: (e: Exception) -> Unit, finallyBlock: () -> Unit, res: R, h: Holder): R { + try { + try { + return block() + } + catch (e: Exception) { + exception(e) + } + finally { + finallyBlock() + } + } finally { + h.value += ", DO_CALL_2_FINALLY" + } + return res +} + +// FILE: 2.kt + +import test.* + + +fun test0(h: Holder, throwException: Boolean): Int { + val localResult = doCall2_2 ( + { + h.value += "OK_NONLOCAL" + if (throwException) { + throw RuntimeException() + } + return 1 + }, + "FAIL", + h + ) + + return -1; +} + + +fun box(): String { + var h = Holder() + val test0 = test0(h, true) + + if (test0 != -1 || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY, OK_FINALLY_NESTED, DO_CALL_2_FINALLY, DO_CALL_2_1_FINALLY, DO_CALL_2_2_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test0(h, false) + if (test1 != 1 || h.value != "OK_NONLOCAL, OK_FINALLY, OK_FINALLY_NESTED, DO_CALL_2_FINALLY, DO_CALL_2_1_FINALLY, DO_CALL_2_2_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/nestedLambda.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/nestedLambda.kt new file mode 100644 index 00000000000..c6ad7820683 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/chained/nestedLambda.kt @@ -0,0 +1,86 @@ +// FILE: 1.kt + +package test + +class Holder { + var value: String = "" +} + +inline fun doCall(block: ()-> R, h: Holder) : R { + try { + return block() + } finally { + h.value += ", in doCall finally" + } +} + +// FILE: 2.kt + +import test.* + +val FINALLY_CHAIN = "in local finally, in doCall finally, in external finally, in doCall finally, in global finally" + +fun test1(holder: Holder, p: Int): String { + holder.value = "start" + return test2(holder) { i -> + if (p == i) { + return "call $i" + } + } +} + +inline fun test2(holder: Holder, l: (s: Int) -> Unit): String { + try { + l(0) + var externalResult = doCall (ext@ { + l(1) + try { + l(2) + val internalResult = doCall (int@ { + l(3) + try { + l(4) + return "fail" + } + finally { + holder.value += ", in local finally" + } + }, holder) + } + finally { + holder.value += ", in external finally" + } + }, holder) + + return "fail" + } + finally { + holder.value += ", in global finally" + } +} + +fun box(): String { + var holder = Holder() + + var test1 = test1(holder, 0) + if (holder.value != "start, in global finally" || test1 != "call 0") return "test1: ${test1}, finally = ${holder.value}" + + test1 = test1(holder, 1) + if (holder.value != "start, in doCall finally, in global finally" || test1 != "call 1") + return "test2: ${test1}, finally = ${holder.value}" + + test1 = test1(holder, 2) + if (holder.value != "start, in external finally, in doCall finally, in global finally" || test1 != "call 2") + return "test3: ${test1}, finally = ${holder.value}" + + + test1 = test1(holder, 3) + if (holder.value != "start, in doCall finally, in external finally, in doCall finally, in global finally" || test1 != "call 3") + return "test4: ${test1}, finally = ${holder.value}" + + test1 = test1(holder, 4) + if (holder.value != "start, in local finally, in doCall finally, in external finally, in doCall finally, in global finally" || test1 != "call 4") + return "test5: ${test1}, finally = ${holder.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/complex.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/complex.kt new file mode 100644 index 00000000000..583f141128c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/complex.kt @@ -0,0 +1,114 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, finallyLambda: ()-> Unit) : R { + try { + return block() + } finally { + finallyLambda() + } +} + +// FILE: 2.kt + +import test.* +import Kind.* + +enum class Kind { + LOCAL, + EXTERNAL, + GLOBAL +} + +class Holder { + var value: String = "" +} + +val FINALLY_CHAIN = "in local finally, in declaration local finally, in external finally, in declaration external finally, in global finally" + +class Internal(val value: String) + +class External(val value: String) + +class Global(val value: String) + +fun test1(intKind: Kind, extKind: Kind, holder: Holder): Global { + holder.value = "" + try { + var externalResult = doCall (ext@ { + + try { + val internalResult = doCall (int@ { + try { + if (intKind == Kind.GLOBAL) { + return@test1 Global("internal -> global") + } + else if (intKind == EXTERNAL) { + return@ext External("internal -> external") + } + return@int Internal("internal -> local") + } + finally { + holder.value += "in local finally" + } + }, { + holder.value += ", in declaration local finally" + }) + if (extKind == GLOBAL || extKind == EXTERNAL) { + return Global("external -> global") + } + + External(internalResult.value + ": external -> local"); + + } + finally { + holder.value += ", in external finally" + } + }, { + holder.value += ", in declaration external finally" + }) + + return Global(externalResult.value + ": exit") + } + finally { + holder.value += ", in global finally" + } + + +} + +fun box(): String { + var holder = Holder() + + var test1 = test1(LOCAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> local: external -> local: exit") return "test1: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test2: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, LOCAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test3: ${test1}, finally = ${holder.value}" + + + test1 = test1(LOCAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "external -> global") return "test4: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test5: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, EXTERNAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test6: ${test1}, finally = ${holder.value}" + + + test1 = test1(LOCAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "external -> global") return "test7: ${test1}, finally = ${holder.value}" + + test1 = test1(EXTERNAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> external: exit") return "test8: ${test1}, finally = ${holder.value}" + + test1 = test1(GLOBAL, GLOBAL, holder).value + if (holder.value != FINALLY_CHAIN || test1 != "internal -> global") return "test9: ${test1}, finally = ${holder.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturn.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturn.kt new file mode 100644 index 00000000000..08e00e74ef2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturn.kt @@ -0,0 +1,157 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> Int, exception: (e: Exception)-> Unit, finallyBlock: ()-> Int, res: Int = -111) : Int { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + return res +} + +public inline fun doCall2(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R, res: R) : R { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder): Int { + val localResult = doCall2 ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return 1 + }, + { + h.value += ", OK_EXCEPTION" + return 2 + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAILT") + + return -1; +} + +fun test1(h: Holder): Int { + val localResult = doCall2 ( + { + h.value += "OK_NONLOCAL" + return 1 + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAIL") + + return -1; +} + +fun test2(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + 2 + }, + { + h.value += ", OK_FINALLY" + 3 + }) + + return "" + localResult; +} + +fun test3(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + 3 + }) + + return "" + localResult; +} + +fun test4(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "" + localResult; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h) + if (test0 != 2 || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test1(h) + if (test1 != 1 || h.value != "OK_NONLOCAL, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_EXCEPTION" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturnComplex.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturnComplex.kt new file mode 100644 index 00000000000..4392856e92c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/intReturnComplex.kt @@ -0,0 +1,171 @@ +// FILE: 1.kt + +package test + +public class Holder { + public var value: String = "" +} + +public inline fun doCall(block: ()-> Int, exception: (e: Exception)-> Unit, finallyBlock: ()-> Int, h : Holder, res: Int = -111) : Int { + try { + try { + return block() + } + catch (e: Exception) { + exception(e) + } + finally { + finallyBlock() + } + } finally { + h.value += ", INLINE_CALL_FINALLY" + } + return res +} + +public inline fun doCall2(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R, res: R, h : Holder) : R { + try { + try { + return block() + } + catch (e: Exception) { + exception(e) + } + finally { + finallyBlock() + } + } finally { + h.value += ", INLINE_CALL_FINALLY" + } + return res +} + +// FILE: 2.kt + +import test.* + + + +fun test0(h: Holder): Int { + val localResult = doCall2 ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return 1 + }, + { + h.value += ", OK_EXCEPTION" + return 2 + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAIL", h) + + return -1; +} + +fun test1(h: Holder): Int { + val localResult = doCall2 ( + { + h.value += "OK_NONLOCAL" + return 1 + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAIL", h) + + return -1; +} + +fun test2(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + 2 + }, + { + h.value += ", OK_FINALLY" + 3 + }, h) + + return "" + localResult; +} + +fun test3(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + 3 + }, h) + + return "" + localResult; +} + +fun test4(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }, h) + + return "" + localResult; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h) + if (test0 != 2 || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY, INLINE_CALL_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test1(h) + if (test1 != 1 || h.value != "OK_NONLOCAL, OK_FINALLY, INLINE_CALL_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY, INLINE_CALL_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_EXCEPTION" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY, INLINE_CALL_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY, INLINE_CALL_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/longReturn.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/longReturn.kt new file mode 100644 index 00000000000..eabc5ffccfc --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/longReturn.kt @@ -0,0 +1,157 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> Long, exception: (e: Exception)-> Unit, finallyBlock: ()-> Long, res: Long = -1111.toLong()) : Long { + try { + block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + return res +} + +public inline fun doCall2(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R, res: R) : R { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder): Long { + val localResult = doCall2 ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return 1.toLong() + }, + { + h.value += ", OK_EXCEPTION" + return 2.toLong() + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAIL") + + return -1.toLong() +} + +fun test1(h: Holder): Long { + val localResult = doCall2 ( + { + h.value += "OK_NONLOCAL" + return 1.toLong() + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAIL") + + return -1.toLong() +} + +fun test2(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + 2.toLong() + }, + { + h.value += ", OK_FINALLY" + 3.toLong() + }) + + return "" + localResult; +} + +fun test3(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + 3.toLong() + }) + + return "" + localResult; +} + +fun test4(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "" + localResult; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h) + if (test0 != 2.toLong() || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test1 = test1(h) + if (test1 != 1.toLong() || h.value != "OK_NONLOCAL, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_EXCEPTION" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/nested.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/nested.kt new file mode 100644 index 00000000000..d6beb7eaf5c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/nested.kt @@ -0,0 +1,132 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> Unit, finallyBlock1: ()-> Unit, finallyBlock2: ()-> Unit) { + try { + try { + block() + } + finally { + finallyBlock1() + } + } finally { + finallyBlock2() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder): String { + doCall ( + { + h.value += "OK_LOCAL" + }, + { + h.value += ", OK_FINALLY1" + }, + { + h.value += ", OK_FINALLY2" + } + ) + + return "LOCAL"; +} + + +fun test2(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_FINALLY1" + }, + { + h.value += ", OK_FINALLY2" + }) + + return "FAIL"; +} + +fun test3(h: Holder): String { + doCall ( + { + h.value += "OK_LOCAL" + }, + { + h.value += ", OK_FINALLY1" + return "OK_FINALLY1" + }, + { + h.value += ", OK_FINALLY2" + }) + + return "FAIL"; +} + +fun test4(h: Holder): String { + doCall ( + { + h.value += "OK_LOCAL" + }, + { + h.value += ", OK_FINALLY1" + }, + { + h.value += ", OK_FINALLY2" + return "OK_FINALLY2" + }) + + return "FAIL"; +} + +fun test5(h: Holder): String { + doCall ( + { + h.value += "OK_LOCAL" + }, + { + h.value += ", OK_FINALLY1" + return "OK_FINALLY1" + }, + { + h.value += ", OK_FINALLY2" + return "OK_FINALLY2" + }) + + return "FAIL"; +} + +fun box(): String { + var h = Holder() + val test1 = test1(h) + if (test1 != "LOCAL" || h.value != "OK_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY1, OK_FINALLY2") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_FINALLY1" || h.value != "OK_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_FINALLY2" || h.value != "OK_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test4: ${test4}, holder: ${h.value}" + + h = Holder() + val test5 = test5(h) + if (test5 != "OK_FINALLY2" || h.value != "OK_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test5: ${test5}, holder: ${h.value}" + + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInFinally.kt new file mode 100644 index 00000000000..11e1e00e537 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInFinally.kt @@ -0,0 +1,94 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, finallyBlock: ()-> R) : R { + try { + block() + } finally { + return finallyBlock() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + "OK_LOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + + +fun test2(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + "OK_NONLOCAL" + }, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + + return localResult; +} + +fun test3(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + +fun test4(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + + return localResult; +} + + +fun box(): String { + var h = Holder() + val test1 = test1(h) + if (test1 != "OK_FINALLY" || h.value != "OK_LOCAL, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTry.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTry.kt new file mode 100644 index 00000000000..9c81bdedc71 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTry.kt @@ -0,0 +1,72 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, finallyBlock: ()-> Unit) : R { + try { + return block() + } finally { + finallyBlock() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder): String { + val localResult = doCall ({ + return "OK_NONLOCAL" + }, { + h.value = "OK_FINALLY" + }) + + return "FAIL"; +} + + +fun test2(h: Holder): String { + val localResult = doCall (lambda@ { + h.value += "OK_LOCAL" + return@lambda "OK_LOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + +fun test3(h: Holder): String { + val localResult = doCall ({ + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + + +fun box(): String { + var h = Holder() + val test1 = test1(h) + if (test1 != "OK_NONLOCAL" || h.value != "OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_FINALLY" || h.value != "OK_LOCAL, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTryAndFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTryAndFinally.kt new file mode 100644 index 00000000000..5e943261554 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/returnInTryAndFinally.kt @@ -0,0 +1,95 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, finallyBlock: ()-> R) : R { + try { + return block() + } finally { + return finallyBlock() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + "OK_LOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + + +fun test2(h: Holder): String { + val localResult = doCall ( + lambda@ { + h.value += "OK_NONLOCAL" + return@lambda "OK_NONLOCAL" + }, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + + return localResult; +} + +fun test3(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + +fun test4(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, + l2@ { + h.value += ", OK_FINALLY" + return@l2 "OK_FINALLY" + }) + + return localResult; +} + + +fun box(): String { + var h = Holder() + val test1 = test1(h) + if (test1 != "OK_FINALLY" || h.value != "OK_LOCAL, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTry.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTry.kt new file mode 100644 index 00000000000..4dd77538331 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTry.kt @@ -0,0 +1,90 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> Unit, block2: ()-> Unit, finallyBlock2: ()-> Unit) { + try { + block() + block2() + } finally { + finallyBlock2() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder, doReturn: Int): String { + doCall ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + { + h.value += ", OK_NONLOCAL2" + return "OK_NONLOCAL2" + }, + { + h.value += ", OK_FINALLY" + } + ) + + return "LOCAL"; +} + + +fun test2(h: Holder, doReturn: Int): String { + doCall ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + { + try { + h.value += ", OK_NONLOCAL2" + return "OK_NONLOCAL2" + } finally { + h.value += ", OK_NONLOCAL2_FINALLY" + } + }, + { + h.value += ", OK_FINALLY" + } + ) + + return "FAIL"; +} + +fun box(): String { + var h = Holder() + val test10 = test1(h, 0) + if (test10 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test10: ${test10}, holder: ${h.value}" + + h = Holder() + val test11 = test1(h, 1) + if (test11 != "OK_NONLOCAL2" || h.value != "LOCAL, OK_NONLOCAL2, OK_FINALLY") return "test11: ${test11}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h, 0) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test20: ${test2}, holder: ${h.value}" + + h = Holder() + val test21 = test2(h, 1) + if (test21 != "OK_NONLOCAL2" || h.value != "LOCAL, OK_NONLOCAL2, OK_NONLOCAL2_FINALLY, OK_FINALLY") return "test21: ${test21}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTryComplex.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTryComplex.kt new file mode 100644 index 00000000000..49acaa70b09 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/severalInTryComplex.kt @@ -0,0 +1,96 @@ +// FILE: 1.kt + +package test + +class Holder { + var value: String = "" +} + +inline fun doCall(block: ()-> Unit, block2: ()-> Unit, finallyBlock2: ()-> Unit, res: Holder) { + try { + try { + block() + block2() + } + finally { + finallyBlock2() + } + } finally { + res.value += ", DO_CALL_EXT_FINALLY" + } +} + +// FILE: 2.kt + +import test.* + +fun test1(h: Holder, doReturn: Int): String { + doCall ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + { + h.value += ", OK_NONLOCAL2" + return "OK_NONLOCAL2" + }, + { + h.value += ", OK_FINALLY" + }, + h + ) + + return "LOCAL"; +} + + +fun test2(h: Holder, doReturn: Int): String { + doCall ( + { + if (doReturn < 1) { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + } + h.value += "LOCAL" + "OK_LOCAL" + }, + { + try { + h.value += ", OK_NONLOCAL2" + return "OK_NONLOCAL2" + } finally { + h.value += ", OK_NONLOCAL2_FINALLY" + } + }, + { + h.value += ", OK_FINALLY" + }, + h + ) + + return "FAIL"; +} + +fun box(): String { + var h = Holder() + val test10 = test1(h, 0) + if (test10 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY, DO_CALL_EXT_FINALLY") return "test10: ${test10}, holder: ${h.value}" + + h = Holder() + val test11 = test1(h, 1) + if (test11 != "OK_NONLOCAL2" || h.value != "LOCAL, OK_NONLOCAL2, OK_FINALLY, DO_CALL_EXT_FINALLY") return "test11: ${test11}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h, 0) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY, DO_CALL_EXT_FINALLY") return "test20: ${test2}, holder: ${h.value}" + + h = Holder() + val test21 = test2(h, 1) + if (test21 != "OK_NONLOCAL2" || h.value != "LOCAL, OK_NONLOCAL2, OK_NONLOCAL2_FINALLY, OK_FINALLY, DO_CALL_EXT_FINALLY") return "test21: ${test21}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidInlineFun.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidInlineFun.kt new file mode 100644 index 00000000000..924358c4462 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidInlineFun.kt @@ -0,0 +1,72 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, finallyBlock: ()-> Unit) { + try { + block() + } finally { + finallyBlock() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder): String { + doCall ({ + return "OK_NONLOCAL" + }, { + h.value = "OK_FINALLY" + }) + + return "FAIL"; +} + + +fun test2(h: Holder): String { + doCall ({ + h.value += "OK_LOCAL" + "OK_LOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + +fun test3(h: Holder): String { + doCall ({ + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }) + + return "FAIL"; +} + + +fun box(): String { + var h = Holder() + val test1 = test1(h) + if (test1 != "OK_NONLOCAL" || h.value != "OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_FINALLY" || h.value != "OK_LOCAL, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidNonLocal.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidNonLocal.kt new file mode 100644 index 00000000000..3cb24c35d54 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/declSite/voidNonLocal.kt @@ -0,0 +1,71 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, finallyBlock: ()-> Unit) : R { + try { + return block() + } finally { + finallyBlock() + } +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + + +fun test1(h: Holder) { + val localResult = doCall ( + { + h.value = "OK_NONLOCAL" + return + }, { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) +} + + +fun test2(h: Holder) { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + "OK_LOCAL" + }, { + h.value += ", OK_FINALLY" + return + }) +} + +fun test3(h: Holder) { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return + }, { + h.value += ", OK_FINALLY" + return + }) +} + + +fun box(): String { + var h = Holder() + test1(h) + if (h.value != "OK_NONLOCAL, OK_FINALLY") return "test1 holder: ${h.value}" + + h = Holder() + test2(h) + if (h.value != "OK_LOCAL, OK_FINALLY") return "test2 holder: ${h.value}" + + h = Holder() + test3(h) + if (h.value != "OK_NONLOCAL, OK_FINALLY") return "test3 holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/break.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/break.kt new file mode 100644 index 00000000000..71b18f6ca38 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/break.kt @@ -0,0 +1,95 @@ +// FILE: 1.kt + +package test + +public inline fun doCallAlwaysBreak(block: (i: Int)-> Int) : Int { + var res = 0; + for (i in 1..10) { + try { + block(i) + } finally { + break; + } + } + return res +} + +public val z: Boolean = true + +public inline fun doCallAlwaysBreak2(block: (i: Int)-> Int) : Int { + var res = 0; + for (i in 1..10) { + try { + res = block(i) + } finally { + if (z) + break + } + } + return res +} + +//public inline fun doCallAlwaysBreak2(block: (i: Int)-> Int) : Int { +// var res = 0; +// for (i in 1..10) { +// try { +// res += block(i) +// } finally { +// if (z) +// break +// } +// } +// return res +//} + +// FILE: 2.kt + +import test.* + +fun test1(): Int { + var s = 0 + doCallAlwaysBreak { + s += it*it + s + } + return s; +} + +fun test11(): Int { + return doCallAlwaysBreak { + return -100 + } +} + +fun test2(): Int { + return doCallAlwaysBreak2 { + return -100 + } +} + +fun test22(): Int { + var s = 0 + doCallAlwaysBreak { + s += it*it + s + } + return s; +} + + + +fun box(): String { + val test1 = test1() + if (test1 != 1) return "test1: ${test1}" + + val test11 = test11() + if (test11 != 0) return "test11: ${test11}" + + val test2 = test2() + if (test2 != 0) return "test2: ${test2}" + + val test22 = test22() + if (test22 != 1) return "test22: ${test22}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/continue.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/continue.kt new file mode 100644 index 00000000000..6a7bd5071f3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/continue.kt @@ -0,0 +1,94 @@ +// FILE: 1.kt + +package test + +public inline fun doCallAlwaysBreak(block: (i: Int)-> Int) : Int { + var res = 0; + for (i in 1..10) { + try { + res = block(i) + } finally { + continue; + } + } + return res +} + +public val z: Boolean = true + +public inline fun doCallAlwaysBreak2(block: (i: Int)-> Int) : Int { + var res = 0; + for (i in 1..10) { + try { + res = block(i) + } finally { + if (z) + continue + } + } + return res +} + +//public inline fun doCallAlwaysBreak2(block: (i: Int)-> Int) : Int { +// var res = 0; +// for (i in 1..10) { +// try { +// res += block(i) +// } finally { +// if (z) +// continue +// } +// } +// return res +//} + +// FILE: 2.kt + +import test.* + +fun test1(): Int { + var s = 0 + doCallAlwaysBreak { + s += it*it + s + } + return s; +} + +fun test11(): Int { + return doCallAlwaysBreak { + return -100 + } +} + +fun test2(): Int { + return doCallAlwaysBreak2 { + return -100 + } +} + +fun test22(): Int { + var s = 0 + doCallAlwaysBreak { + s += it*it + s + } + return s; +} + + +fun box(): String { + val test1 = test1() + if (test1 != 385) return "test1: ${test1}" + + val test11 = test11() + if (test11 != 0) return "test11: ${test11}" + + val test2 = test2() + if (test2 != 0) return "test2: ${test2}" + + val test22 = test22() + if (test22 != 385) return "test22: ${test22}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/exceptionInFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/exceptionInFinally.kt new file mode 100644 index 00000000000..24699b9bfd0 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/exceptionInFinally.kt @@ -0,0 +1,82 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +public interface MCloseable { + public open fun close() +} + +public inline fun T.muse(block: (T) -> R): R { + try { + return block(this) + } finally { + this.close() + } +} + +// FILE: 2.kt + +import test.* +import kotlin.test.assertEquals +import kotlin.test.assertTrue +import kotlin.test.fail + +class MyException(message: String) : Exception(message) + +class Holder(var value: String) { + operator fun plusAssign(s: String?) { + value += s + if (s != "closed") { + value += "->" + } + } +} + +class Test() : MCloseable { + + val status = Holder("") + + private fun jobFun() { + status += "called" + } + + fun nonLocalWithExceptionAndFinally(): Holder { + muse { + try { + jobFun() + throw MyException("exception") + } + catch (e: MyException) { + status += e.message + return status + } + finally { + status += "finally" + } + } + return Holder("fail") + } + + override fun close() { + status += "closed" + throw MyException("error") + } +} + +fun box() : String { + assertError(1, "called->exception->finally->closed") { + nonLocalWithExceptionAndFinally() + } + + return "OK" +} + +inline fun assertError(index: Int, expected: String, l: Test.()->Unit) { + val testLocal = Test() + try { + testLocal.l() + fail("fail $index: no error") + } catch (e: Exception) { + assertEquals(expected, testLocal.status.value, "failed on $index") + } +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/forInFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/forInFinally.kt new file mode 100644 index 00000000000..1aba6d9892e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/forInFinally.kt @@ -0,0 +1,60 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: (i: Int)-> Int, fblock: (i: Int)-> Unit) : Int { + var res = 0; + for (i in 1..10) { + try { + res = block(i) + } finally { + for (i in 1..10) { + fblock(i) + } + } + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: Int = 0 +} + +fun test1(): Int { + var s = 0 + doCall ( + { + s += it * it + s + }, + { + s += it + } + ) + return s; +} + +fun test11(h: Holder): Int { + return doCall ( + { + return -100 + }, { + h.value += it + }) +} + + +fun box(): String { + val test1 = test1() + if (test1 != 935) return "test1: ${test1}" + + val h = Holder() + val test11 = test11(h) + if (test11 != -100 && h.value != 55) return "test11: ${test11} holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternal.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternal.kt new file mode 100644 index 00000000000..1458ab657d3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternal.kt @@ -0,0 +1,154 @@ +// FILE: 1.kt + +package test + +public class Exception1(message: String) : RuntimeException(message) + +public class Exception2(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, exception: (e: Exception)-> Unit, exception2: (e: Exception)-> Unit, finallyBlock: ()-> String, res: String = "Fail") : String { + try { + block() + } catch (e: Exception1) { + exception(e) + } catch (e: Exception2) { + exception2(e) + } finally { + finallyBlock() + } + return res +} + +public inline fun doCall2(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R) : R { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + throw RuntimeException("fail") +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + try { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + "OK_FINALLY" + } finally { + h.value += ", OK_FINALLY_INNER" + } + }) + + return localResult; + } + catch (e: RuntimeException) { + if (e.message != "FINALLY") { + return "FAIL in exception: " + e.message + } + else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + +fun test01(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + throw Exception1("1") + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + try { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + } catch(e: RuntimeException) { + h.value += ", OK_CATCHED" + } finally { + h.value += ", OK_FINALLY_INNER" + } + "OK_FINALLY" + }) + + return localResult; +} + +fun test02(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + throw Exception2("1") + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + try { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + } catch(e: RuntimeException) { + h.value += ", OK_CATCHED" + } finally { + h.value += ", OK_FINALLY_INNER" + } + "OK_FINALLY" + }, "OK") + + return localResult; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h) + if (test0 != "CATCHED_EXCEPTION" || h.value != "OK_NON_LOCAL, OK_FINALLY, OK_FINALLY_INNER") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test01 = test01(h) + if (test01 != "OK_EXCEPTION1" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY, OK_CATCHED, OK_FINALLY_INNER") return "test01: ${test01}, holder: ${h.value}" + + h = Holder() + val test02 = test02(h) + if (test02 != "OK_EXCEPTION2" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY, OK_CATCHED, OK_FINALLY_INNER") return "test02: ${test02}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalNested.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalNested.kt new file mode 100644 index 00000000000..e97c1169949 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalNested.kt @@ -0,0 +1,152 @@ +// FILE: 1.kt + +package test + +public class Exception1(message: String) : RuntimeException(message) + +public class Exception2(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, exception1: (e: Exception)-> Unit, exception2: (e: Exception)-> Unit, finallyBlock: ()-> String, + exception3: (e: Exception)-> Unit, exception4: (e: Exception)-> Unit, finallyBlock2: ()-> String, res: String = "Fail") : String { + try { + try { + block() + } + catch (e: Exception1) { + exception1(e) + } + catch (e: Exception2) { + exception2(e) + } + finally { + finallyBlock() + } + } catch (e: Exception1) { + exception3(e) + } + catch (e: Exception2) { + exception4(e) + } + finally { + finallyBlock2() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder, throwEx1: Boolean, throwEx2: Boolean, throwEx3: Boolean = false, throwEx4: Boolean = false): String { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + if (throwEx1) { + throw Exception1("1") + } + if (throwEx2) { + throw Exception2("1") + } + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + if (throwEx3) { + throw Exception1("3_1") + } + if (throwEx4) { + throw Exception2("4_1") + } + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + if (throwEx3) { + throw Exception1("3_2") + } + if (throwEx4) { + throw Exception2("4_2") + } + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY1" + try { + try { + throw Exception1("fail") + } + catch (e: RuntimeException) { + h.value += ", CATCHED1" + } + finally { + h.value += ", ADDITIONAL" + } + } finally { + h.value += " FINALLY1" + } + "OK_FINALLY1" + }, + { + h.value += ", OK_EXCEPTION3" + return "OK_EXCEPTION3" + }, + { + h.value += ", OK_EXCEPTION4" + return "OK_EXCEPTION4" + }, + { + h.value += ", OK_FINALLY2" + try { + try { + throw Exception1("fail2") + } catch (e: RuntimeException) { + h.value += ", CATCHED2" + } finally { + h.value += ", ADDITIONAL" + } + } finally { + h.value += " FINALLY2" + } + "OK_FINALLY2" + }) + + return localResult; + + return "FAIL"; +} + +fun box(): String { + var h = Holder() + var test0 = test0(h, false, false) + if (test0 != "OK_NON_LOCAL" || h.value != "OK_NON_LOCAL, OK_FINALLY1, CATCHED1, ADDITIONAL FINALLY1, OK_FINALLY2, CATCHED2, ADDITIONAL FINALLY2") return "test0_1: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, false) + if (test0 != "OK_EXCEPTION1" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY1, CATCHED1, ADDITIONAL FINALLY1, OK_FINALLY2, CATCHED2, ADDITIONAL FINALLY2") return "test0_2: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, true) + if (test0 != "OK_EXCEPTION2" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY1, CATCHED1, ADDITIONAL FINALLY1, OK_FINALLY2, CATCHED2, ADDITIONAL FINALLY2") return "test0_3: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, false, true, false) + if (test0 != "OK_EXCEPTION3" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY1, CATCHED1, ADDITIONAL FINALLY1, OK_EXCEPTION3, OK_FINALLY2, CATCHED2, ADDITIONAL FINALLY2") return "test0_4: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, false, false, true) + if (test0 != "OK_EXCEPTION4" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY1, CATCHED1, ADDITIONAL FINALLY1, OK_EXCEPTION4, OK_FINALLY2, CATCHED2, ADDITIONAL FINALLY2") return "test0_5: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, true, true, false) + if (test0 != "OK_EXCEPTION3" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY1, CATCHED1, ADDITIONAL FINALLY1, OK_EXCEPTION3, OK_FINALLY2, CATCHED2, ADDITIONAL FINALLY2") return "test0_6: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, true, false, true) + if (test0 != "OK_EXCEPTION4" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY1, CATCHED1, ADDITIONAL FINALLY1, OK_EXCEPTION4, OK_FINALLY2, CATCHED2, ADDITIONAL FINALLY2") return "test0_7: ${test0}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalSimple.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalSimple.kt new file mode 100644 index 00000000000..61ba24ab136 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/innerAndExternalSimple.kt @@ -0,0 +1,55 @@ +// FILE: 1.kt + +package test + +public class Exception1(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, exception: (e: Exception)-> Unit, finallyBlock: ()-> String, res: String = "Fail") : String { + try { + block() + } catch (e: Exception1) { + exception(e) + } finally { + finallyBlock() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test01(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + throw Exception1("1") + "OK_NON_LOCAL_RES" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + try { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + } catch(e: RuntimeException) { + h.value += ", OK_CATCHED" + } + "OK_FINALLY_RES" + }, "FAIL") + + return localResult; +} +fun box(): String { + var h = Holder() + val test01 = test01(h) + if (test01 != "OK_EXCEPTION1" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY, OK_CATCHED") return "test01: ${test01}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nested.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nested.kt new file mode 100644 index 00000000000..e6278519e69 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nested.kt @@ -0,0 +1,128 @@ +// FILE: 1.kt + +package test + +public class Exception1(message: String) : RuntimeException(message) + +public class Exception2(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, exception1: (e: Exception)-> Unit, exception2: (e: Exception)-> Unit, finallyBlock: ()-> String, + exception3: (e: Exception)-> Unit, exception4: (e: Exception)-> Unit, finallyBlock2: ()-> String, res: String = "Fail") : String { + try { + try { + block() + } + catch (e: Exception1) { + exception1(e) + } + catch (e: Exception2) { + exception2(e) + } + finally { + finallyBlock() + } + } catch (e: Exception1) { + exception3(e) + } + catch (e: Exception2) { + exception4(e) + } + finally { + finallyBlock2() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder, throwEx1: Boolean, throwEx2: Boolean, throwEx3: Boolean = false, throwEx4: Boolean = false): String { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + if (throwEx1) { + throw Exception1("1") + } + if (throwEx2) { + throw Exception2("1") + } + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + if (throwEx3) { + throw Exception1("3_1") + } + if (throwEx4) { + throw Exception2("4_1") + } + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + if (throwEx3) { + throw Exception1("3_2") + } + if (throwEx4) { + throw Exception2("4_2") + } + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY1" + "OK_FINALLY1" + }, + { + h.value += ", OK_EXCEPTION3" + return "OK_EXCEPTION3" + }, + { + h.value += ", OK_EXCEPTION4" + return "OK_EXCEPTION4" + }, + { + h.value += ", OK_FINALLY2" + "OK_FINALLY2" + }) + + return localResult; + + return "FAIL"; +} + +fun box(): String { + var h = Holder() + var test0 = test0(h, false, false) + if (test0 != "OK_NON_LOCAL" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_1: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, false) + if (test0 != "OK_EXCEPTION1" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY1, OK_FINALLY2") return "test0_2: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, true) + if (test0 != "OK_EXCEPTION2" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY1, OK_FINALLY2") return "test0_3: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, false, true, false) + if (test0 != "OK_EXCEPTION3" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY1, OK_EXCEPTION3, OK_FINALLY2") return "test0_4: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, false, false, true) + if (test0 != "OK_EXCEPTION4" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY1, OK_EXCEPTION4, OK_FINALLY2") return "test0_5: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, true, true, false) + if (test0 != "OK_EXCEPTION3" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY1, OK_EXCEPTION3, OK_FINALLY2") return "test0_6: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, true, false, true) + if (test0 != "OK_EXCEPTION4" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY1, OK_EXCEPTION4, OK_FINALLY2") return "test0_7: ${test0}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturns.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturns.kt new file mode 100644 index 00000000000..6539f8bc4bc --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturns.kt @@ -0,0 +1,165 @@ +// FILE: 1.kt + +package test + +public class Exception1(message: String) : RuntimeException(message) + +public class Exception2(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, exception1: (e: Exception)-> Unit, finallyBlock: ()-> String, + exception3: (e: Exception)-> Unit, finallyBlock2: ()-> String, res: String = "Fail") : String { + try { + try { + block() + } + catch (e: Exception1) { + exception1(e) + } + finally { + if (true) { + finallyBlock() + /*External finally would be injected here*/ + return res + "_INNER_FINALLY" + } + } + } catch (e: Exception2) { + exception3(e) + } + finally { + finallyBlock2() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0( + h: Holder, + throwExceptionInTry: Boolean, + throwInternalEx2: Boolean = false, + throwInternalFinEx1: Boolean = false, + throwInternalFinEx2: Boolean = false, + throwExternalFinEx1: Boolean = false, + throwExternalFinEx2: Boolean = false, + res: String = "Fail" +): String { + try { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + if (throwExceptionInTry) { + throw Exception1("1") + } + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_INTERNAL_EXCEPTION1" + if (throwInternalEx2) { + throw Exception2("2_1") + } + return "OK_INTERNAL_EXCEPTION1" + }, + { + h.value += ", OK_FINALLY1" + if (throwInternalFinEx1) { + throw Exception1("EXCEPTION_IN_INTERNAL_FINALLY") + } + if (throwInternalFinEx2) { + throw Exception2("EXCEPTION222_IN_INTERNAL_FINALLY") + } + "OK_FINALLY1" + }, + { + h.value += ", OK_EXTERNAL_EXCEPTION2" + return "OK_EXTERNAL_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY2" + if (throwExternalFinEx1) { + throw Exception1("EXCEPTION_IN_EXTERNAL_FINALLY") + } + if (throwExternalFinEx2) { + throw Exception2("EXCEPTION222_IN_EXTERNAL_FINALLY") + } + "OK_FINALLY2" + }, res) + return localResult; + } catch(e: Exception1) { + return e.message!! + } catch(e: Exception2) { + return e.message!! + } +} + +fun box(): String { + var h = Holder() + var test0 = test0(h, false, throwExternalFinEx1 = false, res = "OK") + if (test0 != "OK_INNER_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_1: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, throwExternalFinEx1 = true, res = "OK") + if (test0 != "EXCEPTION_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_2: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, throwExternalFinEx2 = true, res = "OK") + if (test0 != "EXCEPTION222_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_4: ${test0}, holder: ${h.value}" + + + + + h = Holder() + test0 = test0(h, true, throwExternalFinEx1 = true, res = "OK") + if (test0 != "EXCEPTION_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_INTERNAL_EXCEPTION1, OK_FINALLY1, OK_FINALLY2") return "test0_3: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, throwInternalEx2 = true, throwExternalFinEx1 = true, res = "OK") + if (test0 != "EXCEPTION_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_INTERNAL_EXCEPTION1, OK_FINALLY1, OK_FINALLY2") return "test0_5: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, throwInternalEx2 = true, throwExternalFinEx2 = true, res = "OK") + if (test0 != "EXCEPTION222_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_INTERNAL_EXCEPTION1, OK_FINALLY1, OK_FINALLY2") return "test0_6: ${test0}, holder: ${h.value}" + + + + h = Holder() + test0 = test0(h, false, throwInternalFinEx1 = true) + if (test0 != "EXCEPTION_IN_INTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_7: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, throwInternalFinEx1 = true, throwExternalFinEx2 = true) + if (test0 != "EXCEPTION222_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_71: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, throwInternalFinEx2 = true) + if (test0 != "OK_EXTERNAL_EXCEPTION2" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_EXTERNAL_EXCEPTION2, OK_FINALLY2") return "test0_8: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, false, throwInternalFinEx2 = true, throwExternalFinEx2 = true) + if (test0 != "EXCEPTION222_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_EXTERNAL_EXCEPTION2, OK_FINALLY2") return "test0_81: ${test0}, holder: ${h.value}" + + + + h = Holder() + test0 = test0(h, true, throwInternalFinEx1 = true) + if (test0 != "EXCEPTION_IN_INTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_INTERNAL_EXCEPTION1, OK_FINALLY1, OK_FINALLY2") return "test0_9: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, throwInternalFinEx1 = true, throwExternalFinEx2 = true) + if (test0 != "EXCEPTION222_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_INTERNAL_EXCEPTION1, OK_FINALLY1, OK_FINALLY2") return "test0_10: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, throwInternalFinEx2 = true) + if (test0 != "OK_EXTERNAL_EXCEPTION2" || h.value != "OK_NON_LOCAL, OK_INTERNAL_EXCEPTION1, OK_FINALLY1, OK_EXTERNAL_EXCEPTION2, OK_FINALLY2") return "test0_11: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, true, throwInternalFinEx2 = true, throwExternalFinEx2 = true) + if (test0 != "EXCEPTION222_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_INTERNAL_EXCEPTION1, OK_FINALLY1, OK_EXTERNAL_EXCEPTION2, OK_FINALLY2") return "test0_12: ${test0}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturnsSimple.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturnsSimple.kt new file mode 100644 index 00000000000..91cf72d4f98 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/nestedWithReturnsSimple.kt @@ -0,0 +1,76 @@ +// FILE: 1.kt + +package test + +public class Exception1(message: String) : RuntimeException(message) + +public class Exception2(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, finallyBlock: ()-> String, + finallyBlock2: ()-> String, res: String = "Fail") : String { + try { + try { + block() + } + finally { + if (true) { + finallyBlock() + /*External finally would be injected here*/ + return res + "_INNER_FINALLY" + } + } + } finally { + finallyBlock2() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0( + h: Holder, + throwExternalFinEx1: Boolean = false, + res: String = "Fail" +): String { + try { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_FINALLY1" + "OK_FINALLY1" + }, + { + h.value += ", OK_FINALLY2" + if (throwExternalFinEx1) { + throw Exception1("EXCEPTION_IN_EXTERNAL_FINALLY") + } + "OK_FINALLY2" + }, res) + return localResult; + } catch(e: Exception1) { + return e.message!! + } catch(e: Exception2) { + return e.message!! + } +} + +fun box(): String { + var h = Holder() + var test0 = test0(h, res = "OK") + if (test0 != "OK_INNER_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_1: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, throwExternalFinEx1 = true, res = "OK") + if (test0 != "EXCEPTION_IN_EXTERNAL_FINALLY" || h.value != "OK_NON_LOCAL, OK_FINALLY1, OK_FINALLY2") return "test0_2: ${test0}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/noFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/noFinally.kt new file mode 100644 index 00000000000..81b70d478dd --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/noFinally.kt @@ -0,0 +1,120 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> String, exception: (e: Exception)-> Unit) : String { + try { + return block() + } catch (e: Exception) { + exception(e) + } + return "Fail in doCall" +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test2(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }) + + return localResult; +} + +fun test3(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }) + + return localResult; +} + +fun test4(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }) + + return localResult; +} + +fun test5(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + if (true) { + throw RuntimeException("EXCEPTION") + } + h.value += "fail" + + return "OK_EXCEPTION" + }) + + return localResult; + } catch (e: RuntimeException) { + if (e.message != "EXCEPTION") { + return "FAIL in exception: " + e.message + } else { + return "CATCHED_EXCEPTION" + } + } +} + +fun box(): String { + var h = Holder() + val test2 = test2(h) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_EXCEPTION" || h.value != "OK_NONLOCAL, OK_EXCEPTION") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_EXCEPTION" || h.value != "OK_NONLOCAL, OK_EXCEPTION") return "test4: ${test4}, holder: ${h.value}" + + h = Holder() + val test5 = test5(h) + if (test5 != "CATCHED_EXCEPTION" || h.value != "OK_NONLOCAL, OK_EXCEPTION") return "test5: ${test5}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/severalCatchClause.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/severalCatchClause.kt new file mode 100644 index 00000000000..ab9be4bd138 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/severalCatchClause.kt @@ -0,0 +1,312 @@ +// FILE: 1.kt + +package test + +public class Exception1(message: String) : RuntimeException(message) + +public class Exception2(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, exception: (e: Exception)-> Unit, exception2: (e: Exception)-> Unit, finallyBlock: ()-> String, res: String = "Fail") : String { + try { + block() + } catch (e: Exception1) { + exception(e) + } catch (e: Exception2) { + exception2(e) + } finally { + finallyBlock() + } + return res +} + +public inline fun doCall2(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R) : R { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + throw RuntimeException("fail") +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + "OK_FINALLY" + }) + + return localResult; + } + catch (e: RuntimeException) { + if (e.message != "FINALLY") { + return "FAIL in exception: " + e.message + } + else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + +fun test01(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + throw Exception1("1") + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + + return localResult; +} + +fun test02(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + throw Exception2("1") + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + + return localResult; +} + +fun test1(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw Exception1("FAIL") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + "OK_FINALLY" + }, "Fail") + } + catch (e: RuntimeException) { + if (e.message != "FINALLY") { + return "FAIL in exception: " + e.message + } + else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + +fun test2(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw Exception1("1") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + throw Exception2("2") + "OK_EXCEPTION" + }, + { + h.value += ", OK_EXCEPTION2" + "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + return localResult; + } + catch (e: Exception2) { + return "CATCHED_EXCEPTION" + } + + return "Fail"; +} + +fun test3(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw Exception2("FAIL") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION1" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + "OK_FINALLY" + }, "Fail") + } + catch (e: RuntimeException) { + if (e.message != "FINALLY") { + return "FAIL in exception: " + e.message + } + else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + +fun test4(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw Exception2("1") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION1" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_EXCEPTION2" + throw Exception1("1") + "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + return localResult; + } + catch (e: Exception1) { + return "CATCHED_EXCEPTION" + } + + return "Fail"; +} + + +fun test5(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw Exception2("FAIL") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + throw RuntimeException("FAIL_EX") + "OK_EXCEPTION" + }, + { + h.value += ", OK_EXCEPTION2" + return "OK_EXCEPTION2" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + + + return localResult; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h) + if (test0 != "CATCHED_EXCEPTION" || h.value != "OK_NON_LOCAL, OK_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + h = Holder() + val test01 = test01(h) + if (test01 != "OK_EXCEPTION1" || h.value != "OK_NON_LOCAL, OK_EXCEPTION1, OK_FINALLY") return "test01: ${test01}, holder: ${h.value}" + + h = Holder() + val test02 = test02(h) + if (test02 != "OK_EXCEPTION2" || h.value != "OK_NON_LOCAL, OK_EXCEPTION2, OK_FINALLY") return "test02: ${test02}, holder: ${h.value}" + + + h = Holder() + val test1 = test1(h) + if (test1 != "CATCHED_EXCEPTION" || h.value != "OK_LOCAL, OK_EXCEPTION1, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "CATCHED_EXCEPTION" || h.value != "OK_LOCAL, OK_EXCEPTION1, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + + h = Holder() + val test3 = test3(h) + if (test3 != "CATCHED_EXCEPTION" || h.value != "OK_LOCAL, OK_EXCEPTION2, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "CATCHED_EXCEPTION" || h.value != "OK_LOCAL, OK_EXCEPTION2, OK_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + h = Holder() + val test5 = test5(h) + if (test5 != "OK_EXCEPTION2" || h.value != "OK_LOCAL, OK_EXCEPTION2, OK_FINALLY") return "test5: ${test5}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/simpleThrow.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/simpleThrow.kt new file mode 100644 index 00000000000..c0c910216b8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/simpleThrow.kt @@ -0,0 +1,213 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R, res: R) : R { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + return res +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "Fail") + + return localResult; +} + +fun test1(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw RuntimeException() + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "OK") + + return localResult; +} + +fun test2(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAIL") + + return localResult; +} + +fun test3(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, "FAIL") + + return localResult; +} + +fun test4(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }, "FAIL") + + return localResult; +} + +fun test5(h: Holder): String { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + if (true) { + throw RuntimeException() + } + h.value += "fail" + + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + return "OK_FINALLY" + }, "FAIL") + + return localResult; +} + + +fun test6(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_NONLOCAL" + if (true) { + throw RuntimeException() + } + h.value += "fail" + return "OK_NONLOCAL" + }, + { + h.value += ", OK_EXCEPTION" + if (true) { + throw RuntimeException() + } + h.value += "fail" + + return "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }, + "FAIL1") + } catch (e: Exception) { + return "OK" + } + + return "FAIL2"; +} + +fun box(): String { + var h = Holder() + val test0 = test0(h) + if (test0 != "OK_LOCAL" || h.value != "OK_LOCAL, OK_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + + h = Holder() + val test1 = test1(h) + if (test1 != "OK" || h.value != "OK_LOCAL, OK_EXCEPTION, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_NONLOCAL" || h.value != "OK_NONLOCAL, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + h = Holder() + val test3 = test3(h) + if (test3 != "OK_EXCEPTION" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + h = Holder() + val test5 = test5(h) + if (test5 != "OK_FINALLY" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test5: ${test5}, holder: ${h.value}" + + h = Holder() + val test6 = test6(h) + if (test6 != "OK" || h.value != "OK_NONLOCAL, OK_EXCEPTION, OK_FINALLY") return "test6: ${test6}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/synchonized.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/synchonized.kt new file mode 100644 index 00000000000..40ecb0de2d4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/synchonized.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt + +package test + +public inline fun mysynchronized(lock: Any, block: () -> R): R { + try { + return block() + } + finally { + //do nothing + 1 + } +} + +// FILE: 2.kt + +import test.* + +fun call(): String { + return nonLocal() +} + +inline fun nonLocal(): String { + mysynchronized("__LOCK__") { + return "nonLocal" + } + return "local" +} + +fun box(): String { + val call = call() + if (call != "nonLocal") return "fail $call" + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/throwInFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/throwInFinally.kt new file mode 100644 index 00000000000..5ec79bdf657 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/throwInFinally.kt @@ -0,0 +1,195 @@ +// FILE: 1.kt + +package test + +public inline fun doCall(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R) : R { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + return finallyBlock() + } +} + +public inline fun doCall2(block: ()-> R, exception: (e: Exception)-> Unit, finallyBlock: ()-> R) : R { + try { + return block() + } catch (e: Exception) { + exception(e) + } finally { + finallyBlock() + } + throw RuntimeException("fail") +} + +// FILE: 2.kt + +import test.* + +class Holder { + var value: String = "" +} + +fun test0(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_NON_LOCAL" + return "OK_NON_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + "OK_FINALLY" + }) + + return localResult; + } catch (e: RuntimeException) { + if (e.message != "FINALLY") { + return "FAIL in exception: " + e.message + } else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + +fun test1(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw RuntimeException("FAIL") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + "OK_FINALLY" + }) + } catch (e: RuntimeException) { + if (e.message != "FINALLY") { + return "FAIL in exception: " + e.message + } else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + +fun test2(h: Holder): String { + + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw RuntimeException() + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + + return localResult; +} + +fun test3(h: Holder): String { + try { + val localResult = doCall ( + { + h.value += "OK_LOCAL" + throw RuntimeException("FAIL") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + throw RuntimeException("FAIL_EX") + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + throw RuntimeException("FINALLY") + "OK_FINALLY" + }) + } catch (e: RuntimeException) { + if (e.message != "FINALLY") { + return "FAIL in exception: " + e.message + } else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + +fun test4(h: Holder): String { + try { + val localResult = doCall2 ( + { + h.value += "OK_LOCAL" + throw RuntimeException("FAIL") + "OK_LOCAL" + }, + { + h.value += ", OK_EXCEPTION" + throw RuntimeException("EXCEPTION") + "OK_EXCEPTION" + }, + { + h.value += ", OK_FINALLY" + "OK_FINALLY" + }) + } catch (e: RuntimeException) { + if (e.message != "EXCEPTION") { + return "FAIL in exception: " + e.message + } else { + return "CATCHED_EXCEPTION" + } + } + + return "FAIL"; +} + + + + +fun box(): String { + var h = Holder() + val test0 = test0(h) + if (test0 != "CATCHED_EXCEPTION" || h.value != "OK_NON_LOCAL, OK_FINALLY") return "test0: ${test0}, holder: ${h.value}" + + + h = Holder() + val test1 = test1(h) + if (test1 != "CATCHED_EXCEPTION" || h.value != "OK_LOCAL, OK_EXCEPTION, OK_FINALLY") return "test1: ${test1}, holder: ${h.value}" + + h = Holder() + val test2 = test2(h) + if (test2 != "OK_FINALLY" || h.value != "OK_LOCAL, OK_EXCEPTION, OK_FINALLY") return "test2: ${test2}, holder: ${h.value}" + + + h = Holder() + val test3 = test3(h) + if (test3 != "CATCHED_EXCEPTION" || h.value != "OK_LOCAL, OK_EXCEPTION, OK_FINALLY") return "test3: ${test3}, holder: ${h.value}" + + h = Holder() + val test4 = test4(h) + if (test4 != "CATCHED_EXCEPTION" || h.value != "OK_LOCAL, OK_EXCEPTION, OK_FINALLY") return "test4: ${test4}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/tryCatchInFinally.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/tryCatchInFinally.kt new file mode 100644 index 00000000000..f263407c3d2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/exceptionTable/tryCatchInFinally.kt @@ -0,0 +1,90 @@ +// FILE: 1.kt + +package test + +public class Holder(var value: String = "") { + + operator fun plusAssign(s: String?) { + if (value.length != 0) { + value += " -> " + } + value += s + } + + override fun toString(): String { + return value + } + +} + +public class Exception1(message: String) : RuntimeException(message) + +public class Exception2(message: String) : RuntimeException(message) + +public inline fun doCall(block: ()-> String, finallyBlock: ()-> String, + tryBlock2: ()-> String, catchBlock2: ()-> String, res: String = "Fail") : String { + try { + block() + } + finally { + finallyBlock() + try { + tryBlock2() + } catch (e: Exception) { + catchBlock2() + } + } + return res +} + +// FILE: 2.kt + +import test.* + + +fun test0( + h: Holder, + throwExternalFinEx1: Boolean = false, + res: String = "Fail" +): String { + try { + val localResult = doCall ( + { + h += "OK_NON_LOCAL" + return "OK_NON_LOCAL" + }, + { + h += "OK_FINALLY1" + "OK_FINALLY1" + }, + { + h += "innerTryBlock" + if (throwExternalFinEx1) { + throw Exception1("EXCEPTION_IN_EXTERNAL_FINALLY") + } + "innerTryBlock" + }, + { + h += "CATCHBLOCK" + "CATCHBLOCK" + }, + res) + return localResult; + } catch(e: Exception1) { + return e.message!! + } catch(e: Exception2) { + return e.message!! + } +} + +fun box(): String { + var h = Holder() + var test0 = test0(h, res = "OK") + if (test0 != "OK_NON_LOCAL" || h.value != "OK_NON_LOCAL -> OK_FINALLY1 -> innerTryBlock") return "test0_1: ${test0}, holder: ${h.value}" + + h = Holder() + test0 = test0(h, throwExternalFinEx1 = true, res = "OK") + if (test0 != "OK_NON_LOCAL" || h.value != "OK_NON_LOCAL -> OK_FINALLY1 -> innerTryBlock -> CATCHBLOCK") return "test0_2: ${test0}, holder: ${h.value}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt6956.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt6956.kt new file mode 100644 index 00000000000..230950ad26c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt6956.kt @@ -0,0 +1,36 @@ +// FILE: 1.kt + +package test + +inline fun baz(x: Int) {} + +inline fun foo(action: () -> T): T { + baz(0) + try { + return action() + } finally { + baz(1) + } +} + +// FILE: 2.kt + +import test.* + +inline fun bar(arg: String, action: () -> T) { + try { + action() + } finally { + arg.length + } +} + +fun box(): String { + foo() { + bar("") { + return "OK" + } + } + + return "fail" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt7273.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt7273.kt new file mode 100644 index 00000000000..c5fa8d206bb --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/kt7273.kt @@ -0,0 +1,23 @@ +// FILE: 1.kt + +inline fun test(s: () -> R): R { + var b = false + try { + return s() + } finally { + !b + } +} + +// FILE: 2.kt + +fun box(): String { + try { + test { + return@box "OK" + } + } finally { + } + + return "fail" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/nonLocalReturnFromOuterLambda.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/nonLocalReturnFromOuterLambda.kt new file mode 100644 index 00000000000..90ad2de9c7c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/nonLocalReturnFromOuterLambda.kt @@ -0,0 +1,81 @@ +// FILE: 1.kt + +package test + +fun a(b: () -> String) : String { + return b() +} + +inline fun test(l: () -> String): String { + return l() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +import test.* + +fun test1(): String { + return a { + try { + test { + return@a "OK" + } + } + finally { + + } + } +} + +fun test2(): String { + + return test z@ { + try { + return@z "OK" + } + finally { + + } + } + +} + +fun test3(): String { + return test { + try { + return@test "OK" + } + finally { + + } + } +} + + +fun test4(): String { + return a z@ { + try { + test { + return@z "OK" + } + } + finally { + + } + } +} + + +fun box(): String { + if (test1() != "OK") return "fail 1: ${test1()}" + + if (test2() != "OK") return "fail 2: ${test2()}" + + if (test3() != "OK") return "fail 3: ${test3()}" + + if (test4() != "OK") return "fail 4: ${test4()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/variables/kt7792.kt b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/variables/kt7792.kt new file mode 100644 index 00000000000..8849e4c20a2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/nonLocalReturns/tryFinally/variables/kt7792.kt @@ -0,0 +1,59 @@ +// FILE: 1.kt + +package test + +inline fun mySynchronized(lock: Any, block: () -> R): R { + monitorCall(lock) + try { + return block() + } + finally { + monitorCall(lock) + } +} + +fun monitorCall(lock: Any) { + +} + +// FILE: 2.kt + +import test.* + +public class ClassA { + val LOCK = "__LOCK__" + + var result = "fail" + + fun test(name1: String?, name2: String, cond: Boolean) { + mySynchronized (LOCK) { + var name = name1 + + if (name == null) { + if (cond) { + result = "NLR" + name2 + return + } + + name = name2 + } + + result = name + name2 + + val length = name.length + } + } +} + +fun box(): String { + val classA = ClassA() + classA.test(null, "2", true) + if (classA.result != "NLR2") return "fail 1: ${classA.result}" + + classA.test(null, "K", false) + if (classA.result != "KK") return "fail 1: ${classA.result}" + + + classA.test("O", "K", false) + return classA.result +} diff --git a/backend.native/tests/external/codegen/boxInline/private/accessorForConst.kt b/backend.native/tests/external/codegen/boxInline/private/accessorForConst.kt new file mode 100644 index 00000000000..9d057efdda5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/accessorForConst.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt + +package test + +class IntentionsBundle { + companion object { + internal inline fun message(): String { + return KEY + BUNDLE + } + + private const val BUNDLE = "K" + protected const val KEY = "O" + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return IntentionsBundle.message() +} diff --git a/backend.native/tests/external/codegen/boxInline/private/accessorStability.kt b/backend.native/tests/external/codegen/boxInline/private/accessorStability.kt new file mode 100644 index 00000000000..152d6215a45 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/accessorStability.kt @@ -0,0 +1,29 @@ +// FILE: 1.kt + +package test + +fun call() = inlineFun2 { stub()} + +internal inline fun inlineFun2(p: () -> Unit): String { + p() + + return inlineFun { + test() + } +} + +private fun stub() = "fail" + +private fun test() = "OK" + +inline internal fun inlineFun(p: () -> String): String { + return p() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return call() +} diff --git a/backend.native/tests/external/codegen/boxInline/private/accessorStabilityInClass.kt b/backend.native/tests/external/codegen/boxInline/private/accessorStabilityInClass.kt new file mode 100644 index 00000000000..f57b2f26be4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/accessorStabilityInClass.kt @@ -0,0 +1,33 @@ +// FILE: 1.kt + +package test + +class A { + fun call() = inlineFun2 { stub() } + + internal inline fun inlineFun2(p: () -> Unit): String { + p() + + return inlineFun { + test() + } + } + + private fun stub() = "fail" + + private fun test() = "OK" + + + inline internal fun inlineFun(p: () -> String): String { + return p() + } + +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return A().call() +} diff --git a/backend.native/tests/external/codegen/boxInline/private/effectivePrivate.kt b/backend.native/tests/external/codegen/boxInline/private/effectivePrivate.kt new file mode 100644 index 00000000000..c177e30a453 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/effectivePrivate.kt @@ -0,0 +1,31 @@ +// FILE: 1.kt + +package test + +class Test { + private abstract class Base { + protected fun duplicate(s: String) = s + "K" + + protected inline fun doInline(block: () -> String): String { + return duplicate(block()) + } + } + + private class Extender: Base() { + fun doSomething(): String { + return doInline { "O" } + } + } + + fun run(): String { + return Extender().doSomething(); + } +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + return Test().run() +} diff --git a/backend.native/tests/external/codegen/boxInline/private/kt6453.kt b/backend.native/tests/external/codegen/boxInline/private/kt6453.kt new file mode 100644 index 00000000000..1714c3ebcbf --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/kt6453.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt + +package test + +class A() { + private val x = "OK" + internal inline fun foo(p: (String) -> Unit) { + p(x) + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var r = "fail" + A().foo { r = it } + return r +} diff --git a/backend.native/tests/external/codegen/boxInline/private/kt8094.kt b/backend.native/tests/external/codegen/boxInline/private/kt8094.kt new file mode 100644 index 00000000000..ef22ca47d34 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/kt8094.kt @@ -0,0 +1,23 @@ +// FILE: 1.kt + +package test + +object X { + private fun f() { } + + internal inline fun g(x: () -> Unit) { + x() + f() + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var r = "fail" + X.g { r = "OK" } + + return r; +} diff --git a/backend.native/tests/external/codegen/boxInline/private/kt8095.kt b/backend.native/tests/external/codegen/boxInline/private/kt8095.kt new file mode 100644 index 00000000000..3cd6ed10474 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/kt8095.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +class C(private val a : String) { + internal inline fun g(x: (s: String) -> Unit) { + x(a) + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var r = "fail" + C("OK").g { r = it } + return r +} diff --git a/backend.native/tests/external/codegen/boxInline/private/nestedInPrivateClass.kt b/backend.native/tests/external/codegen/boxInline/private/nestedInPrivateClass.kt new file mode 100644 index 00000000000..13bc819cd1a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/nestedInPrivateClass.kt @@ -0,0 +1,30 @@ +// FILE: 1.kt + +package test + +private class S public constructor() { + class Z { + fun a(): String { + return "K" + } + } +} +// This function exposes S.Z which is a class nested into a private class S (package-private in the byte code) +// It can be accessed outside the `test` package now that S.Z. is public in the byte code, but it may be changed later +internal inline fun call(s: () -> String): String { + return s() + test().a() +} + +private fun test(): S.Z { + return S.Z() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return call { + "O" + } +} diff --git a/backend.native/tests/external/codegen/boxInline/private/privateClass.kt b/backend.native/tests/external/codegen/boxInline/private/privateClass.kt new file mode 100644 index 00000000000..4ffa7890dda --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/privateClass.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +private class S { + fun a(): String { + return "K" + } +} + +// This function exposes S which is a private class (package-private in the byte code) +// It can be accessed outside the `test` package, which may lead to IllegalAccessError. +// This behavior may be changed later +internal inline fun call(s: () -> String): String { + val s = test() + return s() + test2(s) +} + +private fun test(): S { + return S() +} + +private fun test2(s: S): String { + return s.a() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return call { + "O" + } +} diff --git a/backend.native/tests/external/codegen/boxInline/private/privateClassExtensionLambda.kt b/backend.native/tests/external/codegen/boxInline/private/privateClassExtensionLambda.kt new file mode 100644 index 00000000000..03a5c694d58 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/privateClassExtensionLambda.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +private class S { + fun a(): String { + return "K" + } + + // This function exposes S which is a private class (package-private in the byte code) + // It can be accessed outside the `test` package, which may lead to IllegalAccessError. + // This behavior may be changed later + internal inline fun call(s: S.() -> String): String { + return call2(s) + } +} + +@Suppress("PRIVATE_CLASS_MEMBER_FROM_INLINE", "EXPOSED_PARAMETER_TYPE", "EXPOSED_RECEIVER_TYPE") +internal inline fun S.call2(s: S.() -> String): String { + return s() + a() +} + +internal fun call(): String { + return S().call { + "O" + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return call() +} diff --git a/backend.native/tests/external/codegen/boxInline/private/privateInInlineInMultiFileFacade.kt b/backend.native/tests/external/codegen/boxInline/private/privateInInlineInMultiFileFacade.kt new file mode 100644 index 00000000000..c62ead81dfc --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/privateInInlineInMultiFileFacade.kt @@ -0,0 +1,26 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME +@file:kotlin.jvm.JvmMultifileClass +@file:kotlin.jvm.JvmName("TestKt") +package test + +private val prop = "O" + +private fun test() = "K" + +inline internal fun inlineFun(): String { + return prop + test() +} + +class A () { + fun call() = inlineFun() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return A().call(); +} diff --git a/backend.native/tests/external/codegen/boxInline/private/privateInline.kt b/backend.native/tests/external/codegen/boxInline/private/privateInline.kt new file mode 100644 index 00000000000..13c632f2e17 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/private/privateInline.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt + +package test + +private val prop = "O" + +private fun test() = "K" + +inline internal fun inlineFun(): String { + return prop + test() +} + +class A () { + fun call() = inlineFun() +} + +// FILE: 2.kt + +import test.* +fun box(): String { + return A().call(); +} diff --git a/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndInc.kt b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndInc.kt new file mode 100644 index 00000000000..ca1708d8003 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndInc.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt +package test + +var result = 1 + +inline var z: Int + get() = result + set(value) { + result = value + } + +// FILE: 2.kt +import test.* + +fun box(): String { + z += 1 + if (z != 2) return "fail 1: $z" + + var p = z++ + if (result != 3) return "fail 2: $result" + if (p != 2) return "fail 3: $p" + + p = ++z + if (result != 4) return "fail 4: $result" + if (p != 4) return "fail 5: $p" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClass.kt b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClass.kt new file mode 100644 index 00000000000..036922d341c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClass.kt @@ -0,0 +1,32 @@ +// FILE: 1.kt +package test + +class A { + var result = 1 + + inline var z: Int + get() = result + set(value) { + result = value + } + +} + +// FILE: 2.kt +import test.* + +fun box(): String { + val a = A() + a.z += 1 + if (a.z != 2) return "fail 1: $a.z" + + var p = a.z++ + if (a.z != 3) return "fail 2: $a.z" + if (p != 2) return "fail 3: $p" + + p = ++a.z + if (a.z != 4) return "fail 4: $a.z" + if (p != 4) return "fail 5: $p" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClassViaConvention.kt b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClassViaConvention.kt new file mode 100644 index 00000000000..502ba5a9892 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncInClassViaConvention.kt @@ -0,0 +1,42 @@ +// FILE: 1.kt +package test + +class Test(var result: Int) + +class A { + var result = Test(1) + + inline var z: Test + get() = result + set(value) { + result = value + } +} + +operator fun Test.plus(p: Int): Test { + return Test(result + p) +} + +operator fun Test.inc(): Test { + return Test(result + 1) +} + +// FILE: 2.kt +import test.* + +fun box(): String { + val a = A() + a.z = Test(1) + a.z += 1 + if (a.result.result != 2) return "fail 1: ${a.result.result}" + + var p = a.z++ + if (a.result.result != 3) return "fail 2: ${a.result.result}" + if (p.result != 2) return "fail 3: ${p.result}" + + p = ++a.z + if (a.result.result != 4) return "fail 4: ${a.result.result}" + if (p.result != 4) return "fail 5: ${p.result}" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtension.kt b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtension.kt new file mode 100644 index 00000000000..9b8cda27406 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtension.kt @@ -0,0 +1,28 @@ +// FILE: 1.kt +package test + +var result = 1 + +inline var Int.z: Int + get() = result + set(value) { + result = value + this + } + +// FILE: 2.kt +import test.* + +fun box(): String { + 1.z += 0 + if (result != 2) return "fail 1: $result" + + var p = 1.z++ + if (result != 4) return "fail 2: $result" + if (p != 2) return "fail 3: $p" + + p = ++1.z + if (result != 6) return "fail 4: $result" + if (p != 6) return "fail 5: $p" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtensionInClass.kt b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtensionInClass.kt new file mode 100644 index 00000000000..1bc3daafeea --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncOnExtensionInClass.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt +package test + +class A { + var result = 1 + + inline var Int.z: Int + get() = result + set(value) { + result = value + this + } + +} + +// FILE: 2.kt +import test.* + + +fun box(): String { + with(A()) { + 1.z += 0 + if (1.z != 2) return "fail 1: $result" + + var p = 1.z++ + if (1.z != 4) return "fail 2: $result" + if (p != 2) return "fail 3: $p" + + p = ++1.z + if (1.z != 6) return "fail 4: $result" + if (p != 6) return "fail 5: $p" + } + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncViaConvention.kt b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncViaConvention.kt new file mode 100644 index 00000000000..b02eef4c149 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/augAssignmentAndIncViaConvention.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt +package test + +class Test(var result: Int) + +var result = Test(1) + +inline var z: Test + get() = result + set(value) { + result = value + } + +operator fun Test.plus(p: Int): Test { + return Test(result + p) +} + +operator fun Test.inc(): Test { + return Test(result + 1) +} + +// FILE: 2.kt +import test.* + +fun box(): String { + z = Test(1) + z += 1 + if (result.result != 2) return "fail 1: ${result.result}" + + var p = z++ + if (result.result != 3) return "fail 2: ${result.result}" + if (p.result != 2) return "fail 3: ${p.result}" + + p = ++z + if (result.result != 4) return "fail 4: ${result.result}" + if (p.result != 4) return "fail 5: ${p.result}" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/property.kt b/backend.native/tests/external/codegen/boxInline/property/property.kt new file mode 100644 index 00000000000..3265987a72b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/property.kt @@ -0,0 +1,162 @@ +// PROPERTY_NOT_USED: p1 +// PROPERTY_NOT_READ_FROM: p2 +// PROPERTY_NOT_WRITTEN_TO: p3 +// CHECK_NOT_CALLED: get_p4 +// CHECK_NOT_CALLED: set_p4 +// CHECK_NOT_CALLED: get_p5 +// CHECK_NOT_CALLED: set_p6 +// PROPERTY_NOT_USED: p7 +// PROPERTY_NOT_READ_FROM: p8 +// PROPERTY_NOT_WRITTEN_TO: p9 +// CHECK_NOT_CALLED: get_p10_s8ev3o$ +// CHECK_NOT_CALLED: set_p10_rksjo2$ +// CHECK_NOT_CALLED: get_p11_s8ev3o$ +// CHECK_NOT_CALLED: set_p12_rksjo2$ +// CHECK_NOT_CALLED: get_p13 +// CHECK_NOT_CALLED: set_p13 +// CHECK_NOT_CALLED: get_p14 +// CHECK_NOT_CALLED: set_p15 + +// FILE: 1.kt +package test + +var a = 0 + +inline var p1: Int + get() = a + 10000 + set(v: Int) { + a = v + 100 + } + +var p2: Int + inline get() = a + 20000 + set(v: Int) { + a = v + 200 + } + +var p3: Int + get() = a + 30000 + inline set(v: Int) { + a = v + 300 + } + +inline var Int.p4: Int + get() = this * 100 + a + 40000 + set(v: Int) { + a = this + v + 400 + } + +var Int.p5: Int + inline get() = this * 100 + a + 50000 + set(v: Int) { + a = this + v + 500 + } + +var Int.p6: Int + get() = this * 100 + a + 60000 + inline set(v: Int) { + a = this + v + 600 + } + +class A { + inline var p7: Int + get() = a + 70000 + set(v: Int) { + a = v + 700 + } + + var p8: Int + inline get() = a + 80000 + set(v: Int) { + a = v + 800 + } + + var p9: Int + get() = a + 90000 + inline set(v: Int) { + a = v + 900 + } + + inline var Int.p10: Int + get() = this * 100 + a + 100000 + set(v: Int) { + a = this + v + 1000 + } + + var Int.p11: Int + inline get() = this * 100 + a + 110000 + set(v: Int) { + a = this + v + 1100 + } + + var Int.p12: Int + get() = this * 100 + a + 120000 + inline set(v: Int) { + a = this + v + 1200 + } +} + +inline var A.p13: Int + get() = a + 130000 + set(v: Int) { + a = v + 1300 + } + +var A.p14: Int + inline get() = a + 140000 + set(v: Int) { + a = v + 1400 + } + +var A.p15: Int + get() = a + 150000 + inline set(v: Int) { + a = v + 1500 + } + +// FILE: 2.kt +import test.* + +fun box(): String { + p1 = 1 + if (p1 != 10101) return "test1: $p1" + p2 = 2 + if (p2 != 20202) return "test2: $p2" + p3 = 3 + if (p3 != 30303) return "test3: $p3" + + 4000000.p4 = 4 + if (4000000.p4 != 404040404) return "test4: ${4000000.p4}" + 5000000.p5 = 5 + if (5000000.p5 != 505050505) return "test5: ${5000000.p5}" + 6000000.p6 = 6 + if (6000000.p6 != 606060606) return "test6: ${6000000.p6}" + + + val a = A() + + a.p7 = 7 + if (a.p7 != 70707) return "test7: ${a.p7}" + a.p8 = 8 + if (a.p8 != 80808) return "test8: ${a.p8}" + a.p9 = 9 + if (a.p9 != 90909) return "test9: ${a.p9}" + + with (a) { + 10000000.p10 = 10 + if (10000000.p10 != 1010101010) return "test10: ${10000000.p10}" + 11000000.p11 = 11 + if (11000000.p11 != 1111111111) return "test11: ${11000000.p11}" + 12000000.p12 = 12 + if (12000000.p12 != 1212121212) return "test12: ${12000000.p12}" + } + + a.p13 = 13 + if (a.p13 != 131313) return "test13: ${a.p13}" + a.p14 = 14 + if (a.p14 != 141414) return "test14: ${a.p14}" + a.p15 = 15 + if (a.p15 != 151515) return "test15: ${a.p15}" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/reifiedVal.kt b/backend.native/tests/external/codegen/boxInline/property/reifiedVal.kt new file mode 100644 index 00000000000..8c325b6bdf8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/reifiedVal.kt @@ -0,0 +1,17 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_REFLECT +// FILE: 1.kt +package test + +inline val T.value: String + get() = T::class.simpleName!! + +// FILE: 2.kt +import test.* + +class OK + +fun box(): String { + return OK().value ?: "fail" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/reifiedVar.kt b/backend.native/tests/external/codegen/boxInline/property/reifiedVar.kt new file mode 100644 index 00000000000..ff387f94d19 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/reifiedVar.kt @@ -0,0 +1,27 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// WITH_REFLECT +// FILE: 1.kt +package test + +var bvalue: String = "" + +inline var T.value: String + get() = T::class.simpleName!! + bvalue + set(p: String) { + bvalue = p + } + +// FILE: 2.kt +import test.* + +class O + +fun box(): String { + val o = O() + val value1 = o.value + if (value1 != "O") return "fail 1: $value1" + + o.value = "K" + return o.value +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/simple.kt b/backend.native/tests/external/codegen/boxInline/property/simple.kt new file mode 100644 index 00000000000..c8a6f4dff07 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/simple.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +package test + +var value: Int = 0 + +inline var z: Int + get() = ++value + set(p: Int) { value = p } + +// FILE: 2.kt +import test.* + +fun box(): String { + val v = z + if (value != 1) return "fail 1: $value" + + z = v + 2 + + if (value != 3) return "fail 2: $value" + var p = z + + if (value != 4) return "fail 3: $value" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/property/simpleExtension.kt b/backend.native/tests/external/codegen/boxInline/property/simpleExtension.kt new file mode 100644 index 00000000000..5a9db92386c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/property/simpleExtension.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +package test + +var value: Int = 0 + +inline var Int.z: Int + get() = this + ++value + set(p: Int) { value = p + this} + +// FILE: 2.kt +import test.* + +fun box(): String { + val v = 11.z + if (v != 12) return "fail 1: $v" + + 11.z = v + 2 + + if (value != 25) return "fail 2: $value" + var p = 11.z + + if (p != 37) return "fail 3: $p" + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/reified/capturedLambda.kt b/backend.native/tests/external/codegen/boxInline/reified/capturedLambda.kt new file mode 100644 index 00000000000..baab480f19f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/capturedLambda.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun foo() = bar() {"OK"} +inline fun bar(crossinline y: () -> String) = { + null is E + run(y) +} + +public inline fun call(f: () -> T): T = f() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +val x: () -> String = foo() + +fun box(): String { + return x() +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/capturedLambda2.kt b/backend.native/tests/external/codegen/boxInline/reified/capturedLambda2.kt new file mode 100644 index 00000000000..f25f1ec8d22 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/capturedLambda2.kt @@ -0,0 +1,22 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +inline fun bar(crossinline tasksFactory: () -> T) = { + null is R + run(tasksFactory) +} + +public inline fun call(f: () -> T): T = f() + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +inline fun foo() = bar() {"OK"} + +fun box(): String { + return foo()() +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/checkCast/chain.kt b/backend.native/tests/external/codegen/boxInline/reified/checkCast/chain.kt new file mode 100644 index 00000000000..b9078dc2809 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/checkCast/chain.kt @@ -0,0 +1,51 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +class A +class B + +inline fun Any?.foo(): T = this as T + +inline fun Any?.foo2(): Y? = foo() + +inline fun Any?.foo3(): Z? = foo2() + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (null.foo3() != null) return "fail 1" + if (null.foo3() != null) return "fail 2" + + if (null.foo3() != null) return "fail 3" + if (null.foo3() != null) return "fail 4" + + val a = A() + + if (a.foo3() != a) return "fail 5" + if (a.foo3() != a) return "fail 6" + + if (a.foo3() != a) return "fail 7" + if (a.foo3() != a) return "fail 8" + + val b = B() + + failClassCast { b.foo3(); return "failTypeCast 9" } + failClassCast { b.foo3(); return "failTypeCast 10" } + + return "OK" +} + +inline fun failClassCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + throw e + } + catch (e: ClassCastException) { + + } +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/checkCast/kt8043.kt b/backend.native/tests/external/codegen/boxInline/reified/checkCast/kt8043.kt new file mode 100644 index 00000000000..7e4425eff4d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/checkCast/kt8043.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun T.castTo(): R = this as R + +// FILE: 2.kt + +import test.* + +fun case1(): Int = + null.castTo() + +fun box(): String { + failTypeCast { case1(); return "failTypeCast 9" } + return "OK" +} + +inline fun failTypeCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + + } +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/checkCast/maxStack.kt b/backend.native/tests/external/codegen/boxInline/reified/checkCast/maxStack.kt new file mode 100644 index 00000000000..6854bef017e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/checkCast/maxStack.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt + +package test + +class A + +fun call(a: String, b: String, c: String, d: String, e: String, f: Any) { + +} + +inline fun Any?.foo(): T { + call("1", "2", "3", "4", "5", this as T) + return this as T +} + +// FILE: 2.kt + +import test.* + + + +fun box(): String { + val a = A() + if (a.foo() != a) return "failTypeCast 5" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/checkCast/nullable.kt b/backend.native/tests/external/codegen/boxInline/reified/checkCast/nullable.kt new file mode 100644 index 00000000000..53bc4865eb4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/checkCast/nullable.kt @@ -0,0 +1,56 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +class A +class B + +inline fun Any?.foo(): T? = this as T? + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (null.foo() != null) return "failTypeCast 1" + if (null.foo() != null) return "failTypeCast 2" + + if (null.foo() != null) return "failTypeCast 3" + if (null.foo() != null) return "failTypeCast 4" + + val a = A() + + if (a.foo() != a) return "failTypeCast 5" + if (a.foo() != a) return "failTypeCast 6" + + if (a.foo() != a) return "failTypeCast 7" + if (a.foo() != a) return "failTypeCast 8" + + val b = B() + + failClassCast { b.foo(); return "failTypeCast 9" } + failClassCast { b.foo(); return "failTypeCast 10" } + + return "OK" +} + +inline fun failTypeCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + + } +} + +inline fun failClassCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + throw e + } + catch (e: ClassCastException) { + + } +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/checkCast/simple.kt b/backend.native/tests/external/codegen/boxInline/reified/checkCast/simple.kt new file mode 100644 index 00000000000..34008fd0b49 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/checkCast/simple.kt @@ -0,0 +1,56 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +class A +class B + +inline fun Any?.foo(): T = this as T + +// FILE: 2.kt + +import test.* + +fun box(): String { + failTypeCast { null.foo(); return "failTypeCast 1" } + if (null.foo() != null) return "failTypeCast 2" + + failTypeCast { null.foo(); return "failTypeCast 3" } + if (null.foo() != null) return "failTypeCast 4" + + val a = A() + + if (a.foo() != a) return "failTypeCast 5" + if (a.foo() != a) return "failTypeCast 6" + + if (a.foo() != a) return "failTypeCast 7" + if (a.foo() != a) return "failTypeCast 8" + + val b = B() + + failClassCast { b.foo(); return "failTypeCast 9" } + failClassCast { b.foo(); return "failTypeCast 10" } + + return "OK" +} + +inline fun failTypeCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + + } +} + +inline fun failClassCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + throw e + } + catch (e: ClassCastException) { + + } +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/checkCast/simpleSafe.kt b/backend.native/tests/external/codegen/boxInline/reified/checkCast/simpleSafe.kt new file mode 100644 index 00000000000..14a08dcf82d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/checkCast/simpleSafe.kt @@ -0,0 +1,56 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +class A +class B + +inline fun Any?.foo(): T? = this as? T + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (null.foo() != null) return "failTypeCast 1" + if (null.foo() != null) return "failTypeCast 2" + + if (null.foo() != null) return "failTypeCast 3" + if (null.foo() != null) return "failTypeCast 4" + + val a = A() + + if (a.foo() != a) return "failTypeCast 5" + if (a.foo() != a) return "failTypeCast 6" + + if (a.foo() != a) return "failTypeCast 7" + if (a.foo() != a) return "failTypeCast 8" + + val b = B() + + if (b.foo() != null) return "fail 9" + if (b.foo() != null) return "fail 10" + + return "OK" +} + +inline fun failTypeCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + + } +} + +inline fun failClassCast(s: () -> Unit) { + try { + s() + } + catch (e: TypeCastException) { + throw e + } + catch (e: ClassCastException) { + + } +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/isCheck/chain.kt b/backend.native/tests/external/codegen/boxInline/reified/isCheck/chain.kt new file mode 100644 index 00000000000..ae13d3c44ae --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/isCheck/chain.kt @@ -0,0 +1,39 @@ +// FILE: 1.kt + +package test + +class A +class B + +inline fun Any?.foo() = this is T + +inline fun Any?.foo2() = foo() + +inline fun Any?.foo3() = foo2() + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (null.foo3() != true) return "fail 1" + if (null.foo3() != true) return "fail 2" + + if (null.foo3() != true) return "fail 3" + if (null.foo3() != true) return "fail 4" + + val a = A() + + if (a.foo3() != true) return "fail 5" + if (a.foo3() != true) return "fail 6" + + if (a.foo3() != true) return "fail 7" + if (a.foo3() != true) return "fail 8" + + val b = B() + + if (b.foo3() != false) return "fail 9" + if (b.foo3() != false) return "fail 10" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/isCheck/nullable.kt b/backend.native/tests/external/codegen/boxInline/reified/isCheck/nullable.kt new file mode 100644 index 00000000000..e916456a979 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/isCheck/nullable.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +class A +class B + +inline fun Any?.foo() = this is T? + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (null.foo() != true) return "fail 1" + if (null.foo() != true) return "fail 2" + + if (null.foo() != true) return "fail 3" + if (null.foo() != true) return "fail 4" + + val a = A() + + if (a.foo() != true) return "fail 5" + if (a.foo() != true) return "fail 6" + + if (a.foo() != true) return "fail 7" + if (a.foo() != true) return "fail 8" + + val b = B() + + if (b.foo() != false) return "fail 9" + if (b.foo() != false) return "fail 10" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/isCheck/simple.kt b/backend.native/tests/external/codegen/boxInline/reified/isCheck/simple.kt new file mode 100644 index 00000000000..988f2538eaa --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/isCheck/simple.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +class A +class B + +inline fun Any?.foo() = this is T + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (null.foo() != false) return "fail 1" + if (null.foo() != true) return "fail 2" + + if (null.foo() != false) return "fail 3" + if (null.foo() != true) return "fail 4" + + val a = A() + + if (a.foo() != true) return "fail 5" + if (a.foo() != true) return "fail 6" + + if (a.foo() != true) return "fail 7" + if (a.foo() != true) return "fail 8" + + val b = B() + + if (b.foo() != false) return "fail 9" + if (b.foo() != false) return "fail 10" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt11081.kt b/backend.native/tests/external/codegen/boxInline/reified/kt11081.kt new file mode 100644 index 00000000000..f134d392523 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt11081.kt @@ -0,0 +1,44 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +open class TypeRef { + val type = target() + + private fun target(): String { + val thisClass = this.javaClass + val superClass = thisClass.genericSuperclass + + return superClass.toString() + } +} + + + +inline fun typeWithMessage(message: String = "Hello"): String { + val type = object : TypeRef() {} + val target = type.type + + return message + " " + target +} + +// FILE: 2.kt + +import test.* + +fun specifyOptionalArgument() = typeWithMessage>("Hello") + +fun useDefault() = typeWithMessage>() + +fun box(): String { + val specifyOptionalArgument = specifyOptionalArgument() + val useDefault = useDefault() + + if (useDefault != specifyOptionalArgument) return "fail: $useDefault != $specifyOptionalArgument" + + val type = typeWithMessage>("") + if (type != " test.TypeRef>") return "fail 2: $type" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt11677.kt b/backend.native/tests/external/codegen/boxInline/reified/kt11677.kt new file mode 100644 index 00000000000..78d0fa05a7e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt11677.kt @@ -0,0 +1,34 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// FULL_JDK +// WITH_REFLECT + +package test + +import java.lang.reflect.ParameterizedType +import java.lang.reflect.Type + +open class TypeLiteral { + val type: Type + get() = (javaClass.genericSuperclass as ParameterizedType).getActualTypeArguments()[0] +} + +// normal inline function works fine +inline fun typeLiteral(): TypeLiteral = object : TypeLiteral() {} + +// nested lambda loses reification of T +inline fun brokenTypeLiteral(): TypeLiteral = "".run { typeLiteral() } + +// FILE: 2.kt + +import test.* + +fun box(): String { + val type1 = typeLiteral>().type.toString() + if (type1 != "java.util.List") return "fail 1: $type1" + + val type2 = brokenTypeLiteral>().type.toString() + if (type2 != "java.util.List") return "fail 2: $type2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt6988.kt b/backend.native/tests/external/codegen/boxInline/reified/kt6988.kt new file mode 100644 index 00000000000..5175a8696e5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt6988.kt @@ -0,0 +1,27 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface Call { + fun call(): T +} + +public inline fun Any.inlineMeIfYouCan() : () -> Call = { + object : Call { + override fun call() = T::class.java.newInstance() + } +} + +// FILE: 2.kt + +import test.* + +public class A() + +fun box(): String { + val s = "yo".inlineMeIfYouCan()().call() + if (s !is A) return "fail" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt6988_2.kt b/backend.native/tests/external/codegen/boxInline/reified/kt6988_2.kt new file mode 100644 index 00000000000..78c9eca4e82 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt6988_2.kt @@ -0,0 +1,22 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + + +public inline fun Any.inlineMeIfYouCan() : () -> Runnable = { + object : Runnable { + override fun run() { + T::class.java.newInstance() + } + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + "yo".inlineMeIfYouCan()().run() + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt6990.kt b/backend.native/tests/external/codegen/boxInline/reified/kt6990.kt new file mode 100644 index 00000000000..ca0896cdc92 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt6990.kt @@ -0,0 +1,23 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +public inline fun inlineMeIfYouCan(): String? = + { + f { + T::class.java.getName() + } + }() + +inline fun f(x: () -> String) = x() + +// FILE: 2.kt + +import test.* + +class OK + +fun box(): String { + return inlineMeIfYouCan()!! +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt7017.kt b/backend.native/tests/external/codegen/boxInline/reified/kt7017.kt new file mode 100644 index 00000000000..c5bdcbad2af --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt7017.kt @@ -0,0 +1,23 @@ +// FILE: 1.kt + +package test + +inline fun test(x: Any): Boolean { + val x = object { + val y = x is T + } + + return x.y +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + if (!test("OK")) return "fail 1" + + if (test("OK")) return "fail 2" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt8047.kt b/backend.native/tests/external/codegen/boxInline/reified/kt8047.kt new file mode 100644 index 00000000000..78e6e09220c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt8047.kt @@ -0,0 +1,16 @@ +// FILE: 1.kt + +package test + +inline fun f(x : () -> Unit) { + object { init { arrayOf() } } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + f() {} + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt9637.kt b/backend.native/tests/external/codegen/boxInline/reified/kt9637.kt new file mode 100644 index 00000000000..67709afaf70 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt9637.kt @@ -0,0 +1,37 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +import java.util.* +import kotlin.reflect.KClass + +val valuesInjectFnc = HashMap, Any>() + +inline fun injectFnc(): Lazy> = lazy(LazyThreadSafetyMode.NONE) { + (valuesInjectFnc[T::class] ?: throw Exception("no inject ${T::class.simpleName}")) as Function0 +} + +inline fun registerFnc(noinline value: Function0) { + valuesInjectFnc[T::class] = value +} + +public class Box + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +class Boxer { + val box: () -> Box by injectFnc() +} + +fun box(): String { + val box = Box() + registerFnc { box } + val prop = Boxer().box + if (prop() != box) return "fail 1" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/kt9637_2.kt b/backend.native/tests/external/codegen/boxInline/reified/kt9637_2.kt new file mode 100644 index 00000000000..c73c2638623 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/kt9637_2.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt + +package test + +import kotlin.reflect.KClass + +inline fun injectFnc(): KClass = { + T::class +} () + +public class Box + +// FILE: 2.kt + +import test.* + +fun box(): String { + val boxClass = injectFnc() + if (boxClass != Box::class) return "fail 1" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/reified/packages.kt b/backend.native/tests/external/codegen/boxInline/reified/packages.kt new file mode 100644 index 00000000000..759f97496c3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/reified/packages.kt @@ -0,0 +1,40 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +public abstract class A + +inline fun foo1(): A { + return object : A() { + + } +} + +fun bar(x: T, block: (T) -> Boolean): Boolean = block(x) + +inline fun foo2(x: Any): Boolean { + return bar(x) { it is T } +} + +inline fun foo3(x: Any, y: Any): Boolean { + return bar(x) { it is T && y is T } +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + val x = foo1().javaClass.getGenericSuperclass()?.toString() + if (x != "test.A") return "fail 1: " + x + + if (!foo2("abc")) return "fail 2" + if (foo2("abc")) return "fail 3" + + if (!foo3("abc", "cde")) return "fail 4" + if (foo3("abc", 1)) return "fail 5" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/inProjectionSubstitution.kt b/backend.native/tests/external/codegen/boxInline/signature/inProjectionSubstitution.kt new file mode 100644 index 00000000000..4f99cb5b321 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/inProjectionSubstitution.kt @@ -0,0 +1,35 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface F { + fun test(p: T) : Int +} + +inline fun Array.copyOfRange1(crossinline toIndex: () -> Int) = + object : F { + override fun test(p: T): Int { + return toIndex() + } + } + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +import test.* +import java.util.* + +public fun Array.slice1() = copyOfRange1 { 1 } + +fun box(): String { + val comparable = arrayOf("123").slice1() + val method = comparable.javaClass.getMethod("test", Any::class.java) + val genericParameterTypes = method.genericParameterTypes + if (genericParameterTypes.size != 1) return "fail 1: ${genericParameterTypes.size}" + var name = (genericParameterTypes[0] as Class<*>).name + if (name != "java.lang.Object") return "fail 2: ${name}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/outProjectionSubstitution.kt b/backend.native/tests/external/codegen/boxInline/signature/outProjectionSubstitution.kt new file mode 100644 index 00000000000..e57dd7b698d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/outProjectionSubstitution.kt @@ -0,0 +1,35 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface F { + fun test(p: T) : Int +} + +inline fun Array.copyOfRange1(crossinline toIndex: () -> Int) = + object : F { + override fun test(p: T): Int { + return toIndex() + } + } + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +import test.* +import java.util.* + +public fun Array.slice1() = copyOfRange1 { 1 } + +fun box(): String { + val comparable = arrayOf("123").slice1() + val method = comparable.javaClass.getMethod("test", Any::class.java) + val genericParameterTypes = method.genericParameterTypes + if (genericParameterTypes.size != 1) return "fail 1: ${genericParameterTypes.size}" + var name = (genericParameterTypes[0] as Class<*>).name + if (name != "java.lang.CharSequence") return "fail 2: ${name}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/recursion.kt b/backend.native/tests/external/codegen/boxInline/signature/recursion.kt new file mode 100644 index 00000000000..994f742f1d2 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/recursion.kt @@ -0,0 +1,29 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + + +inline fun stub() { + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +import test.* +import java.util.* + + +class I(val s: A) +class A(val elements: List>) { + val p = elements.sortedBy { it.hashCode() } +} + +fun box(): String { + + A(listOf(I("1"), I("2"), I("3"))).p + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/sameFormalParameterName.kt b/backend.native/tests/external/codegen/boxInline/signature/sameFormalParameterName.kt new file mode 100644 index 00000000000..3c55345fabd --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/sameFormalParameterName.kt @@ -0,0 +1,44 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +class B + +interface A { + fun aTest(p: T): B +} + +open class Test { + + inline fun test(crossinline z: () -> Int) = object : A { + override fun aTest(p: T): B { + z() + return B() + } + } + + fun callInline() = test { 1 } +} + +// FILE: 2.kt + +// NO_CHECK_LAMBDA_INLINING +// FULL_JDK + +import test.* +import java.util.* + + +fun box(): String { + val result = Test().callInline() + val method = result.javaClass.getMethod("aTest", Any::class.java) + val genericReturnType = method.genericReturnType + if (genericReturnType.toString() != "test.B") return "fail 1: ${genericReturnType}" + + val genericParameterTypes = method.genericParameterTypes + if (genericParameterTypes.size != 1) return "fail 2: ${genericParameterTypes.size}" + if (genericParameterTypes[0].toString() != "T") return "fail 3: ${genericParameterTypes[0]}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/sameReifiedFormalParameterName.kt b/backend.native/tests/external/codegen/boxInline/signature/sameReifiedFormalParameterName.kt new file mode 100644 index 00000000000..cf3ba13eb87 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/sameReifiedFormalParameterName.kt @@ -0,0 +1,44 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +class B + +interface A { + fun aTest(p: T): B +} + +open class Test { + + inline fun test(crossinline z: () -> Int) = object : A { + override fun aTest(p: T): B { + z() + return B() + } + } + + fun callInline() = test { 1 } +} + +// FILE: 2.kt + +// NO_CHECK_LAMBDA_INLINING +// FULL_JDK + +import test.* +import java.util.* + + +fun box(): String { + val result = Test().callInline() + val method = result.javaClass.getMethod("aTest", Any::class.java) + val genericReturnType = method.genericReturnType + if (genericReturnType.toString() != "test.B") return "fail 1: ${genericReturnType}" + + val genericParameterTypes = method.genericParameterTypes + if (genericParameterTypes.size != 1) return "fail 2: ${genericParameterTypes.size}" + if (genericParameterTypes[0].toString() != "T") return "fail 3: ${genericParameterTypes[0]}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/starProjectionSubstitution.kt b/backend.native/tests/external/codegen/boxInline/signature/starProjectionSubstitution.kt new file mode 100644 index 00000000000..96187ebc740 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/starProjectionSubstitution.kt @@ -0,0 +1,35 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface F { + fun test(p: T) : Int +} + +inline fun Array.copyOfRange1(crossinline toIndex: () -> Int) = + object : F { + override fun test(p: T): Int { + return toIndex() + } + } + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +import test.* +import java.util.* + +public fun Array<*>.slice1() = copyOfRange1 { 1 } + +fun box(): String { + val comparable = arrayOf("123").slice1() + val method = comparable.javaClass.getMethod("test", Any::class.java) + val genericParameterTypes = method.genericParameterTypes + if (genericParameterTypes.size != 1) return "fail 1: ${genericParameterTypes.size}" + var name = (genericParameterTypes[0] as Class<*>).name + if (name != "java.lang.Object") return "fail 2: ${name}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/typeParameterInLambda.kt b/backend.native/tests/external/codegen/boxInline/signature/typeParameterInLambda.kt new file mode 100644 index 00000000000..3b6dd00caca --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/typeParameterInLambda.kt @@ -0,0 +1,39 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +open class Test { + + inline fun test(z: () -> () -> Y) = z() + + fun callInline(p: T) = test { + { + p + } + } +} + +// FILE: 2.kt + +// NO_CHECK_LAMBDA_INLINING +// FULL_JDK + +import test.* +import java.util.* + + +fun box(): String { + val result = Test().callInline("test") + + val method = result.javaClass.getMethod("invoke") + val genericReturnType = method.genericReturnType + if (genericReturnType.toString() != "T") return "fail 1: $genericReturnType" + + val method2 = Test::class.java.getMethod("callInline", Any::class.java) + val genericParameterType = method2.genericParameterTypes.firstOrNull() + + if (genericParameterType != genericReturnType) return "fail 2: $genericParameterType != $genericReturnType" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution.kt b/backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution.kt new file mode 100644 index 00000000000..c984969c540 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution.kt @@ -0,0 +1,55 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +import java.util.* + +open class CustomerService { + + fun comparator() = object : Comparator { + override fun compare(o1: T, o2: T): Int { + throw UnsupportedOperationException() + } + } + + inline fun comparator(crossinline z: () -> Int) = object : Comparator { + + override fun compare(o1: T, o2: T): Int { + return z() + } + + } + + fun callInline() = comparator { 1 } + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING + +import test.* +import java.util.* + +fun box(): String { + + val comparable = CustomerService().comparator() + val method = comparable.javaClass.getMethod("compare", Any::class.java, Any::class.java) + val genericParameterTypes = method.genericParameterTypes + if (genericParameterTypes.size != 2) return "fail 1: ${genericParameterTypes.size}" + if (genericParameterTypes[0].toString() != "T") return "fail 2: ${genericParameterTypes[0]}" + if (genericParameterTypes[1].toString() != "T") return "fail 3: ${genericParameterTypes[1]}" + + + val comparable2 = CustomerService().callInline() + val method2 = comparable2.javaClass.getMethod("compare", Any::class.java, Any::class.java) + val genericParameterTypes2 = method2.genericParameterTypes + if (genericParameterTypes2.size != 2) return "fail 4: ${genericParameterTypes2.size}" + var name = (genericParameterTypes2[0] as Class<*>).name + if (name != "java.lang.String") return "fail 5: ${name}" + name = (genericParameterTypes2[1] as Class<*>).name + if (name != "java.lang.String") return "fail 6: ${name}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution2.kt b/backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution2.kt new file mode 100644 index 00000000000..1c2913acf18 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/signature/typeParametersSubstitution2.kt @@ -0,0 +1,55 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +interface MComparator { + fun compare(o1: T, o2: T): Int +} + +open class CustomerService { + + fun comparator() = object : MComparator { + override fun compare(o1: T, o2: T): Int { + throw UnsupportedOperationException() + } + } + + inline fun comparator(crossinline z: () -> Int) = object : MComparator { + + override fun compare(o1: T, o2: T): Int { + return z() + } + } + + fun callInline() = comparator { 1 } + +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + + val comparable = CustomerService().comparator() + val method = comparable.javaClass.getMethod("compare", Any::class.java, Any::class.java) + val genericParameterTypes = method.genericParameterTypes + if (genericParameterTypes.size != 2) return "fail 1: ${genericParameterTypes.size}" + if (genericParameterTypes[0].toString() != "T") return "fail 2: ${genericParameterTypes[0]}" + if (genericParameterTypes[1].toString() != "T") return "fail 3: ${genericParameterTypes[1]}" + + + val comparable2 = CustomerService().callInline() + val method2 = comparable2.javaClass.getMethod("compare", Any::class.java, Any::class.java) + val genericParameterTypes2 = method2.genericParameterTypes + if (genericParameterTypes2.size != 2) return "fail 1: ${genericParameterTypes2.size}" + + var name = (genericParameterTypes2[0] as Class<*>).name + if (name != "java.lang.String") return "fail 5: ${name}" + name = (genericParameterTypes2[1] as Class<*>).name + if (name != "java.lang.String") return "fail 6: ${name}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/classObject.kt b/backend.native/tests/external/codegen/boxInline/simple/classObject.kt new file mode 100644 index 00000000000..5550e6e906b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/classObject.kt @@ -0,0 +1,44 @@ +// FILE: 1.kt + +package test + +inline fun inline(s: () -> String): String { + return s() +} + +class InlineAll { + + inline fun inline(s: () -> String): String { + return s() + } + + companion object { + inline fun inline(s: () -> String): String { + return s() + } + } +} + +// FILE: 2.kt + +import test.* + +fun testClassObjectCall(): String { + return InlineAll.inline({"classobject"}) +} + +fun testInstanceCall(): String { + val inlineX = InlineAll() + return inlineX.inline({"instance"}) +} + +fun testPackageCall(): String { + return inline({"package"}) +} + +fun box(): String { + if (testClassObjectCall() != "classobject") return "test1: ${testClassObjectCall()}" + if (testInstanceCall() != "instance") return "test2: ${testInstanceCall()}" + if (testPackageCall() != "package") return "test3: ${testPackageCall()}" + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/destructuring.kt b/backend.native/tests/external/codegen/boxInline/simple/destructuring.kt new file mode 100644 index 00000000000..ea489b8e8d7 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/destructuring.kt @@ -0,0 +1,20 @@ +// FILE: 1.kt +package test + +inline fun foo(x: (Int, Station) -> Unit) { + x(1, Station(null, "", 1)) +} + +data class Station( + val id: String?, + val name: String, + val distance: Int) + + +// FILE: 2.kt +import test.* + +fun box(): String { + foo { i, (a1, a2, a3) -> i + a3 } + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/simple/destructuringIndexClash.kt b/backend.native/tests/external/codegen/boxInline/simple/destructuringIndexClash.kt new file mode 100644 index 00000000000..eeb9f2bfefb --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/destructuringIndexClash.kt @@ -0,0 +1,35 @@ +// for android +// FILE: 1.kt +package test + +var res = "fail" + +inline fun foo(x: (Int, Station) -> Unit) { + x(1, Station("a", "b", "c")) + res = "O" +} + +inline fun foo2(x: (Int, StationInt) -> Unit) { + x(1, StationInt(1, 2, 3)) + res += "K" +} + +data class Station( + val id: String, + val name: String, + val distance: String) + +data class StationInt( + val id: Int, + val name: Int, + val distance: Int) + + +// FILE: 2.kt +import test.* + +fun box(): String { + foo { i, (a1, a2, a3) -> a3 + i } + foo2 { i, (a1, a2, a3) -> i + a3 } + return res +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/simple/extension.kt b/backend.native/tests/external/codegen/boxInline/simple/extension.kt new file mode 100644 index 00000000000..ad48f1b993f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/extension.kt @@ -0,0 +1,71 @@ +// FILE: 1.kt +// WITH_RUNTIME +inline fun Inline.calcExt(s: (Int) -> Int, p: Int) : Int { + return s(p) +} + +inline fun Inline.calcExt2(s: Int.() -> Int, p: Int) : Int { + return p.s() +} + +class InlineX(val value : Int) {} + +class Inline(val res: Int) { + + inline fun InlineX.calcInt(s: (Int, Int) -> Int) : Int { + return s(res, this.value) + } + + inline fun Double.calcDouble(s: (Int, Double) -> Double) : Double { + return s(res, this) + } + + fun doWork(l : InlineX) : Int { + return l.calcInt({ a: Int, b: Int -> a + b}) + } + + fun doWorkWithDouble(s : Double) : Double { + return s.calcDouble({ a: Int, b: Double -> a + b}) + } + +} + +// FILE: 2.kt + +fun test1(): Int { + val inlineX = Inline(9) + return inlineX.calcExt({ z: Int -> z}, 25) +} + +fun test2(): Int { + val inlineX = Inline(9) + return inlineX.calcExt2(fun Int.(): Int = this, 25) +} + +fun test3(): Int { + val inlineX = Inline(9) + return inlineX.doWork(InlineX(11)) +} + +fun test4(): Double { + val inlineX = Inline(9) + return inlineX.doWorkWithDouble(11.0) +} + +fun test5(): Double { + val inlineX = Inline(9) + with(inlineX) { + 11.0.calcDouble{ a: Int, b: Double -> a + b} + } + return inlineX.doWorkWithDouble(11.0) +} + +fun box(): String { + if (test1() != 25) return "test1: ${test1()}" + if (test2() != 25) return "test2: ${test2()}" + if (test3() != 20) return "test3: ${test3()}" + if (test4() != 20.0) return "test4: ${test4()}" + if (test5() != 20.0) return "test5: ${test5()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/extensionLambda.kt b/backend.native/tests/external/codegen/boxInline/simple/extensionLambda.kt new file mode 100644 index 00000000000..4360dda4d25 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/extensionLambda.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt + +package test + +inline fun String.test(default: T, cb: String.(T) -> T): T = cb(default) + +// FILE: 2.kt + +import test.* + +fun box(): String { + val p = "".test(50.0) { + it + } + + return if (p == 50.0) "OK" else "fail $p" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/funImportedFromObject.kt b/backend.native/tests/external/codegen/boxInline/simple/funImportedFromObject.kt new file mode 100644 index 00000000000..6d1a9f4d4be --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/funImportedFromObject.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +object Host { + // private final foo()V + inline fun foo(): String { + return "OK" + } +} + + +// FILE: 2.kt + +import test.Host.foo + +fun box(): String { + return foo() +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/params.kt b/backend.native/tests/external/codegen/boxInline/simple/params.kt new file mode 100644 index 00000000000..000719a13ae --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/params.kt @@ -0,0 +1,50 @@ +// FILE: 1.kt + +class Inline() { + + inline fun foo1Int(s : (l: Int) -> Int, param: Int) : Int { + return s(param) + } + + inline fun foo1Double(param: Double, s : (l: Double) -> Double) : Double { + return s(param) + } + + inline fun foo2Param(param1: Double, s : (i: Int, l: Double) -> Double, param2: Int) : Double { + return s(param2, param1) + } +} + +// FILE: 2.kt + +fun test1(): Int { + val inlineX = Inline() + return inlineX.foo1Int({ z: Int -> z}, 25) +} + +fun test2(): Double { + val inlineX = Inline() + return inlineX.foo1Double(25.0, { z: Double -> z}) +} + +fun test3(): Double { + val inlineX = Inline() + return inlineX.foo2Param(15.0, { z1: Int, z2: Double -> z1 + z2}, 10) +} + +fun test3WithCaptured(): Double { + val inlineX = Inline() + var c = 11.0; + return inlineX.foo2Param(15.0, { z1: Int, z2: Double -> z1 + z2 + c}, 10) +} + + +fun box(): String { + if (test1() != 25) return "test1: ${test1()}" + if (test2() != 25.0) return "test2: ${test2()}" + if (test3() != 25.0) return "test3: ${test3()}" + if (test3WithCaptured() != 36.0) return "test3WithCaptured: ${test3WithCaptured()}" + + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/propImportedFromObject.kt b/backend.native/tests/external/codegen/boxInline/simple/propImportedFromObject.kt new file mode 100644 index 00000000000..e04e10eefbd --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/propImportedFromObject.kt @@ -0,0 +1,21 @@ +// IGNORE_BACKEND: NATIVE +// WITH_RUNTIME +// FILE: 1.kt + +package test + +object Host { + + inline val T.foo: String + get() = T::class.java.simpleName +} + +// FILE: 2.kt + +import test.Host.foo + +class OK + +fun box(): String { + return OK().foo +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/rootConstructor.kt b/backend.native/tests/external/codegen/boxInline/simple/rootConstructor.kt new file mode 100644 index 00000000000..1af43ae7c06 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/rootConstructor.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt + +package test + + +inline fun doWork(crossinline job: ()-> R) : R { + return notInline({job()}) +} + +fun notInline(job: ()-> R) : R { + return job() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +val s = doWork({11}) + +fun box(): String { + if (s != 11) return "test1: ${s}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/safeCall.kt b/backend.native/tests/external/codegen/boxInline/simple/safeCall.kt new file mode 100644 index 00000000000..a89a92c1ad6 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/safeCall.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt + +package test + +class W(val value: Any) + +inline fun W.safe(body : Any.() -> Unit) { + this.value?.body() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + W("OK").safe { + result = this as String + } + + return result +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/severalClosures.kt b/backend.native/tests/external/codegen/boxInline/simple/severalClosures.kt new file mode 100644 index 00000000000..a69bacf4572 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/severalClosures.kt @@ -0,0 +1,38 @@ +// FILE: 1.kt + +class Inline() { + + inline fun foo1(closure1 : (l: Int) -> Int, param1: Int, closure2 : (l: Double) -> Double, param2: Double) : Double { + return closure1(param1) + closure2(param2) + } + + inline fun foo2(closure1 : (Int, Int) -> Int, param1: Int, closure2 : (Double, Int, Int) -> Double, param2: Double, param3: Int) : Double { + return closure1(param1, param3) + closure2(param2, param1, param3) + } +} + +// FILE: 2.kt + +fun test1(): Double { + val inlineX = Inline() + return inlineX.foo1({ z: Int -> z}, 25, { z: Double -> z}, 11.5) +} + +fun test1WithCaptured(): Double { + val inlineX = Inline() + var d = 0.0; + return inlineX.foo1({ z: Int -> d = 1.0; z}, 25, { z: Double -> z + d}, 11.5) +} + +fun test2(): Double { + val inlineX = Inline() + return inlineX.foo2({ z: Int, p: Int -> z + p}, 25, { x: Double, y: Int, z: Int -> z + x + y}, 11.5, 2) +} + +fun box(): String { + if (test1() != 36.5) return "test1: ${test1()}" + if (test1WithCaptured() != 37.5) return "test1WithCaptured: ${test1WithCaptured()}" + if (test2() != 65.5) return "test2: ${test2()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/severalUsage.kt b/backend.native/tests/external/codegen/boxInline/simple/severalUsage.kt new file mode 100644 index 00000000000..754133dd75c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/severalUsage.kt @@ -0,0 +1,21 @@ +// FILE: 1.kt + +public inline fun runTest(f: () -> R): R { + return f() +} + +public inline fun minByTest(f: (Int) -> R): R { + var minValue = f(1) + val v = f(1) + return v +} + +// FILE: 2.kt + +fun box(): String { + val result = runTest{minByTest { it }} + + if (result != 1) return "test1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/simpleDouble.kt b/backend.native/tests/external/codegen/boxInline/simple/simpleDouble.kt new file mode 100644 index 00000000000..316cb18da5a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/simpleDouble.kt @@ -0,0 +1,76 @@ +// FILE: 1.kt + +class InlineDouble(val res : Double) { + + inline fun foo(s : () -> Double) : Double { + val f = "fooStart" + val z = s() + return z + } + + inline fun foo11(s : (l: Double) -> Double) : Double { + return s(11.0) + } + + inline fun fooRes(s : (l: Double) -> Double) : Double { + val z = s(res) + return z + } + + inline fun fooRes2(s : (l: Double, t: Double) -> Double) : Double { + val f = "fooRes2Start" + val z = s(1.0, 11.0) + return z + } +} + +// FILE: 2.kt + +fun test0Param(): Double { + val inlineX = InlineDouble(10.0) + return inlineX.foo({ -> 1.0}) +} + +fun test1Param(): Double { + val inlineX = InlineDouble(10.0) + return inlineX.foo11({ z: Double -> z}) +} + +fun test1ParamCaptured(): Double { + val s = 100.0 + val inlineX = InlineDouble(10.0) + return inlineX.foo11({ z: Double -> s}) +} + +fun test1ParamMissed() : Double { + val inlineX = InlineDouble(10.0) + return inlineX.foo11({ z: Double -> 111.0}) +} + +fun test1ParamFromCallContext() : Double { + val inlineX = InlineDouble(1000.0) + return inlineX.fooRes({ z: Double -> z}) +} + +fun test2Params() : Double { + val inlineX = InlineDouble(1000.0) + return inlineX.fooRes2({ y: Double, z: Double -> 2.0 * y + 3.0 * z}) +} + +fun test2ParamsWithCaptured() : Double { + val inlineX = InlineDouble(1000.0) + val s = 9.0 + var t = 1.0 + return inlineX.fooRes2({ y: Double, z: Double -> 2.0 * s + t}) +} + +fun box(): String { + if (test0Param() != 1.0) return "test0Param" + if (test1Param() != 11.0) return "test1Param()" + if (test1ParamCaptured() != 100.0) return "testtest1ParamCaptured()" + if (test1ParamMissed() != 111.0) return "test1ParamMissed()" + if (test1ParamFromCallContext() != 1000.0) return "test1ParamFromCallContext()" + if (test2Params() != 35.0) return "test2Params()" + if (test2ParamsWithCaptured() != 19.0) return "test2ParamsWithCaptured()" + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/simpleEnum.kt b/backend.native/tests/external/codegen/boxInline/simple/simpleEnum.kt new file mode 100644 index 00000000000..2c775f9ea5a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/simpleEnum.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt + +package test + +enum class MyEnum { + K; + + //TODO: KT-4693 + inline fun doSmth(a: T) : String { + return a.toString() + K.name + } +} + +// FILE: 2.kt + +import test.* + +fun test1(): String { + return MyEnum.K.doSmth("O") +} + +fun box(): String { + val result = test1() + if (result != "OK") return "fail1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/simpleGenerics.kt b/backend.native/tests/external/codegen/boxInline/simple/simpleGenerics.kt new file mode 100644 index 00000000000..93a57927f0b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/simpleGenerics.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt + +package test + +inline fun doSmth(a: T) : String { + return a.toString() +} + +// FILE: 2.kt + +import test.* + +fun test1(s: Long): String { + return doSmth(s) +} + +fun box(): String { + val result = test1(11.toLong()) + if (result != "11") return "fail1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/simpleInt.kt b/backend.native/tests/external/codegen/boxInline/simple/simpleInt.kt new file mode 100644 index 00000000000..19076887294 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/simpleInt.kt @@ -0,0 +1,76 @@ +// FILE: 1.kt + +class Inline(val res : Int) { + + inline fun foo(s : () -> Int) : Int { + val f = "fooStart" + val z = s() + return z + } + + inline fun foo11(s : (l: Int) -> Int) : Int { + return s(11) + } + + inline fun fooRes(s : (l: Int) -> Int) : Int { + val z = s(res) + return z + } + + inline fun fooRes2(s : (l: Int, t: Int) -> Int) : Int { + val f = "fooRes2Start" + val z = s(1, 11) + return z + } +} + +// FILE: 2.kt + +fun test0Param(): Int { + val inlineX = Inline(10) + return inlineX.foo({ -> 1}) +} + +fun test1Param(): Int { + val inlineX = Inline(10) + return inlineX.foo11({ z: Int -> z}) +} + +fun test1ParamCaptured(): Int { + val s = 100 + val inlineX = Inline(10) + return inlineX.foo11({ z: Int -> s}) +} + +fun test1ParamMissed() : Int { + val inlineX = Inline(10) + return inlineX.foo11({ z: Int -> 111}) +} + +fun test1ParamFromCallContext() : Int { + val inlineX = Inline(1000) + return inlineX.fooRes({ z: Int -> z}) +} + +fun test2Params() : Int { + val inlineX = Inline(1000) + return inlineX.fooRes2({ y: Int, z: Int -> 2 * y + 3 * z}) +} + +fun test2ParamsWithCaptured() : Int { + val inlineX = Inline(1000) + val s = 9 + var t = 1 + return inlineX.fooRes2({ y: Int, z: Int -> 2 * s + t}) +} + +fun box(): String { + if (test0Param() != 1) return "test0Param: ${test0Param()}" + if (test1Param() != 11) return "test1Param: ${test1Param()}" + if (test1ParamCaptured() != 100) return "test1ParamCaptured: ${test1ParamCaptured()}" + if (test1ParamMissed() != 111) return "test1ParamMissed: ${test1ParamMissed()}" + if (test1ParamFromCallContext() != 1000) return "test1ParamFromCallContext: ${test1ParamFromCallContext()}" + if (test2Params() != 35) return "test2Params: ${test2Params()}" + if (test2ParamsWithCaptured() != 19) return "test2ParamsWithCaptured: ${test2ParamsWithCaptured()}" + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/simpleLambda.kt b/backend.native/tests/external/codegen/boxInline/simple/simpleLambda.kt new file mode 100644 index 00000000000..f69146fa4ed --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/simpleLambda.kt @@ -0,0 +1,40 @@ +// FILE: 1.kt + +package test + +public class Data() + +public inline fun T.use(block: (T)-> R) : R { + return block(this) +} + +public inline fun use2() : Int { + val s = 100 + return s +} + +// FILE: 2.kt + +import test.* + +class Z {} + +fun test1() : Int { + val input = Z() + return input.use{ + 100 + } +} + +fun test2() : Int { + val x = 1000 + return use2() + x +} + + +fun box(): String { + if (test1() != 100) return "test1: ${test1()}" + if (test2() != 1100) return "test1: ${test2()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/simpleObject.kt b/backend.native/tests/external/codegen/boxInline/simple/simpleObject.kt new file mode 100644 index 00000000000..0ebf0496802 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/simpleObject.kt @@ -0,0 +1,77 @@ +// FILE: 1.kt + +class InlineString(val res : String) { + + inline fun foo(s : () -> String) : String { + val f = "fooStart" + val z = s() + return z + } + + inline fun foo11(s : (l: String) -> String) : String { + return s("11") + } + + inline fun fooRes(s : (l: String) -> String) : String { + val z = s(res) + return z + } + + inline fun fooRes2(s : (l: String, t: String) -> String) : String { + val f = "fooRes2Start" + val z = s("1", "11") + return z + } +} + +// FILE: 2.kt + +fun test0Param(): String { + val inlineX = InlineString("10") + return inlineX.foo({ -> "1"}) +} + +fun test1Param(): String { + val inlineX = InlineString("10") + return inlineX.foo11({ z: String -> z}) +} + +fun test1ParamCaptured(): String { + val s = "100" + val inlineX = InlineString("10") + return inlineX.foo11({ z: String -> s}) +} + +fun test1ParamMissed() : String { + val inlineX = InlineString("10") + return inlineX.foo11({ z: String -> "111"}) +} + +fun test1ParamFromCallContext() : String { + val inlineX = InlineString("1000") + return inlineX.fooRes({ z: String -> z}) +} + +fun test2Params() : String { + val inlineX = InlineString("1000") + return inlineX.fooRes2({ y: String, z: String -> y + "0" + z}) +} + +fun test2ParamsWithCaptured() : String { + val inlineX = InlineString("1000") + val s = "9" + var t = "1" + return inlineX.fooRes2({ y: String, z: String -> s + t}) +} + +fun box(): String { + if (test0Param() != "1") return "test0Param: ${test0Param()}" + if (test1Param() != "11") return "test1Param: ${test1Param()}" + if (test1ParamCaptured() != "100") return "test1ParamCaptured: ${test1ParamCaptured()}" + if (test1ParamMissed() != "111") return "test1ParamMissed: ${test1ParamMissed()}" + if (test1ParamFromCallContext() != "1000") return "test1ParamFromCallContext: ${test1ParamFromCallContext()}" + if (test2Params() != "1011") return "test2Params: ${test2Params()}" + if (test2ParamsWithCaptured() != "91") return "test2ParamsWithCaptured: ${test2ParamsWithCaptured()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/simple/vararg.kt b/backend.native/tests/external/codegen/boxInline/simple/vararg.kt new file mode 100644 index 00000000000..4f75fcfe224 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/simple/vararg.kt @@ -0,0 +1,22 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test + +inline fun doSmth(vararg a: String) : String { + return a.foldRight("", { a, b -> a + b}) +} + +// FILE: 2.kt + +import test.* + +fun test1(): String { + return doSmth("O", "K") +} + +fun box(): String { + val result = test1() + if (result != "OK") return "fail1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambda.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambda.kt new file mode 100644 index 00000000000..3f82fde796e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambda.kt @@ -0,0 +1,79 @@ +// FILE: 1.kt + +package builders + +inline fun call(crossinline init: () -> Unit) { + return { + init() + }() +} + +// FILE: 2.kt + +import builders.* + +//NO_CHECK_LAMBDA_INLINING +fun test(): String { + var res = "Fail" + + call { + res = "OK" + } + + return res +} + + +fun box(): String { + return test() +} + +// FILE: 1.smap + +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +builders/_1Kt$call$1 +*L +1#1,11:1 +*E + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +builders/_1Kt +*L +1#1,21:1 +6#2:22 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +9#1:22 +*E + +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +builders/_1Kt$call$1 ++ 2 2.kt +_2Kt +*L +1#1,11:1 +10#2,2:12 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnCallSite.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnCallSite.kt new file mode 100644 index 00000000000..f7169da1615 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnCallSite.kt @@ -0,0 +1,55 @@ +// FILE: 1.kt + +package builders + +inline fun call(crossinline init: () -> Unit) { + return init() +} +//NO_CHECK_LAMBDA_INLINING + +// FILE: 2.kt + +import builders.* + + +fun test(): String { + var res = "Fail" + + call { + { + res = "OK" + }() + } + + return res +} + + +fun box(): String { + return test() +} + +// FILE: 1.smap + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +builders/_1Kt +*L +1#1,23:1 +6#2:24 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +9#1:24 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.kt new file mode 100644 index 00000000000..e2f10bcb355 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/lambdaOnInlineCallSite.kt @@ -0,0 +1,87 @@ +// FILE: 1.kt + +package builders + +inline fun call(crossinline init: () -> Unit) { + return init() +} + +// FILE: 2.kt + +import builders.* + + +inline fun test(): String { + var res = "Fail" + + call { + { + res = "OK" + }() + } + + return res +} + + +fun box(): String { + return test() +} +//NO_CHECK_LAMBDA_INLINING + +// FILE: 1.smap + +// FILE: 2.smap + +//TODO +//7#1,3:26 +//10#1,6:30 - could be merged in one big interval due preprocessing of inline function + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +builders/_1Kt +*L +1#1,24:1 +7#1,3:26 +10#1,6:30 +6#2:25 +6#2:29 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +20#1,3:26 +20#1,6:30 +9#1:25 +20#1:29 +*E + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt$test$1$1 +*L +1#1,24:1 +*E + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt$test$1$1 +*L +1#1,24:1 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/object.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/object.kt new file mode 100644 index 00000000000..0e9302a1c7f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/object.kt @@ -0,0 +1,82 @@ +// FILE: 1.kt + +package builders + +inline fun call(crossinline init: () -> Unit) { + return object { + fun run () { + init() + } + }.run() +} + +// FILE: 2.kt + +import builders.* + + +fun test(): String { + var res = "Fail" + + call { + res = "OK" + } + + return res +} + + +fun box(): String { + return test() +} +//NO_CHECK_LAMBDA_INLINING + +// FILE: 1.smap + +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +builders/_1Kt$call$1 +*L +1#1,13:1 +*E + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +builders/_1Kt +*L +1#1,22:1 +6#2,5:23 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +9#1,5:23 +*E + +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +builders/_1Kt$call$1 ++ 2 2.kt +_2Kt +*L +1#1,13:1 +10#2,2:14 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnCallSite.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnCallSite.kt new file mode 100644 index 00000000000..4b9ff66f07c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnCallSite.kt @@ -0,0 +1,58 @@ +// FILE: 1.kt + +package builders + +inline fun call(crossinline init: () -> Unit) { + return init() +} + +// FILE: 2.kt + +import builders.* + + +fun test(): String { + var res = "Fail" + + call { + object { + fun run () { + res = "OK" + } + }.run() + } + + return res +} + + +fun box(): String { + return test() +} +//NO_CHECK_LAMBDA_INLINING + +// FILE: 1.smap + +// FILE: 2.smap + +//SMAP +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +builders/_1Kt +*L +1#1,26:1 +6#2:27 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +9#1:27 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.kt new file mode 100644 index 00000000000..8f2143a5718 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite.kt @@ -0,0 +1,88 @@ +// FILE: 1.kt + +package builders + +inline fun call(crossinline init: () -> Unit) { + return init() +} + +// FILE: 2.kt + +import builders.* + + +inline fun test(): String { + var res = "Fail" + + call { + object { + fun run () { + res = "OK" + } + }.run() + } + + return res +} + + +fun box(): String { + return test() +} +//NO_CHECK_LAMBDA_INLINING + +// FILE: 1.smap + +// FILE: 2.smap + +//7#1,3:28 +//10#1,8:32 - could be merged in one big interval due preprocessing of inline function + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +builders/_1Kt +*L +1#1,26:1 +7#1,3:28 +10#1,8:32 +6#2:27 +6#2:31 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +22#1,3:28 +22#1,8:32 +9#1:27 +22#1:31 +*E + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt$test$1$1 +*L +1#1,26:1 +*E + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt$test$1$1 +*L +1#1,26:1 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.kt new file mode 100644 index 00000000000..5e91d05e299 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSite2.kt @@ -0,0 +1,84 @@ +// FILE: 1.kt + +package builders + +inline fun call(crossinline init: () -> Unit) { + return init() +} + +inline fun test(): String { + var res = "Fail" + + call { + object { + fun run () { + res = "OK" + } + }.run() + } + + return res +} + +// FILE: 2.kt + +import builders.* + + +fun box(): String { + return test() +} +//NO_CHECK_LAMBDA_INLINING + +// FILE: 1.sxmap + +//TODO SHOULD BE LESS + +SXMAP +objectOnInlineCallSite2.2.kt +Kotlin +*S Kotlin +*F ++ 1 objectOnInlineCallSite2.2.kt +builders/BuildersPackage +*L +1#1,42:1 +*E + +SXMAP +objectOnInlineCallSite2.2.kt +Kotlin +*S Kotlin +*F ++ 1 objectOnInlineCallSite2.2.kt +builders/BuildersPackage$objectOnInlineCallSite2_2$HASH$test$1$1 +*L +1#1,42:1 +*E + +// FILE: 2.sxmap + +SXMAP +objectOnInlineCallSite2.1.kt +Kotlin +*S Kotlin +*F ++ 1 objectOnInlineCallSite2.1.kt +_DefaultPackage ++ 2 objectOnInlineCallSite2.2.kt +builders/BuildersPackage +*L +1#1,32:1 +8#2,11:33 +*E + +SXMAP +objectOnInlineCallSite2.2.kt +Kotlin +*S Kotlin +*F ++ 1 objectOnInlineCallSite2.2.kt +builders/BuildersPackage$objectOnInlineCallSite2_2$HASH$test$1$1 +*L +1#1,42:1 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.kt new file mode 100644 index 00000000000..14e7104860c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/objectOnInlineCallSiteWithCapture.kt @@ -0,0 +1,34 @@ +// FILE: 1.kt + +package builders +//TODO there is a bug in asm it's skips linenumber on same line on reading bytecode +inline fun call(crossinline init: () -> Unit) { + "1"; return init() +} + +inline fun test(crossinline p: () -> String): String { + var res = "Fail" + + call { + object { + fun run () { + res = p() + } + }.run() + } + + return res +} +//TODO SHOULD BE LESS + +// FILE: 2.kt + +import builders.* + + +fun box(): String { + return test{"OK"} +} +//NO_CHECK_LAMBDA_INLINING + +//TODO diff --git a/backend.native/tests/external/codegen/boxInline/smap/anonymous/severalMappingsForDefaultFile.kt b/backend.native/tests/external/codegen/boxInline/smap/anonymous/severalMappingsForDefaultFile.kt new file mode 100644 index 00000000000..cb9a25229c6 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/anonymous/severalMappingsForDefaultFile.kt @@ -0,0 +1,79 @@ +//FILE: 1.kt +package test + +inline fun annotatedWith2(crossinline predicate: () -> Boolean) = + { any { predicate() } }() + + +inline fun annotatedWith(crossinline predicate: () -> Boolean) = + annotatedWith2 { predicate() } + + +inline fun any(s: () -> Boolean) { + s() +} + + +//FILE: 2.kt +import test.* + +fun box(): String { + var result = "fail" + + annotatedWith { result = "OK"; true } + + return result +} + + +inline fun test(z: () -> Unit) { + z() +} + + +// FILE: 2.smap +//*L +//1#1,15:1 +//17#1:19 + + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,18:1 +9#2:19 +5#2:20 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +7#1:19 +7#1:20 +*E + +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +test/_1Kt$annotatedWith2$1 ++ 2 1.kt +test/_1Kt ++ 3 2.kt +_2Kt +*L +1#1,17:1 +13#2,2:18 +9#2:20 +7#3:21 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/assertion.kt b/backend.native/tests/external/codegen/boxInline/smap/assertion.kt new file mode 100644 index 00000000000..f36b0005a6d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/assertion.kt @@ -0,0 +1,75 @@ +// FILE: 1.kt + +package test + +public val MASSERTIONS_ENABLED: Boolean = true + +public inline fun massert(value: Boolean, lazyMessage: () -> String) { + if (MASSERTIONS_ENABLED) { + if (!value) { + val message = lazyMessage() + throw AssertionError(message) + } + } +} + + +public inline fun massert(value: Boolean, message: Any = "Assertion failed") { + if (MASSERTIONS_ENABLED) { + if (!value) { + throw AssertionError(message) + } + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + massert(true) + massert(true) { + "test" + } + + return "OK" +} + +// FILE: 1.smap +//TODO maybe do smth with default method body mapping +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +test/_1Kt +*L +1#1,25:1 +18#1,6:26 +*E + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,14:1 +17#2,7:15 +8#2,7:22 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +6#1,7:15 +7#1,7:22 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/classFromDefaultPackage.kt b/backend.native/tests/external/codegen/boxInline/smap/classFromDefaultPackage.kt new file mode 100644 index 00000000000..8e1691d5627 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/classFromDefaultPackage.kt @@ -0,0 +1,36 @@ +// FILE: 1.kt + +class A { + inline fun foo() {} +} + +// FILE: 2.kt + +fun box(): String { + A().foo() + + return "OK" +} + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +A +*L +1#1,9:1 +4#2:10 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +4#1:10 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmap.kt b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmap.kt new file mode 100644 index 00000000000..8ee31295455 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmap.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test +inline fun stub() { + +} + +// FILE: 2.kt + +fun box(): String { + return "KO".reversed() +} + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt +*L +1#1,7:1 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmapWithProperty.kt b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmapWithProperty.kt new file mode 100644 index 00000000000..c749d0b31cf --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/noSmapWithProperty.kt @@ -0,0 +1,30 @@ +// FILE: 1.kt +// WITH_RUNTIME +package test +inline fun stub() { + +} +@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") +@kotlin.internal.InlineOnly +inline val prop: String + get() = "OK" + +// FILE: 2.kt +import test.* + +fun box(): String { + return prop +} + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt +*L +1#1,8:1 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reified.kt b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reified.kt new file mode 100644 index 00000000000..64b93289a45 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reified.kt @@ -0,0 +1,40 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +inline fun className() = T::class.java.simpleName + +// FILE: 2.kt + +import test.* + +fun box(): String { + val z = className() + if (z != "String") return "fail: $z" + + return "OK" +} + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,12:1 +6#2:13 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +6#1:13 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reifiedProperty.kt b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reifiedProperty.kt new file mode 100644 index 00000000000..acc1f728a0b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/inlineOnly/reifiedProperty.kt @@ -0,0 +1,40 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_REFLECT +package test + +inline val T.className: String; get() = T::class.java.simpleName + +// FILE: 2.kt + +import test.* + +fun box(): String { + val z = "OK".className + if (z != "String") return "fail: $z" + + return "OK" +} + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,12:1 +6#2:13 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +6#1:13 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/newsmap/differentMapping.kt b/backend.native/tests/external/codegen/boxInline/smap/newsmap/differentMapping.kt new file mode 100644 index 00000000000..827b03b864d --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/newsmap/differentMapping.kt @@ -0,0 +1,54 @@ +// FILE: 1.kt + +package test + +inline fun test(s: () -> Unit) { + val z = 1; + s() + val x = 1; +} + + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + test { + result = "O" + } + + test { + result += "K" + } + + return result +} + +// FILE: 1.smap + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,18:1 +6#2,4:19 +6#2,4:23 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +7#1,4:19 +11#1,4:23 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInInlineFunLambda.kt b/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInInlineFunLambda.kt new file mode 100644 index 00000000000..1f2d9ae0f9f --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInInlineFunLambda.kt @@ -0,0 +1,94 @@ +// FILE: 1.kt + +package test + +inline fun myrun(s: () -> Unit) { + val z = "myrun" + s() +} + +inline fun test(crossinline s: () -> Unit) { + { + val z = 1; + myrun(s) + val x = 1; + }() +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + + test { + result = "OK" + } + + return result +} + + +// FILE: 1.smap +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +test/_1Kt$test$1 ++ 2 1.kt +test/_1Kt +*L +1#1,18:1 +6#2,3:19 +*E +*S KotlinDebug +*F ++ 1 1.kt +test/_1Kt$test$1 +*L +13#1,3:19 +*E + + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,16:1 +11#2,6:17 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +8#1,6:17 +*E + +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +test/_1Kt$test$1 ++ 2 1.kt +test/_1Kt ++ 3 2.kt +_2Kt +*L +1#1,18:1 +6#2,3:19 +9#3,2:22 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambda.kt b/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambda.kt new file mode 100644 index 00000000000..593cc2ea506 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambda.kt @@ -0,0 +1,80 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +inline fun test(s: () -> Unit) { + val z = 1; + s() + val x = 1; +} + +inline fun test2(s: () -> String): String { + val z = 1; + val res = s() + return res +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + var result = "fail" + + test { + { + result = test2 { + "OK" + } + }() + } + + return result +} + + +// FILE: 1.smap + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,20:1 +6#2,4:21 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +8#1,4:21 +*E + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt$box$1$1 ++ 2 1.kt +test/_1Kt +*L +1#1,20:1 +12#2,3:21 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt$box$1$1 +*L +10#1,3:21 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambdaSameFileInline.kt b/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambdaSameFileInline.kt new file mode 100644 index 00000000000..f5a7c59925b --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/newsmap/mappingInSubInlineLambdaSameFileInline.kt @@ -0,0 +1,80 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +inline fun test(s: () -> Unit) { + val z = 1; + s() + val x = 1; +} + +// FILE: 2.kt + +import test.* + +inline fun test2(s: () -> String): String { + val z = 1; + val res = s() + return res +} + +fun box(): String { + var result = "fail" + + test { + { + result = test2 { + "OK" + } + }() + } + + return result +} + + +// FILE: 1.smap + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +test/_1Kt +*L +1#1,26:1 +6#2,4:27 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +14#1,4:27 +*E + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt$box$1$1 ++ 2 2.kt +_2Kt +*L +1#1,26:1 +6#2,3:27 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt$box$1$1 +*L +16#1,3:27 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/oneFile.kt b/backend.native/tests/external/codegen/boxInline/smap/oneFile.kt new file mode 100644 index 00000000000..b68666e3677 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/oneFile.kt @@ -0,0 +1,43 @@ +// FILE: 1.kt + +package zzz + +inline fun nothing() {} + +// FILE: 2.kt + +fun box(): String { + return test { + "K" + } +} + +inline fun test(p: () -> String): String { + var pd = "" + pd = "O" + return pd + p() +} + +// FILE: 1.smap + +// FILE: 2.smap + +//TODO should be empty +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt +*L +1#1,15:1 +10#1,3:16 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +4#1,3:16 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/resolve/inlineComponent.kt b/backend.native/tests/external/codegen/boxInline/smap/resolve/inlineComponent.kt new file mode 100644 index 00000000000..53ec690a6a9 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/resolve/inlineComponent.kt @@ -0,0 +1,46 @@ +// FILE: 1.kt + +package zzz + +public class A(val a: Int, val b: Int) + +operator inline fun A.component1() = a + +operator inline fun A.component2() = b + +// FILE: 2.kt + +import zzz.* + +fun box(): String { + var (p, l) = A(1, 11) + + return if (p == 1 && l == 11) "OK" else "fail: $p" +} + +// FILE: 1.smap + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +zzz/_1Kt +*L +1#1,11:1 +7#2:12 +9#2:13 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +6#1:12 +6#1:13 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/smap/resolve/inlineIterator.kt b/backend.native/tests/external/codegen/boxInline/smap/resolve/inlineIterator.kt new file mode 100644 index 00000000000..e2453a51e19 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/resolve/inlineIterator.kt @@ -0,0 +1,45 @@ +// FILE: 1.kt + +package zzz + +public class A(val p: Int) + +operator inline fun A.iterator() = (1..p).iterator() + +// FILE: 2.kt + +import zzz.* + +fun box(): String { + var p = 0 + for (i in A(5)) { + p += i + } + + return if (p == 15) "OK" else "fail: $p" +} + +// FILE: 1.smap + +// FILE: 2.smap + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +zzz/_1Kt +*L +1#1,14:1 +7#2:15 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +7#1:15 +*E diff --git a/backend.native/tests/external/codegen/boxInline/smap/smap.kt b/backend.native/tests/external/codegen/boxInline/smap/smap.kt new file mode 100644 index 00000000000..77ef4128490 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/smap/smap.kt @@ -0,0 +1,118 @@ +// FILE: 1.kt + +package builders + +inline fun init(init: () -> Unit) { + init() +} + +inline fun initTag2(init: () -> Unit) { + val p = 1; + init() +} +//{val p = initTag2(init); return p} to remove difference in linenumber processing through MethodNode and MethodVisitor should be: = initTag2(init) +inline fun head(init: () -> Unit) { val p = initTag2(init); return p} + + +inline fun html(init: () -> Unit) { + return init(init) +} + +// FILE: 2.kt + +import builders.* + + +inline fun test(): String { + var res = "Fail" + + html { + head { + res = "OK" + } + } + + return res +} + + +fun box(): String { + var expected = test(); + + return expected +} + +// FILE: 1.smap + +SMAP +1.kt +Kotlin +*S Kotlin +*F ++ 1 1.kt +builders/_1Kt +*L +1#1,21:1 +10#1,3:22 +6#1,2:25 +*E +*S KotlinDebug +*F ++ 1 1.kt +builders/_1Kt +*L +14#1,3:22 +18#1,2:25 +*E + +// FILE: 2.smap + + +SMAP +2.kt +Kotlin +*S Kotlin +*F ++ 1 2.kt +_2Kt ++ 2 1.kt +builders/_1Kt +*L +1#1,25:1 +7#1,3:40 +10#1:45 +11#1,2:49 +13#1:52 +15#1:54 +18#2:26 +6#2,9:27 +10#2,3:36 +7#2:39 +18#2:43 +6#2:44 +14#2:46 +10#2,2:47 +12#2:51 +7#2:53 +*E +*S KotlinDebug +*F ++ 1 2.kt +_2Kt +*L +20#1,3:40 +20#1:45 +20#1,2:49 +20#1:52 +20#1:54 +9#1:26 +9#1,9:27 +9#1,3:36 +9#1:39 +20#1:43 +20#1:44 +20#1:46 +20#1,2:47 +20#1:51 +20#1:53 +*E \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/special/identityCheck.kt b/backend.native/tests/external/codegen/boxInline/special/identityCheck.kt new file mode 100644 index 00000000000..ae0a46df1d3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/special/identityCheck.kt @@ -0,0 +1,33 @@ +// FILE: 1.kt + +package test + +inline fun doSmth(a: T) : Boolean { + return a === a +} + +// FILE: 2.kt + +import test.* + +fun test1(s: Long): Boolean { + return doSmth(s) +} + +fun test2(s: Int): Boolean { + return doSmth(s) +} + +inline fun test3(s: T): Boolean { + return doSmth(s) +} + +fun box(): String { + if (!test1(11111.toLong())) return "fail 1" + if (!test2(11111)) return "fail 2" + if (!test3(11111)) return "fail 3.1" + if (!test3("11111")) return "fail 3.2" + if (!test3(11111.3)) return "fail 3.3" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/special/ifBranches.kt b/backend.native/tests/external/codegen/boxInline/special/ifBranches.kt new file mode 100644 index 00000000000..6deb024f053 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/special/ifBranches.kt @@ -0,0 +1,73 @@ +// FILE: 1.kt + +package test + +inline fun runIf(f: (T) -> T, start: T, stop: T, secondStart: T) : T { + if (f(start) == stop) { + return f(start) + } + return f(secondStart) +} + + +inline fun runIf2(f: (T) -> T, start: T, stop: T, secondStart: T) : T { + val result = f(start) + if (result == stop) { + return result + } + return f(secondStart) +} + +inline fun runIfElse(f: (T) -> T, start: T, stop: T, secondStart: T) : T { + if (f(start) == stop) { + return f(start) + } else { + return f(secondStart) + } +} + +// FILE: 2.kt + +import test.* + +fun testIf(): String { + if (runIf({it}, 11, 11, 12) != 11) return "testIf 1 test fail" + if (runIf({it}, 11, 1, 12) != 12) return "testIf 2 test fail" + + if (runIf({if (it == 11) it else 12}, 11, 11, 0) != 11) return "testIf 3 test fail" + if (runIf({if (it == 11) it else 12}, 11, 1, 0) != 12) return "testIf 4 test fail" + + return "OK" +} + +fun testIf2(): String { + if (runIf2({it}, 11, 11, 12) != 11) return "testIf2 1 test fail" + if (runIf2({it}, 11, 1, 12) != 12) return "testIf2 2 test fail" + + if (runIf2({if (it == 11) it else 12}, 11, 11, 0) != 11) return "testIf2 3 test fail" + if (runIf2({if (it == 11) it else 12}, 11, 1, 0) != 12) return "testIf2 4 test fail" + + return "OK" +} + +fun testIfElse(): String { + if (runIfElse({it}, 11, 11, 12) != 11) return "testIfElse 1 test fail" + if (runIfElse({it}, 11, 1, 12) != 12) return "testIfElse 2 test fail" + + if (runIfElse({if (it == 11) it else 12}, 11, 11, 0) != 11) return "testIfElse 3 test fail" + if (runIfElse({if (it == 11) it else 12}, 11, 1, 0) != 12) return "testIfElse 4 test fail" + return "OK" +} + +fun box(): String { + var result = testIf() + if (result != "OK") return "fail1: ${result}" + + result = testIf2() + if (result != "OK") return "fail2: ${result}" + + result = testIfElse() + if (result != "OK") return "fail2: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/special/iinc.kt b/backend.native/tests/external/codegen/boxInline/special/iinc.kt new file mode 100644 index 00000000000..9df58ac0af5 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/special/iinc.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt + +public inline fun Int.times2(body : () -> Unit) { + var count = this; + while (count > 0) { + body() + count-- + } +} + +// FILE: 2.kt + +fun test1(): Int { + var s = 0; + 2.times2 { + s++ + } + return s; +} + +fun box(): String { + if (test1() != 2) return "test1: ${test1()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/special/inlineChain.kt b/backend.native/tests/external/codegen/boxInline/special/inlineChain.kt new file mode 100644 index 00000000000..9c24a59c100 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/special/inlineChain.kt @@ -0,0 +1,43 @@ +// FILE: 1.kt + +class My + +inline fun T.perform(job: (T)-> R) : R { + return job(this) +} + + +inline fun My.someWork(job: (String) -> Any): Unit { + this.perform { + job("OK") + } +} + +inline fun My.doWork (closure : (param : String) -> Unit) : Unit { + this.someWork(closure) +} + +inline fun My.doPerform (closure : (param : My) -> Int) : Int { + return perform(closure) +} + +// FILE: 2.kt + +fun test1(): String { + val inlineX = My() + var d = ""; + inlineX.doWork({ z: String -> d = z; z}) + return d +} + +fun test2(): Int { + val inlineX = My() + return inlineX.perform({ z: My -> 11}) +} + +fun box(): String { + if (test1() != "OK") return "test1: ${test1()}" + if (test2() != 11) return "test1: ${test2()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/special/plusAssign.kt b/backend.native/tests/external/codegen/boxInline/special/plusAssign.kt new file mode 100644 index 00000000000..840e4ae2958 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/special/plusAssign.kt @@ -0,0 +1,26 @@ +// FILE: 1.kt + +package test + +public class Z(public var s: Int) + +operator inline fun Z.plusAssign(lambda: () -> Int) { + this.s += lambda() +} + +// FILE: 2.kt + +import test.* + +fun test1(s: Int): Int { + val z = Z(s) + z += {s} + return z.s +} + +fun box(): String { + val result = test1(11) + if (result != 22) return "fail1: ${result}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/special/stackHeightBug.kt b/backend.native/tests/external/codegen/boxInline/special/stackHeightBug.kt new file mode 100644 index 00000000000..21de6838e34 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/special/stackHeightBug.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +package test + +inline fun mfun(f: () -> R) { + f() + f() +} + +public inline fun String.toLowerCase2() : String = "" + +// FILE: 2.kt + +import test.* + +fun box(): String { + mfun{ "".toLowerCase2() } + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/elvis.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/elvis.kt new file mode 100644 index 00000000000..6e4d98a72b9 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/elvis.kt @@ -0,0 +1,10 @@ +// FILE: 1.kt +fun foo(x: Any?, y: Any?) = null + +inline fun test(value: Any?): String? { + return foo(null, value ?: return null) +} + +// FILE: 2.kt +fun box(): String = + test(null) ?: "OK" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/ifThenElse.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/ifThenElse.kt new file mode 100644 index 00000000000..0e59babfb80 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/ifThenElse.kt @@ -0,0 +1,10 @@ +// FILE: 1.kt +fun foo(x: Any?, y: Any?) = null + +inline fun test(value: Any?): String? { + return foo(null, if (value != null) value else return null) +} + +// FILE: 2.kt +fun box(): String = + test(null) ?: "OK" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/kt11499.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/kt11499.kt new file mode 100644 index 00000000000..1194efbfdc3 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/kt11499.kt @@ -0,0 +1,12 @@ +// FILE: 1.kt +object CrashMe { + fun crash(value: T): T? = null +} + +internal inline fun crashMe(value: T?): T? { + return CrashMe.crash(value ?: return null) +} + +// FILE: 2.kt +fun box(): String = + crashMe(null) ?: "OK" diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack1.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack1.kt new file mode 100644 index 00000000000..08d6a84c259 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack1.kt @@ -0,0 +1,10 @@ +// FILE: 1.kt +fun foo1(x: Long, xx: Int, y: Any?) = null + +inline fun test1(value: Any?): String? { + return foo1(0L, 0, value ?: return null) +} + +// FILE: 2.kt +fun box(): String = + test1(null) ?: "OK" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack2.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack2.kt new file mode 100644 index 00000000000..22268ac2f98 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack2.kt @@ -0,0 +1,10 @@ +// FILE: 1.kt +fun foo2(x: Int, xx: Long, y: Any?) = null + +inline fun test2(value: Any?): String? { + return foo2(0, 0L, value ?: return null) +} + +// FILE: 2.kt +fun box(): String = + test2(null) ?: "OK" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack3.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack3.kt new file mode 100644 index 00000000000..64a61b6f014 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/mixedTypesOnStack3.kt @@ -0,0 +1,10 @@ +// FILE: 1.kt +fun foo3(x: Int, xx: Long, xxx: Int, y: Any?) = null + +inline fun test3(value: Any?): String? { + return foo3(0, 0L, 0, value ?: return null) +} + +// FILE: 2.kt +fun box(): String = + test3(null) ?: "OK" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn1.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn1.kt new file mode 100644 index 00000000000..1f1779b04fe --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn1.kt @@ -0,0 +1,15 @@ +// FILE: 1.kt +inline fun run(f: () -> Unit) = f() +inline fun withAny(f: Any.() -> Unit) = Any().f() + +// FILE: 2.kt +fun foo(x: Any?, y: Any?) {} + +fun box(): String { + run outer@{ + withAny inner@{ + foo(null, null ?: return@outer) + } + } + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn2.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn2.kt new file mode 100644 index 00000000000..10b2f78b209 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn2.kt @@ -0,0 +1,15 @@ +// FILE: 1.kt +inline fun run(f: () -> Unit) = f() +inline fun withAny(f: Any.() -> Unit) = Any().f() + +// FILE: 2.kt +fun foo(x: Any?, y: Any?) {} + +fun box(): String { + run outer@{ + withAny inner@{ + foo(null, null ?: return@inner) + } + } + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn3.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn3.kt new file mode 100644 index 00000000000..53330c09d22 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/nonLocalReturn3.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt +inline fun run(f: () -> Unit) = f() +inline fun withAny(f: Any.() -> Unit) = Any().f() +inline fun foo(x: Any?, y: Any?, f: () -> Unit) = f() + +// FILE: 2.kt + +fun box(): String { + run outer@{ + withAny inner@{ + foo(null, 0 ?: return@outer) { + foo(null, null ?: return@inner) {} + } + } + } + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/returnLong.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/returnLong.kt new file mode 100644 index 00000000000..2f5cdbc9a0a --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/returnLong.kt @@ -0,0 +1,12 @@ +// FILE: 1.kt +fun foo(x: Any?, y: Any?) = 0L + +inline fun test(value: Any?): Long { + return foo(null, value ?: return 1L) +} + +// FILE: 2.kt +fun box(): String { + val t = test(null) + return if (t == 1L) "OK" else "fail: t=$t" +} \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/stackOnReturn/tryFinally.kt b/backend.native/tests/external/codegen/boxInline/stackOnReturn/tryFinally.kt new file mode 100644 index 00000000000..6b5b4ec2f30 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/stackOnReturn/tryFinally.kt @@ -0,0 +1,17 @@ +// FILE: 1.kt +fun foo(x: Any?, y: Any?) = null + +var finallyFlag = false + +inline fun test(value: Any?): String? { + try { + return foo(null, value ?: return null) + } + finally { + finallyFlag = true + } +} + +// FILE: 2.kt +fun box(): String = + test(null) ?: if (finallyFlag) "OK" else "finallyFlag not set" \ No newline at end of file diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/constField.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/constField.kt new file mode 100644 index 00000000000..7900725284c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/constField.kt @@ -0,0 +1,27 @@ +// FILE: 1.kt + +package test + +private const val packageProp = "O" + +internal inline fun packageInline(p: (String) -> String): String { + return p(packageProp) +} + +internal fun samePackageCall(): String { + return packageInline { it + "K"} +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val packageResult = packageInline { it + "K" } + if (packageResult != "OK") return "package inline fail: $packageResult" + + val samePackageResult = samePackageCall() + if (samePackageResult != "OK") return "same package inline fail: $samePackageResult" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/packagePrivateMembers.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/packagePrivateMembers.kt new file mode 100644 index 00000000000..30bef9d6bc8 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/packagePrivateMembers.kt @@ -0,0 +1,29 @@ +// FILE: 1.kt + +package test + +private val packageProp = "O" + +private fun packageFun() = "K" + +internal inline fun packageInline(p: (String, String) -> String): String { + return p(packageProp, packageFun()) +} + +internal fun samePackageCall(): String { + return packageInline { s, s2 -> s + s2 } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + val packageResult = packageInline { a, b -> a + b } + if (packageResult != "OK") return "package inline fail: $packageResult" + + val samePackageResult = samePackageCall() + if (samePackageResult != "OK") return "same package inline fail: $samePackageResult" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/propertyModifiers.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/propertyModifiers.kt new file mode 100644 index 00000000000..a389f36bb3c --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/propertyModifiers.kt @@ -0,0 +1,38 @@ +// FILE: 1.kt + +package test + +class P { + private val FOO_PRIVATE = "OK" + + final val FOO_FINAL = "OK" + + private inline fun fooPrivate(): String { + return FOO_PRIVATE + } + + private inline fun fooFinal(): String { + return FOO_FINAL + } + + fun testPrivate(): String { + return fooPrivate() + } + + fun testFinal(): String { + return fooFinal() + } +} + +// FILE: 2.kt + +import test.* + +fun box() : String { + val p = P() + + if (p.testPrivate() != "OK") return "fail 1 ${p.testPrivate()}" + + if (p.testFinal() != "OK") return "fail 2 ${p.testFinal()}" + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembers.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembers.kt new file mode 100644 index 00000000000..21bcb3291ee --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembers.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +open class P { + protected open val FOO = "O" + + protected open fun test() = "K" + + inline fun protectedProp(): String { + return FOO + } + + inline fun protectedFun(): String { + return test() + } +} + +// FILE: 2.kt + +import test.* + +class A: P() { + override val FOO: String + get() = "fail" + + override fun test(): String { + return "fail" + } +} + +fun box() : String { + val p = P() + return p.protectedProp() + p.protectedFun() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembersFromSuper.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembersFromSuper.kt new file mode 100644 index 00000000000..93daa050549 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/protectedMembersFromSuper.kt @@ -0,0 +1,38 @@ +// FILE: 1.kt + +package test + +open class Base { + protected open val FOO = "O" + + protected open fun test() = "K" +} + +open class P : Base() { + + inline fun protectedProp(): String { + return FOO + } + + inline fun protectedFun(): String { + return test() + } +} + +// FILE: 2.kt + +import test.* + +class A: P() { + override val FOO: String + get() = "fail" + + override fun test(): String { + return "fail" + } +} + +fun box() : String { + val p = P() + return p.protectedProp() + p.protectedFun() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/superCall.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/superCall.kt new file mode 100644 index 00000000000..98cf3d927ed --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/superCall.kt @@ -0,0 +1,25 @@ +// FILE: 1.kt + +package test + +open class A { + open fun test() = "OK" +} + +object X : A() { + override fun test(): String { + return "fail" + } + + inline fun doTest(): String { + return super.test() + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return X.doTest() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/superProperty.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/superProperty.kt new file mode 100644 index 00000000000..e5f900da71e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/superProperty.kt @@ -0,0 +1,24 @@ +// FILE: 1.kt + +package test + +open class A { + open val test = "OK" +} + +object X : A() { + override val test: String + get() = "fail" + + inline fun doTest(): String { + return super.test + } +} + +// FILE: 2.kt + +import test.* + +fun box(): String { + return X.doTest() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccess.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccess.kt new file mode 100644 index 00000000000..1650f38adf4 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccess.kt @@ -0,0 +1,35 @@ +// FILE: 1.kt + +package test + +inline fun call(s: () -> String): String { + return s() +} + +// FILE: 2.kt + +import test.* + +class A { + + private val prop : String = "O" + get() = call {field + "K" } + + private val prop2 : String = "O" + get() = call { call {field + "K" } } + + fun test1(): String { + return prop + } + + fun test2(): String { + return prop2 + } + +} + +fun box(): String { + val a = A() + if (a.test1() != "OK") return "fail 1: ${a.test1()}" + return a.test2() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccessInCrossInline.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccessInCrossInline.kt new file mode 100644 index 00000000000..ff03266a302 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/directFieldAccessInCrossInline.kt @@ -0,0 +1,36 @@ +// FILE: 1.kt + +package test + +inline fun call(crossinline s: () -> String): String { + return { s() } () +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +class A { + + private val prop : String = "O" + get() = call {field + "K" } + + private val prop2 : String = "O" + get() = call { call {field + "K" } } + + fun test1(): String { + return prop + } + + fun test2(): String { + return prop2 + } + +} + +fun box(): String { + val a = A() + if (a.test1() != "OK") return "fail 1: ${a.test1()}" + return a.test2() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateCall.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateCall.kt new file mode 100644 index 00000000000..b5a5f5fce47 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateCall.kt @@ -0,0 +1,38 @@ +// FILE: 1.kt + +package test + +inline fun call(s: () -> String): String { + return s() +} + +// FILE: 2.kt + +import test.* + +class A { + + private fun method() = "O" + + private val prop = "K" + + fun test1(): String { + return call { + method() + prop + } + } + + fun test2(): String { + return call { + call { + method() + prop + } + } + } +} + +fun box(): String { + val a = A() + if (a.test1() != "OK") return "fail 1: ${a.test1()}" + return a.test2() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateInCrossInline.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateInCrossInline.kt new file mode 100644 index 00000000000..4bf507eea06 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/privateInCrossInline.kt @@ -0,0 +1,41 @@ +// FILE: 1.kt + +package test + +inline fun call(crossinline s: () -> String): String { + return { + s() + }() +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +class A { + + private fun method() = "O" + + private val prop = "K" + + fun test1(): String { + return call { + method() + prop + } + } + + fun test2(): String { + return call { + call { + method() + prop + } + } + } +} + +fun box(): String { + val a = A() + if (a.test1() != "OK") return "fail 1: ${a.test1()}" + return a.test2() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superCall.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superCall.kt new file mode 100644 index 00000000000..6d8aca2ae52 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superCall.kt @@ -0,0 +1,45 @@ +// FILE: 1.kt + +package test + +inline fun call(s: () -> String): String { + return s() +} + +open class Base { + + protected open fun method(): String = "O" + + protected open val prop = "K" +} + +// FILE: 2.kt + +import test.* + +class A : Base() { + + override fun method() = "fail method" + + override val prop = "fail property" + + fun test1(): String { + return call { + super.method() + super.prop + } + } + + fun test2(): String { + return call { + call { + super.method() + super.prop + } + } + } +} + +fun box(): String { + val a = A() + if (a.test1() != "OK") return "fail 1: ${a.test1()}" + return a.test2() +} diff --git a/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superInCrossInline.kt b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superInCrossInline.kt new file mode 100644 index 00000000000..4c5559410c1 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/syntheticAccessors/withinInlineLambda/superInCrossInline.kt @@ -0,0 +1,48 @@ +// FILE: 1.kt + +package test + +inline fun call(crossinline s: () -> String): String { + return { + s() + }() +} + +open class Base { + + protected open fun method(): String = "O" + + protected open val prop = "K" +} + +// FILE: 2.kt + +//NO_CHECK_LAMBDA_INLINING +import test.* + +class A : Base() { + + override fun method() = "fail method" + + override val prop = "fail property" + + fun test1(): String { + return call { + super.method() + super.prop + } + } + + fun test2(): String { + return call { + call { + super.method() + super.prop + } + } + } +} + +fun box(): String { + val a = A() + if (a.test1() != "OK") return "fail 1: ${a.test1()}" + return a.test2() +} diff --git a/backend.native/tests/external/codegen/boxInline/trait/trait.kt b/backend.native/tests/external/codegen/boxInline/trait/trait.kt new file mode 100644 index 00000000000..cd85fac3b3e --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/trait/trait.kt @@ -0,0 +1,44 @@ +// FILE: 1.kt + +package test + +interface InlineTrait { + + private inline fun privateInline(s: () -> String): String { + return s() + } + + fun testPrivateInline(): String { + return privateInline { "private" } + } + + fun testPrivateInline2(): String { + return privateInline { "private2" } + } + + companion object { + inline final fun finalInline(s: () -> String): String { + return s() + } + } +} + +class Z : InlineTrait { + +} + +// FILE: 2.kt + +import test.* + +fun testClassObject(): String { + return InlineTrait.finalInline({ "classobject" }) +} + +fun box(): String { + if (Z().testPrivateInline() != "private") return "test1: ${Z().testPrivateInline()}" + if (Z().testPrivateInline2() != "private2") return "test2: ${Z().testPrivateInline2()}" + if (testClassObject() != "classobject") return "test3: ${testClassObject()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/tryCatchFinally/kt5863.kt b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/kt5863.kt new file mode 100644 index 00000000000..93c27ff3be7 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/kt5863.kt @@ -0,0 +1,19 @@ +// FILE: 1.kt + +inline fun performWithFinally(finally: () -> R) : R { + try { + throw RuntimeException("1") + } catch (e: RuntimeException) { + throw RuntimeException("2") + } finally { + return finally() + } +} + +// FILE: 2.kt + +inline fun test2Inline() = performWithFinally { "OK" } + +fun box(): String { + return test2Inline() +} diff --git a/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch.kt b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch.kt new file mode 100644 index 00000000000..b4e0f13f2ac --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch.kt @@ -0,0 +1,66 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt + +class My(val value: Int) + +inline fun T.perform(job: (T)-> R) : R { + return job(this) +} + +public inline fun String.toInt2() : Int = java.lang.Integer.parseInt(this) + +// FILE: 2.kt + +fun test1() : Int { + val inlineX = My(111) + var result = 0 + val res = inlineX.perform{ + + try { + throw RuntimeException() + } catch (e: RuntimeException) { + result = -1 + } + result + } + + return result +} + +fun test11() : Int { + val inlineX = My(111) + val res = inlineX.perform{ + try { + throw RuntimeException() + } catch (e: RuntimeException) { + -1 + } + } + + return res +} + +fun test2() : Int { + try { + val inlineX = My(111) + var result = 0 + val res = inlineX.perform{ + try { + throw RuntimeException("-1") + } catch (e: RuntimeException) { + throw RuntimeException("-2") + } + } + return result + } catch (e: RuntimeException) { + return e.message!!.toInt2()!! + } +} + +fun box(): String { + if (test1() != -1) return "test1: ${test1()}" + if (test11() != -1) return "test11: ${test11()}" + if (test2() != -2) return "test2: ${test2()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch2.kt b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch2.kt new file mode 100644 index 00000000000..9d80c724d68 --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatch2.kt @@ -0,0 +1,132 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt + +class My(val value: Int) + +inline fun T.performWithFail(job: (T)-> R, failJob : (T) -> R) : R { + try { + return job(this) + } catch (e: RuntimeException) { + return failJob(this) + } +} + +inline fun T.performWithFail2(job: (T)-> R, failJob : (e: RuntimeException, T) -> R) : R { + try { + return job(this) + } catch (e: RuntimeException) { + return failJob(e, this) + } +} + +public inline fun String.toInt2() : Int = java.lang.Integer.parseInt(this) + +// FILE: 2.kt + +fun test1(): Int { + val res = My(111).performWithFail( + { + throw RuntimeException() + }, { + it.value + }) + return res +} + +fun test11(): Int { + val res = My(111).performWithFail2( + { + try { + throw RuntimeException("1") + } catch (e: RuntimeException) { + throw RuntimeException("2") + } + }, + { ex, thizz -> + if (ex.message == "2") { + thizz.value + } else { + -11111 + } + }) + return res +} + +fun test2(): Int { + val res = My(111).performWithFail( + { + it.value + }, + { + it.value + 1 + }) + return res +} + +fun test22(): Int { + val res = My(111).performWithFail2( + { + try { + throw RuntimeException("1") + } catch (e: RuntimeException) { + it.value + 111 + } + }, + { ex, thizz -> + -11111 + }) + + return res +} + + +fun test3(): Int { + try { + val res = My(111).performWithFail( + { + throw RuntimeException("-1") + }, { + throw RuntimeException("-2") + }) + return res + } catch (e: RuntimeException) { + return e.message?.toInt2()!! + } +} + +fun test33(): Int { + try { + val res = My(111).performWithFail2( + { + try { + throw RuntimeException("-1") + } catch (e: RuntimeException) { + throw RuntimeException("-2") + } + }, + { ex, thizz -> + if (ex.message == "-2") { + throw RuntimeException("-3") + } else { + -11111 + } + }) + return res + } catch (e: RuntimeException) { + return e.message!!.toInt2()!! + } +} + +fun box(): String { + if (test1() != 111) return "test1: ${test1()}" + if (test11() != 111) return "test11: ${test11()}" + + if (test2() != 111) return "test2: ${test2()}" + if (test22() != 111) return "test22: ${test22()}" + + if (test3() != -2) return "test3: ${test3()}" + if (test33() != -3) return "test33: ${test33()}" + + return "OK" +} diff --git a/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatchFinally.kt b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatchFinally.kt new file mode 100644 index 00000000000..ada4876e5cf --- /dev/null +++ b/backend.native/tests/external/codegen/boxInline/tryCatchFinally/tryCatchFinally.kt @@ -0,0 +1,101 @@ +// IGNORE_BACKEND: NATIVE +// FILE: 1.kt +// WITH_RUNTIME + +class My(val value: Int) + +inline fun T.performWithFinally(job: (T)-> R, finally: (T) -> R) : R { + try { + return job(this) + } finally { + return finally(this) + } +} + +inline fun T.performWithFailFinally(job: (T)-> R, failJob : (e: RuntimeException, T) -> R, finally: (T) -> R) : R { + try { + return job(this) + } catch (e: RuntimeException) { + return failJob(e, this) + } finally { + return finally(this) + } +} + +inline fun String.toInt2() : Int = java.lang.Integer.parseInt(this) + +// FILE: 2.kt + +fun test1(): Int { + + var res = My(111).performWithFinally( + { + 1 + }, { + it.value + }) + return res +} + +fun test11(): Int { + var result = -1; + val res = My(111).performWithFinally( + { + try { + result = it.value + throw RuntimeException("1") + } catch (e: RuntimeException) { + ++result + throw RuntimeException("2") + } + }, + { + ++result + }) + return res +} + +fun test2(): Int { + var res = My(111).performWithFinally( + { + throw RuntimeException("1") + }, + { + it.value + }) + + + return res +} + +fun test3(): Int { + try { + var result = -1; + val res = My(111).performWithFailFinally( + { + result = it.value; + throw RuntimeException("-1") + }, + { e, z -> + ++result + throw RuntimeException("-2") + }, + { + ++result + }) + return res + } catch (e: RuntimeException) { + return e.message?.toInt()!! + } +} + +fun box(): String { + if (test1() != 111) return "test1: ${test1()}" + if (test11() != 113) return "test11: ${test11()}" + + if (test2() != 111) return "test2: ${test2()}" + + if (test3() != 113) return "test3: ${test3()}" + + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/annotationInInterface.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/annotationInInterface.kt new file mode 100644 index 00000000000..636b1c5be0f --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/annotationInInterface.kt @@ -0,0 +1,25 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +package a + +@Retention(AnnotationRetention.RUNTIME) +annotation class Ann + +interface Tr { + @Ann + fun foo() {} +} + +// FILE: B.kt + +class C : a.Tr + +fun box(): String { + val method = C::class.java.getDeclaredMethod("foo") + val annotations = method.getDeclaredAnnotations().joinToString("\n") + if (annotations != "@a.Ann()") { + return "Fail: $annotations" + } + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/annotationsOnTypeAliases.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/annotationsOnTypeAliases.kt new file mode 100644 index 00000000000..64d76c8222d --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/annotationsOnTypeAliases.kt @@ -0,0 +1,29 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt +package a + +import kotlin.annotation.AnnotationTarget.* +import kotlin.annotation.AnnotationRetention.* +import java.lang.Class + +@Target(TYPEALIAS) +@Retention(RUNTIME) +annotation class Ann(val x: Int) + +@Ann(2) +typealias TA = Any + +// FILE: B.kt +import a.Ann + +fun Class<*>.assertHasDeclaredMethodWithAnn() { + if (!declaredMethods.any { it.isSynthetic && it.getAnnotation(Ann::class.java) != null }) { + throw java.lang.AssertionError("Class ${this.simpleName} has no declared method with annotation @Ann") + } +} + +fun box(): String { + Class.forName("a.AKt").assertHasDeclaredMethodWithAnn() + + return "OK" +} \ No newline at end of file diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/callsToMultifileClassFromOtherPackage.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/callsToMultifileClassFromOtherPackage.kt new file mode 100644 index 00000000000..ae838b1598a --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/callsToMultifileClassFromOtherPackage.kt @@ -0,0 +1,23 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +@file:[JvmName("MultifileClass") JvmMultifileClass] +package a + +fun foo(): String = "OK" +const val constOK: String = "OK" +val valOK: String = "OK" +var varOK: String = "Hmmm?" + +// FILE: B.kt + +import a.* + +fun box(): String { + if (foo() != "OK") return "Fail function" + if (constOK != "OK") return "Fail const" + if (valOK != "OK") return "Fail val" + varOK = "OK" + if (varOK != "OK") return "Fail var" + return varOK +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/classInObject.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/classInObject.kt new file mode 100644 index 00000000000..28cf854a951 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/classInObject.kt @@ -0,0 +1,18 @@ +// FILE: A.kt + +package a + +object CartRoutes { + class RemoveOrderItem { + val result = "OK" + } +} + +// FILE: B.kt + +import a.CartRoutes + +fun box(): String { + val r = CartRoutes.RemoveOrderItem() + return r.result +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectInEnum.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectInEnum.kt new file mode 100644 index 00000000000..23b2ba03385 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectInEnum.kt @@ -0,0 +1,19 @@ +// FILE: A.kt + +package library + +public enum class EnumClass { + ENTRY; + + public companion object { + public fun entry(): EnumClass = ENTRY + } +} + +// FILE: B.kt + +import library.EnumClass + +fun box(): String { + return if (EnumClass.entry() != EnumClass.ENTRY) "Fail" else "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectMember.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectMember.kt new file mode 100644 index 00000000000..deda85e7ded --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/companionObjectMember.kt @@ -0,0 +1,15 @@ +// FILE: A.kt + +class A { + companion object { + fun foo() = 42 + val bar = "OK" + } +} + +// FILE: B.kt + +fun box(): String { + if (A.foo() != 42) return "Fail foo" + return A.bar +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/constPropertyReferenceFromMultifileClass.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/constPropertyReferenceFromMultifileClass.kt new file mode 100644 index 00000000000..b9f29dc33f6 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/constPropertyReferenceFromMultifileClass.kt @@ -0,0 +1,28 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +@file:[JvmName("MultifileClass") JvmMultifileClass] +package a + +annotation class A + +@A +const val OK: String = "OK" + +// FILE: B.kt + +import a.OK + +fun box(): String { + val okRef = ::OK + + // TODO: see KT-10892 +// val annotations = okRef.annotations +// val numAnnotations = annotations.size +// if (numAnnotations != 1) { +// throw AssertionError("Failed, annotations: $annotations") +// } + + val result = okRef.get() + return result +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/constructorVararg.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/constructorVararg.kt new file mode 100644 index 00000000000..b618feba70e --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/constructorVararg.kt @@ -0,0 +1,14 @@ +// FILE: A.kt + +class A(vararg s: String) { + +} + +// FILE: B.kt + +fun box(): String { + A() + A("a") + A("a", "b") + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/coroutinesBinary.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/coroutinesBinary.kt new file mode 100644 index 00000000000..1458cde1c16 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/coroutinesBinary.kt @@ -0,0 +1,36 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt +// WITH_RUNTIME +package a + +import kotlin.coroutines.experimental.* +import kotlin.coroutines.experimental.intrinsics.* + +class Controller { + suspend fun suspendHere() = suspendCoroutineOrReturn { x -> + x.resume("OK") + COROUTINE_SUSPENDED + } +} + +fun builder(c: suspend Controller.() -> Unit) { + c.startCoroutine(Controller(), object : Continuation { + override val context: CoroutineContext = EmptyCoroutineContext + override fun resume(value: Unit) {} + + override fun resumeWithException(exception: Throwable) {} + }) +} + +// FILE: B.kt +import a.builder + +fun box(): String { + var result = "" + + builder { + result = suspendHere() + } + + return result +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/defaultConstructor.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/defaultConstructor.kt new file mode 100644 index 00000000000..8cbbab06504 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/defaultConstructor.kt @@ -0,0 +1,12 @@ +// FILE: A.kt + +package aaa + +class A(val a: Int = 1) + +// FILE: B.kt + +fun box(): String { + aaa.A() + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/doublyNestedClass.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/doublyNestedClass.kt new file mode 100644 index 00000000000..12ceef419a4 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/doublyNestedClass.kt @@ -0,0 +1,18 @@ +// FILE: A.kt + +package aaa + +class A { + class B { + class O { + val s = "OK" + } + } +} + +// FILE: B.kt + +fun box(): String { + val str = aaa.A.B.O().s + return str +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/enum.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/enum.kt new file mode 100644 index 00000000000..aedb880cdbc --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/enum.kt @@ -0,0 +1,17 @@ +// FILE: A.kt + +package aaa + +enum class E { + TRIVIAL_ENTRY, + SUBCLASS { } +} + +// FILE: B.kt + +import aaa.E + +fun box(): String { + if (E.TRIVIAL_ENTRY == E.SUBCLASS) return "Fail" + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/inlinedConstants.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/inlinedConstants.kt new file mode 100644 index 00000000000..a772f317ddf --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/inlinedConstants.kt @@ -0,0 +1,34 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +package constants + +public const val b: Byte = 100 +public const val s: Short = 20000 +public const val i: Int = 2000000 +public const val l: Long = 2000000000000L +public const val f: Float = 3.14f +public const val d: Double = 3.14 +public const val bb: Boolean = true +public const val c: Char = '\u03c0' // pi symbol + +public const val str: String = ":)" + +@Retention(AnnotationRetention.RUNTIME) +public annotation class AnnotationClass(public val value: String) + +// FILE: B.kt + +import constants.* + +@AnnotationClass("$b $s $i $l $f $d $bb $c $str") +class DummyClass() + +fun box(): String { + val klass = DummyClass::class.java + val annotationClass = AnnotationClass::class.java + val annotation = klass.getAnnotation(annotationClass)!! + val value = annotation.value + require(value == "100 20000 2000000 2000000000000 3.14 3.14 true \u03c0 :)", { "Annotation value: $value" }) + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/innerClassConstructor.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/innerClassConstructor.kt new file mode 100644 index 00000000000..410cc603f89 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/innerClassConstructor.kt @@ -0,0 +1,21 @@ +// FILE: A.kt + +package second + +public class Outer() { + inner class Inner(test: String) +} + +// FILE: B.kt + +//test for KT-3702 Inner class constructor cannot be invoked in override function with receiver +import second.Outer + +fun Outer.testExt() { + Inner("test") +} + +fun box(): String { + Outer().testExt() + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/jvmField.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmField.kt new file mode 100644 index 00000000000..bd67d07401c --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmField.kt @@ -0,0 +1,25 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +open class A { + @JvmField public val publicField = "1"; + @JvmField internal val internalField = "2"; + @JvmField protected val protectedfield = "3"; +} + +open class B : A() { + +} + +// FILE: B.kt + +open class C : B() { + fun test(): String { + return super.publicField + super.internalField + super.protectedfield + } +} + +fun box(): String { + C().test() + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/jvmFieldInConstructor.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmFieldInConstructor.kt new file mode 100644 index 00000000000..a04bebca35a --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmFieldInConstructor.kt @@ -0,0 +1,21 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +open class A(@JvmField public val publicField: String = "1", + @JvmField internal val internalField: String = "2", + @JvmField protected val protectedfield: String = "3") + +open class B : A() + +// FILE: B.kt + +open class C : B() { + fun test(): String { + return super.publicField + super.internalField + super.protectedfield + } +} + +fun box(): String { + C().test() + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/jvmNames.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmNames.kt new file mode 100644 index 00000000000..9d3c1c411eb --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmNames.kt @@ -0,0 +1,31 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +package lib + +@JvmName("bar") +fun foo() = "foo" + +var v: Int = 1 + @JvmName("vget") + get + @JvmName("vset") + set + +fun consumeInt(x: Int) {} + +class A { + val OK: String = "OK" + @JvmName("OK") get +} + +// FILE: B.kt + +import lib.* + +fun box(): String { + foo() + v = 1 + consumeInt(v) + return A().OK +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/jvmStaticInObject.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmStaticInObject.kt new file mode 100644 index 00000000000..4fc82fe64ae --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/jvmStaticInObject.kt @@ -0,0 +1,17 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +package aaa + +import kotlin.jvm.* + +public object TestObject { + @JvmStatic + public val test: String = "OK" +} + +// FILE: B.kt + +fun box(): String { + return aaa.TestObject.test +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/kotlinPropertyAsAnnotationParameter.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/kotlinPropertyAsAnnotationParameter.kt new file mode 100644 index 00000000000..4091b9e500c --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/kotlinPropertyAsAnnotationParameter.kt @@ -0,0 +1,54 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +package a + +const val i = 2 +const val s = 2.toShort() +const val f = 2.0.toFloat() +const val d = 2.0 +const val l = 2L +const val b = 2.toByte() +const val bool = true +const val c = 'c' +const val str = "str" + +const val i2 = i +const val s2 = s +const val f2 = f +const val d2 = d +const val l2 = l +const val b2 = b +const val bool2 = bool +const val c2 = c +const val str2 = str + +// FILE: B.kt + +import a.* + +@Ann(i, s, f, d, l, b, bool, c, str) +class MyClass1 + +@Ann(i2, s2, f2, d2, l2, b2, bool2, c2, str2) +class MyClass2 + +@Retention(AnnotationRetention.RUNTIME) +annotation class Ann( + val i: Int, + val s: Short, + val f: Float, + val d: Double, + val l: Long, + val b: Byte, + val bool: Boolean, + val c: Char, + val str: String +) + +fun box(): String { + // Trigger annotation loading + (MyClass1() as java.lang.Object).getClass().getAnnotations() + (MyClass2() as java.lang.Object).getClass().getAnnotations() + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/kt14012.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/kt14012.kt new file mode 100644 index 00000000000..71da17120c4 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/kt14012.kt @@ -0,0 +1,18 @@ +// FILE: A.kt +package test + +var property = "fail" + private set + +fun test() { + property = "OK" +} + +// FILE: B.kt + +import test.* + +fun box(): String { + test() + return property +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/kt14012_multi.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/kt14012_multi.kt new file mode 100644 index 00000000000..4fb57e5ea21 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/kt14012_multi.kt @@ -0,0 +1,21 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt +@file:JvmName("TTest") +@file:JvmMultifileClass +package test + +var property = "fail" + private set + +fun test() { + property = "OK" +} + +// FILE: B.kt + +import test.* + +fun box(): String { + test() + return property +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/multifileClassInlineFunctionAccessingProperty.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/multifileClassInlineFunctionAccessingProperty.kt new file mode 100644 index 00000000000..c0eeb761349 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/multifileClassInlineFunctionAccessingProperty.kt @@ -0,0 +1,15 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +@file:[JvmName("Test") JvmMultifileClass] + +val property = "K" + +inline fun K(body: () -> String): String = + body() + property + +// FILE: B.kt + +fun box(): String { + return K { "O" } +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/nestedClass.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/nestedClass.kt new file mode 100644 index 00000000000..52d14e6357d --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/nestedClass.kt @@ -0,0 +1,15 @@ +// FILE: A.kt + +package aaa + +class A { + class O { + val s = "OK" + } +} + +// FILE: B.kt + +fun box(): String { + return aaa.A.O().s +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/nestedEnum.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/nestedEnum.kt new file mode 100644 index 00000000000..678e8d191a0 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/nestedEnum.kt @@ -0,0 +1,19 @@ +// FILE: A.kt + +package aaa + +class A { + enum class E { + A + } +} + +// FILE: B.kt + +fun box(): String { + val str = aaa.A.E.A + if (str.toString() != "A") { + return "Fail $str" + } + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/nestedObject.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/nestedObject.kt new file mode 100644 index 00000000000..a338168c8fd --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/nestedObject.kt @@ -0,0 +1,15 @@ +// FILE: A.kt + +package aaa + +class A { + object O { + val s = "OK" + } +} + +// FILE: B.kt + +fun box(): String { + return aaa.A.O.s +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/platformTypes.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/platformTypes.kt new file mode 100644 index 00000000000..fe835c0fa2e --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/platformTypes.kt @@ -0,0 +1,37 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +package test + +import java.util.* + +fun printStream() = System.out +fun list() = Collections.emptyList() +fun array(a: Array) = Arrays.copyOf(a, 2) + +// FILE: B.kt + +import java.io.PrintStream +import java.util.ArrayList +import test.* + +// To check that flexible types are loaded +class Inv +fun inv(t: T): Inv = Inv() + +fun box(): String { + printStream().checkError() + val p: Inv = inv(printStream()) + val p1: Inv = inv(printStream()) + + list().size + val l: Inv> = inv(list()) + val l1: Inv?> = inv(list()) + + val a = array(arrayOfNulls(1) as Array) + a[0] = 1 + val a1: Inv> = inv(a) + val a2: Inv?> = inv(a) + + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/propertyReference.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/propertyReference.kt new file mode 100644 index 00000000000..35bdea51241 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/propertyReference.kt @@ -0,0 +1,27 @@ +// FILE: A.kt + +package a + +public var topLevel: Int = 42 + +public val String.extension: Long + get() = length.toLong() + +// FILE: B.kt + +import a.* + +fun box(): String { + val f = ::topLevel + val x1 = f.get() + if (x1 != 42) return "Fail x1: $x1" + f.set(239) + val x2 = f.get() + if (x2 != 239) return "Fail x2: $x2" + + val g = String::extension + val y1 = g.get("abcde") + if (y1 != 5L) return "Fail y1: $y1" + + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/recursiveGeneric.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/recursiveGeneric.kt new file mode 100644 index 00000000000..be9960edac6 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/recursiveGeneric.kt @@ -0,0 +1,27 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt + +package a + +interface Rec> { + fun t(): T +} + +interface Super { + fun foo(p: Rec<*, *>) = p.t() +} + +// FILE: B.kt + +import a.* + +fun box(): String { + val declaredMethod = Super::class.java.getDeclaredMethod("foo", Rec::class.java) + val genericString = declaredMethod.toGenericString() + if (genericString != "public abstract a.Rec a.Super.foo(a.Rec)") return "Fail: $genericString" + return "OK" +} + +fun test(s: Super, p: Rec<*, *>) { + s.foo(p).t().t().t() +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/sealedClass.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/sealedClass.kt new file mode 100644 index 00000000000..dff0e486a51 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/sealedClass.kt @@ -0,0 +1,38 @@ +// FILE: A.kt + +package a + +sealed class Empty + +sealed class OnlyNested { + class Nested : OnlyNested() +} + +sealed class NestedAndTopLevel { + class Nested : NestedAndTopLevel() +} +class TopLevel : NestedAndTopLevel() + +// FILE: B.kt + +import a.* + +// This test checks that we correctly load subclasses of a compiled sealed class from binaries. +// It's not a diagnostic test because there are no diagnostic tests where resolution is performed against compiled Kotlin binaries + +fun empty(e: Empty): String = when (e) { + else -> "1" +} + +fun onlyNested(on: OnlyNested): String = when (on) { + is OnlyNested.Nested -> "2" +} + +fun nestedAndTopLevel(natl: NestedAndTopLevel): String = when (natl) { + is NestedAndTopLevel.Nested -> "3" + is TopLevel -> "4" +} + +fun box(): String { + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/secondaryConstructors.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/secondaryConstructors.kt new file mode 100644 index 00000000000..4fa277472d8 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/secondaryConstructors.kt @@ -0,0 +1,38 @@ +// FILE: A.kt + +open class A { + val prop: String + constructor(x1: String, x2: String = "abc") { + prop = "$x1#$x2" + } + constructor(x1: Long) { + prop = "$x1" + } +} + +// FILE: B.kt + +class B1() : A("123") { + constructor(x1: Int): this() {} +} + +class B2 : A { + constructor(x1: String): super(x1) {} + constructor(): this("empty") {} + constructor(x1: Int): super(x1.toLong()) {} +} + +fun box(): String { + val b1 = B1() + if (b1.prop != "123#abc") return "fail1: ${b1.prop}" + val b2 = B1(456) + if (b2.prop != "123#abc") return "fail2: ${b2.prop}" + val b3 = B2("cde") + if (b3.prop != "cde#abc") return "fail3: ${b3.prop}" + val b4 = B2() + if (b4.prop != "empty#abc") return "fail4: ${b4.prop}" + val b5 = B2(789) + if (b5.prop != "789") return "fail5: ${b5.prop}" + + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/simple.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/simple.kt new file mode 100644 index 00000000000..2a74fe2aba4 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/simple.kt @@ -0,0 +1,15 @@ +// FILE: A.kt + +package aaa + +fun hello() = 17 + +// FILE: B.kt + +fun box(): String { + val h = aaa.hello() + if (h != 17) { + throw Exception() + } + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/simpleValAnonymousObject.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/simpleValAnonymousObject.kt new file mode 100644 index 00000000000..4d6fc957ea0 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/simpleValAnonymousObject.kt @@ -0,0 +1,20 @@ +// FILE: A.kt + +package pkg + +interface ClassA { + companion object { + val DEFAULT = object : ClassA { + override fun toString() = "OK" + } + } +} + +// FILE: B.kt + +import pkg.ClassA + +fun box(): String { + val obj = ClassA.DEFAULT + return obj.toString() +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/starImportEnum.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/starImportEnum.kt new file mode 100644 index 00000000000..74d9dea8fa5 --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/starImportEnum.kt @@ -0,0 +1,22 @@ +// FILE: A.kt + +package aaa + +enum class E { + TRIVIAL_ENTRY, + SUBCLASS { }; + + class Nested { + fun fortyTwo() = 42 + } +} + +// FILE: B.kt + +import aaa.E.* + +fun box(): String { + if (TRIVIAL_ENTRY == SUBCLASS) return "Fail 1" + if (Nested().fortyTwo() != 42) return "Fail 2" + return "OK" +} diff --git a/backend.native/tests/external/compileKotlinAgainstKotlin/typeAliasesKt13181.kt b/backend.native/tests/external/compileKotlinAgainstKotlin/typeAliasesKt13181.kt new file mode 100644 index 00000000000..101c79e0cbd --- /dev/null +++ b/backend.native/tests/external/compileKotlinAgainstKotlin/typeAliasesKt13181.kt @@ -0,0 +1,18 @@ +// FILE: A.kt +typealias Bar = (T) -> String + +class Foo(val t: T) { + + fun baz(b: Bar) = b(t) +} + +// FILE: B.kt +class FooTest { + fun baz(): String { + val b: Bar = { "OK" } + return Foo("").baz(b) + } +} + +fun box(): String = + FooTest().baz() \ No newline at end of file