From 1aa5cf031fc83057d6680b8b99caeb0e79a576a8 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 27 Oct 2023 15:47:03 +0200 Subject: [PATCH] [Analysis API FIR] fix "ConeClassLikeTypeImpl is not resolved to symbol for on-error type" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We should not expect builtins to be always available as they are taken from indecies. For K1 and FIR Standalone implementations, the builtins are always available. ^KT-62010 fixed --- ...sSourceModuleBuiltInTypeTestGenerated.java | 60 +++++++++++++++++++ .../api/fir/components/KtFirBuiltInTypes.kt | 4 +- ...tSourceModuleBuiltInTypeTestGenerated.java | 48 +++++++++++++++ ...sSourceModuleBuiltInTypeTestGenerated.java | 60 +++++++++++++++++++ .../cases/types/AbstractBuiltInTypeTest.kt | 40 +++++++++++++ ...sSourceModuleBuiltInTypeTestGenerated.java | 60 +++++++++++++++++++ .../testData/types/builtins/any.kt | 5 ++ .../testData/types/builtins/any.txt | 11 ++++ .../anyWithoutBuiltins.descriptors.txt | 11 ++++ .../types/builtins/anyWithoutBuiltins.kt | 6 ++ .../anyWithoutBuiltins.standalone.fir.txt | 11 ++++ .../types/builtins/anyWithoutBuiltins.txt | 12 ++++ .../tests/analysis/api/analysisApi.kt | 5 ++ 13 files changed, 331 insertions(+), 2 deletions(-) create mode 100644 analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/types/Fe10IdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java create mode 100644 analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisScriptSourceModuleBuiltInTypeTestGenerated.java create mode 100644 analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java create mode 100644 analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractBuiltInTypeTest.kt create mode 100644 analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/types/FirStandaloneNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java create mode 100644 analysis/analysis-api/testData/types/builtins/any.kt create mode 100644 analysis/analysis-api/testData/types/builtins/any.txt create mode 100644 analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.descriptors.txt create mode 100644 analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.kt create mode 100644 analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.standalone.fir.txt create mode 100644 analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.txt diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/types/Fe10IdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/types/Fe10IdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java new file mode 100644 index 00000000000..51615538b67 --- /dev/null +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/types/Fe10IdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java @@ -0,0 +1,60 @@ +/* + * Copyright 2010-2023 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.analysis.api.fe10.test.cases.generated.cases.types; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fe10.test.configurator.AnalysisApiFe10TestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/types/builtins") +@TestDataPath("$PROJECT_ROOT") +public class Fe10IdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated extends AbstractBuiltInTypeTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFe10TestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fe10, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInBuiltins() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/types/builtins"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("any.kt") + public void testAny() throws Exception { + runTest("analysis/analysis-api/testData/types/builtins/any.kt"); + } + + @Test + @TestMetadata("anyWithoutBuiltins.kt") + public void testAnyWithoutBuiltins() throws Exception { + runTest("analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.kt"); + } +} diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirBuiltInTypes.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirBuiltInTypes.kt index e53de5edd4a..5ddf19d416d 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirBuiltInTypes.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirBuiltInTypes.kt @@ -42,7 +42,7 @@ internal class KtFirBuiltInTypes( override val NULLABLE_ANY: KtType by cachedBuiltin(builtinTypes.nullableAnyType) override val NULLABLE_NOTHING: KtType by cachedBuiltin(builtinTypes.nullableNothingType) - private fun cachedBuiltin(builtinTypeRef: FirImplicitBuiltinTypeRef): ValidityAwareCachedValue = cached { - KtFirUsualClassType(builtinTypeRef.type as ConeClassLikeTypeImpl, builder) + private fun cachedBuiltin(builtinTypeRef: FirImplicitBuiltinTypeRef): ValidityAwareCachedValue = cached { + builder.typeBuilder.buildKtType(builtinTypeRef) } } \ No newline at end of file diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisScriptSourceModuleBuiltInTypeTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisScriptSourceModuleBuiltInTypeTestGenerated.java new file mode 100644 index 00000000000..f3e6069b348 --- /dev/null +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisScriptSourceModuleBuiltInTypeTestGenerated.java @@ -0,0 +1,48 @@ +/* + * Copyright 2010-2023 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.analysis.api.fir.test.cases.generated.cases.types; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/types/builtins") +@TestDataPath("$PROJECT_ROOT") +public class FirIdeNormalAnalysisScriptSourceModuleBuiltInTypeTestGenerated extends AbstractBuiltInTypeTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.ScriptSource, + AnalysisSessionMode.Normal, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInBuiltins() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/types/builtins"), Pattern.compile("^(.+)\\.kts$"), null, true); + } +} diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java new file mode 100644 index 00000000000..bd236625042 --- /dev/null +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/types/FirIdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java @@ -0,0 +1,60 @@ +/* + * Copyright 2010-2023 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.analysis.api.fir.test.cases.generated.cases.types; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/types/builtins") +@TestDataPath("$PROJECT_ROOT") +public class FirIdeNormalAnalysisSourceModuleBuiltInTypeTestGenerated extends AbstractBuiltInTypeTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInBuiltins() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/types/builtins"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("any.kt") + public void testAny() throws Exception { + runTest("analysis/analysis-api/testData/types/builtins/any.kt"); + } + + @Test + @TestMetadata("anyWithoutBuiltins.kt") + public void testAnyWithoutBuiltins() throws Exception { + runTest("analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.kt"); + } +} diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractBuiltInTypeTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractBuiltInTypeTest.kt new file mode 100644 index 00000000000..71775a04bad --- /dev/null +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/types/AbstractBuiltInTypeTest.kt @@ -0,0 +1,40 @@ +/* + * Copyright 2010-2022 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.analysis.api.impl.base.test.cases.types + +import org.jetbrains.kotlin.analysis.api.KtAnalysisSession +import org.jetbrains.kotlin.analysis.api.types.KtType +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder +import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer +import org.jetbrains.kotlin.test.directives.model.singleValue +import org.jetbrains.kotlin.test.model.TestModule +import org.jetbrains.kotlin.test.services.TestServices +import java.util.Locale + +abstract class AbstractBuiltInTypeTest : AbstractTypeTest() { + + override fun configureTest(builder: TestConfigurationBuilder) { + super.configureTest(builder) + builder.apply { + useDirectives(Directives) + } + } + + context(KtAnalysisSession) + override fun getType(ktFile: KtFile, module: TestModule, testServices: TestServices): KtType { + val builtInTypeName = module.directives.singleValue(Directives.BUILTIN_TYPE_NAME) + val typeMethod = builtinTypes::class.java.methods.singleOrNull { + it.name == "get${builtInTypeName.uppercase(Locale.US)}" + }!! + typeMethod.isAccessible = true + return typeMethod.invoke(builtinTypes) as KtType + } + + object Directives : SimpleDirectivesContainer() { + val BUILTIN_TYPE_NAME by stringDirective("name of built in type") + } +} \ No newline at end of file diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/types/FirStandaloneNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/types/FirStandaloneNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java new file mode 100644 index 00000000000..1342853b3d6 --- /dev/null +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/types/FirStandaloneNormalAnalysisSourceModuleBuiltInTypeTestGenerated.java @@ -0,0 +1,60 @@ +/* + * Copyright 2010-2023 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.analysis.api.standalone.fir.test.cases.generated.cases.types; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.standalone.fir.test.AnalysisApiFirStandaloneModeTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/types/builtins") +@TestDataPath("$PROJECT_ROOT") +public class FirStandaloneNormalAnalysisSourceModuleBuiltInTypeTestGenerated extends AbstractBuiltInTypeTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirStandaloneModeTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Standalone + ) + ); + } + + @Test + public void testAllFilesPresentInBuiltins() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/types/builtins"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("any.kt") + public void testAny() throws Exception { + runTest("analysis/analysis-api/testData/types/builtins/any.kt"); + } + + @Test + @TestMetadata("anyWithoutBuiltins.kt") + public void testAnyWithoutBuiltins() throws Exception { + runTest("analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.kt"); + } +} diff --git a/analysis/analysis-api/testData/types/builtins/any.kt b/analysis/analysis-api/testData/types/builtins/any.kt new file mode 100644 index 00000000000..758fac9f00e --- /dev/null +++ b/analysis/analysis-api/testData/types/builtins/any.kt @@ -0,0 +1,5 @@ +// BUILTIN_TYPE_NAME: Any + +fun main() { + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/types/builtins/any.txt b/analysis/analysis-api/testData/types/builtins/any.txt new file mode 100644 index 00000000000..8b3c501a205 --- /dev/null +++ b/analysis/analysis-api/testData/types/builtins/any.txt @@ -0,0 +1,11 @@ +annotationsList: [] +classId: kotlin/Any +classSymbol: KtNamedClassOrObjectSymbol(kotlin/Any) +nullability: NON_NULLABLE +ownTypeArguments: [] +qualifiers: [ + qualifier: + name: Any + symbol: KtNamedClassOrObjectSymbol(kotlin/Any) + typeArguments: [] +] diff --git a/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.descriptors.txt b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.descriptors.txt new file mode 100644 index 00000000000..58129a90296 --- /dev/null +++ b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.descriptors.txt @@ -0,0 +1,11 @@ +annotationsList: [] +classId: kotlin/Any +classSymbol: KtNamedClassOrObjectSymbol(kotlin/Any) +nullability: NON_NULLABLE +ownTypeArguments: [] +qualifiers: [ + qualifier: + name: Any + symbol: KtNamedClassOrObjectSymbol(kotlin/Any) + typeArguments: [] +] \ No newline at end of file diff --git a/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.kt b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.kt new file mode 100644 index 00000000000..8597560591a --- /dev/null +++ b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.kt @@ -0,0 +1,6 @@ +// BUILTIN_TYPE_NAME: Any +// NO_RUNTIME + +fun main() { + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.standalone.fir.txt b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.standalone.fir.txt new file mode 100644 index 00000000000..58129a90296 --- /dev/null +++ b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.standalone.fir.txt @@ -0,0 +1,11 @@ +annotationsList: [] +classId: kotlin/Any +classSymbol: KtNamedClassOrObjectSymbol(kotlin/Any) +nullability: NON_NULLABLE +ownTypeArguments: [] +qualifiers: [ + qualifier: + name: Any + symbol: KtNamedClassOrObjectSymbol(kotlin/Any) + typeArguments: [] +] \ No newline at end of file diff --git a/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.txt b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.txt new file mode 100644 index 00000000000..8c4b6a61d47 --- /dev/null +++ b/analysis/analysis-api/testData/types/builtins/anyWithoutBuiltins.txt @@ -0,0 +1,12 @@ +annotationsList: [] +candidateClassSymbols: [] +errorMessage: Symbol not found for kotlin/Any +nullability: NON_NULLABLE +qualifiers: [ + qualifier: + name: kotlin + typeArguments: [] + qualifier: + name: Any + typeArguments: [] +] diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt index 9e5acd458b3..757c61fd9b7 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt @@ -56,6 +56,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references.Abstrac import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references.AbstractReferenceShortenerTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.* import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractAnalysisApiSubstitutorsTest +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractTypeByDeclarationReturnTypeTest import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderTest import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode @@ -171,6 +172,10 @@ private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() { test(AbstractTypeByDeclarationReturnTypeTest::class) { model(it, "byDeclarationReturnType") } + + test(AbstractBuiltInTypeTest::class) { + model(it, "builtins") + } } group("annotations") {