From 6e4c87f1384365897ae7eeaf0a7805a66f4b1377 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 30 Nov 2021 13:16:46 +0100 Subject: [PATCH] Analysis API: pretty print declarations additionaly to debug rendering in some tests --- .../scopes/AbstractDelegateMemberScopeTest.kt | 5 +- .../test/scopes/AbstractMemberScopeTest.kt | 5 +- ...ractSubstitutionOverridesUnwrappingTest.kt | 5 +- .../symbols/AbstractSymbolByFqNameTest.kt | 4 +- .../test/symbols/AbstractSymbolByPsiTest.kt | 10 +- .../symbols/AbstractSymbolByReferenceTest.kt | 6 +- .../base/test/symbols/AbstractSymbolTest.kt | 69 +++++++- .../delegatedMemberScope/simple.pretty.txt | 1 + .../withOverridden.pretty.txt | 1 + .../scopes/memberScopeByFqName/Int.pretty.txt | 133 +++++++++++++++ .../MutableList.pretty.txt | 47 ++++++ .../java.lang.String.pretty.txt | 157 ++++++++++++++++++ .../memberScopeByFqName/java.lang.String.txt | 3 + .../kotlin.Function2.pretty.txt | 7 + ...erridenFunctionWithGenericBound.pretty.txt | 11 ++ .../ClassWithGenericBase1.pretty.txt | 15 ++ .../ClassWithGenericBase2.pretty.txt | 15 ++ .../ClassWithGenericBase3.pretty.txt | 17 ++ .../ClassWithGenericBase4.pretty.txt | 27 +++ ...enericFromFunctionInLocalClass1.pretty.txt | 11 ++ ...enericFromFunctionInLocalClass2.pretty.txt | 13 ++ ...ericFromOuterClassInInnerClass1.pretty.txt | 11 ++ ...ericFromOuterClassInInnerClass2.pretty.txt | 13 ++ ...erClassInInnerClassInInheritor1.pretty.txt | 11 ++ ...erClassInInnerClassInInheritor2.pretty.txt | 11 ++ ...erClassInInnerClassInInheritor3.pretty.txt | 13 ++ .../Implement_java_util_Collection.pretty.txt | 33 ++++ ...tionWithOuterTypeParameterBound.pretty.txt | 11 ++ ...ertyWithOuterTypeParameterBound.pretty.txt | 11 ++ .../symbols/symbolByFqName/class.pretty.txt | 1 + .../classFromJdk.descriptors.pretty.txt | 1 + .../symbolByFqName/classFromJdk.pretty.txt | 1 + .../symbolByFqName/enumEntry.pretty.txt | 1 + .../fileWalkDirectionEnum.pretty.txt | 6 + .../symbolByFqName/iterator.pretty.txt | 1 + .../symbols/symbolByFqName/listOf.pretty.txt | 1 + .../symbolByFqName/memberFunction.pretty.txt | 1 + .../memberFunctionWithOverloads.pretty.txt | 3 + .../symbolByFqName/nestedClass.pretty.txt | 1 + .../symbolByPsi/annotations.pretty.txt | 13 ++ .../symbolByPsi/anonymousObject.pretty.txt | 3 + .../symbolByPsi/backingField.pretty.txt | 1 + .../symbols/symbolByPsi/class.pretty.txt | 1 + .../symbolByPsi/classInitializer.pretty.txt | 3 + .../symbolByPsi/classMembes.pretty.txt | 5 + .../classPrimaryConstructor.pretty.txt | 1 + .../classSecondaryConstructors.pretty.txt | 5 + .../classWithTypeParams.pretty.txt | 1 + .../symbolByPsi/delegateField.pretty.txt | 17 ++ .../deprecated.descriptors.pretty.txt | 39 +++++ .../symbolByPsi/deprecated.descriptors.txt | 2 +- .../symbols/symbolByPsi/deprecated.kt | 2 +- .../symbols/symbolByPsi/deprecated.pretty.txt | 39 +++++ .../symbols/symbolByPsi/deprecated.txt | 4 +- .../symbols/symbolByPsi/enum.pretty.txt | 4 + .../enumValueMember.descriptors.pretty.txt | 9 + .../symbolByPsi/enumValueMember.pretty.txt | 9 + .../symbolByPsi/extensionFunction.pretty.txt | 1 + .../symbolByPsi/forLoopVariable.pretty.txt | 1 + .../symbols/symbolByPsi/function.pretty.txt | 1 + .../functionWithTypeParams.pretty.txt | 1 + ...plicitConstructorDelegationCall.pretty.txt | 3 + .../symbolByPsi/implicitReturn.pretty.txt | 1 + .../implicitReturnInLambda.pretty.txt | 3 + .../symbols/symbolByPsi/jvmName.pretty.txt | 13 ++ .../symbolByPsi/localDeclarations.pretty.txt | 1 + .../symbolByPsi/memberFunctions.pretty.txt | 5 + .../symbolByPsi/memberProperties.pretty.txt | 5 + .../outerAndInnerClasses.pretty.txt | 7 + .../symbolByPsi/topLevelFunctions.pretty.txt | 3 + .../symbolByPsi/topLevelProperties.pretty.txt | 3 + .../symbols/symbolByPsi/typeAlias.pretty.txt | 3 + .../symbolByPsi/typeAnnotations.pretty.txt | 19 +++ .../varargFunctions.descriptors.pretty.txt | 7 + .../symbolByPsi/varargFunctions.pretty.txt | 7 + .../accessorField.pretty.txt | 1 + ...tructorViaTypeAlias.descriptors.pretty.txt | 1 + .../constructorViaTypeAlias.pretty.txt | 1 + ...genericFromFunctionInLocalClass.pretty.txt | 1 + ...nericFromOuterClassInInnerClass.pretty.txt | 1 + .../samConstructor.pretty.txt | 1 + 81 files changed, 918 insertions(+), 23 deletions(-) create mode 100644 analysis/analysis-api/testData/scopes/delegatedMemberScope/simple.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/delegatedMemberScope/withOverridden.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/memberScopeByFqName/Int.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/memberScopeByFqName/MutableList.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/memberScopeByFqName/kotlin.Function2.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/memberScopeByFqName/overridenFunctionWithGenericBound.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase1.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase2.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase3.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase4.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass1.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass2.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass1.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass2.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor1.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor2.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor3.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/Implement_java_util_Collection.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberFunctionWithOuterTypeParameterBound.pretty.txt create mode 100644 analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberPropertyWithOuterTypeParameterBound.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/class.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.descriptors.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/enumEntry.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/fileWalkDirectionEnum.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/iterator.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/listOf.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/memberFunction.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/memberFunctionWithOverloads.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/annotations.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/anonymousObject.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/backingField.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/class.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/classInitializer.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/classMembes.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/classPrimaryConstructor.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/classSecondaryConstructors.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/classWithTypeParams.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/delegateField.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/enum.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.descriptors.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/extensionFunction.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/forLoopVariable.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/function.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/functionWithTypeParams.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/implicitConstructorDelegationCall.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturn.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturnInLambda.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/jvmName.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/localDeclarations.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/memberFunctions.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/memberProperties.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/outerAndInnerClasses.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/topLevelFunctions.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/topLevelProperties.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/typeAlias.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.descriptors.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByReference/accessorField.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.descriptors.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByReference/genericFromFunctionInLocalClass.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/symbolByReference/samConstructor.pretty.txt diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractDelegateMemberScopeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractDelegateMemberScopeTest.kt index 03e9b3490b8..189700cc2da 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractDelegateMemberScopeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractDelegateMemberScopeTest.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService import org.jetbrains.kotlin.analysis.api.impl.base.test.SymbolByFqName import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.AbstractSymbolByFqNameTest +import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.SymbolsData import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol import org.jetbrains.kotlin.psi.* @@ -18,11 +19,11 @@ abstract class AbstractDelegateMemberScopeTest( configurator: FrontendApiTestConfiguratorService ) : AbstractSymbolByFqNameTest(configurator) { - override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): List { + override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): SymbolsData { val symbolData = SymbolByFqName.getSymbolDataFromFile(testDataPath) val symbols = with(symbolData) { toSymbols() } val classSymbol = symbols.singleOrNull() as? KtClassOrObjectSymbol ?: error("Should be a single class symbol, but $symbols found") - return classSymbol.getDelegatedMemberScope().getCallableSymbols().toList() + return SymbolsData(classSymbol.getDelegatedMemberScope().getCallableSymbols().toList()) } } diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractMemberScopeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractMemberScopeTest.kt index ea39203f514..0788465bd02 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractMemberScopeTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractMemberScopeTest.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService import org.jetbrains.kotlin.analysis.api.impl.base.test.SymbolByFqName import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.AbstractSymbolByFqNameTest +import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.SymbolsData import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol import org.jetbrains.kotlin.psi.KtFile @@ -18,11 +19,11 @@ abstract class AbstractMemberScopeByFqNameTest( configurator: FrontendApiTestConfiguratorService ) : AbstractSymbolByFqNameTest(configurator) { - override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): List { + override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): SymbolsData { val symbolData = SymbolByFqName.getSymbolDataFromFile(testDataPath) val symbols = with(symbolData) { toSymbols() } val classSymbol = symbols.singleOrNull() as? KtClassOrObjectSymbol ?: error("Should be a single class symbol, but $symbols found") - return classSymbol.getMemberScope().getAllSymbols().toList() + return SymbolsData(classSymbol.getMemberScope().getAllSymbols().toList()) } } diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractSubstitutionOverridesUnwrappingTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractSubstitutionOverridesUnwrappingTest.kt index 657121e99f5..257764dabc7 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractSubstitutionOverridesUnwrappingTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/scopes/AbstractSubstitutionOverridesUnwrappingTest.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService import org.jetbrains.kotlin.analysis.api.impl.barebone.test.expressionMarkerProvider import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.AbstractSymbolTest +import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.SymbolsData import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer import org.jetbrains.kotlin.analysis.api.symbols.KtClassLikeSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol @@ -23,13 +24,13 @@ abstract class AbstractSubstitutionOverridesUnwrappingTest( configurator: FrontendApiTestConfiguratorService ) : AbstractSymbolTest(configurator) { - override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): List { + override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): SymbolsData { val declarationUnderCaret = testServices.expressionMarkerProvider.getElementOfTypAtCaret(ktFile) val classSymbolUnderCaret = declarationUnderCaret.getSymbol() as KtClassLikeSymbol require(classSymbolUnderCaret is KtSymbolWithMembers) - return classSymbolUnderCaret.getMemberScope().getAllSymbols().toList() + return SymbolsData(classSymbolUnderCaret.getMemberScope().getAllSymbols().toList()) } override fun KtAnalysisSession.renderSymbolForComparison(symbol: KtSymbol): String { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByFqNameTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByFqNameTest.kt index faddacd4e7e..3afed22b299 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByFqNameTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByFqNameTest.kt @@ -15,9 +15,9 @@ import org.jetbrains.kotlin.test.directives.ConfigurationDirectives import org.jetbrains.kotlin.test.services.TestServices abstract class AbstractSymbolByFqNameTest(configurator: FrontendApiTestConfiguratorService) : AbstractSymbolTest(configurator) { - override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): List { + override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): SymbolsData { val symbolData = SymbolByFqName.getSymbolDataFromFile(testDataPath) - return with(symbolData) { toSymbols() } + return SymbolsData(with(symbolData) { toSymbols() }) } override fun configureTest(builder: TestConfigurationBuilder) { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByPsiTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByPsiTest.kt index 8def23b74d8..77b92010289 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByPsiTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByPsiTest.kt @@ -15,10 +15,16 @@ import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType import org.jetbrains.kotlin.test.services.TestServices abstract class AbstractSymbolByPsiTest(configurator: FrontendApiTestConfiguratorService) : AbstractSymbolTest(configurator) { - override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): List { - return ktFile.collectDescendantsOfType { it.isValidForSymbolCreation }.map { declaration -> + override val prettyRenderMode: PrettyRenderingMode get() = PrettyRenderingMode.RENDER_SYMBOLS_NESTED + + override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): SymbolsData { + val allDeclarationSymbols = ktFile.collectDescendantsOfType { it.isValidForSymbolCreation }.map { declaration -> declaration.getSymbol() } + return SymbolsData( + allDeclarationSymbols, + listOf(ktFile.getFileSymbol()), + ) } private val KtDeclaration.isValidForSymbolCreation diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByReferenceTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByReferenceTest.kt index dfa4b305a5f..68210d1b483 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByReferenceTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolByReferenceTest.kt @@ -15,8 +15,10 @@ import org.jetbrains.kotlin.psi.KtNameReferenceExpression import org.jetbrains.kotlin.test.services.TestServices abstract class AbstractSymbolByReferenceTest(configurator: FrontendApiTestConfiguratorService) : AbstractSymbolTest(configurator) { - override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): List { + override fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): SymbolsData { val referenceExpression = testServices.expressionMarkerProvider.getElementOfTypAtCaret(ktFile) - return listOfNotNull(referenceExpression.mainReference.resolveToSymbol()) + return SymbolsData( + listOfNotNull(referenceExpression.mainReference.resolveToSymbol()) + ) } } \ No newline at end of file diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolTest.kt index c3e71792c47..a2dd3f4ab72 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/symbols/AbstractSymbolTest.kt @@ -6,11 +6,16 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.symbols import org.jetbrains.kotlin.analysis.api.KtAnalysisSession +import org.jetbrains.kotlin.analysis.api.components.KtDeclarationRendererOptions import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer +import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol +import org.jetbrains.kotlin.analysis.api.symbols.KtFileSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol +import org.jetbrains.kotlin.analysis.api.symbols.markers.KtPossibleMemberSymbol import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer +import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability @@ -20,6 +25,10 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions abstract class AbstractSymbolTest(configurator: FrontendApiTestConfiguratorService) : AbstractHLApiSingleFileTest(configurator) { + private val renderingOptions = KtDeclarationRendererOptions.DEFAULT + + open val prettyRenderMode: PrettyRenderingMode = PrettyRenderingMode.RENDER_SYMBOLS_LINE_BY_LINE + override fun configureTest(builder: TestConfigurationBuilder) { super.configureTest(builder) with(builder) { @@ -27,17 +36,42 @@ abstract class AbstractSymbolTest(configurator: FrontendApiTestConfiguratorServi } } - abstract fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): List + abstract fun KtAnalysisSession.collectSymbols(ktFile: KtFile, testServices: TestServices): SymbolsData override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) { val createPointers = SymbolTestDirectives.DO_NOT_CHECK_SYMBOL_RESTORE !in module.directives + + val prettyRenderOptions = when (prettyRenderMode) { + PrettyRenderingMode.RENDER_SYMBOLS_LINE_BY_LINE -> renderingOptions + PrettyRenderingMode.RENDER_SYMBOLS_NESTED -> renderingOptions.copy(renderClassMembers = true) + } + val pointersWithRendered = analyseOnPooledThreadInReadAction(ktFile) { - collectSymbols(ktFile, testServices).map { symbol -> + val (symbols, symbolForPrettyRendering) = collectSymbols(ktFile, testServices) + + val pointerWithRenderedSymbol = symbols.map { symbol -> PointerWithRenderedSymbol( if (createPointers) symbol.createPointer() else null, - renderSymbolForComparison(symbol) + renderSymbolForComparison(symbol), ) } + + val pointerWithPrettyRenderedSymbol = symbolForPrettyRendering.map { symbol -> + PointerWithRenderedSymbol( + if (createPointers) symbol.createPointer() else null, + when (symbol) { + is KtDeclarationSymbol -> symbol.render(prettyRenderOptions) + is KtFileSymbol -> prettyPrint { + printCollection(symbol.getFileScope().getAllSymbols().asIterable(), separator = "\n\n") { + append((it as KtDeclarationSymbol).render(prettyRenderOptions)) + } + } + else -> error(symbol::class.toString()) + } + ) + } + + SymbolPointersData(pointerWithRenderedSymbol, pointerWithPrettyRenderedSymbol) } compareResults(pointersWithRendered, testServices) @@ -45,16 +79,19 @@ abstract class AbstractSymbolTest(configurator: FrontendApiTestConfiguratorServi configurator.doOutOfBlockModification(ktFile) if (createPointers) { - restoreSymbolsInOtherReadActionAndCompareResults(ktFile, pointersWithRendered, testServices) + restoreSymbolsInOtherReadActionAndCompareResults(ktFile, pointersWithRendered.pointers, testServices) } } private fun compareResults( - pointersWithRendered: List, + data: SymbolPointersData, testServices: TestServices, ) { - val actual = pointersWithRendered.joinToString(separator = "\n\n") { it.rendered } + val actual = data.pointers.joinToString(separator = "\n\n") { it.rendered } testServices.assertions.assertEqualsToTestDataFileSibling(actual) + + val actualPretty = data.pointersForPrettyRendering.joinToString(separator = "\n\n") { it.rendered } + testServices.assertions.assertEqualsToTestDataFileSibling(actualPretty, extension = ".pretty.txt") } private fun restoreSymbolsInOtherReadActionAndCompareResults( @@ -86,4 +123,22 @@ private object SymbolTestDirectives : SimpleDirectivesContainer() { ) } -private data class PointerWithRenderedSymbol(val pointer: KtSymbolPointer<*>?, val rendered: String) +enum class PrettyRenderingMode { + RENDER_SYMBOLS_LINE_BY_LINE, + RENDER_SYMBOLS_NESTED, +} + +data class SymbolsData( + val symbols: List, + val symbolsForPrettyRendering: List = symbols, +) + +private data class SymbolPointersData( + val pointers: List, + val pointersForPrettyRendering: List, +) + +private data class PointerWithRenderedSymbol( + val pointer: KtSymbolPointer<*>?, + val rendered: String, +) diff --git a/analysis/analysis-api/testData/scopes/delegatedMemberScope/simple.pretty.txt b/analysis/analysis-api/testData/scopes/delegatedMemberScope/simple.pretty.txt new file mode 100644 index 00000000000..00bb9b9a886 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/delegatedMemberScope/simple.pretty.txt @@ -0,0 +1 @@ +open fun foo() \ No newline at end of file diff --git a/analysis/analysis-api/testData/scopes/delegatedMemberScope/withOverridden.pretty.txt b/analysis/analysis-api/testData/scopes/delegatedMemberScope/withOverridden.pretty.txt new file mode 100644 index 00000000000..ea26b643624 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/delegatedMemberScope/withOverridden.pretty.txt @@ -0,0 +1 @@ +open fun bar() \ No newline at end of file diff --git a/analysis/analysis-api/testData/scopes/memberScopeByFqName/Int.pretty.txt b/analysis/analysis-api/testData/scopes/memberScopeByFqName/Int.pretty.txt new file mode 100644 index 00000000000..4e69535d127 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/memberScopeByFqName/Int.pretty.txt @@ -0,0 +1,133 @@ +infix fun and(other: kotlin.Int): kotlin.Int + +operator fun compareTo(other: kotlin.Byte): kotlin.Int + +operator fun compareTo(other: kotlin.Double): kotlin.Int + +operator fun compareTo(other: kotlin.Float): kotlin.Int + +open operator fun compareTo(other: kotlin.Int): kotlin.Int + +operator fun compareTo(other: kotlin.Long): kotlin.Int + +operator fun compareTo(other: kotlin.Short): kotlin.Int + +operator fun dec(): kotlin.Int + +operator fun div(other: kotlin.Byte): kotlin.Int + +operator fun div(other: kotlin.Double): kotlin.Double + +operator fun div(other: kotlin.Float): kotlin.Float + +operator fun div(other: kotlin.Int): kotlin.Int + +operator fun div(other: kotlin.Long): kotlin.Long + +operator fun div(other: kotlin.Short): kotlin.Int + +operator fun inc(): kotlin.Int + +fun inv(): kotlin.Int + +operator fun minus(other: kotlin.Byte): kotlin.Int + +operator fun minus(other: kotlin.Double): kotlin.Double + +operator fun minus(other: kotlin.Float): kotlin.Float + +operator fun minus(other: kotlin.Int): kotlin.Int + +operator fun minus(other: kotlin.Long): kotlin.Long + +operator fun minus(other: kotlin.Short): kotlin.Int + +infix fun or(other: kotlin.Int): kotlin.Int + +operator fun plus(other: kotlin.Byte): kotlin.Int + +operator fun plus(other: kotlin.Double): kotlin.Double + +operator fun plus(other: kotlin.Float): kotlin.Float + +operator fun plus(other: kotlin.Int): kotlin.Int + +operator fun plus(other: kotlin.Long): kotlin.Long + +operator fun plus(other: kotlin.Short): kotlin.Int + +operator fun rangeTo(other: kotlin.Byte): kotlin.ranges.IntRange + +operator fun rangeTo(other: kotlin.Int): kotlin.ranges.IntRange + +operator fun rangeTo(other: kotlin.Long): kotlin.ranges.LongRange + +operator fun rangeTo(other: kotlin.Short): kotlin.ranges.IntRange + +@kotlin.SinceKotlin(version = "1.1") +operator fun rem(other: kotlin.Byte): kotlin.Int + +@kotlin.SinceKotlin(version = "1.1") +operator fun rem(other: kotlin.Double): kotlin.Double + +@kotlin.SinceKotlin(version = "1.1") +operator fun rem(other: kotlin.Float): kotlin.Float + +@kotlin.SinceKotlin(version = "1.1") +operator fun rem(other: kotlin.Int): kotlin.Int + +@kotlin.SinceKotlin(version = "1.1") +operator fun rem(other: kotlin.Long): kotlin.Long + +@kotlin.SinceKotlin(version = "1.1") +operator fun rem(other: kotlin.Short): kotlin.Int + +infix fun shl(bitCount: kotlin.Int): kotlin.Int + +infix fun shr(bitCount: kotlin.Int): kotlin.Int + +operator fun times(other: kotlin.Byte): kotlin.Int + +operator fun times(other: kotlin.Double): kotlin.Double + +operator fun times(other: kotlin.Float): kotlin.Float + +operator fun times(other: kotlin.Int): kotlin.Int + +operator fun times(other: kotlin.Long): kotlin.Long + +operator fun times(other: kotlin.Short): kotlin.Int + +open fun toByte(): kotlin.Byte + +open fun toChar(): kotlin.Char + +open fun toDouble(): kotlin.Double + +open fun toFloat(): kotlin.Float + +open fun toInt(): kotlin.Int + +open fun toLong(): kotlin.Long + +open fun toShort(): kotlin.Short + +operator fun unaryMinus(): kotlin.Int + +operator fun unaryPlus(): kotlin.Int + +infix fun ushr(bitCount: kotlin.Int): kotlin.Int + +infix fun xor(other: kotlin.Int): kotlin.Int + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +companion object + +constructor(p0: kotlin.Int) + +private constructor() \ No newline at end of file diff --git a/analysis/analysis-api/testData/scopes/memberScopeByFqName/MutableList.pretty.txt b/analysis/analysis-api/testData/scopes/memberScopeByFqName/MutableList.pretty.txt new file mode 100644 index 00000000000..0ba2aa83343 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/memberScopeByFqName/MutableList.pretty.txt @@ -0,0 +1,47 @@ +fun add(element: E): kotlin.Boolean + +fun add(index: kotlin.Int, element: E) + +fun addAll(index: kotlin.Int, elements: kotlin.collections.Collection): kotlin.Boolean + +fun addAll(elements: kotlin.collections.Collection): kotlin.Boolean + +fun clear() + +fun listIterator(): kotlin.collections.MutableListIterator + +fun listIterator(index: kotlin.Int): kotlin.collections.MutableListIterator + +fun remove(element: E): kotlin.Boolean + +fun removeAll(elements: kotlin.collections.Collection): kotlin.Boolean + +fun removeAt(index: kotlin.Int): E + +fun retainAll(elements: kotlin.collections.Collection): kotlin.Boolean + +operator fun set(index: kotlin.Int, element: E): E + +fun subList(fromIndex: kotlin.Int, toIndex: kotlin.Int): kotlin.collections.MutableList + +operator fun contains(element: E): kotlin.Boolean + +fun containsAll(elements: kotlin.collections.Collection): kotlin.Boolean + +operator fun get(index: kotlin.Int): E + +fun indexOf(element: E): kotlin.Int + +fun isEmpty(): kotlin.Boolean + +operator fun iterator(): kotlin.collections.MutableIterator + +fun lastIndexOf(element: E): kotlin.Int + +val size: kotlin.Int + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String diff --git a/analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.pretty.txt b/analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.pretty.txt new file mode 100644 index 00000000000..f7bcfca61d8 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.pretty.txt @@ -0,0 +1,157 @@ +private val value: kotlin.CharArray! + +private open var hash: kotlin.Int + +public/*package*/ open fun hash32(): kotlin.Int + +private open var hash32: kotlin.Int + +open val length: kotlin.Int + +open fun isEmpty(): kotlin.Boolean + +open fun codePointAt(p0: kotlin.Int): kotlin.Int + +open fun codePointBefore(p0: kotlin.Int): kotlin.Int + +open fun codePointCount(p0: kotlin.Int, p1: kotlin.Int): kotlin.Int + +open fun offsetByCodePoints(p0: kotlin.Int, p1: kotlin.Int): kotlin.Int + +public/*package*/ open fun getChars(p0: kotlin.CharArray!, p1: kotlin.Int) + +open fun getChars(p0: kotlin.Int, p1: kotlin.Int, p2: kotlin.CharArray!, p3: kotlin.Int) + +@kotlin.Deprecated(message = "Deprecated in Java") +open fun getBytes(p0: kotlin.Int, p1: kotlin.Int, p2: kotlin.ByteArray!, p3: kotlin.Int) + +open fun getBytes(p0: kotlin.String!): kotlin.ByteArray! + +open fun getBytes(p0: java.nio.charset.Charset!): kotlin.ByteArray! + +open fun getBytes(): kotlin.ByteArray! + +open operator fun equals(p0: kotlin.Any?): kotlin.Boolean + +open fun contentEquals(p0: java.lang.StringBuffer!): kotlin.Boolean + +open fun contentEquals(p0: kotlin.CharSequence!): kotlin.Boolean + +open fun equalsIgnoreCase(p0: kotlin.String!): kotlin.Boolean + +open operator fun compareTo(p0: kotlin.String!): kotlin.Int + +open fun compareToIgnoreCase(p0: kotlin.String!): kotlin.Int + +open fun regionMatches(p0: kotlin.Int, p1: kotlin.String!, p2: kotlin.Int, p3: kotlin.Int): kotlin.Boolean + +open fun regionMatches(p0: kotlin.Boolean, p1: kotlin.Int, p2: kotlin.String!, p3: kotlin.Int, p4: kotlin.Int): kotlin.Boolean + +open fun startsWith(p0: kotlin.String!, p1: kotlin.Int): kotlin.Boolean + +open fun startsWith(p0: kotlin.String!): kotlin.Boolean + +open fun endsWith(p0: kotlin.String!): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun indexOf(p0: kotlin.Int): kotlin.Int + +open fun indexOf(p0: kotlin.Int, p1: kotlin.Int): kotlin.Int + +open fun indexOf(p0: kotlin.String!): kotlin.Int + +open fun indexOf(p0: kotlin.String!, p1: kotlin.Int): kotlin.Int + +private open fun indexOfSupplementary(p0: kotlin.Int, p1: kotlin.Int): kotlin.Int + +open fun lastIndexOf(p0: kotlin.Int): kotlin.Int + +open fun lastIndexOf(p0: kotlin.Int, p1: kotlin.Int): kotlin.Int + +open fun lastIndexOf(p0: kotlin.String!): kotlin.Int + +open fun lastIndexOf(p0: kotlin.String!, p1: kotlin.Int): kotlin.Int + +private open fun lastIndexOfSupplementary(p0: kotlin.Int, p1: kotlin.Int): kotlin.Int + +open fun substring(p0: kotlin.Int): kotlin.String! + +open fun substring(p0: kotlin.Int, p1: kotlin.Int): kotlin.String! + +open fun subSequence(p0: kotlin.Int, p1: kotlin.Int): kotlin.CharSequence + +open fun concat(p0: kotlin.String!): kotlin.String! + +open fun replace(p0: kotlin.Char, p1: kotlin.Char): kotlin.String! + +open fun replace(p0: kotlin.CharSequence!, p1: kotlin.CharSequence!): kotlin.String! + +open fun matches(p0: kotlin.String!): kotlin.Boolean + +open operator fun contains(p0: kotlin.CharSequence!): kotlin.Boolean + +open fun replaceFirst(p0: kotlin.String!, p1: kotlin.String!): kotlin.String! + +open fun replaceAll(p0: kotlin.String!, p1: kotlin.String!): kotlin.String! + +open fun split(p0: kotlin.String!, p1: kotlin.Int): kotlin.Array<(out) kotlin.String!>! + +open fun split(p0: kotlin.String!): kotlin.Array<(out) kotlin.String!>! + +open fun toLowerCase(p0: java.util.Locale!): kotlin.String! + +open fun toLowerCase(): kotlin.String! + +open fun toUpperCase(p0: java.util.Locale!): kotlin.String! + +open fun toUpperCase(): kotlin.String! + +open fun trim(): kotlin.String! + +open fun toString(): kotlin.String + +open fun toCharArray(): kotlin.CharArray! + +open fun intern(): kotlin.String! + +open operator fun get(p0: kotlin.Int): kotlin.Char + +private open class CaseInsensitiveComparator : kotlin.Any, java.util.Comparator, java.io.Serializable + +constructor() + +constructor(p0: kotlin.String!) + +constructor(p0: kotlin.CharArray!) + +constructor(p0: kotlin.CharArray!, p1: kotlin.Int, p2: kotlin.Int) + +constructor(p0: kotlin.IntArray!, p1: kotlin.Int, p2: kotlin.Int) + +@kotlin.Deprecated(message = "Deprecated in Java") +constructor(p0: kotlin.ByteArray!, p1: kotlin.Int, p2: kotlin.Int, p3: kotlin.Int) + +@kotlin.Deprecated(message = "Deprecated in Java") +constructor(p0: kotlin.ByteArray!, p1: kotlin.Int) + +constructor(p0: kotlin.ByteArray!, p1: kotlin.Int, p2: kotlin.Int, p3: kotlin.String!) + +constructor(p0: kotlin.ByteArray!, p1: kotlin.Int, p2: kotlin.Int, p3: java.nio.charset.Charset!) + +constructor(p0: kotlin.ByteArray!, p1: kotlin.String!) + +constructor(p0: kotlin.ByteArray!, p1: java.nio.charset.Charset!) + +constructor(p0: kotlin.ByteArray!, p1: kotlin.Int, p2: kotlin.Int) + +constructor(p0: kotlin.ByteArray!) + +constructor(p0: java.lang.StringBuffer!) + +constructor(p0: java.lang.StringBuilder!) + +public/*package*/ constructor(p0: kotlin.CharArray!, p1: kotlin.Boolean) + +@kotlin.Deprecated(message = "Deprecated in Java") +public/*package*/ constructor(p0: kotlin.Int, p1: kotlin.Int, p2: kotlin.CharArray!) \ No newline at end of file diff --git a/analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.txt b/analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.txt index c1a860bb6f3..d89c5a0f22b 100644 --- a/analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.txt +++ b/analysis/analysis-api/testData/scopes/memberScopeByFqName/java.lang.String.txt @@ -10,6 +10,7 @@ KtJavaFieldSymbol: returnType: ft symbolKind: CLASS_MEMBER visibility: Private + getDispatchReceiver(): java/lang/String deprecationStatus: null KtJavaFieldSymbol: @@ -24,6 +25,7 @@ KtJavaFieldSymbol: returnType: kotlin/Int symbolKind: CLASS_MEMBER visibility: Private + getDispatchReceiver(): java/lang/String deprecationStatus: null KtFunctionSymbol: @@ -62,6 +64,7 @@ KtJavaFieldSymbol: returnType: kotlin/Int symbolKind: CLASS_MEMBER visibility: Private + getDispatchReceiver(): java/lang/String deprecationStatus: null KtSyntheticJavaPropertySymbol: diff --git a/analysis/analysis-api/testData/scopes/memberScopeByFqName/kotlin.Function2.pretty.txt b/analysis/analysis-api/testData/scopes/memberScopeByFqName/kotlin.Function2.pretty.txt new file mode 100644 index 00000000000..41755d534fd --- /dev/null +++ b/analysis/analysis-api/testData/scopes/memberScopeByFqName/kotlin.Function2.pretty.txt @@ -0,0 +1,7 @@ +operator fun invoke(p1: P1, p2: P2): R + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String diff --git a/analysis/analysis-api/testData/scopes/memberScopeByFqName/overridenFunctionWithGenericBound.pretty.txt b/analysis/analysis-api/testData/scopes/memberScopeByFqName/overridenFunctionWithGenericBound.pretty.txt new file mode 100644 index 00000000000..614d8e08a78 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/memberScopeByFqName/overridenFunctionWithGenericBound.pretty.txt @@ -0,0 +1,11 @@ +abstract fun funWithOuterAndOwnGenericsAndBounds(tT1: TT1?, tT2: TT2?) + +open val test.TwoParams.propWithOuterAndOwnGenericsAndBounds: test.Foo? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase1.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase1.pretty.txt new file mode 100644 index 00000000000..aa8b4116019 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase1.pretty.txt @@ -0,0 +1,15 @@ +fun noGeneric() + +fun withOuterGeneric(t: test.Foo) + +fun withOwnGeneric(tt: TT) + +fun withOuterAndOwnGeneric(t: test.Foo, tt: TT) + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase2.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase2.pretty.txt new file mode 100644 index 00000000000..5fca677ad59 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase2.pretty.txt @@ -0,0 +1,15 @@ +val noGeneric: test.Foo? + +val withOuterGeneric: test.Foo? + +val TT.withOwnGeneric: TT? + +val TT.withOuterAndOwnGeneric: test.Foo? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase3.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase3.pretty.txt new file mode 100644 index 00000000000..b9a2114b8ee --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase3.pretty.txt @@ -0,0 +1,17 @@ +fun noGenerics_InterfaceWithFun() + +open fun withOuterGeneric_InterfaceWithFun(): test.SomeClass2 + +fun noGenerics_InterfaceWithFunBase() + +fun withOuterGenericT1_InterfaceWithFunBase(): test.SomeClass1 + +open fun withOuterGenericT2_InterfaceWithFunBase(): test.SomeClass2 + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase4.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase4.pretty.txt new file mode 100644 index 00000000000..784d316804b --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/ClassWithGenericBase4.pretty.txt @@ -0,0 +1,27 @@ +val noGenerics_InterfaceWithVal: test.SomeClass1 + +abstract val withOuterGeneric_InterfaceWithVal: test.SomeClass2 + +val Own.withOwnGeneric_InterfaceWithVal: test.SomeClass1 + +abstract val Own.withOwnAndOuterGeneric_InterfaceWithVal: test.SomeClass2 + +val noGenerics_InterfaceWithValBase: test.SomeClass1 + +val withOuterGenericT1_InterfaceWithValBase: test.SomeClass1 + +abstract val withOuterGenericT2_InterfaceWithValBase: test.SomeClass2 + +val Own.withOwnGeneric_InterfaceWithValBase: test.SomeClass1 + +val Own.withOwnAndOuterGenericT1_InterfaceWithValBase: test.SomeClass1 + +abstract val Own.withOwnAndOuterGenericT2_InterfaceWithValBase: test.SomeClass2 + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass1.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass1.pretty.txt new file mode 100644 index 00000000000..b0bdeb504a9 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass1.pretty.txt @@ -0,0 +1,11 @@ +fun noGenerics() + +fun withOuter(): Outer? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass2.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass2.pretty.txt new file mode 100644 index 00000000000..adb030204ca --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromFunctionInLocalClass2.pretty.txt @@ -0,0 +1,13 @@ +fun noGenerics() + +fun withOuter(): Outer? + +fun withOuterAndOwn(t: test.SomeClass): Outer? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass1.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass1.pretty.txt new file mode 100644 index 00000000000..5aa353babc4 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass1.pretty.txt @@ -0,0 +1,11 @@ +fun noGeneric() + +fun withOuter(): Outer? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +inner constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass2.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass2.pretty.txt new file mode 100644 index 00000000000..9e78f084e0d --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClass2.pretty.txt @@ -0,0 +1,13 @@ +fun noGeneric() + +fun withOuter(): Outer? + +fun withOwnAndOuter(t: test.SomeClass): Outer? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +inner constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor1.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor1.pretty.txt new file mode 100644 index 00000000000..492ef345557 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor1.pretty.txt @@ -0,0 +1,11 @@ +fun noGeneric() + +fun withOuter(): test.SomeClass? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +inner constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor2.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor2.pretty.txt new file mode 100644 index 00000000000..18a2f48b61a --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor2.pretty.txt @@ -0,0 +1,11 @@ +fun noGeneric() + +fun withOuter(): T? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +inner constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor3.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor3.pretty.txt new file mode 100644 index 00000000000..d35ac867d9d --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/GenericFromOuterClassInInnerClassInInheritor3.pretty.txt @@ -0,0 +1,13 @@ +fun noGeneric() + +fun withOuter(): test.SomeClass? + +fun withOwnAndOuter(t: test.SomeClass): test.SomeClass? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +inner constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/Implement_java_util_Collection.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/Implement_java_util_Collection.pretty.txt new file mode 100644 index 00000000000..bc5036ce49f --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/Implement_java_util_Collection.pretty.txt @@ -0,0 +1,33 @@ +fun size(): kotlin.Int + +fun isEmpty(): kotlin.Boolean + +operator fun contains(p0: kotlin.Any!): kotlin.Boolean + +abstract operator fun iterator(): kotlin.collections.MutableIterator + +fun toArray(): kotlin.Array<(out) kotlin.Any!>! + +fun toArray(p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! + +abstract fun add(p0: test.SomeClass!): kotlin.Boolean + +fun remove(p0: kotlin.Any!): kotlin.Boolean + +fun containsAll(p0: kotlin.collections.(Mutable)Collection<*>!): kotlin.Boolean + +abstract fun addAll(p0: kotlin.collections.(Mutable)Collection!): kotlin.Boolean + +fun removeAll(p0: kotlin.collections.(Mutable)Collection<*>!): kotlin.Boolean + +fun retainAll(p0: kotlin.collections.(Mutable)Collection<*>!): kotlin.Boolean + +fun clear() + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberFunctionWithOuterTypeParameterBound.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberFunctionWithOuterTypeParameterBound.pretty.txt new file mode 100644 index 00000000000..614d8e08a78 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberFunctionWithOuterTypeParameterBound.pretty.txt @@ -0,0 +1,11 @@ +abstract fun funWithOuterAndOwnGenericsAndBounds(tT1: TT1?, tT2: TT2?) + +open val test.TwoParams.propWithOuterAndOwnGenericsAndBounds: test.Foo? + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberPropertyWithOuterTypeParameterBound.pretty.txt b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberPropertyWithOuterTypeParameterBound.pretty.txt new file mode 100644 index 00000000000..657ad8131f8 --- /dev/null +++ b/analysis/analysis-api/testData/scopes/substitutionOverridesUnwrapping/MemberPropertyWithOuterTypeParameterBound.pretty.txt @@ -0,0 +1,11 @@ +val Own.withOwnGeneric_InterfaceWithValBase: test.ClassA + +abstract val Own.withOwnAndOuterGenericAsTypeBound_InterfaceWithValBase: test.ClassA + +open operator fun equals(other: kotlin.Any?): kotlin.Boolean + +open fun hashCode(): kotlin.Int + +open fun toString(): kotlin.String + +constructor() diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/class.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/class.pretty.txt new file mode 100644 index 00000000000..f4f2af3d715 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/class.pretty.txt @@ -0,0 +1 @@ +interface Lazy diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.descriptors.pretty.txt new file mode 100644 index 00000000000..a043afad1f4 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.descriptors.pretty.txt @@ -0,0 +1 @@ +class String : java.io.Serializable, kotlin.Comparable, kotlin.CharSequence \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.pretty.txt new file mode 100644 index 00000000000..bc2026bcd40 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/classFromJdk.pretty.txt @@ -0,0 +1 @@ +class String : kotlin.Any, java.io.Serializable, kotlin.Comparable, kotlin.CharSequence diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/enumEntry.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/enumEntry.pretty.txt new file mode 100644 index 00000000000..4480437796f --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/enumEntry.pretty.txt @@ -0,0 +1 @@ +SYNCHRONIZED diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/fileWalkDirectionEnum.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/fileWalkDirectionEnum.pretty.txt new file mode 100644 index 00000000000..4e683b90e7e --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/fileWalkDirectionEnum.pretty.txt @@ -0,0 +1,6 @@ +fun listOf(element: T): kotlin.collections.List + +@kotlin.internal.InlineOnly +inline fun listOf(): kotlin.collections.List + +fun listOf(vararg elements: T): kotlin.collections.List \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/iterator.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/iterator.pretty.txt new file mode 100644 index 00000000000..66777c9ee57 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/iterator.pretty.txt @@ -0,0 +1 @@ +interface Iterator diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/listOf.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/listOf.pretty.txt new file mode 100644 index 00000000000..5e42f44898e --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/listOf.pretty.txt @@ -0,0 +1 @@ +enum class FileWalkDirection diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/memberFunction.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/memberFunction.pretty.txt new file mode 100644 index 00000000000..06b0f7a707e --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/memberFunction.pretty.txt @@ -0,0 +1 @@ +operator fun get(index: kotlin.Int): E diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/memberFunctionWithOverloads.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/memberFunctionWithOverloads.pretty.txt new file mode 100644 index 00000000000..24eb40b45d9 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/memberFunctionWithOverloads.pretty.txt @@ -0,0 +1,3 @@ +fun listIterator(): kotlin.collections.ListIterator + +fun listIterator(index: kotlin.Int): kotlin.collections.ListIterator diff --git a/analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.pretty.txt new file mode 100644 index 00000000000..f7a47a954da --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.pretty.txt @@ -0,0 +1 @@ +interface MutableEntry : kotlin.collections.Map.Entry diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/annotations.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/annotations.pretty.txt new file mode 100644 index 00000000000..c626e7cf909 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/annotations.pretty.txt @@ -0,0 +1,13 @@ +annotation class Anno { + constructor(param1: kotlin.String, param2: kotlin.Int) + + val param1: kotlin.String + + val param2: kotlin.Int +} + +@Anno(param1 = "param", param2 = 2) +class X { + @Anno(param1 = "funparam", param2 = 3) + fun x() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/anonymousObject.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/anonymousObject.pretty.txt new file mode 100644 index 00000000000..9bc9a4271b4 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/anonymousObject.pretty.txt @@ -0,0 +1,3 @@ +class AnonymousContainer { + val anonymousObject: java.lang.Runnable +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/backingField.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/backingField.pretty.txt new file mode 100644 index 00000000000..2ff06eb4a43 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/backingField.pretty.txt @@ -0,0 +1 @@ +var p: kotlin.Int \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/class.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/class.pretty.txt new file mode 100644 index 00000000000..83d15dc739b --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/class.pretty.txt @@ -0,0 +1 @@ +class A diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/classInitializer.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/classInitializer.pretty.txt new file mode 100644 index 00000000000..a6976255338 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/classInitializer.pretty.txt @@ -0,0 +1,3 @@ +class A { + val i: kotlin.Int +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/classMembes.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/classMembes.pretty.txt new file mode 100644 index 00000000000..84bff1a3e0d --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/classMembes.pretty.txt @@ -0,0 +1,5 @@ +class A { + val a: kotlin.Int + + fun x(): kotlin.Int +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/classPrimaryConstructor.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/classPrimaryConstructor.pretty.txt new file mode 100644 index 00000000000..83d15dc739b --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/classPrimaryConstructor.pretty.txt @@ -0,0 +1 @@ +class A diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/classSecondaryConstructors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/classSecondaryConstructors.pretty.txt new file mode 100644 index 00000000000..b5f95c75745 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/classSecondaryConstructors.pretty.txt @@ -0,0 +1,5 @@ +class A { + constructor(x: kotlin.Int) + + constructor(y: kotlin.Int, z: kotlin.String) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/classWithTypeParams.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/classWithTypeParams.pretty.txt new file mode 100644 index 00000000000..f094e3bc423 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/classWithTypeParams.pretty.txt @@ -0,0 +1 @@ +class A diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/delegateField.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/delegateField.pretty.txt new file mode 100644 index 00000000000..c7569431585 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/delegateField.pretty.txt @@ -0,0 +1,17 @@ +class MyColor { + constructor(x: kotlin.Int, y: kotlin.Int, z: kotlin.Int) + + val x: kotlin.Int + + val y: kotlin.Int + + val z: kotlin.Int +} + +class Some { + val delegate: MyColor + + val lambda: kotlin.Lazy + + val nonLazy: MyColor +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.pretty.txt new file mode 100644 index 00000000000..b244bdc41f8 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.pretty.txt @@ -0,0 +1,39 @@ +@kotlin.Deprecated(message = "don't use i") +val i: kotlin.Int + +val i2: kotlin.Int + @kotlin.Deprecated(message = "don't use getter of i2") + get() + +var i3: kotlin.Int + get() + @kotlin.Deprecated(message = "don't use getter of i3") + set(value: kotlin.Int) + +var i4: kotlin.Int + @kotlin.Deprecated(message = "don't use getter of i4") + get() + @kotlin.Deprecated(message = "don't use setter of i4") + set(value: kotlin.Int) + +@kotlin.Deprecated(message = "don't use f") +fun f(): kotlin.Int + +@kotlin.Deprecated(level = kotlin.DeprecationLevel.ERROR, message = "don't use j") +val j: kotlin.Int + +@kotlin.Deprecated(level = kotlin.DeprecationLevel.HIDDEN, message = "don't use j2") +val j2: kotlin.Int + +val j2: kotlin.Int + +@kotlin.Deprecated(message = "don't use MyClass") +class MyClass + +class Foo { + @kotlin.Deprecated(message = "don't use i2") + val i2: kotlin.Int + + @kotlin.Deprecated(message = "don't use f2") + fun f2(): kotlin.Int +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.txt index c737230e6c9..c60078ac3cb 100644 --- a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.txt +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.descriptors.txt @@ -123,7 +123,7 @@ KtKotlinPropertySymbol: getterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=true, message=don't use getter of i4) javaGetterName: getI4 javaSetterName: setI4 - setterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=true, message=don't use getter of i4) + setterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=true, message=don't use setter of i4) KtFunctionSymbol: annotationsList: [ diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.kt b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.kt index c44b32937a6..3178e0579d1 100644 --- a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.kt +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.kt @@ -10,7 +10,7 @@ val i2: Int = 1 var i3: Int = 1 @get:Deprecated("don't use getter of i4") -@set:Deprecated("don't use getter of i4") +@set:Deprecated("don't use setter of i4") var i4: Int = 1 @Deprecated("don't use f") diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.pretty.txt new file mode 100644 index 00000000000..662a1520309 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.pretty.txt @@ -0,0 +1,39 @@ +@kotlin.Deprecated(message = "don't use i") +val i: kotlin.Int + +val i2: kotlin.Int + @kotlin.Deprecated(message = "don't use getter of i2") + get() + +var i3: kotlin.Int + @kotlin.Deprecated(message = "don't use getter of i3") + set(value: kotlin.Int) + +var i4: kotlin.Int + @kotlin.Deprecated(message = "don't use getter of i4") + get() + @kotlin.Deprecated(message = "don't use setter of i4") + set(value: kotlin.Int) + +@kotlin.Deprecated(message = "don't use f") +fun f(): kotlin.Int + +@kotlin.Deprecated(level = kotlin.DeprecationLevel.ERROR, message = "don't use j") +val j: kotlin.Int + +@kotlin.Deprecated(level = kotlin.DeprecationLevel.HIDDEN, message = "don't use j2") +val j2: kotlin.Int + +@java.lang.Deprecated +val j2: kotlin.Int + +@kotlin.Deprecated(message = "don't use MyClass") +class MyClass + +class Foo { + @kotlin.Deprecated(message = "don't use i2") + val i2: kotlin.Int + + @kotlin.Deprecated(message = "don't use f2") + fun f2(): kotlin.Int +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt index ec152c14dc9..cd29a2cbc60 100644 --- a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt @@ -123,7 +123,7 @@ KtKotlinPropertySymbol: getterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=true, message=don't use getter of i4) javaGetterName: getI4 javaSetterName: setI4 - setterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=true, message=don't use getter of i4) + setterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=true, message=don't use setter of i4) KtFunctionSymbol: annotationsList: [ @@ -358,4 +358,4 @@ KtKotlinPropertySymbol: getterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=false, message=null) javaGetterName: getJ2 javaSetterName: null - setterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=false, message=null) + setterDeprecationStatus: DeprecationInfo(deprecationLevel=WARNING, propagatesToOverrides=false, message=null) \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/enum.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/enum.pretty.txt new file mode 100644 index 00000000000..ea6f1c8c5d4 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/enum.pretty.txt @@ -0,0 +1,4 @@ +enum class X { + Y, + Z +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.descriptors.pretty.txt new file mode 100644 index 00000000000..2881d492ad1 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.descriptors.pretty.txt @@ -0,0 +1,9 @@ +enum class Style { + SHEET; + + constructor(value: kotlin.String) + + abstract val exitAnimation: kotlin.String + + val value: kotlin.String +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.pretty.txt new file mode 100644 index 00000000000..7c6a22d7396 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/enumValueMember.pretty.txt @@ -0,0 +1,9 @@ +enum class Style { + SHEET; + + constructor(value: kotlin.String) + + val value: kotlin.String + + abstract val exitAnimation: kotlin.String +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/extensionFunction.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/extensionFunction.pretty.txt new file mode 100644 index 00000000000..62fd5d92af5 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/extensionFunction.pretty.txt @@ -0,0 +1 @@ +fun kotlin.String.foo(): kotlin.Int diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/forLoopVariable.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/forLoopVariable.pretty.txt new file mode 100644 index 00000000000..f8432f094f8 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/forLoopVariable.pretty.txt @@ -0,0 +1 @@ +fun usage() \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/function.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/function.pretty.txt new file mode 100644 index 00000000000..7cb864de78b --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/function.pretty.txt @@ -0,0 +1 @@ +fun foo(x: kotlin.Int) diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/functionWithTypeParams.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/functionWithTypeParams.pretty.txt new file mode 100644 index 00000000000..1ac636c7227 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/functionWithTypeParams.pretty.txt @@ -0,0 +1 @@ +fun foo(x: X) diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/implicitConstructorDelegationCall.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/implicitConstructorDelegationCall.pretty.txt new file mode 100644 index 00000000000..c24d3b188f4 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/implicitConstructorDelegationCall.pretty.txt @@ -0,0 +1,3 @@ +class A { + constructor(i: kotlin.Int) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturn.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturn.pretty.txt new file mode 100644 index 00000000000..6fb98855c7f --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturn.pretty.txt @@ -0,0 +1 @@ +fun foo(): kotlin.Int diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturnInLambda.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturnInLambda.pretty.txt new file mode 100644 index 00000000000..812b3d3d83d --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/implicitReturnInLambda.pretty.txt @@ -0,0 +1,3 @@ +fun foo() + +private inline fun bar(lmbd: (kotlin.Int) -> kotlin.Int) \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/jvmName.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/jvmName.pretty.txt new file mode 100644 index 00000000000..436c8c0074d --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/jvmName.pretty.txt @@ -0,0 +1,13 @@ +class Foo { + var i: kotlin.Int + @kotlin.jvm.JvmName(name = "getMyI") + get() + @kotlin.jvm.JvmName(name = "setMyI") + set(value: kotlin.Int) + + var j: kotlin.Int + @kotlin.jvm.JvmName(name = "getMyJ") + get() + @kotlin.jvm.JvmName(name = "setMyJ") + set(value: kotlin.Int) +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/localDeclarations.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/localDeclarations.pretty.txt new file mode 100644 index 00000000000..a304a36ce0a --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/localDeclarations.pretty.txt @@ -0,0 +1 @@ +fun yyy() \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/memberFunctions.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/memberFunctions.pretty.txt new file mode 100644 index 00000000000..ee01f6f1e41 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/memberFunctions.pretty.txt @@ -0,0 +1,5 @@ +class A { + fun x(): kotlin.Int + + fun y() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/memberProperties.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/memberProperties.pretty.txt new file mode 100644 index 00000000000..d6f7889ce0c --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/memberProperties.pretty.txt @@ -0,0 +1,5 @@ +class A { + val x: kotlin.Int + + val kotlin.Int.y: kotlin.Int +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/outerAndInnerClasses.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/outerAndInnerClasses.pretty.txt new file mode 100644 index 00000000000..adfd37963f8 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/outerAndInnerClasses.pretty.txt @@ -0,0 +1,7 @@ +class X { + inner class Y + + class Z + + fun foo() +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/topLevelFunctions.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/topLevelFunctions.pretty.txt new file mode 100644 index 00000000000..173291fb1dd --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/topLevelFunctions.pretty.txt @@ -0,0 +1,3 @@ +fun x(): kotlin.Int + +fun y() \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/topLevelProperties.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/topLevelProperties.pretty.txt new file mode 100644 index 00000000000..cdd1c9b1caf --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/topLevelProperties.pretty.txt @@ -0,0 +1,3 @@ +val x: kotlin.Int + +val kotlin.Int.y: kotlin.Int \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/typeAlias.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAlias.pretty.txt new file mode 100644 index 00000000000..8b46872ca6a --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAlias.pretty.txt @@ -0,0 +1,3 @@ +class X + +private typealias Y = X \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.pretty.txt new file mode 100644 index 00000000000..f3d045afe52 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.pretty.txt @@ -0,0 +1,19 @@ +@kotlin.annotation.Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) +annotation class Anno1 + +@kotlin.annotation.Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) +annotation class Anno2 + +@kotlin.annotation.Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) +annotation class Anno3 + +@kotlin.annotation.Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) +annotation class Anno4 + +interface I + +class X : @Anno1 I { + fun f(arg: @Anno2 I): @Anno3 I + + val x: @Anno4 I +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.descriptors.pretty.txt new file mode 100644 index 00000000000..49e633fb3e5 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.descriptors.pretty.txt @@ -0,0 +1,7 @@ +fun primitive(vararg a: kotlin.Int) + +fun nullablePrimitive(vararg b: kotlin.Float?) + +fun nonPrimitive(vararg c: kotlin.Any) + +fun error(vararg d: ERROR_TYPE) \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.pretty.txt new file mode 100644 index 00000000000..926cba7f0ca --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/varargFunctions.pretty.txt @@ -0,0 +1,7 @@ +fun primitive(vararg a: kotlin.Int) + +fun nullablePrimitive(vararg b: kotlin.Float?) + +fun nonPrimitive(vararg c: kotlin.Any) + +fun error(vararg d: Unresolved) \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/accessorField.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/accessorField.pretty.txt new file mode 100644 index 00000000000..4b04d1c1b48 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/accessorField.pretty.txt @@ -0,0 +1 @@ +field \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.descriptors.pretty.txt new file mode 100644 index 00000000000..6dfed1c2ba8 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.descriptors.pretty.txt @@ -0,0 +1 @@ +constructor(p0: kotlin.collections.MutableCollectionkotlin.collections.Collection?!) \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.pretty.txt new file mode 100644 index 00000000000..7b7ac5c204f --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.pretty.txt @@ -0,0 +1 @@ +constructor(p0: kotlin.collections.(Mutable)Collection!) diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/genericFromFunctionInLocalClass.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/genericFromFunctionInLocalClass.pretty.txt new file mode 100644 index 00000000000..de62484fb35 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/genericFromFunctionInLocalClass.pretty.txt @@ -0,0 +1 @@ +fun withOuter(): Outer? diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.pretty.txt new file mode 100644 index 00000000000..de62484fb35 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.pretty.txt @@ -0,0 +1 @@ +fun withOuter(): Outer? diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/samConstructor.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/samConstructor.pretty.txt new file mode 100644 index 00000000000..a9eadce3ce4 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/samConstructor.pretty.txt @@ -0,0 +1 @@ +fun Runnable(function: () -> kotlin.Unit): java.lang.Runnable