From dbb54c87bcfd26506a7037228da6727fe76f3a41 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Wed, 7 Oct 2020 16:36:16 +0300 Subject: [PATCH] [FIR IDE] Add Fir lightclasses tests and fix FindUsages tests --- .../DeprecatedNotHiddenInClass.kt | 4 +- .../asJava/lightClasses/DollarsInName.kt | 2 + .../lightClasses/DollarsInNameNoPackage.kt | 2 + .../asJava/lightClasses/HiddenDeprecated.kt | 3 +- .../lightClasses/HiddenDeprecatedInClass.kt | 3 +- .../InheritingInterfaceDefaultImpls.kt | 4 +- .../asJava/lightClasses/InlineReified.kt | 2 + .../asJava/lightClasses/JvmNameOnMember.kt | 4 +- .../asJava/lightClasses/NestedObjects.kt | 4 +- .../NonDataClassWithComponentFunctions.kt | 4 +- .../lightClasses/StubOrderForOverloads.kt | 4 +- .../testData/asJava/lightClasses/VarArgs.kt | 2 + .../compilationErrors/ActualClass.kt | 4 +- .../compilationErrors/ActualTypeAlias.kt | 1 + .../compilationErrors/AllInlineOnly.kt | 2 + .../compilationErrors/ExpectClass.kt | 2 + .../compilationErrors/ExpectObject.kt | 2 + .../compilationErrors/ExpectedNestedClass.kt | 2 + .../ExpectedNestedClassInObject.kt | 2 + .../compilationErrors/LocalInAnnotation.kt | 1 + .../compilationErrors/RepetableAnnotations.kt | 4 +- .../asJava/lightClasses/facades/SingleFile.kt | 4 +- .../InheritingInterfaceDefaultImpls.kt | 4 +- .../ClassWithConstructor.kt | 4 +- .../OverrideAnyWithUnit.kt | 3 +- .../nullabilityAnnotations/Synthetic.kt | 4 +- .../UnitAsGenericArgument.kt | 3 +- .../nullabilityAnnotations/UnitParameter.kt | 4 +- .../nullabilityAnnotations/VoidReturn.kt | 4 +- .../asJava/lightClasses/publicField/Simple.kt | 2 + .../annotationWithSetParamPropertyModifier.kt | 1 + .../asJava/ultraLightClasses/annotations.java | 162 ++++++ .../ultraLightClasses/classModifiers.java | 60 +++ .../ultraLightClasses/classModifiers.kt | 4 +- .../ultraLightClasses/constructors.java | 54 ++ .../asJava/ultraLightClasses/coroutines.java | 33 ++ .../asJava/ultraLightClasses/dataClasses.java | 61 +++ .../delegatesWithAnnotations.kt | 1 + .../delegatingToInterfaces.java | 44 ++ .../ultraLightClasses/dollarsInNameLocal.kt | 1 + .../asJava/ultraLightClasses/enums.java | 121 +++++ .../asJava/ultraLightClasses/generics.java | 81 +++ .../implementingKotlinCollections.java | 27 + .../ultraLightClasses/importAliases.java | 10 + .../asJava/ultraLightClasses/importAliases.kt | 2 + .../inferringAnonymousObjectTypes.kt | 1 + .../asJava/ultraLightClasses/inheritance.java | 78 +++ .../asJava/ultraLightClasses/inlineClasses.kt | 1 + .../asJava/ultraLightClasses/inlineOnly.java | 7 + .../ultraLightClasses/inlineReified.java | 4 + .../asJava/ultraLightClasses/inlineReified.kt | 2 + .../asJava/ultraLightClasses/jvmField.java | 61 +++ .../asJava/ultraLightClasses/jvmName.java | 29 ++ .../ultraLightClasses/jvmOverloads.java | 116 +++++ .../ultraLightClasses/jvmSynthetic.java | 10 + .../jvmSyntheticForAccessors.kt | 2 +- .../jvmWildcardAnnotations.java | 71 +++ .../ultraLightClasses/lateinitProperty.java | 94 ++++ .../ultraLightClasses/localClassDerived.kt | 1 + .../asJava/ultraLightClasses/objects.java | 171 ++++++ .../asJava/ultraLightClasses/properties.java | 230 ++++++++ .../ultraLightClasses/simpleFunctions.java | 31 ++ .../ultraLightClasses/throwsAnnotation.java | 20 + .../asJava/ultraLightClasses/typeAliases.java | 16 + .../ultraLightClasses/typeAnnotations.kt | 1 + .../wildcardOptimization.java | 109 ++++ .../asJava/ultraLightFacades/coroutines.java | 7 + .../ultraLightFacades/importAliases.java | 4 + .../asJava/ultraLightFacades/inlineOnly.java | 5 + .../asJava/ultraLightFacades/jvmField.java | 9 + .../asJava/ultraLightFacades/jvmName.java | 27 + .../jvmWildcardAnnotations.java | 33 ++ .../ultraLightFacades/lateinitProperty.java | 28 + .../ultraLightFacades/multifileFacade.java | 14 + .../multifileFacadeJvmName.java | 9 + .../multifileFacadeJvmName.kt | 4 +- .../asJava/ultraLightFacades/properties.java | 175 +++++++ .../ultraLightFacades/simpleFunctions.java | 19 + .../ultraLightFacades/throwsAnnotation.java | 9 + .../wildcardOptimization.java | 77 +++ .../asJava/AbstractCompilerLightClassTest.kt | 4 +- .../kotlin/asJava/LightClassTestCommon.kt | 9 +- .../kotlin/generators/tests/GenerateTests.kt | 19 +- .../classes/AbstractFirClassLoadingTest.kt | 46 ++ .../classes/AbstractFirLightClassTest.kt | 64 +++ .../AbstractFirLightFacadeClassTest.kt | 40 ++ .../classes/FirClassLoadingTestGenerated.java | 195 +++++++ .../classes/FirLightClassTestGenerated.java | 493 ++++++++++++++++++ .../FirLightFacadeClassTestGenerated.java | 95 ++++ .../findJavaFieldUsages/JKFieldUsages.0.java | 5 +- .../JKMethodUsages.0.java | 5 +- .../MismatchedAccessor.0.java | 5 +- .../javaPropertyGetterUsagesKJ.0.java | 4 +- .../javaPropertySetterUsagesKJ.0.java | 4 +- .../kotlin/conventions/components/SAM.0.kt | 5 +- .../components/callableReferences.0.kt | 5 +- .../components/callableReferences.results.txt | 8 +- .../components/companionObjectAccess.0.kt | 4 +- .../conventions/components/dataClass.0.kt | 3 +- .../components/dataClass.results.txt | 4 +- .../components/dataClassComponentByRef.0.kt | 3 +- ...ponentByRef.DisabledComponents.results.txt | 2 +- .../dataClassComponentByRef.results.txt | 6 +- .../components/dataClassInsideDataClass.0.kt | 5 +- ...deDataClass.DisabledComponents.results.txt | 2 +- .../dataClassInsideDataClass.results.txt | 4 +- .../kotlin/conventions/components/for.0.kt | 3 +- .../conventions/components/for.results.txt | 4 +- .../conventions/components/isAndAs.0.kt | 4 +- .../isAndAs.DisabledComponents.results.txt | 4 +- .../components/isAndAs.results.txt | 6 +- .../conventions/components/lambdas.0.kt | 5 +- .../lambdas.DisabledComponents.results.txt | 2 +- .../components/lambdas.results.txt | 16 +- .../components/mayTypeAffectAncestors.0.kt | 3 +- .../mayTypeAffectAncestors.results.txt | 4 +- .../conventions/components/operators.0.kt | 2 +- .../components/recursiveDataClass1.0.kt | 5 +- ...eDataClass1.DisabledComponents.results.txt | 6 +- .../recursiveDataClass1.results.txt | 6 +- .../components/recursiveDataClass2.0.kt | 2 +- .../findClassUsages/classUsedInPlainText.0.kt | 2 + .../findClassUsages/classUsedInTextAsRef.0.kt | 2 + .../findClassUsages/javaClassAllUsages.0.kt | 2 + .../javaClassAllUsages.results.txt | 2 +- .../javaClassConstructorUsages.0.kt | 2 + .../javaClassFunctionUsages1.0.kt | 2 + .../javaClassFunctionUsages2.0.kt | 2 + .../javaClassSecondaryCtrUsages.0.kt | 2 + .../kotlinClassAllUsages3.0.kt | 5 +- .../kotlinClassAllUsagesNoImport.0.kt | 3 +- .../kotlinClassFunctionUsages1.0.kt | 3 +- .../kotlinClassFunctionUsages2.0.kt | 3 +- .../kotlinClassPropertyUsages1.0.kt | 3 +- .../kotlinClassPropertyUsages2.0.kt | 3 +- .../kotlinInnerClassAllUsages.0.kt | 2 + .../kotlinLocalClassUsages1.0.kt | 2 +- .../kotlinLocalClassUsages2.0.kt | 2 +- .../kotlinPrivateClassUsages.0.kt | 2 +- .../localAndNonLocalClass.0.kt | 2 +- .../findClassUsages/usageInTypeAlias.0.kt | 2 +- .../enumFunctionUsages.0.kt | 3 +- .../functionUsedInPlainText.0.kt | 3 +- .../kotlinAliasedMethodUsages.0.kt | 3 +- .../kotlinLocalMethodUsages1.0.kt | 2 +- .../kotlinLocalMethodUsages2.0.kt | 2 +- .../kotlinMethodAliasedUsages.0.kt | 2 + .../kotlinMethodsAliasedUsages.0.kt | 5 +- .../kotlinNestedClassMethodUsages.0.kt | 2 + .../kotlinPrivateMethodUsages.0.kt | 2 +- .../kotlinTopLevelMethodUsages.0.kt | 1 + .../kotlinTopLevelMethodUsagesMultifile.0.kt | 1 + .../kotlinTopLevelMethodUsagesNoImport.0.kt | 2 +- ...inTopLevelMethodUsagesWithRenamedFile.0.kt | 1 + .../kotlinTraitImplThroughDelegate.0.kt | 4 +- ...kotlinTraitImplThroughDelegate.results.txt | 2 +- .../kotlinTraitNoImplThroughDelegate.0.kt | 4 +- ...tlinTraitNoImplThroughDelegate.results.txt | 2 +- .../findFunctionUsages/localClassMember.0.kt | 2 +- .../objectExpressionDeepMember.0.kt | 2 +- .../objectExpressionMember.0.kt | 2 +- .../objectExpressionMember2.0.kt | 2 +- .../objectExpressionMemberInClass.0.kt | 2 +- .../objectExpressionMemberInCompanion.0.kt | 2 +- .../objectExpressionMemberInTopLevel.0.kt | 2 +- .../usagesOfBaseForFunction.0.kt | 1 + .../javaPropertyUsagesK.0.kt | 3 +- .../javaPropertyUsagesKJK.0.kt | 3 +- .../javaPropertyUsagesKK.0.kt | 3 +- .../findObjectUsages/javaObjectUsages.0.kt | 1 + .../javaObjectUsages.results.txt | 2 +- .../kotlinImportedObjectUsages.0.kt | 2 +- .../findObjectUsages/kotlinObjectUsages.0.kt | 2 +- .../kotlinPrivateObjectUsages.0.kt | 2 +- .../missingName.0.kt | 5 +- .../javaPropertyReadUsages2.0.kt | 2 + .../javaPropertyUsages2.0.kt | 2 + .../javaPropertyWriteUsages2.0.kt | 2 + .../kotlinLocalPropertyUsages1.0.kt | 2 +- .../kotlinLocalPropertyUsages2.0.kt | 2 +- ...linPrivatePropertyInClassObjectUsages.0.kt | 2 +- .../kotlinPropertySameNameAsMethodUsages.0.kt | 2 +- .../defaultSecondaryConstructor.0.kt | 4 +- .../secondaryConstructor.0.kt | 4 +- .../findWithFilteringImports.0.kt | 3 +- .../enumFunctionUsages.0.kt | 3 +- .../kotlinTopLevelMethodUsages.0.kt | 2 +- .../kotlinTraitImplThroughDelegate.0.kt | 4 +- ...kotlinTraitImplThroughDelegate.results.txt | 2 +- .../usagesOfBaseForFunction.0.kt | 3 +- .../kotlinClassObjectPropertyUsage.0.kt | 2 +- .../kotlinTopLevelPropertyUsages.0.kt | 2 +- .../defaultSecondaryConstructor.0.kt | 4 +- .../secondaryConstructor.0.kt | 4 +- .../unresolvedAnnotation.0.kt | 2 + .../kotlin/variable/readAccess.0.kt | 2 +- .../kotlin/variable/varInDoWhile.0.kt | 2 +- .../kotlin/variable/writeAccess.0.kt | 2 +- .../javaLibrary/LibraryClassUsages.0.kt | 2 +- .../javaLibrary/LibraryConstructorUsages.0.kt | 2 +- .../javaLibrary/LibraryFieldUsages.0.kt | 2 +- .../javaLibrary/LibraryStaticFieldUsages.0.kt | 2 +- .../LibraryStaticMethodUsages.0.kt | 2 +- .../kotlinLibrary/LibraryClassUsages.0.kt | 5 +- .../LibraryClassUsages.results.txt | 10 +- .../LibraryCompanionObjectUsages.0.kt | 5 +- .../LibraryCompanionObjectUsages.results.txt | 2 +- .../AbstractUltraLightClassLoadingTest.kt | 45 +- ...bstractUltraLightFacadeClassLoadingTest.kt | 6 +- .../AbstractFindUsagesMultiModuleTest.kt | 2 +- .../findUsages/AbstractFindUsagesTest.kt | 72 ++- .../resolve/AbstractIdeLightClassTest.kt | 6 +- .../kotlin/idea/perf/UltraLightChecker.kt | 27 + 213 files changed, 3496 insertions(+), 218 deletions(-) create mode 100644 compiler/testData/asJava/ultraLightClasses/annotations.java create mode 100644 compiler/testData/asJava/ultraLightClasses/classModifiers.java create mode 100644 compiler/testData/asJava/ultraLightClasses/constructors.java create mode 100644 compiler/testData/asJava/ultraLightClasses/coroutines.java create mode 100644 compiler/testData/asJava/ultraLightClasses/dataClasses.java create mode 100644 compiler/testData/asJava/ultraLightClasses/delegatingToInterfaces.java create mode 100644 compiler/testData/asJava/ultraLightClasses/enums.java create mode 100644 compiler/testData/asJava/ultraLightClasses/generics.java create mode 100644 compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.java create mode 100644 compiler/testData/asJava/ultraLightClasses/importAliases.java create mode 100644 compiler/testData/asJava/ultraLightClasses/inheritance.java create mode 100644 compiler/testData/asJava/ultraLightClasses/inlineOnly.java create mode 100644 compiler/testData/asJava/ultraLightClasses/inlineReified.java create mode 100644 compiler/testData/asJava/ultraLightClasses/jvmField.java create mode 100644 compiler/testData/asJava/ultraLightClasses/jvmName.java create mode 100644 compiler/testData/asJava/ultraLightClasses/jvmOverloads.java create mode 100644 compiler/testData/asJava/ultraLightClasses/jvmSynthetic.java create mode 100644 compiler/testData/asJava/ultraLightClasses/jvmWildcardAnnotations.java create mode 100644 compiler/testData/asJava/ultraLightClasses/lateinitProperty.java create mode 100644 compiler/testData/asJava/ultraLightClasses/objects.java create mode 100644 compiler/testData/asJava/ultraLightClasses/properties.java create mode 100644 compiler/testData/asJava/ultraLightClasses/simpleFunctions.java create mode 100644 compiler/testData/asJava/ultraLightClasses/throwsAnnotation.java create mode 100644 compiler/testData/asJava/ultraLightClasses/typeAliases.java create mode 100644 compiler/testData/asJava/ultraLightClasses/wildcardOptimization.java create mode 100644 compiler/testData/asJava/ultraLightFacades/coroutines.java create mode 100644 compiler/testData/asJava/ultraLightFacades/importAliases.java create mode 100644 compiler/testData/asJava/ultraLightFacades/inlineOnly.java create mode 100644 compiler/testData/asJava/ultraLightFacades/jvmField.java create mode 100644 compiler/testData/asJava/ultraLightFacades/jvmName.java create mode 100644 compiler/testData/asJava/ultraLightFacades/jvmWildcardAnnotations.java create mode 100644 compiler/testData/asJava/ultraLightFacades/lateinitProperty.java create mode 100644 compiler/testData/asJava/ultraLightFacades/multifileFacade.java create mode 100644 compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.java create mode 100644 compiler/testData/asJava/ultraLightFacades/properties.java create mode 100644 compiler/testData/asJava/ultraLightFacades/simpleFunctions.java create mode 100644 compiler/testData/asJava/ultraLightFacades/throwsAnnotation.java create mode 100644 compiler/testData/asJava/ultraLightFacades/wildcardOptimization.java create mode 100644 idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirClassLoadingTest.kt create mode 100644 idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightClassTest.kt create mode 100644 idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightFacadeClassTest.kt create mode 100644 idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java create mode 100644 idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java create mode 100644 idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java diff --git a/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt b/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt index 20a5bef4f91..d92ef8984d8 100644 --- a/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt +++ b/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt @@ -6,4 +6,6 @@ class A { fun f() { } -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/DollarsInName.kt b/compiler/testData/asJava/lightClasses/DollarsInName.kt index 7ccba55715d..59db1a02a79 100644 --- a/compiler/testData/asJava/lightClasses/DollarsInName.kt +++ b/compiler/testData/asJava/lightClasses/DollarsInName.kt @@ -8,3 +8,5 @@ class `A$B` { inner class `G$G$` } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/DollarsInNameNoPackage.kt b/compiler/testData/asJava/lightClasses/DollarsInNameNoPackage.kt index de23a745648..45cfb5c798c 100644 --- a/compiler/testData/asJava/lightClasses/DollarsInNameNoPackage.kt +++ b/compiler/testData/asJava/lightClasses/DollarsInNameNoPackage.kt @@ -6,3 +6,5 @@ class `A$B` { inner class `G$G$` } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt b/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt index a4578555b95..7931a1853ce 100644 --- a/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt +++ b/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt @@ -5,4 +5,5 @@ package a fun f() { } -// LAZINESS:NoLaziness \ No newline at end of file +// LAZINESS:NoLaziness +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt index 21cb4e1d4de..aefba25e839 100644 --- a/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt +++ b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt @@ -8,4 +8,5 @@ class A { } } -// LAZINESS:NoLaziness \ No newline at end of file +// LAZINESS:NoLaziness +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt b/compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt index 24d059976f7..4a18369a8c2 100644 --- a/compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt +++ b/compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt @@ -21,4 +21,6 @@ interface I1 { interface I2 { fun bar() = "bar" -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/InlineReified.kt b/compiler/testData/asJava/lightClasses/InlineReified.kt index 5a4dcba1474..7a1c67a3d31 100644 --- a/compiler/testData/asJava/lightClasses/InlineReified.kt +++ b/compiler/testData/asJava/lightClasses/InlineReified.kt @@ -11,3 +11,5 @@ class InlineReified { inline get() = toString() inline set(value) {} } + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/JvmNameOnMember.kt b/compiler/testData/asJava/lightClasses/JvmNameOnMember.kt index 192de550c82..a030481ceae 100644 --- a/compiler/testData/asJava/lightClasses/JvmNameOnMember.kt +++ b/compiler/testData/asJava/lightClasses/JvmNameOnMember.kt @@ -10,4 +10,6 @@ class C { fun z(c: C, c2: C) { } -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/NestedObjects.kt b/compiler/testData/asJava/lightClasses/NestedObjects.kt index 59c3bbaa366..e5186b9a079 100644 --- a/compiler/testData/asJava/lightClasses/NestedObjects.kt +++ b/compiler/testData/asJava/lightClasses/NestedObjects.kt @@ -12,4 +12,6 @@ class A { object G } } -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt b/compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt index b7118c477f0..48085b8b837 100644 --- a/compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt +++ b/compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt @@ -15,4 +15,6 @@ class A(val y: Int) { } fun component1() = y -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/StubOrderForOverloads.kt b/compiler/testData/asJava/lightClasses/StubOrderForOverloads.kt index 8b830b32651..7f27b923b31 100644 --- a/compiler/testData/asJava/lightClasses/StubOrderForOverloads.kt +++ b/compiler/testData/asJava/lightClasses/StubOrderForOverloads.kt @@ -5,4 +5,6 @@ class A { } interface P -interface RS \ No newline at end of file +interface RS + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/VarArgs.kt b/compiler/testData/asJava/lightClasses/VarArgs.kt index 1169c96b4e0..eb43d5ca27d 100644 --- a/compiler/testData/asJava/lightClasses/VarArgs.kt +++ b/compiler/testData/asJava/lightClasses/VarArgs.kt @@ -10,3 +10,5 @@ class C { } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/ActualClass.kt b/compiler/testData/asJava/lightClasses/compilationErrors/ActualClass.kt index 9062c54364c..cd03ecfa32a 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/ActualClass.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/ActualClass.kt @@ -1,4 +1,6 @@ // p.B package p -actual class B \ No newline at end of file +actual class B + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAlias.kt b/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAlias.kt index 8f71bd33b22..121e3596dc6 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAlias.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAlias.kt @@ -1,4 +1,5 @@ // p.ActualTypeAliasKt +// FIR_COMPARISON package p actual typealias B = List \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/AllInlineOnly.kt b/compiler/testData/asJava/lightClasses/compilationErrors/AllInlineOnly.kt index ac48268dda4..1af1854d386 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/AllInlineOnly.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/AllInlineOnly.kt @@ -10,3 +10,5 @@ public inline fun f(): Int = 3 @kotlin.internal.InlineOnly public inline fun g(p: String): String = "p" + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectClass.kt b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectClass.kt index eb57fed743c..87f6d7c332c 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectClass.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectClass.kt @@ -1,4 +1,6 @@ // p.B +// FIR_COMPARISON + package p expect class B \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectObject.kt b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectObject.kt index c55b87e1708..43a210aee5c 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectObject.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectObject.kt @@ -1,4 +1,6 @@ // p.B +// FIR_COMPARISON + package p expect object B \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClass.kt b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClass.kt index 80349a316ce..0a8d8d064a6 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClass.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClass.kt @@ -1,4 +1,6 @@ // p.B.Nested +// FIR_COMPARISON + package p expect class B { diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClassInObject.kt b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClassInObject.kt index 384e25d66c4..f1081cb72be 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClassInObject.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClassInObject.kt @@ -1,4 +1,6 @@ // p.B.Nested +// FIR_COMPARISON + package p expect object B { diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/LocalInAnnotation.kt b/compiler/testData/asJava/lightClasses/compilationErrors/LocalInAnnotation.kt index 8f941b76dd6..df3c1c1a2d3 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/LocalInAnnotation.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/LocalInAnnotation.kt @@ -1,6 +1,7 @@ // Validation // ALLOW_FRONTEND_EXCEPTION // See KT-24323 +// FIR_COMPARISON @Retention(AnnotationRetention.RUNTIME /* ) was removed */ annotation class Validation() diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt b/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt index 6dc2b547b9f..849842fc8f0 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt +++ b/compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt @@ -27,4 +27,6 @@ annotation class S(val g: String) @Repeatable @Retention(AnnotationRetention.SOURCE) -annotation class R(val s: String) \ No newline at end of file +annotation class R(val s: String) + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/facades/SingleFile.kt b/compiler/testData/asJava/lightClasses/facades/SingleFile.kt index 894f4f770a8..5e84aea566d 100644 --- a/compiler/testData/asJava/lightClasses/facades/SingleFile.kt +++ b/compiler/testData/asJava/lightClasses/facades/SingleFile.kt @@ -1,3 +1,5 @@ // SingleFileKt -public fun foo() {} \ No newline at end of file +public fun foo() {} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/ideRegression/InheritingInterfaceDefaultImpls.kt b/compiler/testData/asJava/lightClasses/ideRegression/InheritingInterfaceDefaultImpls.kt index 84502416452..f39dca97d6e 100644 --- a/compiler/testData/asJava/lightClasses/ideRegression/InheritingInterfaceDefaultImpls.kt +++ b/compiler/testData/asJava/lightClasses/ideRegression/InheritingInterfaceDefaultImpls.kt @@ -27,4 +27,6 @@ interface I1 { interface I2 { @Anno("S") fun bar() = "bar" -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.kt index 4b9b7cc1c59..7712f8c1367 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.kt @@ -3,4 +3,6 @@ class ClassWithConstructor( nullable: String?, notNull: String -) \ No newline at end of file +) + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt index 472220f5b30..fe453e1c023 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt @@ -8,4 +8,5 @@ class C : Base { override fun foo(): Unit {} } -// LAZINESS:NoLaziness \ No newline at end of file +// LAZINESS:NoLaziness +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.kt index b70a2a636ca..abb40e47290 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.kt @@ -8,4 +8,6 @@ class Synthetic { } private fun foo() {} -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt index dd6503163c3..83f28b40f03 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt @@ -7,4 +7,5 @@ interface Base { class C : Base { override fun foo(t: Unit) {} } -// LAZINESS:NoLaziness \ No newline at end of file +// LAZINESS:NoLaziness +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitParameter.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitParameter.kt index 9b2009edf2b..74ffdf39942 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitParameter.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitParameter.kt @@ -1,3 +1,5 @@ // UnitParameterKt -fun foo(s: Unit) {} \ No newline at end of file +fun foo(s: Unit) {} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/VoidReturn.kt b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/VoidReturn.kt index a5dabdd9acb..08434fa5c24 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/VoidReturn.kt +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/VoidReturn.kt @@ -1,3 +1,5 @@ // VoidReturnKt -fun foo(g: String) {} \ No newline at end of file +fun foo(g: String) {} + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/publicField/Simple.kt b/compiler/testData/asJava/lightClasses/publicField/Simple.kt index 14c9539f1ae..5708dc842c7 100644 --- a/compiler/testData/asJava/lightClasses/publicField/Simple.kt +++ b/compiler/testData/asJava/lightClasses/publicField/Simple.kt @@ -4,3 +4,5 @@ class C { @[kotlin.jvm.JvmField] public val foo: String = { "A" }() } + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/annotationWithSetParamPropertyModifier.kt b/compiler/testData/asJava/ultraLightClasses/annotationWithSetParamPropertyModifier.kt index a25e58554ad..76a9a6333c4 100644 --- a/compiler/testData/asJava/ultraLightClasses/annotationWithSetParamPropertyModifier.kt +++ b/compiler/testData/asJava/ultraLightClasses/annotationWithSetParamPropertyModifier.kt @@ -1,3 +1,4 @@ +// CHECK_BY_JAVA_FILE annotation class Anno class TestClass(@setparam:Anno var hello: Int) \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/annotations.java b/compiler/testData/asJava/ultraLightClasses/annotations.java new file mode 100644 index 00000000000..b0f6722ec29 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/annotations.java @@ -0,0 +1,162 @@ +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.EXPRESSION}) +public abstract @interface Anno2 /* Anno2*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.EXPRESSION}) +public abstract @interface Anno3 /* Anno3*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.EXPRESSION}) +public abstract @interface Anno4 /* Anno4*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.EXPRESSION}) +public abstract @interface Anno5 /* Anno5*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.EXPRESSION}) +public abstract @interface Anno6 /* Anno6*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface AnnoWithCompanion /* AnnoWithCompanion*/ { + @kotlin.jvm.JvmField() + public static final int x; + + @org.jetbrains.annotations.NotNull() + public static final AnnoWithCompanion.Companion Companion; + + + class Companion ... + + } + +public static final class Companion /* AnnoWithCompanion.Companion*/ { + private Companion();// .ctor() + + public final void foo();// foo() + +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface Anno /* Anno*/ { + public abstract Anno[] x() default {@Anno(p = "a"), @Anno(p = "b")};// x() + + public abstract java.lang.String p() default "";// p() + +} + +@Deprecated(message = "This anno is deprecated, use === instead", replaceWith = @ReplaceWith(expression = "this === other")) +@java.lang.annotation.Documented() +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER}) +@kotlin.annotation.MustBeDocumented() +@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.EXPRESSION}) +public abstract @interface Fancy /* Fancy*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface ReplaceWith /* ReplaceWith*/ { + public abstract java.lang.String expression();// expression() + +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface AnnotatedAttribute /* AnnotatedAttribute*/ { + @Anno() + public abstract java.lang.String x();// x() + +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface Deprecated /* Deprecated*/ { + public abstract ReplaceWith replaceWith() default @ReplaceWith(expression = "");// replaceWith() + + public abstract java.lang.String message();// message() + +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface Ann /* Ann*/ { + public abstract java.lang.Class arg2();// arg2() + + public abstract java.lang.Class arg1();// arg1() + +} + +@Anno() +public final class F /* F*/ implements java.lang.Runnable { + @org.jetbrains.annotations.NotNull() + private java.lang.String prop; + + @Anno(p = "f") + public final void f(@Anno() @org.jetbrains.annotations.NotNull() java.lang.String);// f(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getProp();// getProp() + + public F();// .ctor() + + public final void setProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setProp(java.lang.String) + +} + +public final class Foo /* Foo*/ { + @org.jetbrains.annotations.Nullable() + private java.lang.String x; + + @Anno() + public Foo(error.NonExistentClass);// .ctor(error.NonExistentClass) + + @Anno() + public final void f4(@org.jetbrains.annotations.NotNull() java.lang.String);// f4(java.lang.String) + + @Anno() + public final void setX(@org.jetbrains.annotations.Nullable() java.lang.String);// setX(java.lang.String) + + @org.jetbrains.annotations.Nullable() + public final java.lang.String getX();// getX() + +} + +@Ann(arg1 = String::class, arg2 = Int::class) +public final class MyClass /* MyClass*/ { + public MyClass();// .ctor() + +} + +public final class Example /* Example*/ { + @Ann() + @org.jetbrains.annotations.NotNull() + private final java.lang.String foo; + + @org.jetbrains.annotations.NotNull() + private final java.lang.String bar; + + @org.jetbrains.annotations.NotNull() + private final java.lang.String quux; + + @Ann() + @org.jetbrains.annotations.NotNull() + public final java.lang.String getBar();// getBar() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getFoo();// getFoo() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getQuux();// getQuux() + + public Example(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() java.lang.String, @Ann() @org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String, java.lang.String, java.lang.String) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/classModifiers.java b/compiler/testData/asJava/ultraLightClasses/classModifiers.java new file mode 100644 index 00000000000..4773eae1465 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/classModifiers.java @@ -0,0 +1,60 @@ +public class Open /* pkg.Open*/ { + public Open();// .ctor() + + + + + class Private ... + + class Private2 ... + + class StaticInternal ... + + } + +private static final class Private /* pkg.Open.Private*/ extends pkg.Open { + public Private();// .ctor() + +} + +protected final class Private2 /* pkg.Open.Private2*/ { + public Private2();// .ctor() + +} + +public static final class StaticInternal /* pkg.Open.StaticInternal*/ { + public StaticInternal();// .ctor() + +} + +public final class OuterInternal /* pkg.OuterInternal*/ { + public OuterInternal();// .ctor() + +} + +final class TopLevelPrivate /* pkg.TopLevelPrivate*/ { + public TopLevelPrivate();// .ctor() + +} + +public abstract class Season /* pkg.Season*/ { + private Season();// .ctor() + + + class Nested ... + + } + +public static final class Nested /* pkg.Season.Nested*/ extends pkg.Season { + public Nested();// .ctor() + +} + +public abstract class SealedWithArgs /* pkg.SealedWithArgs*/ { + private final int a; + + private SealedWithArgs(int);// .ctor(int) + + public final int getA();// getA() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/classModifiers.kt b/compiler/testData/asJava/ultraLightClasses/classModifiers.kt index df2452132f1..c8fddda2654 100644 --- a/compiler/testData/asJava/ultraLightClasses/classModifiers.kt +++ b/compiler/testData/asJava/ultraLightClasses/classModifiers.kt @@ -13,4 +13,6 @@ sealed class Season { class Nested: Season() } -sealed class SealedWithArgs(val a: Int) \ No newline at end of file +sealed class SealedWithArgs(val a: Int) + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/constructors.java b/compiler/testData/asJava/ultraLightClasses/constructors.java new file mode 100644 index 00000000000..7bbedfb4424 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/constructors.java @@ -0,0 +1,54 @@ +public final class TestConstructor /* TestConstructor*/ { + private TestConstructor(int);// .ctor(int) + +} + +public final class A /* A*/ { + public A(@org.jetbrains.annotations.NotNull() int[], @org.jetbrains.annotations.NotNull() kotlin.jvm.functions.Function0);// .ctor(int[], kotlin.jvm.functions.Function0) + +} + +public final class B /* B*/ { +} + +public final class Outer /* Outer*/ { + public Outer();// .ctor() + + + + class Inner ... + + class Nested ... + + } + +public final class Inner /* Outer.Inner*/ { + public Inner(int, @org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(int, java.lang.String) + +} + +public static final class Nested /* Outer.Nested*/ { + public Nested();// .ctor() + + public Nested(int, @org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(int, java.lang.String) + +} + +public abstract class A /* A*/ { + @org.jetbrains.annotations.Nullable() + private final java.lang.String x; + + @org.jetbrains.annotations.Nullable() + public final java.lang.String getX();// getX() + + private A(@org.jetbrains.annotations.Nullable() java.lang.String);// .ctor(java.lang.String) + + + class C ... + + } + +public static final class C /* A.C*/ extends A { + public C();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/coroutines.java b/compiler/testData/asJava/ultraLightClasses/coroutines.java new file mode 100644 index 00000000000..d45451433ac --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/coroutines.java @@ -0,0 +1,33 @@ +public final class Foo /* Foo*/ { + @org.jetbrains.annotations.Nullable() + public final java.lang.Object doSomething(@org.jetbrains.annotations.NotNull() Foo, @org.jetbrains.annotations.NotNull() kotlin.coroutines.Continuation);// doSomething(Foo, kotlin.coroutines.Continuation) + + public Foo();// .ctor() + +} + +public final class Boo /* Boo*/ { + public Boo();// .ctor() + +} + +public final class Bar /* Bar*/ { + public Bar();// .ctor() + + public final void async(@org.jetbrains.annotations.NotNull() kotlin.jvm.functions.Function1, ? extends java.lang.Object>);// async(kotlin.jvm.functions.Function1, ? extends java.lang.Object>) + +} + +public abstract interface Base /* Base*/ { + @org.jetbrains.annotations.Nullable() + public abstract java.lang.Object foo(@org.jetbrains.annotations.NotNull() kotlin.coroutines.Continuation);// foo(kotlin.coroutines.Continuation) + +} + +public final class Derived /* Derived*/ implements Base { + @org.jetbrains.annotations.Nullable() + public java.lang.Object foo(@org.jetbrains.annotations.NotNull() kotlin.coroutines.Continuation);// foo(kotlin.coroutines.Continuation) + + public Derived();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/dataClasses.java b/compiler/testData/asJava/ultraLightClasses/dataClasses.java new file mode 100644 index 00000000000..bd9b3b2bf2b --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/dataClasses.java @@ -0,0 +1,61 @@ +public final class User /* User*/ { + @org.jetbrains.annotations.NotNull() + private final java.lang.String name; + + private final int age; + + @org.jetbrains.annotations.NotNull() + public final User copy(@org.jetbrains.annotations.NotNull() java.lang.String, int);// copy(java.lang.String, int) + + @org.jetbrains.annotations.NotNull() + public final java.lang.String component1();// component1() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getName();// getName() + + @org.jetbrains.annotations.NotNull() + public java.lang.String toString();// toString() + + public User();// .ctor() + + public User(@org.jetbrains.annotations.NotNull() java.lang.String, int);// .ctor(java.lang.String, int) + + public boolean equals(@org.jetbrains.annotations.Nullable() java.lang.Object);// equals(java.lang.Object) + + public final int component2();// component2() + + public final int getAge();// getAge() + + public int hashCode();// hashCode() + +} + +public final class Person /* Person*/ { + @org.jetbrains.annotations.NotNull() + private final java.lang.String name; + + private int age; + + @org.jetbrains.annotations.NotNull() + public final Person copy(@org.jetbrains.annotations.NotNull() java.lang.String);// copy(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public final java.lang.String component1();// component1() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getName();// getName() + + @org.jetbrains.annotations.NotNull() + public java.lang.String toString();// toString() + + public Person(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String) + + public boolean equals(@org.jetbrains.annotations.Nullable() java.lang.Object);// equals(java.lang.Object) + + public final int getAge();// getAge() + + public final void setAge(int);// setAge(int) + + public int hashCode();// hashCode() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/delegatesWithAnnotations.kt b/compiler/testData/asJava/ultraLightClasses/delegatesWithAnnotations.kt index de4234f85b6..314ab9afa00 100644 --- a/compiler/testData/asJava/ultraLightClasses/delegatesWithAnnotations.kt +++ b/compiler/testData/asJava/ultraLightClasses/delegatesWithAnnotations.kt @@ -1,3 +1,4 @@ +// CHECK_BY_JAVA_FILE import kotlin.reflect.KClass annotation class SimpleAnn(val value: String) diff --git a/compiler/testData/asJava/ultraLightClasses/delegatingToInterfaces.java b/compiler/testData/asJava/ultraLightClasses/delegatingToInterfaces.java new file mode 100644 index 00000000000..4d04235309b --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/delegatingToInterfaces.java @@ -0,0 +1,44 @@ +public abstract interface Base /* Base*/ { + public abstract int foo(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.Nullable() java.lang.Object);// foo(java.lang.String, java.lang.Object) + + public abstract int getX();// getX() + + public abstract int getY();// getY() + + public abstract void printMessage();// printMessage() + + public abstract void printMessageLine();// printMessageLine() + + public abstract void setY(int);// setY(int) + +} + +public final class BaseImpl /* BaseImpl*/ implements Base { + private final int x; + + public BaseImpl(int);// .ctor(int) + + public final int getX();// getX() + + public void printMessage();// printMessage() + + public void printMessageLine();// printMessageLine() + +} + +public final class Derived /* Derived*/ implements Base { + public Derived(@org.jetbrains.annotations.NotNull() Base);// .ctor(Base) + + public int foo(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.Nullable() java.lang.Object);// foo(java.lang.String, java.lang.Object) + + public int getX();// getX() + + public int getY();// getY() + + public void printMessage();// printMessage() + + public void printMessageLine();// printMessageLine() + + public void setY(int);// setY(int) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/dollarsInNameLocal.kt b/compiler/testData/asJava/ultraLightClasses/dollarsInNameLocal.kt index bfeded47066..4422978ca20 100644 --- a/compiler/testData/asJava/ultraLightClasses/dollarsInNameLocal.kt +++ b/compiler/testData/asJava/ultraLightClasses/dollarsInNameLocal.kt @@ -1,4 +1,5 @@ // c.b.a.Foo$bar$A$B +// CHECK_BY_JAVA_FILE package c.b.a class Foo { diff --git a/compiler/testData/asJava/ultraLightClasses/enums.java b/compiler/testData/asJava/ultraLightClasses/enums.java new file mode 100644 index 00000000000..bfd24153096 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/enums.java @@ -0,0 +1,121 @@ +public enum Direction /* Direction*/ { + NORTH, + SOUTH, + WEST, + EAST; + + private Direction();// .ctor() + +} + +public enum Color /* Color*/ { + RED, + GREEN, + BLUE; + + private final int rgb; + + private Color(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String) + + private Color(int);// .ctor(int) + + public final int getRgb();// getRgb() + +} + +public enum ProtocolState /* ProtocolState*/ { + WAITING { + WAITING();// .ctor() + + @org.jetbrains.annotations.NotNull() + public ProtocolState signal();// signal() + + }, + TALKING { + TALKING();// .ctor() + + @org.jetbrains.annotations.NotNull() + public ProtocolState signal();// signal() + + }; + + @org.jetbrains.annotations.NotNull() + public abstract ProtocolState signal();// signal() + + private ProtocolState();// .ctor() + + + + class TALKING ... + + class WAITING ... + + } + +public static final class WAITING /* ProtocolState.WAITING*/ extends ProtocolState { + WAITING();// .ctor() + + @org.jetbrains.annotations.NotNull() + public ProtocolState signal();// signal() + +} + +public static final class TALKING /* ProtocolState.TALKING*/ extends ProtocolState { + TALKING();// .ctor() + + @org.jetbrains.annotations.NotNull() + public ProtocolState signal();// signal() + +} + +public enum IntArithmetics /* IntArithmetics*/ { + PLUS { + PLUS();// .ctor() + + public int apply(int, int);// apply(int, int) + + }, + TIMES { + TIMES();// .ctor() + + public int apply(int, int);// apply(int, int) + + }; + + @org.jetbrains.annotations.NotNull() + public IntArithmetics applyAsInt(int, int);// applyAsInt(int, int) + + private IntArithmetics();// .ctor() + + + + class PLUS ... + + class TIMES ... + + } + +public static final class PLUS /* IntArithmetics.PLUS*/ extends IntArithmetics { + PLUS();// .ctor() + + public int apply(int, int);// apply(int, int) + +} + +public static final class TIMES /* IntArithmetics.TIMES*/ extends IntArithmetics { + TIMES();// .ctor() + + public int apply(int, int);// apply(int, int) + +} + +public final class C /* C*/ { + @org.jetbrains.annotations.Nullable() + private final Direction enumConst; + + @org.jetbrains.annotations.Nullable() + public final Direction getEnumConst();// getEnumConst() + + public C();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/generics.java b/compiler/testData/asJava/ultraLightClasses/generics.java new file mode 100644 index 00000000000..6cef4df46d5 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/generics.java @@ -0,0 +1,81 @@ +public abstract class C /* C*/ { + @org.jetbrains.annotations.NotNull() + private java.util.List constructorParam; + + @org.jetbrains.annotations.Nullable() + private java.util.HashSet sHashSetProp; + + @org.jetbrains.annotations.Nullable() + private java.util.List csListProp; + + @org.jetbrains.annotations.Nullable() + private java.util.List sListProp; + + @org.jetbrains.annotations.Nullable() + private java.util.Set sMutableSetProp; + + @org.jetbrains.annotations.Nullable() + private java.util.Set sSetProp; + + @org.jetbrains.annotations.NotNull() + public abstract java.util.Collection> nested(@org.jetbrains.annotations.NotNull() java.util.List>);// nested(java.util.List>) + + @org.jetbrains.annotations.NotNull() + public abstract java.util.List listCS(@org.jetbrains.annotations.NotNull() java.util.List);// listCS(java.util.List) + + @org.jetbrains.annotations.NotNull() + public abstract java.util.List listS(@org.jetbrains.annotations.NotNull() java.util.List);// listS(java.util.List) + + @org.jetbrains.annotations.NotNull() + public abstract java.util.Set mutables(@org.jetbrains.annotations.NotNull() java.util.Collection, @org.jetbrains.annotations.NotNull() java.util.List>);// mutables(java.util.Collection, java.util.List>) + + @org.jetbrains.annotations.NotNull() + public final java.util.List getConstructorParam();// getConstructorParam() + + @org.jetbrains.annotations.Nullable() + public final > T max(@org.jetbrains.annotations.Nullable() java.util.Collection);// > max(java.util.Collection) + + @org.jetbrains.annotations.Nullable() + public final java.util.HashSet getSHashSetProp();// getSHashSetProp() + + @org.jetbrains.annotations.Nullable() + public final java.util.List getCsListProp();// getCsListProp() + + @org.jetbrains.annotations.Nullable() + public final java.util.List getSListProp();// getSListProp() + + @org.jetbrains.annotations.Nullable() + public final java.util.Set getSMutableSetProp();// getSMutableSetProp() + + @org.jetbrains.annotations.Nullable() + public final java.util.Set getSSetProp();// getSSetProp() + + public C(@org.jetbrains.annotations.NotNull() java.util.List);// .ctor(java.util.List) + + public final Q getW(Q);// getW(Q) + + public final T foo(V, @org.jetbrains.annotations.NotNull() C, @org.jetbrains.annotations.NotNull() kotlin.sequences.Sequence);// foo(V, C, kotlin.sequences.Sequence) + + public final void setConstructorParam(@org.jetbrains.annotations.NotNull() java.util.List);// setConstructorParam(java.util.List) + + public final void setCsListProp(@org.jetbrains.annotations.Nullable() java.util.List);// setCsListProp(java.util.List) + + public final void setSHashSetProp(@org.jetbrains.annotations.Nullable() java.util.HashSet);// setSHashSetProp(java.util.HashSet) + + public final void setSListProp(@org.jetbrains.annotations.Nullable() java.util.List);// setSListProp(java.util.List) + + public final void setSMutableSetProp(@org.jetbrains.annotations.Nullable() java.util.Set);// setSMutableSetProp(java.util.Set) + + public final void setSSetProp(@org.jetbrains.annotations.Nullable() java.util.Set);// setSSetProp(java.util.Set) + +} + +public class K /* K*/> { + public K();// .ctor() + +} + +public final class Sub /* Sub*/ extends K> { + public Sub();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.java b/compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.java new file mode 100644 index 00000000000..2e7d216db9f --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.java @@ -0,0 +1,27 @@ +public final class MyList /* MyList*/ implements java.util.List, kotlin.collections.List, kotlin.jvm.internal.markers.KMappedMarker { + @org.jetbrains.annotations.NotNull() + public java.lang.String get(int);// get(int) + + public MyList();// .ctor() + +} + +public abstract interface ASet /* ASet*/ extends java.util.Collection, kotlin.collections.MutableCollection, kotlin.jvm.internal.markers.KMutableCollection { +} + +public abstract class MySet /* MySet*/ implements ASet { + public MySet();// .ctor() + + public boolean remove(@org.jetbrains.annotations.NotNull() java.lang.String);// remove(java.lang.String) + +} + +public abstract class SmartSet /* SmartSet*/ extends kotlin.collections.AbstractMutableSet { + @org.jetbrains.annotations.NotNull() + public java.util.Iterator iterator();// iterator() + + private SmartSet();// .ctor() + + public boolean add(T);// add(T) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/importAliases.java b/compiler/testData/asJava/ultraLightClasses/importAliases.java new file mode 100644 index 00000000000..26fb3b8200b --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/importAliases.java @@ -0,0 +1,10 @@ +public final class O /* O*/ { + @org.jetbrains.annotations.NotNull() + public static final O INSTANCE; + + @kotlin.jvm.JvmStatic() + public static final void foo();// foo() + + private O();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/importAliases.kt b/compiler/testData/asJava/ultraLightClasses/importAliases.kt index d57a56dfc49..70b08005dff 100644 --- a/compiler/testData/asJava/ultraLightClasses/importAliases.kt +++ b/compiler/testData/asJava/ultraLightClasses/importAliases.kt @@ -3,3 +3,5 @@ import kotlin.jvm.JvmStatic as JS object O { @JS fun foo() {} } + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.kt b/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.kt index 5f295e20c9f..a7a84bcd45a 100644 --- a/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.kt +++ b/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.kt @@ -1,3 +1,4 @@ +// CHECK_BY_JAVA_FILE class Prop { private val someProp = object { } } diff --git a/compiler/testData/asJava/ultraLightClasses/inheritance.java b/compiler/testData/asJava/ultraLightClasses/inheritance.java new file mode 100644 index 00000000000..ce488c04a12 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/inheritance.java @@ -0,0 +1,78 @@ +public abstract interface Intf /* Intf*/ { + public abstract int v();// v() + +} + +public abstract interface IntfWithProp /* IntfWithProp*/ extends Intf { + public abstract int getX();// getX() + +} + +public abstract class Base /* Base*/ { + private int y; + + private int z; + + @org.jetbrains.annotations.Nullable() + protected java.lang.Integer v();// v() + + protected int getZ();// getZ() + + protected void setZ(int);// setZ(int) + + public Base(int);// .ctor(int) + + public abstract int abs();// abs() + + public final void nv();// nv() + + public int getX$light_idea_test_case();// getX$light_idea_test_case() + + public int getY();// getY() + + public void setY(int);// setY(int) + +} + +public final class Derived /* Derived*/ extends Base implements IntfWithProp { + private final int x; + + public Derived(int);// .ctor(int) + + public error.NonExistentClass v();// v() + + public int abs();// abs() + + public int getX();// getX() + +} + +public abstract class AnotherDerived /* AnotherDerived*/ extends Base { + private final int x; + + private final int y; + + private final int z; + + protected final void v();// v() + + protected int getZ();// getZ() + + public AnotherDerived(int, int, int);// .ctor(int, int, int) + + public abstract int getAbstractProp();// getAbstractProp() + + public abstract void noReturn(@org.jetbrains.annotations.NotNull() java.lang.String);// noReturn(java.lang.String) + + public int getX$light_idea_test_case();// getX$light_idea_test_case() + + public int getY();// getY() + +} + +final class Private /* Private*/ { + public Private();// .ctor() + + public boolean getOverridesNothing();// getOverridesNothing() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/inlineClasses.kt b/compiler/testData/asJava/ultraLightClasses/inlineClasses.kt index da3c30eb734..ab77e06dd28 100644 --- a/compiler/testData/asJava/ultraLightClasses/inlineClasses.kt +++ b/compiler/testData/asJava/ultraLightClasses/inlineClasses.kt @@ -1,3 +1,4 @@ +// CHECK_BY_JAVA_FILE inline class UInt(private val value: Int) { } inline enum class Foo(val x: Int) { diff --git a/compiler/testData/asJava/ultraLightClasses/inlineOnly.java b/compiler/testData/asJava/ultraLightClasses/inlineOnly.java new file mode 100644 index 00000000000..0d728d6323b --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/inlineOnly.java @@ -0,0 +1,7 @@ +public final class A /* A*/ { + @kotlin.internal.InlineOnly() + private final void foo();// foo() + + public A();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/inlineReified.java b/compiler/testData/asJava/ultraLightClasses/inlineReified.java new file mode 100644 index 00000000000..fe24292674f --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/inlineReified.java @@ -0,0 +1,4 @@ +public final class C /* C*/ { + public C();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/inlineReified.kt b/compiler/testData/asJava/ultraLightClasses/inlineReified.kt index 06b275b8232..664b14b5ae0 100644 --- a/compiler/testData/asJava/ultraLightClasses/inlineReified.kt +++ b/compiler/testData/asJava/ultraLightClasses/inlineReified.kt @@ -9,3 +9,5 @@ class C { inline get() = toString() inline set(value) {} } + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/jvmField.java b/compiler/testData/asJava/ultraLightClasses/jvmField.java new file mode 100644 index 00000000000..15a1f83b1a0 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/jvmField.java @@ -0,0 +1,61 @@ +public final class A /* A*/ { + @kotlin.jvm.JvmField() + @org.jetbrains.annotations.NotNull() + public final java.util.Collection a; + + @kotlin.jvm.JvmField() + @org.jetbrains.annotations.NotNull() + public static final java.util.Collection c; + + @kotlin.jvm.JvmField() + public int b; + + @kotlin.jvm.JvmField() + public static int d; + + @org.jetbrains.annotations.NotNull() + public static final A.Companion Companion; + + public A();// .ctor() + + + class Companion ... + + } + +public static final class Companion /* A.Companion*/ { + private Companion();// .ctor() + +} + +public abstract interface B /* B*/ { + @kotlin.jvm.JvmField() + @org.jetbrains.annotations.NotNull() + public static final java.util.Collection a; + + @org.jetbrains.annotations.NotNull() + public static final B.Companion Companion; + + + class Companion ... + + } + +public static final class Companion /* B.Companion*/ { + private Companion();// .ctor() + +} + +public final class C /* C*/ { + @kotlin.jvm.JvmField() + @org.jetbrains.annotations.NotNull() + public final java.util.Collection a; + + @kotlin.jvm.JvmField() + public int b; + + public C();// .ctor() + + public C(@org.jetbrains.annotations.NotNull() java.util.Collection, int);// .ctor(java.util.Collection, int) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/jvmName.java b/compiler/testData/asJava/ultraLightClasses/jvmName.java new file mode 100644 index 00000000000..15240bb5c0f --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/jvmName.java @@ -0,0 +1,29 @@ +public final class C /* C*/ { + @kotlin.jvm.JvmName(name = "fooInt") + public final void fooInt(@org.jetbrains.annotations.NotNull() java.util.List);// fooInt(java.util.List) + + @kotlin.jvm.JvmName(name = "get_rwProp") + public final int get_rwProp();// get_rwProp() + + @kotlin.jvm.JvmName(name = "hasBigArity") + public final boolean hasBigArity();// hasBigArity() + + @kotlin.jvm.JvmName(name = "set_rwProp") + public final void set_rwProp(int);// set_rwProp(int) + + @kotlin.jvm.JvmName(name = "xyz1") + @org.jetbrains.annotations.NotNull() + public final java.lang.String xyz1();// xyz1() + + @kotlin.jvm.JvmName(name = "xyz2") + public final void xyz2(@org.jetbrains.annotations.NotNull() java.lang.String);// xyz2(java.lang.String) + + public C();// .ctor() + + public final int getRwProp();// getRwProp() + + public final void foo(@org.jetbrains.annotations.NotNull() java.util.List);// foo(java.util.List) + + public final void setRwProp(int);// setRwProp(int) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/jvmOverloads.java b/compiler/testData/asJava/ultraLightClasses/jvmOverloads.java new file mode 100644 index 00000000000..980fa44aa4a --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/jvmOverloads.java @@ -0,0 +1,116 @@ +public final class C /* C*/ { + @org.jetbrains.annotations.NotNull() + private final java.lang.String p2; + + @org.jetbrains.annotations.NotNull() + public static final C.Companion Companion; + + @org.jetbrains.annotations.Nullable() + private final java.lang.String type; + + private final boolean p1; + + @kotlin.jvm.JvmOverloads() + @kotlin.jvm.JvmStatic() + public static final void fooStatic(double);// fooStatic(double) + + @kotlin.jvm.JvmOverloads() + @kotlin.jvm.JvmStatic() + public static final void fooStatic(int, double);// fooStatic(int, double) + + @kotlin.jvm.JvmOverloads() + @kotlin.jvm.JvmStatic() + public static final void fooStatic(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// fooStatic(int, double, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public C(@org.jetbrains.annotations.Nullable() java.lang.String);// .ctor(java.lang.String) + + @kotlin.jvm.JvmOverloads() + public C(@org.jetbrains.annotations.Nullable() java.lang.String, boolean);// .ctor(java.lang.String, boolean) + + @kotlin.jvm.JvmOverloads() + public C(@org.jetbrains.annotations.Nullable() java.lang.String, boolean, @org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String, boolean, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void bar();// bar() + + @kotlin.jvm.JvmOverloads() + public final void bar(int);// bar(int) + + @kotlin.jvm.JvmOverloads() + public final void bar(int, double);// bar(int, double) + + @kotlin.jvm.JvmOverloads() + public final void bar(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// bar(int, double, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void baz(@org.jetbrains.annotations.NotNull() java.lang.String);// baz(java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void baz(int, @org.jetbrains.annotations.NotNull() java.lang.String);// baz(int, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void baz(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// baz(int, double, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void foo(double);// foo(double) + + @kotlin.jvm.JvmOverloads() + public final void foo(int, double);// foo(int, double) + + @kotlin.jvm.JvmOverloads() + public final void foo(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// foo(int, double, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void foobar(int);// foobar(int) + + @kotlin.jvm.JvmOverloads() + public final void foobar(int, double);// foobar(int, double) + + @kotlin.jvm.JvmOverloads() + public final void foobar(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// foobar(int, double, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void foobarbaz(int, @org.jetbrains.annotations.NotNull() java.lang.String);// foobarbaz(int, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void foobarbaz(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// foobarbaz(int, double, java.lang.String) + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getP2();// getP2() + + @org.jetbrains.annotations.Nullable() + public final java.lang.String getType();// getType() + + public final boolean getP1();// getP1() + + + class Companion ... + + } + +public static final class Companion /* C.Companion*/ { + @kotlin.jvm.JvmOverloads() + @kotlin.jvm.JvmStatic() + public final void fooStatic(double);// fooStatic(double) + + @kotlin.jvm.JvmOverloads() + @kotlin.jvm.JvmStatic() + public final void fooStatic(int, double);// fooStatic(int, double) + + @kotlin.jvm.JvmOverloads() + @kotlin.jvm.JvmStatic() + public final void fooStatic(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// fooStatic(int, double, java.lang.String) + + @kotlin.jvm.JvmOverloads() + public final void foo123(double);// foo123(double) + + @kotlin.jvm.JvmOverloads() + public final void foo123(int, double);// foo123(int, double) + + @kotlin.jvm.JvmOverloads() + public final void foo123(int, double, @org.jetbrains.annotations.NotNull() java.lang.String);// foo123(int, double, java.lang.String) + + private Companion();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/jvmSynthetic.java b/compiler/testData/asJava/ultraLightClasses/jvmSynthetic.java new file mode 100644 index 00000000000..b6fd3cf6f80 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/jvmSynthetic.java @@ -0,0 +1,10 @@ +public final class A /* A*/ { + private int z; + + public A();// .ctor() + + public final int getX();// getX() + + public final void setX(int);// setX(int) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/jvmSyntheticForAccessors.kt b/compiler/testData/asJava/ultraLightClasses/jvmSyntheticForAccessors.kt index f122ffdbf0e..d4a3aabec65 100644 --- a/compiler/testData/asJava/ultraLightClasses/jvmSyntheticForAccessors.kt +++ b/compiler/testData/asJava/ultraLightClasses/jvmSyntheticForAccessors.kt @@ -1,4 +1,4 @@ - +// CHECK_BY_JAVA_FILE class X { @get:JvmSynthetic diff --git a/compiler/testData/asJava/ultraLightClasses/jvmWildcardAnnotations.java b/compiler/testData/asJava/ultraLightClasses/jvmWildcardAnnotations.java new file mode 100644 index 00000000000..f9150fe7baf --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/jvmWildcardAnnotations.java @@ -0,0 +1,71 @@ +public final class Inv /* Inv*/ { + public Inv();// .ctor() + +} + +public final class Out /* Out*/ { + public Out();// .ctor() + +} + +public final class OutPair /* OutPair*/ { + public OutPair();// .ctor() + +} + +public final class In /* In*/ { + public In();// .ctor() + +} + +public final class Final /* Final*/ { + public Final();// .ctor() + +} + +public class Open /* Open*/ { + public Open();// .ctor() + +} + +public final class Container /* Container*/ { + @kotlin.jvm.JvmSuppressWildcards(suppress = false) + @org.jetbrains.annotations.NotNull() + public final Out bar();// bar() + + @kotlin.jvm.JvmSuppressWildcards(suppress = false) + public final int foo(boolean, @org.jetbrains.annotations.NotNull() Out);// foo(boolean, Out) + + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + public final int bar(boolean, @org.jetbrains.annotations.NotNull() In, long);// bar(boolean, In, long) + + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + public final void deepOpen(@org.jetbrains.annotations.NotNull() Out>>);// deepOpen(Out>>) + + @org.jetbrains.annotations.NotNull() + public final OutPair, Out>> falseTrueFalse();// falseTrueFalse() + + @org.jetbrains.annotations.NotNull() + public final OutPair>> combination();// combination() + + public Container();// .ctor() + + public final void simpleIn(@org.jetbrains.annotations.NotNull() In);// simpleIn(In) + + public final void simpleOut(@org.jetbrains.annotations.NotNull() Out);// simpleOut(Out) + +} + +public abstract interface A /* A*/ { + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + @org.jetbrains.annotations.NotNull() + public abstract Out foo();// foo() + +} + +public abstract interface B /* B*/ { + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + @org.jetbrains.annotations.NotNull() + public abstract In foo();// foo() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/lateinitProperty.java b/compiler/testData/asJava/ultraLightClasses/lateinitProperty.java new file mode 100644 index 00000000000..efe5b40c591 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/lateinitProperty.java @@ -0,0 +1,94 @@ +public class A /* A*/ { + private java.lang.String b; + + protected java.lang.String c; + + public java.lang.String a; + + public java.lang.String d; + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getA();// getA() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getB();// getB() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getC();// getC() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getD();// getD() + + protected final void setC(@org.jetbrains.annotations.NotNull() java.lang.String);// setC(java.lang.String) + + public A();// .ctor() + + public final void setA(@org.jetbrains.annotations.NotNull() java.lang.String);// setA(java.lang.String) + + public final void setD$light_idea_test_case(@org.jetbrains.annotations.NotNull() java.lang.String);// setD$light_idea_test_case(java.lang.String) + +} + +public class B /* B*/ { + private java.lang.String b; + + protected java.lang.String c; + + public java.lang.String a; + + public java.lang.String d; + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getA$light_idea_test_case();// getA$light_idea_test_case() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getB$light_idea_test_case();// getB$light_idea_test_case() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getC$light_idea_test_case();// getC$light_idea_test_case() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getD$light_idea_test_case();// getD$light_idea_test_case() + + protected final void setC(@org.jetbrains.annotations.NotNull() java.lang.String);// setC(java.lang.String) + + public B();// .ctor() + + public final void setA$light_idea_test_case(@org.jetbrains.annotations.NotNull() java.lang.String);// setA$light_idea_test_case(java.lang.String) + + public final void setD$light_idea_test_case(@org.jetbrains.annotations.NotNull() java.lang.String);// setD$light_idea_test_case(java.lang.String) + +} + +public class C /* C*/ { + private java.lang.String b; + + protected java.lang.String a; + + protected java.lang.String c; + + @org.jetbrains.annotations.NotNull() + protected final java.lang.String getA();// getA() + + @org.jetbrains.annotations.NotNull() + protected final java.lang.String getB();// getB() + + @org.jetbrains.annotations.NotNull() + protected final java.lang.String getC();// getC() + + protected final void setA(@org.jetbrains.annotations.NotNull() java.lang.String);// setA(java.lang.String) + + protected final void setC(@org.jetbrains.annotations.NotNull() java.lang.String);// setC(java.lang.String) + + public C();// .ctor() + +} + +public class D /* D*/ { + private java.lang.String a; + + private java.lang.String b; + + public D();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/localClassDerived.kt b/compiler/testData/asJava/ultraLightClasses/localClassDerived.kt index ff57137e3bf..708b0ca037d 100644 --- a/compiler/testData/asJava/ultraLightClasses/localClassDerived.kt +++ b/compiler/testData/asJava/ultraLightClasses/localClassDerived.kt @@ -1,3 +1,4 @@ +// CHECK_BY_JAVA_FILE class Boo { fun fooBar() { class LocalClassBase diff --git a/compiler/testData/asJava/ultraLightClasses/objects.java b/compiler/testData/asJava/ultraLightClasses/objects.java new file mode 100644 index 00000000000..5e377974013 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/objects.java @@ -0,0 +1,171 @@ +public final class C /* C*/ { + @org.jetbrains.annotations.NotNull() + private static java.lang.String x; + + @org.jetbrains.annotations.NotNull() + public static final C.Companion Companion; + + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getC(@org.jetbrains.annotations.NotNull() I);// getC(I) + + @kotlin.jvm.JvmStatic() + public static final void foo();// foo() + + @kotlin.jvm.JvmStatic() + public static final void setC(@org.jetbrains.annotations.NotNull() I, @org.jetbrains.annotations.NotNull() java.lang.String);// setC(I, java.lang.String) + + @kotlin.jvm.JvmStatic() + public static final void setC1(@org.jetbrains.annotations.NotNull() java.lang.String);// setC1(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getX();// getX() + + public C();// .ctor() + + public static final void setX(@org.jetbrains.annotations.NotNull() java.lang.String);// setX(java.lang.String) + + + + class Companion ... + + class Factory ... + + } + +public static final class Companion /* C.Companion*/ { + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.NotNull() + public final java.lang.String getC(@org.jetbrains.annotations.NotNull() I);// getC(I) + + @kotlin.jvm.JvmStatic() + public final void foo();// foo() + + @kotlin.jvm.JvmStatic() + public final void setC(@org.jetbrains.annotations.NotNull() I, @org.jetbrains.annotations.NotNull() java.lang.String);// setC(I, java.lang.String) + + @kotlin.jvm.JvmStatic() + public final void setC1(@org.jetbrains.annotations.NotNull() java.lang.String);// setC1(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getC1();// getC1() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getX();// getX() + + private Companion();// .ctor() + + public final void bar();// bar() + + public final void setX(@org.jetbrains.annotations.NotNull() java.lang.String);// setX(java.lang.String) + +} + +public static final class Factory /* C.Factory*/ { + private Factory();// .ctor() + +} + +public final class C1 /* C1*/ { + private static final C1.Companion Companion; + + public C1();// .ctor() + + + class Companion ... + + } + +private static final class Companion /* C1.Companion*/ { + private Companion();// .ctor() + +} + +public abstract interface I /* I*/ { + @org.jetbrains.annotations.NotNull() + public static final I.Companion Companion; + + + class Companion ... + + } + +public static final class Companion /* I.Companion*/ { + private Companion();// .ctor() + +} + +public final class Obj /* Obj*/ implements java.lang.Runnable { + @org.jetbrains.annotations.NotNull() + private static java.lang.String x; + + @org.jetbrains.annotations.NotNull() + public static final Obj INSTANCE; + + @kotlin.jvm.JvmStatic() + public static final int zoo();// zoo() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getX();// getX() + + private Obj();// .ctor() + + public static final void setX(@org.jetbrains.annotations.NotNull() java.lang.String);// setX(java.lang.String) + + public void run();// run() + +} + +public final class ConstContainer /* ConstContainer*/ { + @org.jetbrains.annotations.NotNull() + public static final ConstContainer INSTANCE; + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String str = "one" /* initializer type: java.lang.String */ /* constant value one */; + + public static final double complexFloat = 5.118281745910645 /* initializer type: double */ /* constant value 5.118281745910645 */; + + public static final double e = 2.7182818284 /* initializer type: double */ /* constant value 2.7182818284 */; + + public static final float eFloat = 2.7182817f /* initializer type: float */ /* constant value 2.7182817 */; + + public static final int one = 1 /* initializer type: int */ /* constant value 1 */; + + public static final long complexLong = 2L /* initializer type: long */ /* constant value 2 */; + + public static final long oneLong = 1L /* initializer type: long */ /* constant value 1 */; + + private ConstContainer();// .ctor() + +} + +public final class ClassWithConstContainer /* ClassWithConstContainer*/ { + @org.jetbrains.annotations.NotNull() + public static final ClassWithConstContainer.Companion Companion; + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String str = "one" /* initializer type: java.lang.String */ /* constant value one */; + + public static final double complexFloat = 5.118281745910645 /* initializer type: double */ /* constant value 5.118281745910645 */; + + public static final double e = 2.7182818284 /* initializer type: double */ /* constant value 2.7182818284 */; + + public static final float eFloat = 2.7182817f /* initializer type: float */ /* constant value 2.7182817 */; + + public static final int one = 1 /* initializer type: int */ /* constant value 1 */; + + public static final long complexLong = 2L /* initializer type: long */ /* constant value 2 */; + + public static final long oneLong = 1L /* initializer type: long */ /* constant value 1 */; + + public ClassWithConstContainer();// .ctor() + + + class Companion ... + + } + +public static final class Companion /* ClassWithConstContainer.Companion*/ { + private Companion();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/properties.java b/compiler/testData/asJava/ultraLightClasses/properties.java new file mode 100644 index 00000000000..d2a5afba7ca --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/properties.java @@ -0,0 +1,230 @@ +public final class Foo /* Foo*/ { + @org.jetbrains.annotations.NotNull() + private final Foo b; + + @org.jetbrains.annotations.NotNull() + private final java.lang.Object arrayConst; + + @org.jetbrains.annotations.NotNull() + private final kotlin.jvm.functions.Function1 sum; + + @org.jetbrains.annotations.NotNull() + private java.lang.String name; + + @org.jetbrains.annotations.NotNull() + private java.lang.String protectedWithPrivateSet; + + @org.jetbrains.annotations.NotNull() + public final java.lang.String CONSTANT_WITH_ESCAPES = "A\tB\nC\rD'E\"F\\G$H" /* initializer type: java.lang.String */ /* constant value A B + C + D'E"F\G$H */; + + @org.jetbrains.annotations.NotNull() + public final java.lang.String SUBSYSTEM_DEPRECATED = "This subsystem is deprecated" /* initializer type: java.lang.String */ /* constant value This subsystem is deprecated */; + + @org.jetbrains.annotations.NotNull() + public static final Foo.Companion Companion; + + @org.jetbrains.annotations.Nullable() + private java.lang.Boolean isEmptyMutable; + + @org.jetbrains.annotations.Nullable() + private java.lang.Boolean islowercase; + + @org.jetbrains.annotations.Nullable() + private java.lang.Integer getInt; + + @org.jetbrains.annotations.Nullable() + private java.lang.Integer isEmptyInt; + + private boolean c; + + private final error.NonExistentClass d; + + private final error.NonExistentClass delegatedProp$delegate; + + private final error.NonExistentClass delegatedProp2$delegate; + + private final error.NonExistentClass lazyProp$delegate; + + private final error.NonExistentClass privateDelegated$delegate; + + private final int f1$1; + + private final java.lang.Void intConst; + + private final long e; + + private int counter; + + private int f2; + + private int internalWithPrivateSet; + + private int privateVarWithPrivateSet; + + private java.lang.Object privateVarWithGet; + + private java.lang.String internalVarPrivateSet; + + private java.lang.String noAccessors; + + private static final error.NonExistentClass contextBean; + + private static final int f1; + + private static int prop7; + + protected java.lang.String protectedLateinitVar; + + public error.NonExistentClass subject; + + @org.jetbrains.annotations.NotNull() + protected final java.lang.String getProtectedLateinitVar();// getProtectedLateinitVar() + + @org.jetbrains.annotations.NotNull() + protected final java.lang.String getProtectedWithPrivateSet();// getProtectedWithPrivateSet() + + @org.jetbrains.annotations.NotNull() + public final Foo getB();// getB() + + @org.jetbrains.annotations.NotNull() + public final java.lang.Object getArrayConst();// getArrayConst() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getDelegatedProp();// getDelegatedProp() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getInternalVarPrivateSet$light_idea_test_case();// getInternalVarPrivateSet$light_idea_test_case() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getLazyProp();// getLazyProp() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getName();// getName() + + @org.jetbrains.annotations.NotNull() + public final java.lang.String getStringRepresentation$light_idea_test_case();// getStringRepresentation$light_idea_test_case() + + @org.jetbrains.annotations.NotNull() + public final kotlin.jvm.functions.Function1 getSum();// getSum() + + @org.jetbrains.annotations.Nullable() + public final java.lang.Boolean getIslowercase();// getIslowercase() + + @org.jetbrains.annotations.Nullable() + public final java.lang.Boolean isEmptyMutable();// isEmptyMutable() + + @org.jetbrains.annotations.Nullable() + public final java.lang.Integer getCounter2();// getCounter2() + + @org.jetbrains.annotations.Nullable() + public final java.lang.Integer getGetInt();// getGetInt() + + @org.jetbrains.annotations.Nullable() + public final java.lang.Integer isEmptyInt();// isEmptyInt() + + private final int getPrivateDelegated();// getPrivateDelegated() + + private final java.lang.String getPrivateValWithGet();// getPrivateValWithGet() + + private final void setPrivateDelegated(int);// setPrivateDelegated(int) + + protected final int getF2();// getF2() + + protected final long getE();// getE() + + protected final void setF2(int);// setF2(int) + + protected final void setProtectedLateinitVar(@org.jetbrains.annotations.NotNull() java.lang.String);// setProtectedLateinitVar(java.lang.String) + + public Foo(int, @org.jetbrains.annotations.NotNull() Foo, boolean, error.NonExistentClass, long);// .ctor(int, Foo, boolean, error.NonExistentClass, long) + + public final boolean getC();// getC() + + public final boolean isEmpty();// isEmpty() + + public final error.NonExistentClass getSubject();// getSubject() + + public final int getCounter();// getCounter() + + public final int getDelegatedProp2();// getDelegatedProp2() + + public final int getF1();// getF1() + + public final int getIntProp(int);// getIntProp(int) + + public final int getInternalWithPrivateSet$light_idea_test_case();// getInternalWithPrivateSet$light_idea_test_case() + + public final java.lang.Void getIntConst();// getIntConst() + + public final void setC(boolean);// setC(boolean) + + public final void setCounter(int);// setCounter(int) + + public final void setCounter2(@org.jetbrains.annotations.Nullable() java.lang.Integer);// setCounter2(java.lang.Integer) + + public final void setDelegatedProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setDelegatedProp(java.lang.String) + + public final void setDelegatedProp2(int);// setDelegatedProp2(int) + + public final void setEmptyInt(@org.jetbrains.annotations.Nullable() java.lang.Integer);// setEmptyInt(java.lang.Integer) + + public final void setEmptyMutable(@org.jetbrains.annotations.Nullable() java.lang.Boolean);// setEmptyMutable(java.lang.Boolean) + + public final void setGetInt(@org.jetbrains.annotations.Nullable() java.lang.Integer);// setGetInt(java.lang.Integer) + + public final void setIslowercase(@org.jetbrains.annotations.Nullable() java.lang.Boolean);// setIslowercase(java.lang.Boolean) + + public final void setLazyProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setLazyProp(java.lang.String) + + public final void setName(@org.jetbrains.annotations.NotNull() java.lang.String);// setName(java.lang.String) + + public final void setStringRepresentation$light_idea_test_case(@org.jetbrains.annotations.NotNull() java.lang.String);// setStringRepresentation$light_idea_test_case(java.lang.String) + + public final void setSubject(error.NonExistentClass);// setSubject(error.NonExistentClass) + + + class Companion ... + + } + +public static final class Companion /* Foo.Companion*/ { + private Companion();// .ctor() + + public final int getF1();// getF1() + + public final int getProp3();// getProp3() + + public final int getProp7();// getProp7() + + public final void setProp7(int);// setProp7(int) + +} + +public final class MyProperty /* MyProperty*/ { + public MyProperty();// .ctor() + + public final int getValue(T, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty);// getValue(T, kotlin.reflect.KProperty) + + public final void setValue(T, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty, int);// setValue(T, kotlin.reflect.KProperty, int) + +} + +public final class Modifiers /* Modifiers*/ { + private final int plainField; + + public Modifiers();// .ctor() + + public final int getPlainField();// getPlainField() + +} + +public abstract interface A /* A*/ { + protected abstract int getInt1();// getInt1() + + public abstract int getInt2();// getInt2() + + public abstract void setInt2$light_idea_test_case(int);// setInt2$light_idea_test_case(int) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/simpleFunctions.java b/compiler/testData/asJava/ultraLightClasses/simpleFunctions.java new file mode 100644 index 00000000000..beea600e819 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/simpleFunctions.java @@ -0,0 +1,31 @@ +public final class Foo /* Foo*/ { + @org.jetbrains.annotations.NotNull() + public final Foo onString(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() kotlin.jvm.functions.Function1);// onString(java.lang.String, kotlin.jvm.functions.Function1) + + @org.jetbrains.annotations.NotNull() + public final Foo plus(int);// plus(int) + + @org.jetbrains.annotations.NotNull() + public final native java.lang.String externalFun(int);// externalFun(int) + + private final /* vararg */ java.lang.String bar3(Foo.Inner, Foo.Inner...);// bar3(Foo.Inner, Foo.Inner[]) + + public Foo();// .ctor() + + public final /* vararg */ void nullableVararg(@org.jetbrains.annotations.Nullable() java.lang.Object...);// nullableVararg(java.lang.Object[]) + + public final int bar4();// bar4() + + public final void bar2$light_idea_test_case(error.NonExistentClass, error.NonExistentClass);// bar2$light_idea_test_case(error.NonExistentClass, error.NonExistentClass) + + public void bar(int, @org.jetbrains.annotations.NotNull() java.lang.Object, @org.jetbrains.annotations.NotNull() Foo);// bar(int, java.lang.Object, Foo) + + + class Inner ... + + } + +public static final class Inner /* Foo.Inner*/ { + public Inner();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/throwsAnnotation.java b/compiler/testData/asJava/ultraLightClasses/throwsAnnotation.java new file mode 100644 index 00000000000..7038f73c29a --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/throwsAnnotation.java @@ -0,0 +1,20 @@ +public final class MyException /* MyException*/ extends java.lang.Exception { + public MyException();// .ctor() + +} + +public final class C /* C*/ { + @kotlin.jvm.Throws(exceptionClasses = {Exception::class}) + public C() throws java.lang.Exception;// .ctor() + + @kotlin.jvm.Throws(exceptionClasses = {Exception::class}) + public C(int) throws java.lang.Exception;// .ctor(int) + + @kotlin.jvm.Throws(exceptionClasses = {java.io.IOException::class, MyException::class}) + @org.jetbrains.annotations.NotNull() + public final java.lang.String readFile(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.io.IOException, MyException;// readFile(java.lang.String) + + @kotlin.jvm.Throws(exceptionClasses = {kotlin.Throwable::class}) + public final void baz() throws java.lang.Throwable;// baz() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/typeAliases.java b/compiler/testData/asJava/ultraLightClasses/typeAliases.java new file mode 100644 index 00000000000..29c78dc652f --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/typeAliases.java @@ -0,0 +1,16 @@ +public final class O /* O*/ { + @org.jetbrains.annotations.NotNull() + public static final O INSTANCE; + + @kotlin.jvm.JvmOverloads() + public final void foo();// foo() + + @kotlin.jvm.JvmOverloads() + public final void foo(int);// foo(int) + + @kotlin.jvm.JvmOverloads() + public final void foo(int, @org.jetbrains.annotations.NotNull() java.lang.String);// foo(int, java.lang.String) + + private O();// .ctor() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/typeAnnotations.kt b/compiler/testData/asJava/ultraLightClasses/typeAnnotations.kt index 412b1832292..110b5ea7144 100644 --- a/compiler/testData/asJava/ultraLightClasses/typeAnnotations.kt +++ b/compiler/testData/asJava/ultraLightClasses/typeAnnotations.kt @@ -1,3 +1,4 @@ +// CHECK_BY_JAVA_FILE @Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE) annotation class A0 @Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE) diff --git a/compiler/testData/asJava/ultraLightClasses/wildcardOptimization.java b/compiler/testData/asJava/ultraLightClasses/wildcardOptimization.java new file mode 100644 index 00000000000..856fb9975b2 --- /dev/null +++ b/compiler/testData/asJava/ultraLightClasses/wildcardOptimization.java @@ -0,0 +1,109 @@ +public final class Inv /* Inv*/ { + public Inv();// .ctor() + +} + +public final class Out /* Out*/ { + public Out();// .ctor() + +} + +public final class OutPair /* OutPair*/ { + public OutPair();// .ctor() + +} + +public final class In /* In*/ { + public In();// .ctor() + +} + +public final class Final /* Final*/ { + public Final();// .ctor() + +} + +public class Open /* Open*/ { + public Open();// .ctor() + +} + +public final class Container /* Container*/ { + @org.jetbrains.annotations.NotNull() + public final In notDeepIn();// notDeepIn() + + @org.jetbrains.annotations.NotNull() + public final Inv> skipWildcardsUntilInProjection();// skipWildcardsUntilInProjection() + + @org.jetbrains.annotations.NotNull() + public final Inv>> skipAllInvWildcards();// skipAllInvWildcards() + + @org.jetbrains.annotations.NotNull() + public final Inv>>> skipAllOutInvWildcards();// skipAllOutInvWildcards() + + @org.jetbrains.annotations.NotNull() + public final Out>> skipWildcardsUntilIn0();// skipWildcardsUntilIn0() + + @org.jetbrains.annotations.NotNull() + public final Out>> skipWildcardsUntilIn1();// skipWildcardsUntilIn1() + + @org.jetbrains.annotations.NotNull() + public final Out>>> skipWildcardsUntilIn2();// skipWildcardsUntilIn2() + + public Container();// .ctor() + + public final void typeParameter(@org.jetbrains.annotations.NotNull() Out, @org.jetbrains.annotations.NotNull() In);// typeParameter(Out, In) + + public final void arrayOfOutFinal(@org.jetbrains.annotations.NotNull() Out[]);// arrayOfOutFinal(Out[]) + + public final void arrayOfOutOpen(@org.jetbrains.annotations.NotNull() Out[]);// arrayOfOutOpen(Out[]) + + public final void deepFinal(@org.jetbrains.annotations.NotNull() Out>>);// deepFinal(Out>>) + + public final void deepOpen(@org.jetbrains.annotations.NotNull() Out>>);// deepOpen(Out>>) + + public final void finalClassArgument(@org.jetbrains.annotations.NotNull() Out, @org.jetbrains.annotations.NotNull() In);// finalClassArgument(Out, In) + + public final void inAny(@org.jetbrains.annotations.NotNull() In);// inAny(In) + + public final void inFinal(@org.jetbrains.annotations.NotNull() In);// inFinal(In) + + public final void inOutFinal(@org.jetbrains.annotations.NotNull() In>);// inOutFinal(In>) + + public final void invFinal(@org.jetbrains.annotations.NotNull() Inv);// invFinal(Inv) + + public final void invIn(@org.jetbrains.annotations.NotNull() Out>);// invIn(Out>) + + public final void invInAny(@org.jetbrains.annotations.NotNull() Out>);// invInAny(Out>) + + public final void invInOutFinal(@org.jetbrains.annotations.NotNull() Inv>>);// invInOutFinal(Inv>>) + + public final void invInOutOpen(@org.jetbrains.annotations.NotNull() Inv>>);// invInOutOpen(Inv>>) + + public final void invInv(@org.jetbrains.annotations.NotNull() Out>);// invInv(Out>) + + public final void invOpen(@org.jetbrains.annotations.NotNull() Inv);// invOpen(Inv) + + public final void invOut(@org.jetbrains.annotations.NotNull() Out>);// invOut(Out>) + + public final void invOutFinal(@org.jetbrains.annotations.NotNull() Inv>);// invOutFinal(Inv>) + + public final void invOutFinal(@org.jetbrains.annotations.NotNull() Out>);// invOutFinal(Out>) + + public final void invOutOpen(@org.jetbrains.annotations.NotNull() Inv>);// invOutOpen(Inv>) + + public final void invOutProjectedOutFinal(@org.jetbrains.annotations.NotNull() Inv>);// invOutProjectedOutFinal(Inv>) + + public final void oneArgumentFinal(@org.jetbrains.annotations.NotNull() OutPair);// oneArgumentFinal(OutPair) + + public final void openClassArgument(@org.jetbrains.annotations.NotNull() Out, @org.jetbrains.annotations.NotNull() In);// openClassArgument(Out, In) + + public final void outIn(@org.jetbrains.annotations.NotNull() Out>);// outIn(Out>) + + public final void outInAny(@org.jetbrains.annotations.NotNull() Out>);// outInAny(Out>) + + public final void outOfArrayOpen(@org.jetbrains.annotations.NotNull() Out);// outOfArrayOpen(Out) + + public final void outOfArrayOutOpen(@org.jetbrains.annotations.NotNull() Out);// outOfArrayOutOpen(Out) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/coroutines.java b/compiler/testData/asJava/ultraLightFacades/coroutines.java new file mode 100644 index 00000000000..612af128285 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/coroutines.java @@ -0,0 +1,7 @@ +public final class CoroutinesKt /* CoroutinesKt*/ { + @org.jetbrains.annotations.Nullable() + public static final java.lang.Object doSomething(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() kotlin.coroutines.Continuation);// doSomething(java.lang.String, kotlin.coroutines.Continuation) + + public static final void async(@org.jetbrains.annotations.NotNull() kotlin.jvm.functions.Function1, ? extends java.lang.Object>);// async(kotlin.jvm.functions.Function1, ? extends java.lang.Object>) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/importAliases.java b/compiler/testData/asJava/ultraLightFacades/importAliases.java new file mode 100644 index 00000000000..84691634696 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/importAliases.java @@ -0,0 +1,4 @@ +public final class ImportAliasesKt /* ImportAliasesKt*/ { + public static final void foo();// foo() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/inlineOnly.java b/compiler/testData/asJava/ultraLightFacades/inlineOnly.java new file mode 100644 index 00000000000..f669caab980 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/inlineOnly.java @@ -0,0 +1,5 @@ +public final class InlineOnlyKt /* InlineOnlyKt*/ { + @kotlin.internal.InlineOnly() + private static final void foo();// foo() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/jvmField.java b/compiler/testData/asJava/ultraLightFacades/jvmField.java new file mode 100644 index 00000000000..bbe623141be --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/jvmField.java @@ -0,0 +1,9 @@ +public final class JvmFieldKt /* JvmFieldKt*/ { + @kotlin.jvm.JvmField() + @org.jetbrains.annotations.NotNull() + public static final java.util.Collection a; + + @kotlin.jvm.JvmField() + public static int b; + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/jvmName.java b/compiler/testData/asJava/ultraLightFacades/jvmName.java new file mode 100644 index 00000000000..5a1225e3b85 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/jvmName.java @@ -0,0 +1,27 @@ +public final class JvmNameKt /* JvmNameKt*/ { + @kotlin.jvm.JvmName(name = "fooInt") + public static final void fooInt(@org.jetbrains.annotations.NotNull() java.util.List);// fooInt(java.util.List) + + @kotlin.jvm.JvmName(name = "get_rwProp") + public static final int get_rwProp();// get_rwProp() + + @kotlin.jvm.JvmName(name = "hasBigArity") + public static final boolean hasBigArity();// hasBigArity() + + @kotlin.jvm.JvmName(name = "set_rwProp") + public static final void set_rwProp(int);// set_rwProp(int) + + @kotlin.jvm.JvmName(name = "xyz1") + @org.jetbrains.annotations.NotNull() + public static final java.lang.String xyz1();// xyz1() + + @kotlin.jvm.JvmName(name = "xyz2") + public static final void xyz2(@org.jetbrains.annotations.NotNull() java.lang.String);// xyz2(java.lang.String) + + public static final int getRwProp();// getRwProp() + + public static final void foo(@org.jetbrains.annotations.NotNull() java.util.List);// foo(java.util.List) + + public static final void setRwProp(int);// setRwProp(int) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/jvmWildcardAnnotations.java b/compiler/testData/asJava/ultraLightFacades/jvmWildcardAnnotations.java new file mode 100644 index 00000000000..0eb595209f7 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/jvmWildcardAnnotations.java @@ -0,0 +1,33 @@ +public final class JvmWildcardAnnotationsKt /* JvmWildcardAnnotationsKt*/ { + @kotlin.jvm.JvmSuppressWildcards(suppress = false) + @org.jetbrains.annotations.NotNull() + public static final Out bar();// bar() + + @kotlin.jvm.JvmSuppressWildcards(suppress = false) + public static final int foo(boolean, @org.jetbrains.annotations.NotNull() Out);// foo(boolean, Out) + + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + @org.jetbrains.annotations.NotNull() + public static final In foo3();// foo3() + + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + @org.jetbrains.annotations.NotNull() + public static final Out foo2();// foo2() + + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + public static final int bar(boolean, @org.jetbrains.annotations.NotNull() In, long);// bar(boolean, In, long) + + @kotlin.jvm.JvmSuppressWildcards(suppress = true) + public static final void deepOpen(@org.jetbrains.annotations.NotNull() Out>>);// deepOpen(Out>>) + + @org.jetbrains.annotations.NotNull() + public static final OutPair, Out>> falseTrueFalse();// falseTrueFalse() + + @org.jetbrains.annotations.NotNull() + public static final OutPair>> combination();// combination() + + public static final void simpleIn(@org.jetbrains.annotations.NotNull() In);// simpleIn(In) + + public static final void simpleOut(@org.jetbrains.annotations.NotNull() Out);// simpleOut(Out) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/lateinitProperty.java b/compiler/testData/asJava/ultraLightFacades/lateinitProperty.java new file mode 100644 index 00000000000..772ab9613c8 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/lateinitProperty.java @@ -0,0 +1,28 @@ +public final class LateinitPropertyKt /* LateinitPropertyKt*/ { + private static java.lang.String b; + + protected static java.lang.String c; + + public static java.lang.String a; + + public static java.lang.String d; + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getA();// getA() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getB();// getB() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getC();// getC() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getD();// getD() + + protected static final void setC(@org.jetbrains.annotations.NotNull() java.lang.String);// setC(java.lang.String) + + public static final void setA(@org.jetbrains.annotations.NotNull() java.lang.String);// setA(java.lang.String) + + public static final void setD(@org.jetbrains.annotations.NotNull() java.lang.String);// setD(java.lang.String) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/multifileFacade.java b/compiler/testData/asJava/ultraLightFacades/multifileFacade.java new file mode 100644 index 00000000000..db61ca28918 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/multifileFacade.java @@ -0,0 +1,14 @@ +public final class multifileFacade /* multifileFacade*/ { + public static final int x1 = 42 /* initializer type: int */ /* constant value 42 */; + + public static final int y1 = 42 /* initializer type: int */ /* constant value 42 */; + + public static final int bar();// bar() + + public static final int foo();// foo() + + public static final int getX();// getX() + + public static final int getY();// getY() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.java b/compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.java new file mode 100644 index 00000000000..17d78c68854 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.java @@ -0,0 +1,9 @@ +public final class multifileFacade /* multifileFacade*/ { + public static final int foo();// foo() + +} + +public final class otherMultifileFacade /* otherMultifileFacade*/ { + public static final int bar();// bar() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.kt b/compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.kt index 80ac73702af..b013669ce71 100644 --- a/compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.kt +++ b/compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.kt @@ -1,4 +1,6 @@ @file:JvmMultifileClass @file:JvmName("multifileFacade") -fun foo() = 42 \ No newline at end of file +fun foo() = 42 + +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/properties.java b/compiler/testData/asJava/ultraLightFacades/properties.java new file mode 100644 index 00000000000..8a0493c05e9 --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/properties.java @@ -0,0 +1,175 @@ +public final class PropertiesKt /* PropertiesKt*/ { + @org.jetbrains.annotations.NotNull() + private static final java.lang.Object arrayConst; + + @org.jetbrains.annotations.NotNull() + private static final java.lang.String x; + + @org.jetbrains.annotations.NotNull() + private static final kotlin.jvm.functions.Function1 sum; + + @org.jetbrains.annotations.NotNull() + private static java.lang.String name; + + @org.jetbrains.annotations.NotNull() + private static java.lang.String protectedWithPrivateSet; + + @org.jetbrains.annotations.NotNull() + private static java.lang.String x$1; + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String SUBSYSTEM_DEPRECATED = "This subsystem is deprecated" /* initializer type: java.lang.String */ /* constant value This subsystem is deprecated */; + + @org.jetbrains.annotations.Nullable() + private static java.lang.Boolean isEmptyMutable; + + @org.jetbrains.annotations.Nullable() + private static java.lang.Boolean islowercase; + + @org.jetbrains.annotations.Nullable() + private static java.lang.Integer getInt; + + @org.jetbrains.annotations.Nullable() + private static java.lang.Integer isEmptyInt; + + private static final error.NonExistentClass delegatedProp$delegate; + + private static final error.NonExistentClass delegatedProp2$delegate; + + private static final error.NonExistentClass lazyProp$delegate; + + private static final int f1; + + private static final int plainField; + + private static final int privateVal; + + private static final int privateVar; + + private static final java.lang.Void intConst; + + private static int counter; + + private static int f2; + + private static int int1; + + private static int int2; + + private static int internalWithPrivateSet; + + private static java.lang.String internalVarPrivateSet; + + protected static java.lang.String protectedLateinitVar; + + public static error.NonExistentClass subject; + + @org.jetbrains.annotations.NotNull() + protected static final java.lang.String getProtectedLateinitVar();// getProtectedLateinitVar() + + @org.jetbrains.annotations.NotNull() + protected static final java.lang.String getProtectedWithPrivateSet();// getProtectedWithPrivateSet() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.Object getArrayConst();// getArrayConst() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getDelegatedProp();// getDelegatedProp() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getInternalVarPrivateSet();// getInternalVarPrivateSet() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getLazyProp();// getLazyProp() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getName();// getName() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getStringRepresentation();// getStringRepresentation() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getX();// getX() + + @org.jetbrains.annotations.NotNull() + public static final java.lang.String getX();// getX() + + @org.jetbrains.annotations.NotNull() + public static final kotlin.jvm.functions.Function1 getSum();// getSum() + + @org.jetbrains.annotations.Nullable() + public static final java.lang.Boolean getIslowercase();// getIslowercase() + + @org.jetbrains.annotations.Nullable() + public static final java.lang.Boolean isEmptyMutable();// isEmptyMutable() + + @org.jetbrains.annotations.Nullable() + public static final java.lang.Integer getCounter2();// getCounter2() + + @org.jetbrains.annotations.Nullable() + public static final java.lang.Integer getGetInt();// getGetInt() + + @org.jetbrains.annotations.Nullable() + public static final java.lang.Integer isEmptyInt();// isEmptyInt() + + private static final int privateFun();// privateFun() + + protected static final int getF2();// getF2() + + protected static final int getInt1();// getInt1() + + protected static final void setF2(int);// setF2(int) + + protected static final void setProtectedLateinitVar(@org.jetbrains.annotations.NotNull() java.lang.String);// setProtectedLateinitVar(java.lang.String) + + public static final boolean isEmpty();// isEmpty() + + public static final error.NonExistentClass getDelegatedProp2();// getDelegatedProp2() + + public static final error.NonExistentClass getSubject();// getSubject() + + public static final int getCounter();// getCounter() + + public static final int getF1();// getF1() + + public static final int getInt2();// getInt2() + + public static final int getIntProp(int);// getIntProp(int) + + public static final int getInternalWithPrivateSet();// getInternalWithPrivateSet() + + public static final int getPlainField();// getPlainField() + + public static final int getValue(error.NonExistentClass, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty);// getValue(error.NonExistentClass, kotlin.reflect.KProperty) + + public static final java.lang.Void getIntConst();// getIntConst() + + public static final void setCounter(int);// setCounter(int) + + public static final void setCounter2(@org.jetbrains.annotations.Nullable() java.lang.Integer);// setCounter2(java.lang.Integer) + + public static final void setDelegatedProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setDelegatedProp(java.lang.String) + + public static final void setDelegatedProp2(error.NonExistentClass);// setDelegatedProp2(error.NonExistentClass) + + public static final void setEmptyInt(@org.jetbrains.annotations.Nullable() java.lang.Integer);// setEmptyInt(java.lang.Integer) + + public static final void setEmptyMutable(@org.jetbrains.annotations.Nullable() java.lang.Boolean);// setEmptyMutable(java.lang.Boolean) + + public static final void setGetInt(@org.jetbrains.annotations.Nullable() java.lang.Integer);// setGetInt(java.lang.Integer) + + public static final void setInt2(int);// setInt2(int) + + public static final void setIslowercase(@org.jetbrains.annotations.Nullable() java.lang.Boolean);// setIslowercase(java.lang.Boolean) + + public static final void setLazyProp(@org.jetbrains.annotations.NotNull() java.lang.String);// setLazyProp(java.lang.String) + + public static final void setName(@org.jetbrains.annotations.NotNull() java.lang.String);// setName(java.lang.String) + + public static final void setStringRepresentation(@org.jetbrains.annotations.NotNull() java.lang.String);// setStringRepresentation(java.lang.String) + + public static final void setSubject(error.NonExistentClass);// setSubject(error.NonExistentClass) + + public static final void setValue(error.NonExistentClass, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty, int);// setValue(error.NonExistentClass, kotlin.reflect.KProperty, int) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/simpleFunctions.java b/compiler/testData/asJava/ultraLightFacades/simpleFunctions.java new file mode 100644 index 00000000000..7c785f9434c --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/simpleFunctions.java @@ -0,0 +1,19 @@ +public final class SimpleFunctionsKt /* SimpleFunctionsKt*/ { + @org.jetbrains.annotations.NotNull() + public static final native java.lang.String externalFun(int);// externalFun(int) + + private static final /* vararg */ java.lang.String bar3(error.NonExistentClass, error.NonExistentClass...);// bar3(error.NonExistentClass, error.NonExistentClass[]) + + public static final /* vararg */ void nullableVararg(@org.jetbrains.annotations.Nullable() java.lang.Object...);// nullableVararg(java.lang.Object[]) + + public static final error.NonExistentClass onString(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() kotlin.jvm.functions.Function1);// onString(java.lang.String, kotlin.jvm.functions.Function1) + + public static final error.NonExistentClass plus(int);// plus(int) + + public static final int bar4();// bar4() + + public static final void bar2(error.NonExistentClass, error.NonExistentClass);// bar2(error.NonExistentClass, error.NonExistentClass) + + public static void bar(int, @org.jetbrains.annotations.NotNull() java.lang.Object, error.NonExistentClass);// bar(int, java.lang.Object, error.NonExistentClass) + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/throwsAnnotation.java b/compiler/testData/asJava/ultraLightFacades/throwsAnnotation.java new file mode 100644 index 00000000000..f91a4210efa --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/throwsAnnotation.java @@ -0,0 +1,9 @@ +public final class ThrowsAnnotationKt /* ThrowsAnnotationKt*/ { + @kotlin.jvm.Throws(exceptionClasses = {java.io.IOException::class, MyException::class}) + @org.jetbrains.annotations.NotNull() + public static final java.lang.String readFile(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.io.IOException, MyException;// readFile(java.lang.String) + + @kotlin.jvm.Throws(exceptionClasses = {kotlin.Throwable::class}) + public static final void baz() throws java.lang.Throwable;// baz() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightFacades/wildcardOptimization.java b/compiler/testData/asJava/ultraLightFacades/wildcardOptimization.java new file mode 100644 index 00000000000..cb47ab4a35a --- /dev/null +++ b/compiler/testData/asJava/ultraLightFacades/wildcardOptimization.java @@ -0,0 +1,77 @@ +public final class WildcardOptimizationKt /* WildcardOptimizationKt*/ { + @org.jetbrains.annotations.NotNull() + public static final In notDeepIn();// notDeepIn() + + @org.jetbrains.annotations.NotNull() + public static final Inv> skipWildcardsUntilInProjection();// skipWildcardsUntilInProjection() + + @org.jetbrains.annotations.NotNull() + public static final Inv>> skipAllInvWildcards();// skipAllInvWildcards() + + @org.jetbrains.annotations.NotNull() + public static final Inv>>> skipAllOutInvWildcards();// skipAllOutInvWildcards() + + @org.jetbrains.annotations.NotNull() + public static final Out>> skipWildcardsUntilIn0();// skipWildcardsUntilIn0() + + @org.jetbrains.annotations.NotNull() + public static final Out>> skipWildcardsUntilIn1();// skipWildcardsUntilIn1() + + @org.jetbrains.annotations.NotNull() + public static final Out>>> skipWildcardsUntilIn2();// skipWildcardsUntilIn2() + + public static final void typeParameter(@org.jetbrains.annotations.NotNull() Out, @org.jetbrains.annotations.NotNull() In);// typeParameter(Out, In) + + public static final void arrayOfOutFinal(@org.jetbrains.annotations.NotNull() Out[]);// arrayOfOutFinal(Out[]) + + public static final void arrayOfOutOpen(@org.jetbrains.annotations.NotNull() Out[]);// arrayOfOutOpen(Out[]) + + public static final void deepFinal(@org.jetbrains.annotations.NotNull() Out>>);// deepFinal(Out>>) + + public static final void deepOpen(@org.jetbrains.annotations.NotNull() Out>>);// deepOpen(Out>>) + + public static final void finalClassArgument(@org.jetbrains.annotations.NotNull() Out, @org.jetbrains.annotations.NotNull() In);// finalClassArgument(Out, In) + + public static final void inAny(@org.jetbrains.annotations.NotNull() In);// inAny(In) + + public static final void inFinal(@org.jetbrains.annotations.NotNull() In);// inFinal(In) + + public static final void inOutFinal(@org.jetbrains.annotations.NotNull() In>);// inOutFinal(In>) + + public static final void invFinal(@org.jetbrains.annotations.NotNull() Inv);// invFinal(Inv) + + public static final void invIn(@org.jetbrains.annotations.NotNull() Out>);// invIn(Out>) + + public static final void invInAny(@org.jetbrains.annotations.NotNull() Out>);// invInAny(Out>) + + public static final void invInOutFinal(@org.jetbrains.annotations.NotNull() Inv>>);// invInOutFinal(Inv>>) + + public static final void invInOutOpen(@org.jetbrains.annotations.NotNull() Inv>>);// invInOutOpen(Inv>>) + + public static final void invInv(@org.jetbrains.annotations.NotNull() Out>);// invInv(Out>) + + public static final void invOpen(@org.jetbrains.annotations.NotNull() Inv);// invOpen(Inv) + + public static final void invOut(@org.jetbrains.annotations.NotNull() Out>);// invOut(Out>) + + public static final void invOutFinal(@org.jetbrains.annotations.NotNull() Inv>);// invOutFinal(Inv>) + + public static final void invOutFinal(@org.jetbrains.annotations.NotNull() Out>);// invOutFinal(Out>) + + public static final void invOutOpen(@org.jetbrains.annotations.NotNull() Inv>);// invOutOpen(Inv>) + + public static final void invOutProjectedOutFinal(@org.jetbrains.annotations.NotNull() Inv>);// invOutProjectedOutFinal(Inv>) + + public static final void oneArgumentFinal(@org.jetbrains.annotations.NotNull() OutPair);// oneArgumentFinal(OutPair) + + public static final void openClassArgument(@org.jetbrains.annotations.NotNull() Out, @org.jetbrains.annotations.NotNull() In);// openClassArgument(Out, In) + + public static final void outIn(@org.jetbrains.annotations.NotNull() Out>);// outIn(Out>) + + public static final void outInAny(@org.jetbrains.annotations.NotNull() Out>);// outInAny(Out>) + + public static final void outOfArrayOpen(@org.jetbrains.annotations.NotNull() Out);// outOfArrayOpen(Out) + + public static final void outOfArrayOutOpen(@org.jetbrains.annotations.NotNull() Out);// outOfArrayOutOpen(Out) + +} \ No newline at end of file diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt index cf3b9411d7f..c60d1ab96a6 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt @@ -36,12 +36,12 @@ abstract class AbstractCompilerLightClassTest : KotlinMultiFileTestWithJava findLightClass(allowFrontendExceptions, environment, fqname) }, LightClassTestCommon::removeEmptyDefaultImpls ) + KotlinTestUtils.assertEqualsToFile(expectedFile, actual) } override fun createTestModule( diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/LightClassTestCommon.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/LightClassTestCommon.kt index c8b6202b956..793a18d2fc5 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/LightClassTestCommon.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/LightClassTestCommon.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.asJava import com.intellij.openapi.util.io.FileUtil import com.intellij.psi.PsiClass -import com.intellij.psi.impl.compiled.ClsElementImpl import junit.framework.TestCase import org.jetbrains.kotlin.asJava.PsiClassRenderer.renderClass import org.jetbrains.kotlin.asJava.classes.KtLightClass @@ -19,12 +18,11 @@ object LightClassTestCommon { private val SUBJECT_FQ_NAME_PATTERN = Pattern.compile("^//\\s*(.*)$", Pattern.MULTILINE) private const val NOT_GENERATED_DIRECTIVE = "// NOT_GENERATED" - fun testLightClass( - expectedFile: File, + fun getActualLightClassText( testDataFile: File, findLightClass: (String) -> PsiClass?, normalizeText: (String) -> String, - ) { + ): String { val text = FileUtil.loadFile(testDataFile, true) val matcher = SUBJECT_FQ_NAME_PATTERN.matcher(text) TestCase.assertTrue("No FqName specified. First line of the form '// f.q.Name' expected", matcher.find()) @@ -32,8 +30,7 @@ object LightClassTestCommon { val lightClass = findLightClass(fqName) - val actual = actualText(fqName, lightClass, normalizeText) - KotlinTestUtils.assertEqualsToFile(expectedFile, actual) + return actualText(fqName, lightClass, normalizeText) } private fun actualText(fqName: String?, lightClass: PsiClass?, normalizeText: (String) -> String): String { diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 4ad91838165..6b04d526dc7 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -17,10 +17,7 @@ import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidBoxTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidBytecodeShapeTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidIrBoxTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidSyntheticPropertyDescriptorTest -import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightClassLoadingTest -import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightClassSanityTest -import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightFacadeClassTest -import org.jetbrains.kotlin.asJava.classes.AbstractUltraLightScriptLoadingTest +import org.jetbrains.kotlin.asJava.classes.* import org.jetbrains.kotlin.checkers.* import org.jetbrains.kotlin.copyright.AbstractUpdateKotlinCopyrightTest import org.jetbrains.kotlin.findUsages.* @@ -1222,6 +1219,20 @@ fun main(args: Array) { } } + testGroup("idea/idea-fir/tests", "compiler/testData") { + testClass { + model("asJava/lightClasses", excludeDirs = listOf("delegation", "script"), pattern = KT_WITHOUT_DOTS_IN_NAME) + } + + testClass { + model("asJava/ultraLightClasses", pattern = KT_OR_KTS) + } + + testClass { + model("asJava/ultraLightFacades", pattern = KT_OR_KTS) + } + } + testGroup("idea/idea-completion/tests", "idea/idea-completion/testData") { testClass { model("injava", extension = "java", recursive = false) diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirClassLoadingTest.kt b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirClassLoadingTest.kt new file mode 100644 index 00000000000..7cc888354e2 --- /dev/null +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirClassLoadingTest.kt @@ -0,0 +1,46 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.asJava.classes + +import com.intellij.openapi.application.ApplicationManager +import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport +import org.jetbrains.kotlin.doTestWithFIRFlagsByPath +import org.jetbrains.kotlin.executeOnPooledThreadInReadAction +import org.jetbrains.kotlin.idea.debugger.readAction +import org.jetbrains.kotlin.idea.perf.UltraLightChecker +import org.jetbrains.kotlin.idea.perf.UltraLightChecker.checkByJavaFile +import org.jetbrains.kotlin.idea.perf.UltraLightChecker.getJavaFileForTest +import org.jetbrains.kotlin.idea.perf.UltraLightChecker.renderLightClasses +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.test.KotlinTestUtils +import java.io.File + +abstract class AbstractFirClassLoadingTest : AbstractUltraLightClassLoadingTest() { + + override fun isFirPlugin(): Boolean = true + + override fun doTest(testDataPath: String) = doTestWithFIRFlagsByPath(testDataPath) { + doTestImpl(testDataPath) + } + + private fun doTestImpl(testDataPath: String) { + + val testDataFile = File(testDataPath) + val sourceText = testDataFile.readText() + val file = myFixture.addFileToProject(testDataPath, sourceText) as KtFile + + val classFabric = KotlinAsJavaSupport.getInstance(project) + + val expectedTextFile = getJavaFileForTest(testDataPath) + + val renderedClasses = executeOnPooledThreadInReadAction { + val lightClasses = UltraLightChecker.allClasses(file).mapNotNull { classFabric.getLightClass(it) } + renderLightClasses(testDataPath, lightClasses) + }!! + + KotlinTestUtils.assertEqualsToFile(expectedTextFile, renderedClasses) + } +} diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightClassTest.kt b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightClassTest.kt new file mode 100644 index 00000000000..3555abe7814 --- /dev/null +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightClassTest.kt @@ -0,0 +1,64 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.asJava.classes + +import org.jetbrains.kotlin.asJava.LightClassTestCommon +import org.jetbrains.kotlin.doTestWithFIRFlagsByPath +import org.jetbrains.kotlin.executeOnPooledThreadInReadAction +import org.jetbrains.kotlin.idea.caches.resolve.PsiElementChecker +import org.jetbrains.kotlin.idea.caches.resolve.findClass +import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager +import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase +import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.test.KotlinTestUtils +import java.io.File + +abstract class AbstractFirLightClassTest : KotlinLightCodeInsightFixtureTestCase() { + + override fun isFirPlugin(): Boolean = true + + fun doTest(path: String) = doTestWithFIRFlagsByPath(path) { + doTestImpl() + } + + private fun doTestImpl() { + val fileName = fileName() + val extraFilePath = when { + fileName.endsWith(fileExtension) -> fileName.replace(fileExtension, ".extra" + fileExtension) + else -> error("Invalid test data extension") + } + + val testFiles = if (File(testDataPath, extraFilePath).isFile) listOf(fileName, extraFilePath) else listOf(fileName) + + myFixture.configureByFiles(*testFiles.toTypedArray()) + if ((myFixture.file as? KtFile)?.isScript() == true) { + error { "FIR for scripts does not supported yet" } + ScriptConfigurationManager.updateScriptDependenciesSynchronously(myFixture.file) + } + + val ktFile = myFixture.file as KtFile + val testData = testDataFile() + + val actual = executeOnPooledThreadInReadAction { + LightClassTestCommon.getActualLightClassText( + testData, + { fqName -> + findClass(fqName, ktFile, project)?.apply { + PsiElementChecker.checkPsiElementStructure(this) + } + }, + { it } + ) + }!! + + KotlinTestUtils.assertEqualsToFile(KotlinTestUtils.replaceExtension(testData, "java"), actual) + } + + override fun getProjectDescriptor() = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE + + open val fileExtension = ".kt" +} \ No newline at end of file diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightFacadeClassTest.kt b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightFacadeClassTest.kt new file mode 100644 index 00000000000..7844c1322d5 --- /dev/null +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/AbstractFirLightFacadeClassTest.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.asJava.classes + +import com.intellij.psi.search.GlobalSearchScope +import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport +import org.jetbrains.kotlin.doTestWithFIRFlagsByPath +import org.jetbrains.kotlin.executeOnPooledThreadInReadAction +import org.jetbrains.kotlin.idea.perf.UltraLightChecker +import org.jetbrains.kotlin.idea.perf.UltraLightChecker.checkByJavaFile +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.test.KotlinTestUtils + +abstract class AbstractFirLightFacadeClassTest : AbstractUltraLightFacadeClassTest() { + + override fun isFirPlugin(): Boolean = true + + override fun doTest(testDataPath: String) = doTestWithFIRFlagsByPath(testDataPath) { + super.doTest(testDataPath) + } + + override fun checkLightFacades(testDataPath: String, facades: Collection, scope: GlobalSearchScope) { + + val expectedTextFile = UltraLightChecker.getJavaFileForTest(testDataPath) + + val classFabric = KotlinAsJavaSupport.getInstance(project) + + val renderedResult = executeOnPooledThreadInReadAction { + val lightClasses = facades.flatMap { + classFabric.getFacadeClasses(FqName(it), scope) + }.filterIsInstance() + UltraLightChecker.renderLightClasses(testDataPath, lightClasses) + }!! + + KotlinTestUtils.assertEqualsToFile(expectedTextFile, renderedResult) + } +} diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java new file mode 100644 index 00000000000..e3396f98fbb --- /dev/null +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java @@ -0,0 +1,195 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.asJava.classes; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/testData/asJava/ultraLightClasses") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class FirClassLoadingTestGenerated extends AbstractFirClassLoadingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInUltraLightClasses() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/ultraLightClasses"), Pattern.compile("^(.+)\\.(kt|kts)$"), null, true); + } + + @TestMetadata("annotationWithSetParamPropertyModifier.kt") + public void testAnnotationWithSetParamPropertyModifier() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/annotationWithSetParamPropertyModifier.kt"); + } + + @TestMetadata("annotations.kt") + public void testAnnotations() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/annotations.kt"); + } + + @TestMetadata("classModifiers.kt") + public void testClassModifiers() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/classModifiers.kt"); + } + + @TestMetadata("constructors.kt") + public void testConstructors() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/constructors.kt"); + } + + @TestMetadata("coroutines.kt") + public void testCoroutines() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/coroutines.kt"); + } + + @TestMetadata("dataClasses.kt") + public void testDataClasses() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/dataClasses.kt"); + } + + @TestMetadata("delegatesWithAnnotations.kt") + public void testDelegatesWithAnnotations() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/delegatesWithAnnotations.kt"); + } + + @TestMetadata("delegatingToInterfaces.kt") + public void testDelegatingToInterfaces() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/delegatingToInterfaces.kt"); + } + + @TestMetadata("dollarsInNameLocal.kt") + public void testDollarsInNameLocal() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/dollarsInNameLocal.kt"); + } + + @TestMetadata("enums.kt") + public void testEnums() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/enums.kt"); + } + + @TestMetadata("generics.kt") + public void testGenerics() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/generics.kt"); + } + + @TestMetadata("implementingKotlinCollections.kt") + public void testImplementingKotlinCollections() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.kt"); + } + + @TestMetadata("importAliases.kt") + public void testImportAliases() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/importAliases.kt"); + } + + @TestMetadata("inferringAnonymousObjectTypes.kt") + public void testInferringAnonymousObjectTypes() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.kt"); + } + + @TestMetadata("inheritance.kt") + public void testInheritance() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/inheritance.kt"); + } + + @TestMetadata("inlineClasses.kt") + public void testInlineClasses() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/inlineClasses.kt"); + } + + @TestMetadata("inlineOnly.kt") + public void testInlineOnly() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/inlineOnly.kt"); + } + + @TestMetadata("inlineReified.kt") + public void testInlineReified() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/inlineReified.kt"); + } + + @TestMetadata("jvmField.kt") + public void testJvmField() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/jvmField.kt"); + } + + @TestMetadata("jvmName.kt") + public void testJvmName() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/jvmName.kt"); + } + + @TestMetadata("jvmOverloads.kt") + public void testJvmOverloads() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/jvmOverloads.kt"); + } + + @TestMetadata("jvmSynthetic.kt") + public void testJvmSynthetic() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/jvmSynthetic.kt"); + } + + @TestMetadata("jvmSyntheticForAccessors.kt") + public void testJvmSyntheticForAccessors() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/jvmSyntheticForAccessors.kt"); + } + + @TestMetadata("jvmWildcardAnnotations.kt") + public void testJvmWildcardAnnotations() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/jvmWildcardAnnotations.kt"); + } + + @TestMetadata("lateinitProperty.kt") + public void testLateinitProperty() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/lateinitProperty.kt"); + } + + @TestMetadata("localClassDerived.kt") + public void testLocalClassDerived() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/localClassDerived.kt"); + } + + @TestMetadata("objects.kt") + public void testObjects() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/objects.kt"); + } + + @TestMetadata("properties.kt") + public void testProperties() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/properties.kt"); + } + + @TestMetadata("simpleFunctions.kt") + public void testSimpleFunctions() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/simpleFunctions.kt"); + } + + @TestMetadata("throwsAnnotation.kt") + public void testThrowsAnnotation() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/throwsAnnotation.kt"); + } + + @TestMetadata("typeAliases.kt") + public void testTypeAliases() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/typeAliases.kt"); + } + + @TestMetadata("typeAnnotations.kt") + public void testTypeAnnotations() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/typeAnnotations.kt"); + } + + @TestMetadata("wildcardOptimization.kt") + public void testWildcardOptimization() throws Exception { + runTest("compiler/testData/asJava/ultraLightClasses/wildcardOptimization.kt"); + } +} diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java new file mode 100644 index 00000000000..9281c68683a --- /dev/null +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java @@ -0,0 +1,493 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.asJava.classes; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/testData/asJava/lightClasses") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class FirLightClassTestGenerated extends AbstractFirLightClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInLightClasses() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses"), Pattern.compile("^([^.]+)\\.kt$"), null, true, "delegation", "script"); + } + + @TestMetadata("AnnotatedParameterInEnumConstructor.kt") + public void testAnnotatedParameterInEnumConstructor() throws Exception { + runTest("compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.kt"); + } + + @TestMetadata("AnnotatedParameterInInnerClassConstructor.kt") + public void testAnnotatedParameterInInnerClassConstructor() throws Exception { + runTest("compiler/testData/asJava/lightClasses/AnnotatedParameterInInnerClassConstructor.kt"); + } + + @TestMetadata("AnnotatedPropertyWithSites.kt") + public void testAnnotatedPropertyWithSites() throws Exception { + runTest("compiler/testData/asJava/lightClasses/AnnotatedPropertyWithSites.kt"); + } + + @TestMetadata("AnnotationClass.kt") + public void testAnnotationClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/AnnotationClass.kt"); + } + + @TestMetadata("DataClassWithCustomImplementedMembers.kt") + public void testDataClassWithCustomImplementedMembers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt"); + } + + @TestMetadata("DelegatedNested.kt") + public void testDelegatedNested() throws Exception { + runTest("compiler/testData/asJava/lightClasses/DelegatedNested.kt"); + } + + @TestMetadata("Delegation.kt") + public void testDelegation() throws Exception { + runTest("compiler/testData/asJava/lightClasses/Delegation.kt"); + } + + @TestMetadata("DeprecatedEnumEntry.kt") + public void testDeprecatedEnumEntry() throws Exception { + runTest("compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.kt"); + } + + @TestMetadata("DeprecatedNotHiddenInClass.kt") + public void testDeprecatedNotHiddenInClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt"); + } + + @TestMetadata("DollarsInName.kt") + public void testDollarsInName() throws Exception { + runTest("compiler/testData/asJava/lightClasses/DollarsInName.kt"); + } + + @TestMetadata("DollarsInNameNoPackage.kt") + public void testDollarsInNameNoPackage() throws Exception { + runTest("compiler/testData/asJava/lightClasses/DollarsInNameNoPackage.kt"); + } + + @TestMetadata("ExtendingInterfaceWithDefaultImpls.kt") + public void testExtendingInterfaceWithDefaultImpls() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ExtendingInterfaceWithDefaultImpls.kt"); + } + + @TestMetadata("HiddenDeprecated.kt") + public void testHiddenDeprecated() throws Exception { + runTest("compiler/testData/asJava/lightClasses/HiddenDeprecated.kt"); + } + + @TestMetadata("HiddenDeprecatedInClass.kt") + public void testHiddenDeprecatedInClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt"); + } + + @TestMetadata("InheritingInterfaceDefaultImpls.kt") + public void testInheritingInterfaceDefaultImpls() throws Exception { + runTest("compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt"); + } + + @TestMetadata("InlineReified.kt") + public void testInlineReified() throws Exception { + runTest("compiler/testData/asJava/lightClasses/InlineReified.kt"); + } + + @TestMetadata("JvmNameOnMember.kt") + public void testJvmNameOnMember() throws Exception { + runTest("compiler/testData/asJava/lightClasses/JvmNameOnMember.kt"); + } + + @TestMetadata("JvmStatic.kt") + public void testJvmStatic() throws Exception { + runTest("compiler/testData/asJava/lightClasses/JvmStatic.kt"); + } + + @TestMetadata("NestedObjects.kt") + public void testNestedObjects() throws Exception { + runTest("compiler/testData/asJava/lightClasses/NestedObjects.kt"); + } + + @TestMetadata("NonDataClassWithComponentFunctions.kt") + public void testNonDataClassWithComponentFunctions() throws Exception { + runTest("compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt"); + } + + @TestMetadata("PublishedApi.kt") + public void testPublishedApi() throws Exception { + runTest("compiler/testData/asJava/lightClasses/PublishedApi.kt"); + } + + @TestMetadata("SpecialAnnotationsOnAnnotationClass.kt") + public void testSpecialAnnotationsOnAnnotationClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt"); + } + + @TestMetadata("StubOrderForOverloads.kt") + public void testStubOrderForOverloads() throws Exception { + runTest("compiler/testData/asJava/lightClasses/StubOrderForOverloads.kt"); + } + + @TestMetadata("TypePararametersInClass.kt") + public void testTypePararametersInClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/TypePararametersInClass.kt"); + } + + @TestMetadata("VarArgs.kt") + public void testVarArgs() throws Exception { + runTest("compiler/testData/asJava/lightClasses/VarArgs.kt"); + } + + @TestMetadata("compiler/testData/asJava/lightClasses/compilationErrors") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class CompilationErrors extends AbstractFirLightClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + @TestMetadata("ActualClass.kt") + public void testActualClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/ActualClass.kt"); + } + + @TestMetadata("ActualTypeAlias.kt") + public void testActualTypeAlias() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAlias.kt"); + } + + @TestMetadata("ActualTypeAliasCustomJvmPackageName.kt") + public void testActualTypeAliasCustomJvmPackageName() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/ActualTypeAliasCustomJvmPackageName.kt"); + } + + public void testAllFilesPresentInCompilationErrors() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/compilationErrors"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("AllInlineOnly.kt") + public void testAllInlineOnly() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/AllInlineOnly.kt"); + } + + @TestMetadata("AnnotationModifiers.kt") + public void testAnnotationModifiers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/AnnotationModifiers.kt"); + } + + @TestMetadata("EnumNameOverride.kt") + public void testEnumNameOverride() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.kt"); + } + + @TestMetadata("ExpectClass.kt") + public void testExpectClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/ExpectClass.kt"); + } + + @TestMetadata("ExpectObject.kt") + public void testExpectObject() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/ExpectObject.kt"); + } + + @TestMetadata("ExpectedNestedClass.kt") + public void testExpectedNestedClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClass.kt"); + } + + @TestMetadata("ExpectedNestedClassInObject.kt") + public void testExpectedNestedClassInObject() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/ExpectedNestedClassInObject.kt"); + } + + @TestMetadata("JvmPackageName.kt") + public void testJvmPackageName() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/JvmPackageName.kt"); + } + + @TestMetadata("LocalInAnnotation.kt") + public void testLocalInAnnotation() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/LocalInAnnotation.kt"); + } + + @TestMetadata("PrivateInTrait.kt") + public void testPrivateInTrait() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/PrivateInTrait.kt"); + } + + @TestMetadata("RepetableAnnotations.kt") + public void testRepetableAnnotations() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/RepetableAnnotations.kt"); + } + + @TestMetadata("SameName.kt") + public void testSameName() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/SameName.kt"); + } + + @TestMetadata("TopLevelDestructuring.kt") + public void testTopLevelDestructuring() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/TopLevelDestructuring.kt"); + } + + @TestMetadata("TraitClassObjectField.kt") + public void testTraitClassObjectField() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/TraitClassObjectField.kt"); + } + + @TestMetadata("TwoOverrides.kt") + public void testTwoOverrides() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/TwoOverrides.kt"); + } + + @TestMetadata("WrongAnnotations.kt") + public void testWrongAnnotations() throws Exception { + runTest("compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt"); + } + } + + @TestMetadata("compiler/testData/asJava/lightClasses/facades") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Facades extends AbstractFirLightClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInFacades() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/facades"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("AllPrivate.kt") + public void testAllPrivate() throws Exception { + runTest("compiler/testData/asJava/lightClasses/facades/AllPrivate.kt"); + } + + @TestMetadata("MultiFile.kt") + public void testMultiFile() throws Exception { + runTest("compiler/testData/asJava/lightClasses/facades/MultiFile.kt"); + } + + @TestMetadata("SingleFile.kt") + public void testSingleFile() throws Exception { + runTest("compiler/testData/asJava/lightClasses/facades/SingleFile.kt"); + } + + @TestMetadata("SingleJvmClassName.kt") + public void testSingleJvmClassName() throws Exception { + runTest("compiler/testData/asJava/lightClasses/facades/SingleJvmClassName.kt"); + } + } + + @TestMetadata("compiler/testData/asJava/lightClasses/ideRegression") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class IdeRegression extends AbstractFirLightClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInIdeRegression() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/ideRegression"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("AllOpenAnnotatedClasses.kt") + public void testAllOpenAnnotatedClasses() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/AllOpenAnnotatedClasses.kt"); + } + + @TestMetadata("ImplementingCharSequenceAndNumber.kt") + public void testImplementingCharSequenceAndNumber() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/ImplementingCharSequenceAndNumber.kt"); + } + + @TestMetadata("ImplementingMap.kt") + public void testImplementingMap() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/ImplementingMap.kt"); + } + + @TestMetadata("ImplementingMutableSet.kt") + public void testImplementingMutableSet() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/ImplementingMutableSet.kt"); + } + + @TestMetadata("InheritingInterfaceDefaultImpls.kt") + public void testInheritingInterfaceDefaultImpls() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/InheritingInterfaceDefaultImpls.kt"); + } + + @TestMetadata("OverridingFinalInternal.kt") + public void testOverridingFinalInternal() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/OverridingFinalInternal.kt"); + } + + @TestMetadata("OverridingInternal.kt") + public void testOverridingInternal() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/OverridingInternal.kt"); + } + + @TestMetadata("OverridingProtected.kt") + public void testOverridingProtected() throws Exception { + runTest("compiler/testData/asJava/lightClasses/ideRegression/OverridingProtected.kt"); + } + } + + @TestMetadata("compiler/testData/asJava/lightClasses/nullabilityAnnotations") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class NullabilityAnnotations extends AbstractFirLightClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInNullabilityAnnotations() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/nullabilityAnnotations"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("Class.kt") + public void testClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/Class.kt"); + } + + @TestMetadata("ClassObjectField.kt") + public void testClassObjectField() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.kt"); + } + + @TestMetadata("ClassWithConstructor.kt") + public void testClassWithConstructor() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.kt"); + } + + @TestMetadata("ClassWithConstructorAndProperties.kt") + public void testClassWithConstructorAndProperties() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructorAndProperties.kt"); + } + + @TestMetadata("FileFacade.kt") + public void testFileFacade() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/FileFacade.kt"); + } + + @TestMetadata("Generic.kt") + public void testGeneric() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/Generic.kt"); + } + + @TestMetadata("IntOverridesAny.kt") + public void testIntOverridesAny() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/IntOverridesAny.kt"); + } + + @TestMetadata("JvmOverloads.kt") + public void testJvmOverloads() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/JvmOverloads.kt"); + } + + @TestMetadata("NullableUnitReturn.kt") + public void testNullableUnitReturn() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/NullableUnitReturn.kt"); + } + + @TestMetadata("OverrideAnyWithUnit.kt") + public void testOverrideAnyWithUnit() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.kt"); + } + + @TestMetadata("PlatformTypes.kt") + public void testPlatformTypes() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/PlatformTypes.kt"); + } + + @TestMetadata("Primitives.kt") + public void testPrimitives() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/Primitives.kt"); + } + + @TestMetadata("PrivateInClass.kt") + public void testPrivateInClass() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/PrivateInClass.kt"); + } + + @TestMetadata("Synthetic.kt") + public void testSynthetic() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.kt"); + } + + @TestMetadata("Trait.kt") + public void testTrait() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/Trait.kt"); + } + + @TestMetadata("UnitAsGenericArgument.kt") + public void testUnitAsGenericArgument() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.kt"); + } + + @TestMetadata("UnitParameter.kt") + public void testUnitParameter() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitParameter.kt"); + } + + @TestMetadata("VoidReturn.kt") + public void testVoidReturn() throws Exception { + runTest("compiler/testData/asJava/lightClasses/nullabilityAnnotations/VoidReturn.kt"); + } + } + + @TestMetadata("compiler/testData/asJava/lightClasses/object") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Object extends AbstractFirLightClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInObject() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/object"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("SimpleObject.kt") + public void testSimpleObject() throws Exception { + runTest("compiler/testData/asJava/lightClasses/object/SimpleObject.kt"); + } + } + + @TestMetadata("compiler/testData/asJava/lightClasses/publicField") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class PublicField extends AbstractFirLightClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInPublicField() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/publicField"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("CompanionObject.kt") + public void testCompanionObject() throws Exception { + runTest("compiler/testData/asJava/lightClasses/publicField/CompanionObject.kt"); + } + + @TestMetadata("Simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/asJava/lightClasses/publicField/Simple.kt"); + } + } +} diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java new file mode 100644 index 00000000000..c35f7fcfdae --- /dev/null +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java @@ -0,0 +1,95 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.asJava.classes; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/testData/asJava/ultraLightFacades") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class FirLightFacadeClassTestGenerated extends AbstractFirLightFacadeClassTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInUltraLightFacades() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/ultraLightFacades"), Pattern.compile("^(.+)\\.(kt|kts)$"), null, true); + } + + @TestMetadata("coroutines.kt") + public void testCoroutines() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/coroutines.kt"); + } + + @TestMetadata("importAliases.kt") + public void testImportAliases() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/importAliases.kt"); + } + + @TestMetadata("inlineOnly.kt") + public void testInlineOnly() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/inlineOnly.kt"); + } + + @TestMetadata("jvmField.kt") + public void testJvmField() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/jvmField.kt"); + } + + @TestMetadata("jvmName.kt") + public void testJvmName() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/jvmName.kt"); + } + + @TestMetadata("jvmWildcardAnnotations.kt") + public void testJvmWildcardAnnotations() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/jvmWildcardAnnotations.kt"); + } + + @TestMetadata("lateinitProperty.kt") + public void testLateinitProperty() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/lateinitProperty.kt"); + } + + @TestMetadata("multifileFacade.kt") + public void testMultifileFacade() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/multifileFacade.kt"); + } + + @TestMetadata("multifileFacadeJvmName.kt") + public void testMultifileFacadeJvmName() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/multifileFacadeJvmName.kt"); + } + + @TestMetadata("properties.kt") + public void testProperties() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/properties.kt"); + } + + @TestMetadata("simpleFunctions.kt") + public void testSimpleFunctions() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/simpleFunctions.kt"); + } + + @TestMetadata("throwsAnnotation.kt") + public void testThrowsAnnotation() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/throwsAnnotation.kt"); + } + + @TestMetadata("wildcardOptimization.kt") + public void testWildcardOptimization() throws Exception { + runTest("compiler/testData/asJava/ultraLightFacades/wildcardOptimization.kt"); + } +} diff --git a/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java index d89e818ee2a..927140ac794 100644 --- a/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java +++ b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java @@ -1,6 +1,7 @@ // PSI_ELEMENT: com.intellij.psi.PsiField // OPTIONS: skipWrite -// FIR_COMPARISON public class A { public String foo = "foo"; -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java index a6da9c48dc8..e1b882c3f80 100644 --- a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java +++ b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java @@ -1,6 +1,5 @@ // PSI_ELEMENT: com.intellij.psi.PsiMethod // OPTIONS: usages -// FIR_COMPARISON class A { public void foo() { @@ -12,4 +11,6 @@ class B extends A { public void foo() { } -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/MismatchedAccessor.0.java b/idea/testData/findUsages/java/findJavaMethodUsages/MismatchedAccessor.0.java index 2c2f6326307..2ff53d9e8e8 100644 --- a/idea/testData/findUsages/java/findJavaMethodUsages/MismatchedAccessor.0.java +++ b/idea/testData/findUsages/java/findJavaMethodUsages/MismatchedAccessor.0.java @@ -1,6 +1,5 @@ // PSI_ELEMENT: com.intellij.psi.PsiMethod // OPTIONS: usages -// FIR_COMPARISON public class Bar { public String getValue() { return "value"; @@ -9,4 +8,6 @@ public class Bar { public String getValue(String param) { return "value " + param; } -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertyGetterUsagesKJ.0.java b/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertyGetterUsagesKJ.0.java index 87201287485..09b647ad9b8 100644 --- a/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertyGetterUsagesKJ.0.java +++ b/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertyGetterUsagesKJ.0.java @@ -26,4 +26,6 @@ class Test { new B().getP(); new B().setP(1); } -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertySetterUsagesKJ.0.java b/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertySetterUsagesKJ.0.java index 7307ae62079..5f54edd6c88 100644 --- a/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertySetterUsagesKJ.0.java +++ b/idea/testData/findUsages/java/findJavaPropertyUsages/javaPropertySetterUsagesKJ.0.java @@ -26,4 +26,6 @@ class Test { new B().getP(); new B().setP(1); } -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/SAM.0.kt b/idea/testData/findUsages/kotlin/conventions/components/SAM.0.kt index 7eee200da89..914807914bc 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/SAM.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/SAM.0.kt @@ -1,7 +1,8 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE package pack -data class A(val a: Int, val b: String) \ No newline at end of file +data class A(val a: Int, val b: String) + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/callableReferences.0.kt b/idea/testData/findUsages/kotlin/conventions/components/callableReferences.0.kt index e982ddead74..cc89e6ad4d8 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/callableReferences.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/callableReferences.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE data class A(val a: Int, val b: Int) { fun f() {} @@ -24,4 +23,6 @@ fun foo(x: X) { val (a3, b3) = constructor(1, 2) val (a4, b4) = A::class.java.newInstance() -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/callableReferences.results.txt b/idea/testData/findUsages/kotlin/conventions/components/callableReferences.results.txt index 914d590b78e..a8748d1b0c6 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/callableReferences.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/callableReferences.results.txt @@ -1,4 +1,4 @@ -Value read 20 val (a1, b1) = fun2() -Value read 21 val (a2, b2) = fun3() -Value read 24 val (a3, b3) = constructor(1, 2) -Value read 26 val (a4, b4) = A::class.java.newInstance() \ No newline at end of file +Value read 19 val (a1, b1) = fun2() +Value read 20 val (a2, b2) = fun3() +Value read 23 val (a3, b3) = constructor(1, 2) +Value read 25 val (a4, b4) = A::class.java.newInstance() \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/companionObjectAccess.0.kt b/idea/testData/findUsages/kotlin/conventions/components/companionObjectAccess.0.kt index 3d634c2e6f3..8599b1feb0b 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/companionObjectAccess.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/companionObjectAccess.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_COMPARISON data class A(val x: Int, val y: Int) { companion object { @@ -14,4 +13,5 @@ fun foo() { val (x, y) = A.b() } -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt b/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt index 6119cc3c610..34ddea020b2 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClass.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE package pack @@ -27,3 +26,5 @@ fun List.ext1() { } fun T.getThis(): T = this + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt b/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt index 6b33de76b75..e341678cd0f 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClass.results.txt @@ -1,5 +1,5 @@ -[dataClass.0.kt] Value read 18 val (x, y) = getThis() -[dataClass.0.kt] Value read 26 val (x, y) = get(0) +[dataClass.0.kt] Value read 17 val (x, y) = getThis() +[dataClass.0.kt] Value read 25 val (x, y) = get(0) [dataClass.1.kt] Function call 6 a.component1() [dataClass.1.kt] Value read 10 val (x2, y2, z2) = g() [dataClass.1.kt] Value read 11 val (x3, y3, z3) = h() diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.0.kt b/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.0.kt index 648738f6ed5..5bcfa5b097f 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.0.kt @@ -1,7 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages // FIND_BY_REF -// FIR_IGNORE data class A(val n: Int, val s: String, val o: Any) @@ -11,3 +10,5 @@ fun test() { a.component1() val (x, y, z) = a } + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.DisabledComponents.results.txt b/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.DisabledComponents.results.txt index 6cc2333674b..d357ddd40e6 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.DisabledComponents.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.DisabledComponents.results.txt @@ -1 +1 @@ -Value read 10 a.n \ No newline at end of file +Value read 9 a.n \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.results.txt b/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.results.txt index 4e7b8e03693..4c5e0fc1500 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClassComponentByRef.results.txt @@ -1,3 +1,3 @@ -Function call 11 a.component1() -Value read 10 a.n -Value read 12 val (x, y, z) = a \ No newline at end of file +Function call 10 a.component1() +Value read 11 val (x, y, z) = a +Value read 9 a.n \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.0.kt b/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.0.kt index c8ffe57b030..67d362e9c9a 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE data class A(val x: Int, val y: Int, val z: String) data class B(val a: A, val n: Int) @@ -16,4 +15,6 @@ fun f(b: B, c: C) { val (a1, n1) = c val (x1, y1, z1) = a1 -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.DisabledComponents.results.txt b/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.DisabledComponents.results.txt index 4b7f75086cf..1a4cac1ec64 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.DisabledComponents.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.DisabledComponents.results.txt @@ -1 +1 @@ -Value read 15 val (x, y, z) = a \ No newline at end of file +Value read 14 val (x, y, z) = a \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.results.txt b/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.results.txt index 5914ef3eb03..cf1e5766db6 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/dataClassInsideDataClass.results.txt @@ -1,2 +1,2 @@ -Value read 15 val (x, y, z) = a -Value read 18 val (x1, y1, z1) = a1 \ No newline at end of file +Value read 14 val (x, y, z) = a +Value read 17 val (x1, y1, z1) = a1 \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/for.0.kt b/idea/testData/findUsages/kotlin/conventions/components/for.0.kt index b3fd3d9c14f..2c900bc6e47 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/for.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/for.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE data class A(val n: Int, val s: String, val o: Any) { @@ -12,3 +11,5 @@ fun test() { val (x, y) = a } } + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/for.results.txt b/idea/testData/findUsages/kotlin/conventions/components/for.results.txt index a5135ac314e..724ac623714 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/for.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/for.results.txt @@ -1,2 +1,2 @@ -Value read 12 val (x, y) = a -Value read 8 for ((x, y, z) in arrayOf()) { \ No newline at end of file +Value read 11 val (x, y) = a +Value read 7 for ((x, y, z) in arrayOf()) { \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/isAndAs.0.kt b/idea/testData/findUsages/kotlin/conventions/components/isAndAs.0.kt index 9009348a28a..00bc5348a35 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/isAndAs.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/isAndAs.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE data class A(val x: Int, val y: Int) @@ -15,4 +14,5 @@ fun y(o: Any) { val list = o as List val (x, y) = list[0] } -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/isAndAs.DisabledComponents.results.txt b/idea/testData/findUsages/kotlin/conventions/components/isAndAs.DisabledComponents.results.txt index 69570935fcc..2265fbf60c6 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/isAndAs.DisabledComponents.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/isAndAs.DisabledComponents.results.txt @@ -1,2 +1,2 @@ -Value read 16 val (x, y) = list[0] -Value read 9 val (x, y) = o \ No newline at end of file +Value read 15 val (x, y) = list[0] +Value read 8 val (x, y) = o \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/isAndAs.results.txt b/idea/testData/findUsages/kotlin/conventions/components/isAndAs.results.txt index 4ec53e72927..1915a5a9715 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/isAndAs.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/isAndAs.results.txt @@ -1,3 +1,3 @@ -Value read 10 val (x1, y1) = A(1, "", "") -Value read 16 val (x, y) = list[0] -Value read 9 val (x, y) = o \ No newline at end of file +Value read 15 val (x, y) = list[0] +Value read 8 val (x, y) = o +Value read 9 val (x1, y1) = A(1, "", "") \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/lambdas.0.kt b/idea/testData/findUsages/kotlin/conventions/components/lambdas.0.kt index 3ca4332cb18..4c2670fade5 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/lambdas.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/lambdas.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE data class A(val a: Int, val b: Int) @@ -39,4 +38,6 @@ var Any.v: (A) -> Unit fun f() { "".v = { val (x, y ) = it } -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/lambdas.DisabledComponents.results.txt b/idea/testData/findUsages/kotlin/conventions/components/lambdas.DisabledComponents.results.txt index 480c0684b09..c828eaff1ca 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/lambdas.DisabledComponents.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/lambdas.DisabledComponents.results.txt @@ -1 +1 @@ -Value read 29 takeFun2 { a, n -> val (x, y) = a!! } \ No newline at end of file +Value read 28 takeFun2 { a, n -> val (x, y) = a!! } \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/lambdas.results.txt b/idea/testData/findUsages/kotlin/conventions/components/lambdas.results.txt index e2a46fa1bcf..727ae9b3a12 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/lambdas.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/lambdas.results.txt @@ -1,8 +1,8 @@ -Value read 20 p[0] = { val (x, y) = it } -Value read 26 takeExtFun { val (x, y) = this } -Value read 28 takeFun1 { val (x, y) = it } -Value read 29 takeFun2 { a, n -> val (x, y) = a!! } -Value read 30 takeFun3 { val (x, y) = it[0] } -Value read 32 x(p) { val (x, y) = it } -Value read 33 x(p, fun (p) { val (x, y) = p }) -Value read 41 "".v = { val (x, y ) = it } \ No newline at end of file +Value read 19 p[0] = { val (x, y) = it } +Value read 25 takeExtFun { val (x, y) = this } +Value read 27 takeFun1 { val (x, y) = it } +Value read 28 takeFun2 { a, n -> val (x, y) = a!! } +Value read 29 takeFun3 { val (x, y) = it[0] } +Value read 31 x(p) { val (x, y) = it } +Value read 32 x(p, fun (p) { val (x, y) = p }) +Value read 40 "".v = { val (x, y ) = it } \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.0.kt b/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.0.kt index 7341d0c5bd4..d74333999ae 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE data class A(val n: Int, val s: String) @@ -34,3 +33,5 @@ fun y2(a: A): Boolean = condition(a) fun y3(a: A) { condition(a) } + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.results.txt b/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.results.txt index 2c02b0c22c7..db6050293f0 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/mayTypeAffectAncestors.results.txt @@ -1,2 +1,2 @@ -Value read 20 val (x1, y1) = if (b) { -Value read 21 A(1, "").apply { val (x2, y2) = this } \ No newline at end of file +Value read 19 val (x1, y1) = if (b) { +Value read 20 A(1, "").apply { val (x2, y2) = this } \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/operators.0.kt b/idea/testData/findUsages/kotlin/conventions/components/operators.0.kt index 327b0e469a7..759147ece55 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/operators.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/operators.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON data class A(val x: Int, val y: Int) { fun f() { diff --git a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.0.kt b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.0.kt index 46a19fdb756..92a47d598c1 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.0.kt @@ -1,10 +1,11 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_COMPARISON data class A(val a: A?, val n: Int) fun f(a: A) { val (a1, n1) = a val (a2, n2) = a?.a ?: return -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.DisabledComponents.results.txt b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.DisabledComponents.results.txt index f4ca9423288..367941e5a32 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.DisabledComponents.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.DisabledComponents.results.txt @@ -1,3 +1,3 @@ -Value read 7 val (a1, n1) = a -Value read 8 val (a2, n2) = -Value read 9 a?.a ?: return +Value read 6 val (a1, n1) = a +Value read 7 val (a2, n2) = +Value read 8 a?.a ?: return \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.results.txt b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.results.txt index 112e8c1e732..367941e5a32 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.results.txt +++ b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass1.results.txt @@ -1,3 +1,3 @@ -Value read 7 val (a1, n1) = a -Value read 8 val (a2, n2) = -Value read 9 a?.a ?: return \ No newline at end of file +Value read 6 val (a1, n1) = a +Value read 7 val (a2, n2) = +Value read 8 a?.a ?: return \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass2.0.kt b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass2.0.kt index 349a51333fe..385a5420e5f 100644 --- a/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass2.0.kt +++ b/idea/testData/findUsages/kotlin/conventions/components/recursiveDataClass2.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtParameter // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON data class A(val b: B, val n: Int) data class B(val a: A?, val s: String) diff --git a/idea/testData/findUsages/kotlin/findClassUsages/classUsedInPlainText.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/classUsedInPlainText.0.kt index 341ae2c0bc6..70632b16f07 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/classUsedInPlainText.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/classUsedInPlainText.0.kt @@ -5,3 +5,5 @@ package test class Foo { } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/classUsedInTextAsRef.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/classUsedInTextAsRef.0.kt index 48c18e7742e..7c975bea1fc 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/classUsedInTextAsRef.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/classUsedInTextAsRef.0.kt @@ -11,3 +11,5 @@ open class Server { println("Server") } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.0.kt index 2f3f0d98cdc..6f15274ac9a 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.0.kt @@ -4,3 +4,5 @@ package testing class Server() { } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.results.txt b/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.results.txt index 3369e6b2079..ff2769a5ea1 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.results.txt +++ b/idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.results.txt @@ -1,4 +1,4 @@ Field declaration 4 private Server myServer = new Server(); Method parameter declaration 6 public void setServer(Server server) { Method return type 10 public Server getMyServer() { -New instance creation 4 private Server myServer = new Server(); +New instance creation 4 private Server myServer = new Server(); \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/javaClassConstructorUsages.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/javaClassConstructorUsages.0.kt index c85b5d872b4..eeb85152853 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/javaClassConstructorUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/javaClassConstructorUsages.0.kt @@ -4,3 +4,5 @@ package testing class Server() { } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages1.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages1.0.kt index 17a9cd7cc20..bd8194be3e2 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages1.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages1.0.kt @@ -35,3 +35,5 @@ open class A: X { println("!$s!") } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages2.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages2.0.kt index 873c0431a26..7fb33f55f4f 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/javaClassFunctionUsages2.0.kt @@ -35,3 +35,5 @@ open class A: X { println("!$s!") } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/javaClassSecondaryCtrUsages.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/javaClassSecondaryCtrUsages.0.kt index 6bbcc6e8a43..dac52b7dda5 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/javaClassSecondaryCtrUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/javaClassSecondaryCtrUsages.0.kt @@ -3,3 +3,5 @@ open class A { constructor() {} } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages3.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages3.0.kt index 3e0c6e6e7f9..4e5d5c365ff 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages3.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsages3.0.kt @@ -1,8 +1,9 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: usages, constructorUsages -// FIR_COMPARISON package server data class Data -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsagesNoImport.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsagesNoImport.0.kt index 18f76ae9575..9ea86dfbf2e 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsagesNoImport.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassAllUsagesNoImport.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: usages, constructorUsages, skipImports -// FIR_COMPARISON package server @@ -9,3 +8,5 @@ open class Server { println("Server") } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages1.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages1.0.kt index a5ce1368fe5..80ef3beb8d3 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages1.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages1.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: functionUsages -// FIR_COMPARISON interface X { val a: String @@ -37,3 +36,5 @@ open class A: X { println("!$s!") } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages2.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages2.0.kt index 12a7d80bb70..f8a34015652 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassFunctionUsages2.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: functionUsages -// FIR_COMPARISON interface X { val a: String @@ -37,3 +36,5 @@ open class A: X { println("!$s!") } } + +// FIR_COMPARISON diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages1.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages1.0.kt index 288fc667b85..be55c42e0f1 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages1.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages1.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: propertyUsages -// FIR_COMPARISON interface X { val a: String @@ -37,3 +36,5 @@ open class A: X { println("!$s!") } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages2.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages2.0.kt index 1e37ad183c6..8185ca7eb33 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinClassPropertyUsages2.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: propertyUsages -// FIR_COMPARISON interface X { val a: String @@ -37,3 +36,5 @@ open class A(val t: String, var u: String): X { println("!$s!") } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinInnerClassAllUsages.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinInnerClassAllUsages.0.kt index 7b1d8d49519..bb577cd6c59 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinInnerClassAllUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinInnerClassAllUsages.0.kt @@ -11,3 +11,5 @@ public open class Outer { } } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages1.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages1.0.kt index 8efd5f43491..d5101c39631 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages1.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages1.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: usages, constructorUsages -// FIR_IGNORE +// FIR_COMPARISON fun foo(): Any { class Bar diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages2.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages2.0.kt index c74dbf58bf0..96350d32922 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinLocalClassUsages2.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: usages, constructorUsages -// FIR_IGNORE +// FIR_COMPARISON fun foo(): Any { if (false) { diff --git a/idea/testData/findUsages/kotlin/findClassUsages/kotlinPrivateClassUsages.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/kotlinPrivateClassUsages.0.kt index 5977bcfefe6..bba4425f8cb 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/kotlinPrivateClassUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/kotlinPrivateClassUsages.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: usages, constructorUsages -// FIR_IGNORE +// FIR_COMPARISON package server diff --git a/idea/testData/findUsages/kotlin/findClassUsages/localAndNonLocalClass.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/localAndNonLocalClass.0.kt index c54e961b28a..9b3972ca69e 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/localAndNonLocalClass.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/localAndNonLocalClass.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: usages, constructorUsages -// FIR_IGNORE +// FIR_COMPARISON class C { init { diff --git a/idea/testData/findUsages/kotlin/findClassUsages/usageInTypeAlias.0.kt b/idea/testData/findUsages/kotlin/findClassUsages/usageInTypeAlias.0.kt index 867c2d0e82a..6f7b2689766 100644 --- a/idea/testData/findUsages/kotlin/findClassUsages/usageInTypeAlias.0.kt +++ b/idea/testData/findUsages/kotlin/findClassUsages/usageInTypeAlias.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON class A diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/enumFunctionUsages.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/enumFunctionUsages.0.kt index a9e677900c1..db705ddaf11 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/enumFunctionUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/enumFunctionUsages.0.kt @@ -24,4 +24,5 @@ enum class E { open fun foo(n: Int): Int = n } -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/functionUsedInPlainText.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/functionUsedInPlainText.0.kt index 9f5e427d31f..5be523366c2 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/functionUsedInPlainText.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/functionUsedInPlainText.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: textOccurrences -// FIR_COMPARISON package test @@ -9,3 +8,5 @@ class Foo { } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinAliasedMethodUsages.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinAliasedMethodUsages.0.kt index 0e3d17641cf..d56e22067e3 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinAliasedMethodUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinAliasedMethodUsages.0.kt @@ -1,7 +1,8 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_COMPARISON package server fun processRequest() = "foo" + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages1.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages1.0.kt index bff59dde5d6..d5784dc1fa5 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages1.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages1.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON fun foo() { fun bar() { diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages2.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages2.0.kt index 31af2cebcd6..aefed6f2a87 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinLocalMethodUsages2.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON fun foo() { if (true) { diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodAliasedUsages.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodAliasedUsages.0.kt index 78ab1c70bad..37db92492b1 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodAliasedUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodAliasedUsages.0.kt @@ -13,3 +13,5 @@ class Client { processRequest() } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodsAliasedUsages.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodsAliasedUsages.0.kt index 667e49e84c2..cb6ecb60c4b 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodsAliasedUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinMethodsAliasedUsages.0.kt @@ -1,7 +1,6 @@ // IGNORE: see KotlinFindUsagesHandlerFactory: it is ambiguous case: ImportAlias does not have any reference to be resolved // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtImportAlias // OPTIONS: usages -// FIR_COMPARISON package c @@ -16,4 +15,6 @@ fun test() { a(1) b() b(1) -} \ No newline at end of file +} + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinNestedClassMethodUsages.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinNestedClassMethodUsages.0.kt index f968bc3c2f4..ecb4a73b2ac 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinNestedClassMethodUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinNestedClassMethodUsages.0.kt @@ -9,3 +9,5 @@ public open class Outer() { } } } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinPrivateMethodUsages.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinPrivateMethodUsages.0.kt index f17a2b57afd..0ffb1d234a3 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinPrivateMethodUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinPrivateMethodUsages.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON package server diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt index 54d91660179..4217971794d 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt @@ -4,3 +4,4 @@ package server fun processRequest() = "foo" +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesMultifile.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesMultifile.0.kt index 309d2b4c262..fe2bcaad76d 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesMultifile.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesMultifile.0.kt @@ -6,3 +6,4 @@ package server fun processRequest() = "foo" +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesNoImport.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesNoImport.0.kt index 904bf0bd7d8..85c25b095ff 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesNoImport.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesNoImport.0.kt @@ -1,8 +1,8 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages, skipImports -// FIR_COMPARISON package server fun processRequest() = "foo" +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesWithRenamedFile.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesWithRenamedFile.0.kt index bda2ef20787..04c78096b76 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesWithRenamedFile.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesWithRenamedFile.0.kt @@ -5,3 +5,4 @@ package server fun processRequest() = "foo" +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt index cedd1a2e88b..f1308e61b9a 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt @@ -8,4 +8,6 @@ interface TraitWithImpl { public class TraitWithDelegatedWithImpl(f: TraitWithImpl): TraitWithImpl by f -fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() \ No newline at end of file +fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt index 9c77d572ee6..fa47694da29 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt @@ -1,2 +1,2 @@ [kotlinTraitImplThroughDelegate.0.kt] Function call 11 fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() -[kotlinTraitImplThroughDelegate.1.java] Unclassified usage 7 some.foo(); +[kotlinTraitImplThroughDelegate.1.java] Unclassified usage 7 some.foo(); \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.0.kt index b69ac36b4f0..39762bb2b8e 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.0.kt @@ -8,4 +8,6 @@ interface TraitNoImpl { public class TraitWithDelegatedNoImpl(f: TraitNoImpl): TraitNoImpl by f -fun test(twdni: TraitWithDelegatedNoImpl) = twdni.foo() \ No newline at end of file +fun test(twdni: TraitWithDelegatedNoImpl) = twdni.foo() + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.results.txt b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.results.txt index 00135113003..a00a08aef8d 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.results.txt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTraitNoImplThroughDelegate.results.txt @@ -1,2 +1,2 @@ [kotlinTraitNoImplThroughDelegate.0.kt] Function call 11 fun test(twdni: TraitWithDelegatedNoImpl) = twdni.foo() -[kotlinTraitNoImplThroughDelegate.1.java] Unclassified usage 7 some.foo(); +[kotlinTraitNoImplThroughDelegate.1.java] Unclassified usage 7 some.foo(); \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/localClassMember.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/localClassMember.0.kt index 7dfaaf5ee76..012e11226ec 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/localClassMember.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/localClassMember.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON package anonymousUnused diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionDeepMember.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionDeepMember.0.kt index 1dd5b65c282..c637aaa4476 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionDeepMember.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionDeepMember.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON package anonymousUnused diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember.0.kt index 25a900cd538..d8731c582c5 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON package anonymousUnused diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember2.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember2.0.kt index e27a4dfa9a4..bd5eafba602 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember2.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMember2.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON package anonymousUnused diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInClass.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInClass.0.kt index c5ce4bb6237..7a5aace6416 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInClass.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInClass.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON class Foo { private val localObject = object : Any() { diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInCompanion.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInCompanion.0.kt index 6ce1c251e06..1a8f95ffad9 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInCompanion.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInCompanion.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON class Foo { companion object { diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInTopLevel.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInTopLevel.0.kt index 030d6f43768..ebcaa016e7f 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInTopLevel.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/objectExpressionMemberInTopLevel.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON private val localObject = object : Any() { fun f() { diff --git a/idea/testData/findUsages/kotlin/findFunctionUsages/usagesOfBaseForFunction.0.kt b/idea/testData/findUsages/kotlin/findFunctionUsages/usagesOfBaseForFunction.0.kt index aba007c5d3b..7cf8fdc8190 100644 --- a/idea/testData/findUsages/kotlin/findFunctionUsages/usagesOfBaseForFunction.0.kt +++ b/idea/testData/findUsages/kotlin/findFunctionUsages/usagesOfBaseForFunction.0.kt @@ -14,3 +14,4 @@ fun main(a: A) { } // for KT-3769 Find usages gives no result for overrides +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesK.0.kt b/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesK.0.kt index e340f106a7b..5e1e72d8a56 100644 --- a/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesK.0.kt +++ b/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesK.0.kt @@ -26,4 +26,5 @@ fun test() { B().p = 1 } -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKJK.0.kt b/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKJK.0.kt index 7a887986a92..3d32751c507 100644 --- a/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKJK.0.kt +++ b/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKJK.0.kt @@ -27,4 +27,5 @@ fun test() { B().p = 1 } -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKK.0.kt b/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKK.0.kt index 6241e9be9f5..c36ac11086f 100644 --- a/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKK.0.kt +++ b/idea/testData/findUsages/kotlin/findJavaPropertyUsages/javaPropertyUsagesKK.0.kt @@ -27,4 +27,5 @@ fun test() { B().p = 1 } -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.0.kt b/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.0.kt index b8bec636e17..f20bea10ca8 100644 --- a/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.0.kt @@ -5,3 +5,4 @@ object O { var foo: String = "foo" } +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.results.txt b/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.results.txt index d9869ae083f..c1826f60666 100644 --- a/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.results.txt +++ b/idea/testData/findUsages/kotlin/findObjectUsages/javaObjectUsages.results.txt @@ -1,2 +1,2 @@ Class static member access 7 System.out.println("foo = " + O.INSTANCE.getFoo()); -Usage in import 3 import server.O; +Usage in import 3 import server.O; \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findObjectUsages/kotlinImportedObjectUsages.0.kt b/idea/testData/findUsages/kotlin/findObjectUsages/kotlinImportedObjectUsages.0.kt index 78698ede455..4c6a77eebdb 100644 --- a/idea/testData/findUsages/kotlin/findObjectUsages/kotlinImportedObjectUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findObjectUsages/kotlinImportedObjectUsages.0.kt @@ -1,5 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtObjectDeclaration -// FIR_IGNORE +// FIR_COMPARISON import Imported as Alias diff --git a/idea/testData/findUsages/kotlin/findObjectUsages/kotlinObjectUsages.0.kt b/idea/testData/findUsages/kotlin/findObjectUsages/kotlinObjectUsages.0.kt index 88516991946..d9294d55561 100644 --- a/idea/testData/findUsages/kotlin/findObjectUsages/kotlinObjectUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findObjectUsages/kotlinObjectUsages.0.kt @@ -1,5 +1,4 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtObjectDeclaration -// FIR_COMPARISON package server @@ -7,3 +6,4 @@ object O { var foo: String = "foo" } +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findObjectUsages/kotlinPrivateObjectUsages.0.kt b/idea/testData/findUsages/kotlin/findObjectUsages/kotlinPrivateObjectUsages.0.kt index 4df5126c072..7fa1d97377f 100644 --- a/idea/testData/findUsages/kotlin/findObjectUsages/kotlinPrivateObjectUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findObjectUsages/kotlinPrivateObjectUsages.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtObjectDeclaration // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON package server diff --git a/idea/testData/findUsages/kotlin/findPrimaryConstructorUsages/missingName.0.kt b/idea/testData/findUsages/kotlin/findPrimaryConstructorUsages/missingName.0.kt index 66ac5d7c4e6..f5a2c6fdd3d 100644 --- a/idea/testData/findUsages/kotlin/findPrimaryConstructorUsages/missingName.0.kt +++ b/idea/testData/findUsages/kotlin/findPrimaryConstructorUsages/missingName.0.kt @@ -1,7 +1,8 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtPrimaryConstructor // OPTIONS: usages -// FIR_COMPARISON class () { -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyReadUsages2.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyReadUsages2.0.kt index edbb3a33722..ff59bfbf8a1 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyReadUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyReadUsages2.0.kt @@ -14,3 +14,5 @@ open class B: A("") { println("set:" + value) } } + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyUsages2.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyUsages2.0.kt index 54a8e62b431..9b628a27a03 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyUsages2.0.kt @@ -14,3 +14,5 @@ open class B: A("") { println("set:" + value) } } + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyWriteUsages2.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyWriteUsages2.0.kt index 35d9bd52f27..741875fac00 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyWriteUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/javaPropertyWriteUsages2.0.kt @@ -14,3 +14,5 @@ open class B: A("") { println("set:" + value) } } + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages1.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages1.0.kt index 2a7453cb8d4..c475a2f87c9 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages1.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages1.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON fun foo(): String { val bar = "" diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages2.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages2.0.kt index b6506851916..3401b5cb7a3 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages2.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinLocalPropertyUsages2.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON fun foo(): String { if (true) { diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPrivatePropertyInClassObjectUsages.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPrivatePropertyInClassObjectUsages.0.kt index 62d8b5a69d0..e1951218b67 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPrivatePropertyInClassObjectUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPrivatePropertyInClassObjectUsages.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON class Outer { val x = Outer.t diff --git a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPropertySameNameAsMethodUsages.0.kt b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPropertySameNameAsMethodUsages.0.kt index d909e4419a1..974d3baf43f 100644 --- a/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPropertySameNameAsMethodUsages.0.kt +++ b/idea/testData/findUsages/kotlin/findPropertyUsages/kotlinPropertySameNameAsMethodUsages.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON class P diff --git a/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt b/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt index 2db8c9d6e23..fe9a8a6a1fb 100644 --- a/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt +++ b/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt @@ -26,4 +26,6 @@ class C : B() { fun test() { B() -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/secondaryConstructor.0.kt b/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/secondaryConstructor.0.kt index d1c5ebf08ec..e6926554e22 100644 --- a/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/secondaryConstructor.0.kt +++ b/idea/testData/findUsages/kotlin/findSecondaryConstructorUsages/secondaryConstructor.0.kt @@ -22,4 +22,6 @@ class C: B("") { fun test() { B("") -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/findWithFilteringImports/findWithFilteringImports.0.kt b/idea/testData/findUsages/kotlin/findWithFilteringImports/findWithFilteringImports.0.kt index fcb1c992d5d..3c73d26ffe9 100644 --- a/idea/testData/findUsages/kotlin/findWithFilteringImports/findWithFilteringImports.0.kt +++ b/idea/testData/findUsages/kotlin/findWithFilteringImports/findWithFilteringImports.0.kt @@ -1,8 +1,9 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass // FILTERING_RULES: org.jetbrains.kotlin.idea.findUsages.KotlinImportFilteringRule // OPTIONS: usages, constructorUsages -// FIR_COMPARISON package testing public class Test + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt index 4ded1e86f33..3b87abc9b19 100644 --- a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt @@ -24,4 +24,5 @@ enum class E { internal open fun foo(n: Int): Int = n } -// DISABLE-ERRORS \ No newline at end of file +// DISABLE-ERRORS +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt index a93c41dff58..0f6672672f9 100644 --- a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt @@ -1,8 +1,8 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages -// FIR_COMPARISON package server internal fun processRequest() = "foo" +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt index 148d2b63d7c..553c292140b 100644 --- a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt @@ -1,6 +1,5 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction // OPTIONS: usages, skipImports -// FIR_COMPARISON package server interface TraitWithImpl { @@ -11,4 +10,5 @@ public class TraitWithDelegatedWithImpl(f: TraitWithImpl): TraitWithImpl by f fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() -// ERROR: Modifier 'internal' is not applicable inside 'interface' \ No newline at end of file +// ERROR: Modifier 'internal' is not applicable inside 'interface' +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt index 48f73b7af93..e2e8d26e09c 100644 --- a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt @@ -1 +1 @@ -Function call 12 fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() \ No newline at end of file +Function call 11 fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt index 461c8313de6..0f115b34b9a 100644 --- a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt @@ -14,4 +14,5 @@ fun main(a: A) { } // for KT-3769 Find usages gives no result for overrides -// ERROR: Modifier 'internal' is not applicable inside 'interface' \ No newline at end of file +// ERROR: Modifier 'internal' is not applicable inside 'interface' +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt index c6a36bc700e..2b684f77454 100644 --- a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON package server diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt index 2a3f57a292d..19e499f262b 100644 --- a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt @@ -1,8 +1,8 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_COMPARISON package server internal var foo: String = "foo" +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt index 8bfb37bbcfd..02a7e398307 100644 --- a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt @@ -26,4 +26,6 @@ class C : B() { fun test() { B() -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt index 267750e8f31..723da63c473 100644 --- a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt @@ -22,4 +22,6 @@ class C: B("") { fun test() { B("") -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/unresolvedAnnotation/unresolvedAnnotation.0.kt b/idea/testData/findUsages/kotlin/unresolvedAnnotation/unresolvedAnnotation.0.kt index 11e6d7ff85b..280e2c60d00 100644 --- a/idea/testData/findUsages/kotlin/unresolvedAnnotation/unresolvedAnnotation.0.kt +++ b/idea/testData/findUsages/kotlin/unresolvedAnnotation/unresolvedAnnotation.0.kt @@ -3,3 +3,5 @@ open class Foo { vv open val foo = 1 } + +// FIR_COMPARISON \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/variable/readAccess.0.kt b/idea/testData/findUsages/kotlin/variable/readAccess.0.kt index 02408a1bb6c..c283fa29d24 100644 --- a/idea/testData/findUsages/kotlin/variable/readAccess.0.kt +++ b/idea/testData/findUsages/kotlin/variable/readAccess.0.kt @@ -1,7 +1,7 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages // OPTIONS: skipWrite -// FIR_IGNORE +// FIR_COMPARISON fun foo() { var v = 1 diff --git a/idea/testData/findUsages/kotlin/variable/varInDoWhile.0.kt b/idea/testData/findUsages/kotlin/variable/varInDoWhile.0.kt index 0e5bb9092f9..c0ae0fc6665 100644 --- a/idea/testData/findUsages/kotlin/variable/varInDoWhile.0.kt +++ b/idea/testData/findUsages/kotlin/variable/varInDoWhile.0.kt @@ -1,6 +1,6 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages -// FIR_IGNORE +// FIR_COMPARISON fun test() { do { diff --git a/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt b/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt index 349d5c09c99..cda26b9e453 100644 --- a/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt +++ b/idea/testData/findUsages/kotlin/variable/writeAccess.0.kt @@ -1,7 +1,7 @@ // PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty // OPTIONS: usages // OPTIONS: skipRead -// FIR_IGNORE +// FIR_COMPARISON fun foo() { var v = 1 diff --git a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryClassUsages.0.kt b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryClassUsages.0.kt index 0d39b524ea9..a4bdf24dee5 100644 --- a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryClassUsages.0.kt +++ b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryClassUsages.0.kt @@ -1,7 +1,7 @@ // PSI_ELEMENT: com.intellij.psi.PsiClass // OPTIONS: usages // FIND_BY_REF -// FIR_IGNORE +// FIR_COMPARISON package usages diff --git a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryConstructorUsages.0.kt b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryConstructorUsages.0.kt index 8287442924e..40db0062a87 100644 --- a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryConstructorUsages.0.kt +++ b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryConstructorUsages.0.kt @@ -1,7 +1,7 @@ // PSI_ELEMENT: com.intellij.psi.PsiMethod // OPTIONS: usages // FIND_BY_REF -// FIR_IGNORE +// FIR_COMPARISON package usages diff --git a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryFieldUsages.0.kt b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryFieldUsages.0.kt index 12cca58c500..6411970d056 100644 --- a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryFieldUsages.0.kt +++ b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryFieldUsages.0.kt @@ -1,7 +1,7 @@ // PSI_ELEMENT: com.intellij.psi.PsiField // OPTIONS: usages // FIND_BY_REF -// FIR_IGNORE +// FIR_COMPARISON package usages diff --git a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticFieldUsages.0.kt b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticFieldUsages.0.kt index 67b23f8af74..b71927a7011 100644 --- a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticFieldUsages.0.kt +++ b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticFieldUsages.0.kt @@ -1,7 +1,7 @@ // PSI_ELEMENT: com.intellij.psi.PsiField // OPTIONS: usages // FIND_BY_REF -// FIR_IGNORE +// FIR_COMPARISON package usages diff --git a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticMethodUsages.0.kt b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticMethodUsages.0.kt index 17bc2e7685f..a70fd925969 100644 --- a/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticMethodUsages.0.kt +++ b/idea/testData/findUsages/libraryUsages/javaLibrary/LibraryStaticMethodUsages.0.kt @@ -1,7 +1,7 @@ // PSI_ELEMENT: com.intellij.psi.PsiMethod // OPTIONS: usages // FIND_BY_REF -// FIR_IGNORE +// FIR_COMPARISON package usages diff --git a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.0.kt b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.0.kt index c07dc17de37..305914a7e9b 100644 --- a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.0.kt +++ b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.0.kt @@ -2,7 +2,6 @@ // OPTIONS: usages, constructorUsages // FIND_BY_REF // WITH_FILE_NAME -// FIR_IGNORE package usages @@ -17,4 +16,6 @@ class Y(): A(1) fun test() { val a: A = A() val aa = A(1) -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.results.txt b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.results.txt index f1a9c8d8d0b..b71d5a2cdda 100644 --- a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.results.txt +++ b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryClassUsages.results.txt @@ -1,8 +1,8 @@ -[LibraryClassUsages.0.kt] Local variable declaration 18 val a: A = A() -[LibraryClassUsages.0.kt] New instance creation 18 val a: A = A() -[LibraryClassUsages.0.kt] New instance creation 19 val aa = A(1) -[LibraryClassUsages.0.kt] Supertype 11 class X: A { -[LibraryClassUsages.0.kt] Supertype 15 class Y(): A(1) +[LibraryClassUsages.0.kt] Local variable declaration 17 val a: A = A() +[LibraryClassUsages.0.kt] New instance creation 17 val a: A = A() +[LibraryClassUsages.0.kt] New instance creation 18 val aa = A(1) +[LibraryClassUsages.0.kt] Supertype 10 class X: A { +[LibraryClassUsages.0.kt] Supertype 14 class Y(): A(1) [LibraryClassUsages.1.java] Local variable declaration 11 A a = new A(); [LibraryClassUsages.1.java] Local variable declaration 12 A aa = new A(1); [LibraryClassUsages.1.java] New instance creation 11 A a = new A(); diff --git a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.0.kt b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.0.kt index b1173b09e43..3c2b0bc72e3 100644 --- a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.0.kt +++ b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.0.kt @@ -2,7 +2,6 @@ // OPTIONS: usages, constructorUsages // FIND_BY_REF // WITH_FILE_NAME -// FIR_IGNORE package usages @@ -10,4 +9,6 @@ import library.* fun test() { val a = A.Companion -} \ No newline at end of file +} + +// FIR_IGNORE \ No newline at end of file diff --git a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.results.txt b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.results.txt index 04c30086340..2e2f67d99b4 100644 --- a/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.results.txt +++ b/idea/testData/findUsages/libraryUsages/kotlinLibrary/LibraryCompanionObjectUsages.results.txt @@ -1,3 +1,3 @@ -[LibraryCompanionObjectUsages.0.kt] Companion object 12 val a = A.Companion +[LibraryCompanionObjectUsages.0.kt] Companion object 11 val a = A.Companion [LibraryCompanionObjectUsages.1.java] Local variable declaration 7 A.Companion o = A.Companion; [LibraryCompanionObjectUsages.1.java] Unclassified usage 7 A.Companion o = A.Companion; \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightClassLoadingTest.kt b/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightClassLoadingTest.kt index 4501f19162a..debe8714cdf 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightClassLoadingTest.kt +++ b/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightClassLoadingTest.kt @@ -10,51 +10,40 @@ import org.jetbrains.kotlin.asJava.LightClassGenerationSupport import org.jetbrains.kotlin.asJava.PsiClassRenderer import org.jetbrains.kotlin.asJava.PsiClassRenderer.renderClass import org.jetbrains.kotlin.idea.perf.UltraLightChecker +import org.jetbrains.kotlin.idea.perf.UltraLightChecker.checkByJavaFile import org.jetbrains.kotlin.idea.perf.UltraLightChecker.checkDescriptorsLeak import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File abstract class AbstractUltraLightClassLoadingTest : KotlinLightCodeInsightFixtureTestCase() { override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE - fun doTest(testDataPath: String) { + open fun doTest(testDataPath: String) { val sourceText = File(testDataPath).readText() val file = myFixture.addFileToProject(testDataPath, sourceText) as KtFile UltraLightChecker.checkForReleaseCoroutine(sourceText, module) - val expectedTextFile = File(testDataPath.replaceFirst("\\.kt\$".toRegex(), ".java")) - if (expectedTextFile.exists()) { - val renderedResult = - UltraLightChecker.allClasses(file).mapNotNull { ktClass -> - LightClassGenerationSupport.getInstance(ktClass.project).createUltraLightClass(ktClass)?.let { it to ktClass } - }.joinToString("\n\n") { (ultraLightClass, ktClass) -> - with(UltraLightChecker) { - val extendedTypeRendererOld = PsiClassRenderer.extendedTypeRenderer - try { - PsiClassRenderer.extendedTypeRenderer = file.name == "typeAnnotations.kt" - ultraLightClass.renderClass() - } finally { - PsiClassRenderer.extendedTypeRenderer = extendedTypeRendererOld - }.also { - checkDescriptorsLeak(ultraLightClass) - } - } + val checkByJavaFile = InTextDirectivesUtils.isDirectiveDefined(sourceText, "CHECK_BY_JAVA_FILE") + + val ktClassOrObjects = UltraLightChecker.allClasses(file) + + if (checkByJavaFile) { + val classFabric = LightClassGenerationSupport.getInstance(project) + val classList = ktClassOrObjects.mapNotNull { classFabric.createUltraLightClass(it) } + checkByJavaFile(testDataPath, classList) + classList.forEach { checkDescriptorsLeak(it) } + } else { + for (ktClass in ktClassOrObjects) { + val ultraLightClass = UltraLightChecker.checkClassEquivalence(ktClass) + if (ultraLightClass != null) { + checkDescriptorsLeak(ultraLightClass) } - - KotlinTestUtils.assertEqualsToFile(expectedTextFile, renderedResult) - return - } - - for (ktClass in UltraLightChecker.allClasses(file)) { - val ultraLightClass = UltraLightChecker.checkClassEquivalence(ktClass) - if (ultraLightClass != null) { - checkDescriptorsLeak(ultraLightClass) } } - } } diff --git a/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightFacadeClassLoadingTest.kt b/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightFacadeClassLoadingTest.kt index 01e003506c6..9d88439cef0 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightFacadeClassLoadingTest.kt +++ b/idea/tests/org/jetbrains/kotlin/asJava/classes/AbstractUltraLightFacadeClassLoadingTest.kt @@ -18,7 +18,7 @@ import java.io.File abstract class AbstractUltraLightFacadeClassTest : KotlinLightCodeInsightFixtureTestCase() { override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE - fun doTest(testDataPath: String) { + open fun doTest(testDataPath: String) { val sourceText = File(testDataPath).readText() myFixture.addFileToProject(testDataPath, sourceText) as KtFile @@ -32,6 +32,10 @@ abstract class AbstractUltraLightFacadeClassTest : KotlinLightCodeInsightFixture val scope = GlobalSearchScope.allScope(project) val facades = KotlinAsJavaSupport.getInstance(project).getFacadeNames(FqName.ROOT, scope) + checkLightFacades(testDataPath, facades, scope) + } + + protected open fun checkLightFacades(testDataPath: String, facades: Collection, scope: GlobalSearchScope) { for (facadeName in facades) { val ultraLightClass = UltraLightChecker.checkFacadeEquivalence(FqName(facadeName), scope, project) if (ultraLightClass != null) { diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesMultiModuleTest.kt b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesMultiModuleTest.kt index 7972f533a21..ad65c740c5b 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesMultiModuleTest.kt +++ b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesMultiModuleTest.kt @@ -49,6 +49,6 @@ abstract class AbstractFindUsagesMultiModuleTest : AbstractMultiModuleTest() { UsefulTestCase.assertInstanceOf(caretElement!!, caretElementClass) val options = parser?.parse(mainFileText, project) - findUsagesAndCheckResults(mainFileText, prefix, rootPath, caretElement, options, project, alwaysAppendFileName = true) + findUsagesAndCheckResults(mainFileText, prefix, rootPath, caretElement, options, project, alwaysAppendFileName = true, isFirPlugin = isFirPlugin) } } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt index 53325f0d496..24bdaf08624 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt +++ b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt @@ -194,14 +194,41 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase() val prefixForCheck = prefix + prefixForResults if (isLibraryElement) { val originalElement = caretElement.originalElement - findUsagesAndCheckResults(mainFileText, prefixForCheck, rootPath, originalElement, options, project) + findUsagesAndCheckResults( + mainFileText, + prefixForCheck, + rootPath, + originalElement, + options, + project, + alwaysAppendFileName = false, + isFirPlugin = isFirPlugin + ) val navigationElement = caretElement.navigationElement if (navigationElement !== originalElement) { - findUsagesAndCheckResults(mainFileText, prefixForCheck, rootPath, navigationElement, options, project) + findUsagesAndCheckResults( + mainFileText, + prefixForCheck, + rootPath, + navigationElement, + options, + project, + alwaysAppendFileName = false, + isFirPlugin = isFirPlugin + ) } } else { - findUsagesAndCheckResults(mainFileText, prefixForCheck, rootPath, caretElement, options, project) + findUsagesAndCheckResults( + mainFileText, + prefixForCheck, + rootPath, + caretElement, + options, + project, + alwaysAppendFileName = false, + isFirPlugin = isFirPlugin + ) } } finally { fixtureClasses.forEach { TestFixtureExtension.unloadFixture(it) } @@ -259,7 +286,8 @@ internal fun findUsagesAndCheckResults( caretElement: T, options: FindUsagesOptions?, project: Project, - alwaysAppendFileName: Boolean = false + alwaysAppendFileName: Boolean = false, + isFirPlugin: Boolean = false ) { val highlightingMode = InTextDirectivesUtils.isDirectiveDefined(mainFileText, "// HIGHLIGHTING") @@ -277,7 +305,7 @@ internal fun findUsagesAndCheckResults( val searchSuperDeclaration = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "$CHECK_SUPER_METHODS_YES_NO_DIALOG:").firstOrNull() != "no" - findUsages(caretElement, options, highlightingMode, project, searchSuperDeclaration) + findUsages(caretElement, options, highlightingMode, project, searchSuperDeclaration, isFirPlugin) } finally { ExpressionsOfTypeProcessor.testLog = null if (logList.size > 0) { @@ -332,7 +360,16 @@ internal fun findUsagesAndCheckResults( try { ExpressionsOfTypeProcessor.mode = ExpressionsOfTypeProcessor.Mode.ALWAYS_PLAIN - findUsagesAndCheckResults(mainFileText, prefix, rootPath, caretElement, options, project) + findUsagesAndCheckResults( + mainFileText, + prefix, + rootPath, + caretElement, + options, + project, + alwaysAppendFileName = false, + isFirPlugin = isFirPlugin + ) } finally { ExpressionsOfTypeProcessor.mode = ExpressionsOfTypeProcessor.Mode.ALWAYS_SMART } @@ -344,7 +381,8 @@ internal fun findUsages( options: FindUsagesOptions?, highlightingMode: Boolean, project: Project, - searchSuperDeclaration: Boolean = true + searchSuperDeclaration: Boolean = true, + isFirPlugin: Boolean = false ): Collection { try { val handler: FindUsagesHandler = if (targetElement is PsiMember) @@ -367,9 +405,23 @@ internal fun findUsages( val processor = CommonProcessors.CollectProcessor() for (psiElement in handler.primaryElements + handler.secondaryElements) { if (highlightingMode) { - project.runReadActionInSmartMode { - for (reference in handler.findReferencesToHighlight(psiElement, options.searchScope)) { - processor.process(UsageInfo(reference)) + if (isFirPlugin) { + ProgressManager.getInstance().run( + object : Task.Modal(project, "", false) { + override fun run(indicator: ProgressIndicator) { + project.runReadActionInSmartMode { + for (reference in handler.findReferencesToHighlight(psiElement, options.searchScope)) { + processor.process(UsageInfo(reference)) + } + } + } + }, + ) + } else { + project.runReadActionInSmartMode { + for (reference in handler.findReferencesToHighlight(psiElement, options.searchScope)) { + processor.process(UsageInfo(reference)) + } } } } else { diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt index 507ecd5410e..5eb3a847aaf 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt @@ -128,8 +128,7 @@ abstract class AbstractIdeCompiledLightClassTest : KotlinDaemonAnalyzerTestCase( } private fun testLightClass(expected: File, testData: File, normalize: (String) -> String, findLightClass: (String) -> PsiClass?) { - LightClassTestCommon.testLightClass( - expected, + val actual = LightClassTestCommon.getActualLightClassText( testData, findLightClass = findLightClass, normalizeText = { text -> @@ -144,9 +143,10 @@ private fun testLightClass(expected: File, testData: File, normalize: (String) - .run(normalize) } ) + KotlinTestUtils.assertEqualsToFile(expected, actual) } -private fun findClass(fqName: String, ktFile: KtFile?, project: Project): PsiClass? { +fun findClass(fqName: String, ktFile: KtFile?, project: Project): PsiClass? { ktFile?.script?.let { return it.toLightClass() } diff --git a/idea/tests/org/jetbrains/kotlin/idea/perf/UltraLightChecker.kt b/idea/tests/org/jetbrains/kotlin/idea/perf/UltraLightChecker.kt index b1690b74d8f..f064061e698 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/perf/UltraLightChecker.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/perf/UltraLightChecker.kt @@ -20,16 +20,20 @@ import com.intellij.util.ref.DebugReflectionUtil import junit.framework.TestCase import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport import org.jetbrains.kotlin.asJava.LightClassGenerationSupport +import org.jetbrains.kotlin.asJava.PsiClassRenderer import org.jetbrains.kotlin.asJava.PsiClassRenderer.renderClass import org.jetbrains.kotlin.asJava.classes.* import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.idea.project.languageVersionSettings +import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCaseBase import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtScript +import org.jetbrains.kotlin.test.KotlinTestUtils import org.junit.Assert +import java.io.File import kotlin.test.assertFails fun UsefulTestCase.forceUsingOldLightClassesForTest() { @@ -76,6 +80,29 @@ object UltraLightChecker { return ultraLightClass } + + fun checkByJavaFile(testDataPath: String, lightClasses: List) { + val expectedTextFile = getJavaFileForTest(testDataPath) + val renderedResult = renderLightClasses(testDataPath, lightClasses) + KotlinTestUtils.assertEqualsToFile(expectedTextFile, renderedResult) + } + + fun getJavaFileForTest(testDataPath: String): File { + val expectedTextFile = KotlinTestUtils.replaceExtension(File(testDataPath), "java") + KotlinLightCodeInsightFixtureTestCaseBase.assertTrue(expectedTextFile.exists()) + return expectedTextFile + } + + fun renderLightClasses(testDataPath: String, lightClasses: List): String { + val extendedTypeRendererOld = PsiClassRenderer.extendedTypeRenderer + return try { + PsiClassRenderer.extendedTypeRenderer = testDataPath.endsWith("typeAnnotations.kt") + lightClasses.joinToString("\n\n") { it.renderClass() } + } finally { + PsiClassRenderer.extendedTypeRenderer = extendedTypeRendererOld + } + } + fun checkClassEquivalence(ktClass: KtClassOrObject): KtUltraLightClass? { val gold = KtLightClassForSourceDeclaration.createNoCache(ktClass, forceUsingOldLightClasses = true) val ultraLightClass = LightClassGenerationSupport.getInstance(ktClass.project).createUltraLightClass(ktClass) ?: return null