From c1722350b6417c2d3c86f06754bac34d7db30584 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Wed, 13 Jan 2021 14:40:28 +0100 Subject: [PATCH] Add constructors to KtScope - KtClassLikeSymbol.primaryConstructor was removed - Constructors were removed from getCallableMembers because constructors has no name (or special name ``) and previous implementation was incorrect - KtScope.getAllSymbols returns constructors as before. Before it was like this because of the incorrect implementation of getCallableMembers - getConstructors has sence only for class scope, for the rest cases it is empty --- .../asJava/lightClasses/Constructors.java | 12 +++ .../asJava/lightClasses/Constructors.kt | 9 +++ .../OnlySecondaryConstructors.java | 6 ++ .../lightClasses/OnlySecondaryConstructors.kt | 9 +++ .../CompilerLightClassTestGenerated.java | 10 +++ .../classes/FirLightClassTestGenerated.java | 10 +++ .../idea/frontend/api/scopes/KtScope.kt | 2 + .../frontend/api/symbols/KtClassLikeSymbol.kt | 2 - .../asJava/classes/FirLightClassForSymbol.kt | 26 ++----- .../idea/asJava/classes/firLightClassUtils.kt | 29 ++++--- .../api/fir/scopes/KtFirCompositeScope.kt | 7 ++ .../api/fir/scopes/KtFirDelegatingScope.kt | 23 +++--- .../api/fir/scopes/KtFirEmptyMemberScope.kt | 4 + .../frontend/api/fir/scopes/KtFirFileScope.kt | 3 + .../fir/scopes/KtFirNonStarImportingScope.kt | 2 + .../api/fir/scopes/KtFirPackageScope.kt | 3 + .../api/fir/scopes/KtFirStarImportingScope.kt | 3 + .../fir/symbols/KtFirClassOrObjectSymbol.kt | 5 -- .../fileScopeTest/simpleFileScope.kt.result | 2 - .../testData/memberScopeByFqName/Int.txt | 25 +++--- .../memberScopeByFqName/java.lang.String.txt | 77 +++++++++---------- .../resoreSymbolFromLibrary/class.txt | 1 - .../resoreSymbolFromLibrary/classFromJdk.txt | 1 - .../resoreSymbolFromLibrary/nestedClass.txt | 1 - .../testData/symbolPointer/class.kt | 1 - .../symbolPointer/classPrimaryConstructor.kt | 1 - .../classSecondaryConstructors.kt | 1 - .../testData/symbolPointer/enum.kt | 1 - .../testData/symbolPointer/memberFunctions.kt | 1 - .../symbolPointer/memberProperties.kt | 1 - .../testData/symbolsByFqName/iterator.txt | 1 - .../testData/symbolsByFqName/listOf.txt | 1 - .../testData/symbolsByPsi/annotations.kt | 2 - .../testData/symbolsByPsi/anonymousObject.kt | 1 - .../testData/symbolsByPsi/class.kt | 1 - .../testData/symbolsByPsi/classMembes.kt | 1 - .../symbolsByPsi/classWithTypeParams.kt | 1 - .../symbolsByPsi/localDeclarations.kt | 1 - .../testData/symbolsByPsi/typeAnnotations.kt | 6 -- .../UltraLightClassSanityTestGenerated.java | 10 +++ .../IdeCompiledLightClassTestGenerated.java | 10 +++ .../resolve/IdeLightClassTestGenerated.java | 10 +++ 42 files changed, 197 insertions(+), 126 deletions(-) create mode 100644 compiler/testData/asJava/lightClasses/Constructors.java create mode 100644 compiler/testData/asJava/lightClasses/Constructors.kt create mode 100644 compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.java create mode 100644 compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt diff --git a/compiler/testData/asJava/lightClasses/Constructors.java b/compiler/testData/asJava/lightClasses/Constructors.java new file mode 100644 index 00000000000..82f1c944e99 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/Constructors.java @@ -0,0 +1,12 @@ +public final class Constructors /* Constructors*/ { + private final int valInPrimary; + + private Constructors();// .ctor() + + public Constructors(@org.jetbrains.annotations.NotNull() java.lang.String);// .ctor(java.lang.String) + + public Constructors(int);// .ctor(int) + + public final int getValInPrimary();// getValInPrimary() + +} \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/Constructors.kt b/compiler/testData/asJava/lightClasses/Constructors.kt new file mode 100644 index 00000000000..c849baf0bc5 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/Constructors.kt @@ -0,0 +1,9 @@ +// Constructors + +class Constructors(val valInPrimary: Int) { + constructor(parameterInSecondary: String): this(4) + private constructor(): this(2) +} + +// LAZINESS:NoLaziness +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.java b/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.java new file mode 100644 index 00000000000..d6951f5903d --- /dev/null +++ b/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.java @@ -0,0 +1,6 @@ +public final class OnlySecondaryConstructors /* OnlySecondaryConstructors*/ { + public OnlySecondaryConstructors();// .ctor() + + public OnlySecondaryConstructors(int);// .ctor(int) + +} diff --git a/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt b/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt new file mode 100644 index 00000000000..4e431afa066 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt @@ -0,0 +1,9 @@ +// OnlySecondaryConstructors + +class OnlySecondaryConstructors { + constructor(): super() + constructor(p: Int): this() +} + +// LAZINESS:NoLaziness +// FIR_COMPARISON \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java index d9a44810bf4..b20a2d87734 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java @@ -49,6 +49,11 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT runTest("compiler/testData/asJava/lightClasses/AnnotationClass.kt"); } + @TestMetadata("Constructors.kt") + public void testConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/Constructors.kt"); + } + @TestMetadata("DataClassWithCustomImplementedMembers.kt") public void testDataClassWithCustomImplementedMembers() throws Exception { runTest("compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt"); @@ -129,6 +134,11 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT runTest("compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt"); } + @TestMetadata("OnlySecondaryConstructors.kt") + public void testOnlySecondaryConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt"); + } + @TestMetadata("PublishedApi.kt") public void testPublishedApi() throws Exception { runTest("compiler/testData/asJava/lightClasses/PublishedApi.kt"); diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java index 7b7911bc483..06606e3307b 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java @@ -49,6 +49,11 @@ public class FirLightClassTestGenerated extends AbstractFirLightClassTest { runTest("compiler/testData/asJava/lightClasses/AnnotationClass.kt"); } + @TestMetadata("Constructors.kt") + public void testConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/Constructors.kt"); + } + @TestMetadata("DataClassWithCustomImplementedMembers.kt") public void testDataClassWithCustomImplementedMembers() throws Exception { runTest("compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt"); @@ -129,6 +134,11 @@ public class FirLightClassTestGenerated extends AbstractFirLightClassTest { runTest("compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt"); } + @TestMetadata("OnlySecondaryConstructors.kt") + public void testOnlySecondaryConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt"); + } + @TestMetadata("PublishedApi.kt") public void testPublishedApi() throws Exception { runTest("compiler/testData/asJava/lightClasses/PublishedApi.kt"); diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/scopes/KtScope.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/scopes/KtScope.kt index 83a4ab18b4b..e4a61eb4153 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/scopes/KtScope.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/scopes/KtScope.kt @@ -26,11 +26,13 @@ interface KtScope : ValidityTokenOwner { sequence { yieldAll(getCallableSymbols()) yieldAll(getClassifierSymbols()) + yieldAll(getConstructors()) } } fun getCallableSymbols(nameFilter: KtScopeNameFilter = { true }): Sequence fun getClassifierSymbols(nameFilter: KtScopeNameFilter = { true }): Sequence + fun getConstructors(): Sequence fun containsName(name: Name): Boolean = withValidityAssertion { name in getCallableNames() || name in getClassifierNames() diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt index f7fc5a2ed3e..de9ce655f18 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt @@ -54,8 +54,6 @@ abstract class KtClassOrObjectSymbol : KtClassLikeSymbol(), abstract val superTypes: List - abstract val primaryConstructor: KtConstructorSymbol? - abstract override fun createPointer(): KtSymbolPointer } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt index e6a752f217f..2897ca862ee 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt @@ -6,16 +6,10 @@ package org.jetbrains.kotlin.idea.asJava import com.intellij.psi.* -import org.jetbrains.kotlin.asJava.builder.memberIndex -import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_BASE -import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_DEFAULT_CTOR import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.idea.asJava.classes.* -import org.jetbrains.kotlin.idea.asJava.classes.createInheritanceList -import org.jetbrains.kotlin.idea.asJava.classes.createInnerClasses -import org.jetbrains.kotlin.idea.asJava.classes.createMethods import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext import org.jetbrains.kotlin.idea.frontend.api.symbols.* import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind @@ -91,8 +85,11 @@ internal class FirLightClassForSymbol( val result = mutableListOf() analyzeWithSymbolAsContext(classOrObjectSymbol) { - val callableSymbols = classOrObjectSymbol.getDeclaredMemberScope().getCallableSymbols() - val visibleDeclarations = callableSymbols.applyIf(isEnum) { + val declaredMemberScope = classOrObjectSymbol.getDeclaredMemberScope() + + createConstructors(declaredMemberScope.getConstructors(), result) + + val visibleDeclarations = declaredMemberScope.getCallableSymbols().applyIf(isEnum) { filterNot { function -> function is KtFunctionSymbol && function.name.asString().let { it == "values" || it == "valueOf" } } @@ -106,19 +103,6 @@ internal class FirLightClassForSymbol( createMethods(visibleDeclarations, result, suppressStaticForMethods = suppressStatic) } - if (result.none { it.isConstructor }) { - classOrObjectSymbol.primaryConstructor?.let { - result.add( - FirLightConstructorForSymbol( - constructorSymbol = it, - lightMemberOrigin = null, - containingClass = this, - methodIndex = METHOD_INDEX_FOR_DEFAULT_CTOR - ) - ) - } - } - addMethodsFromCompanionIfNeeded(result) result diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/firLightClassUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/firLightClassUtils.kt index 719eae6f76d..8fee9ca1004 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/firLightClassUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/firLightClassUtils.kt @@ -121,6 +121,23 @@ private fun lightClassForEnumEntry(ktEnumEntry: KtEnumEntry): KtLightClass? { return (targetField as? FirLightFieldForEnumEntry)?.initializingClass as? KtLightClass } +internal fun FirLightClassForSymbol.createConstructors( + declarations: Sequence, + result: MutableList +) { + for (declaration in declarations) { + if (declaration.isHiddenOrSynthetic()) continue + result.add( + FirLightConstructorForSymbol( + constructorSymbol = declaration, + lightMemberOrigin = null, + containingClass = this@createConstructors, + methodIndex = METHOD_INDEX_BASE + ) + ) + } +} + internal fun FirLightClassBase.createMethods( declarations: Sequence, result: MutableList, @@ -167,17 +184,6 @@ internal fun FirLightClassBase.createMethods( } } } - is KtConstructorSymbol -> { - if (declaration.isHiddenOrSynthetic()) continue - result.add( - FirLightConstructorForSymbol( - constructorSymbol = declaration, - lightMemberOrigin = null, - containingClass = this@createMethods, - methodIndex = METHOD_INDEX_BASE - ) - ) - } is KtPropertySymbol -> { if (declaration is KtKotlinPropertySymbol && declaration.isConst) continue @@ -229,6 +235,7 @@ internal fun FirLightClassBase.createMethods( ) } } + is KtConstructorSymbol -> error("Constructors should be handled separately and not passed to this function") } } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirCompositeScope.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirCompositeScope.kt index 1c3f554c0a6..a4f4faf5487 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirCompositeScope.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirCompositeScope.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScope import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassifierSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.name.Name @@ -59,6 +60,12 @@ class KtFirCompositeScope( } } + override fun getConstructors(): Sequence = withValidityAssertion { + sequence { + subScopes.forEach { yieldAll(it.getConstructors()) } + } + } + override fun containsName(name: Name): Boolean = withValidityAssertion { subScopes.any { it.containsName(name) } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirDelegatingScope.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirDelegatingScope.kt index 11f67dfc73f..be977b93464 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirDelegatingScope.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirDelegatingScope.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScope import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassifierSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.name.Name @@ -49,6 +50,10 @@ internal abstract class KtFirDelegatingScope( firScope.getClassifierSymbols(getClassifierNames().filter(nameFilter), builder) } + override fun getConstructors(): Sequence = withValidityAssertion { + firScope.getConstructors(builder) + } + override fun containsName(name: Name): Boolean = withValidityAssertion { name in getAllNames() } @@ -70,15 +75,6 @@ internal fun FirScope.getCallableSymbols(callableNames: Collection, builde } callables.add(symbol) } - - if (name.isSpecial && name.asString() == "") { - processDeclaredConstructors { firConstructor -> - firConstructor.fir.let { fir -> - callables.add(builder.buildConstructorSymbol(fir)) - } - } - } - yieldAll(callables) } } @@ -93,3 +89,12 @@ internal fun FirScope.getClassifierSymbols(classLikeNames: Collection, bui yieldAll(classifierSymbols) } } + +internal fun FirScope.getConstructors(builder: KtSymbolByFirBuilder): Sequence = + sequence { + val constructorSymbols = mutableListOf() + processDeclaredConstructors { firSymbol -> + constructorSymbols.add(builder.buildConstructorSymbol(firSymbol.fir)) + } + yieldAll(constructorSymbols) + } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirEmptyMemberScope.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirEmptyMemberScope.kt index 48dc5c95104..367579d9636 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirEmptyMemberScope.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirEmptyMemberScope.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.idea.frontend.api.scopes.KtMemberScope import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassifierSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithMembers import org.jetbrains.kotlin.name.Name @@ -26,6 +27,9 @@ internal class KtFirEmptyMemberScope(override val owner: KtSymbolWithMembers) : override fun getClassifierSymbols(nameFilter: KtScopeNameFilter): Sequence = emptySequence() + override fun getConstructors(): Sequence = + emptySequence() + override val token: ValidityToken get() = owner.token } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirFileScope.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirFileScope.kt index 1a388473b9f..606de3f4e40 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirFileScope.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirFileScope.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.scopes.KtDeclarationScope import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassifierSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithDeclarations import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.name.Name @@ -92,4 +93,6 @@ internal class KtFirFileScope( } } } + + override fun getConstructors(): Sequence = emptySequence() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirNonStarImportingScope.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirNonStarImportingScope.kt index 33cee8042e4..850bb35256e 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirNonStarImportingScope.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirNonStarImportingScope.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.idea.frontend.api.scopes.NonStarImport import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassifierSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.name.Name @@ -51,6 +52,7 @@ internal class KtFirNonStarImportingScope( firScope.getClassifierSymbols(getClassifierNames().filter(nameFilter), builder) } + override fun getConstructors(): Sequence = emptySequence() override fun getCallableNames(): Set = withValidityAssertion { imports.mapNotNullTo(hashSetOf()) { it.callableName } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirPackageScope.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirPackageScope.kt index c248c5bba43..7f4495c8110 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirPackageScope.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirPackageScope.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.idea.frontend.api.scopes.KtPackageScope import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassifierSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelClassByPackageIndex import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelFunctionByPackageIndex @@ -52,4 +53,6 @@ internal class KtFirPackageScope( override fun getClassifierSymbols(nameFilter: KtScopeNameFilter): Sequence = withValidityAssertion { firScope.getClassifierSymbols(getClassifierNames().filter(nameFilter), builder) } + + override fun getConstructors(): Sequence = emptySequence() } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirStarImportingScope.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirStarImportingScope.kt index f1e255166a0..0cf2ebcd9f6 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirStarImportingScope.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/scopes/KtFirStarImportingScope.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef import org.jetbrains.kotlin.idea.frontend.api.scopes.* import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassifierSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelClassByPackageIndex import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelFunctionByPackageIndex @@ -56,6 +57,8 @@ internal class KtFirStarImportingScope( firScope.getClassifierSymbols(getClassifierNames().filter(nameFilter), builder) } + override fun getConstructors(): Sequence = emptySequence() + // todo cache? @OptIn(ExperimentalStdlibApi::class) override fun getCallableNames(): Set = withValidityAssertion { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt index 44e8bc4562f..d6f517b9686 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol -import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.* import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer @@ -62,10 +61,6 @@ internal class KtFirClassOrObjectSymbol( firRef.superTypesAndAnnotationsList(builder) } - override val primaryConstructor: KtConstructorSymbol? by firRef.withFirAndCache(FirResolvePhase.RAW_FIR) { fir -> - fir.getPrimaryConstructorIfAny()?.let { builder.buildConstructorSymbol(it) } - } - override val typeParameters by firRef.withFirAndCache { fir -> fir.typeParameters.map { typeParameter -> builder.buildTypeParameterSymbol(typeParameter.symbol.fir) diff --git a/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result b/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result index 532580e9af3..42e97ff1d2e 100644 --- a/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result +++ b/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result @@ -67,7 +67,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: C origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] @@ -86,7 +85,6 @@ KtFirClassOrObjectSymbol: modality: ABSTRACT name: I origin: SOURCE - primaryConstructor: null superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt b/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt index 6b8c2c7daba..5b2cc12f6dc 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt @@ -1161,18 +1161,6 @@ KtFirFunctionSymbol: valueParameters: [KtFirFunctionValueParameterSymbol(other)] visibility: PUBLIC -KtFirConstructorSymbol: - annotatedType: [] kotlin/Int - annotations: [] - containingClassIdIfNonLocal: kotlin/Int - dispatchType: null - isPrimary: true - origin: LIBRARY - symbolKind: MEMBER - typeParameters: [] - valueParameters: [] - visibility: PRIVATE - KtFirFunctionSymbol: annotatedType: [] kotlin/Boolean annotations: [] @@ -1246,8 +1234,19 @@ KtFirClassOrObjectSymbol: modality: FINAL name: Companion origin: LIBRARY - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: MEMBER typeParameters: [] visibility: PUBLIC + +KtFirConstructorSymbol: + annotatedType: [] kotlin/Int + annotations: [] + containingClassIdIfNonLocal: kotlin/Int + dispatchType: null + isPrimary: true + origin: LIBRARY + symbolKind: MEMBER + typeParameters: [] + valueParameters: [] + visibility: PRIVATE diff --git a/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt b/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt index 08d75085f39..aab31794f51 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt @@ -1174,6 +1174,44 @@ KtFirFunctionSymbol: valueParameters: [] visibility: PUBLIC +KtFirFunctionSymbol: + annotatedType: [] kotlin/Char + annotations: [] + callableIdIfNonLocal: kotlin.CharSequence.get + dispatchType: kotlin/CharSequence + isExtension: false + isExternal: false + isInline: false + isOperator: true + isOverride: false + isSuspend: false + modality: ABSTRACT + name: get + origin: LIBRARY + receiverType: null + symbolKind: MEMBER + typeParameters: [] + valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC + +KtFirClassOrObjectSymbol: + annotations: [] + classIdIfNonLocal: java/lang/String.CaseInsensitiveComparator + classKind: CLASS + companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: OPEN + name: CaseInsensitiveComparator + origin: JAVA + superTypes: [[] kotlin/Any, [] java/util/Comparator!>, [] java/io/Serializable] + symbolKind: MEMBER + typeParameters: [] + visibility: PRIVATE + KtFirConstructorSymbol: annotatedType: [] java/lang/String annotations: [] @@ -1377,42 +1415,3 @@ KtFirConstructorSymbol: typeParameters: [] valueParameters: [KtFirConstructorValueParameterSymbol(offset), KtFirConstructorValueParameterSymbol(count), KtFirConstructorValueParameterSymbol(value)] visibility: UNKNOWN - -KtFirFunctionSymbol: - annotatedType: [] kotlin/Char - annotations: [] - callableIdIfNonLocal: kotlin.CharSequence.get - dispatchType: kotlin/CharSequence - isExtension: false - isExternal: false - isInline: false - isOperator: true - isOverride: false - isSuspend: false - modality: ABSTRACT - name: get - origin: LIBRARY - receiverType: null - symbolKind: MEMBER - typeParameters: [] - valueParameters: [KtFirFunctionValueParameterSymbol(index)] - visibility: PUBLIC - -KtFirClassOrObjectSymbol: - annotations: [] - classIdIfNonLocal: java/lang/String.CaseInsensitiveComparator - classKind: CLASS - companionObject: null - isData: false - isExternal: false - isFun: false - isInline: false - isInner: false - modality: OPEN - name: CaseInsensitiveComparator - origin: JAVA - primaryConstructor: null - superTypes: [[] kotlin/Any, [] java/util/Comparator!>, [] java/io/Serializable] - symbolKind: MEMBER - typeParameters: [] - visibility: PRIVATE diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt index 345ad746ab6..11e8d1b8076 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt @@ -16,7 +16,6 @@ KtFirClassOrObjectSymbol: modality: ABSTRACT name: Lazy origin: LIBRARY - primaryConstructor: null superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [KtFirTypeParameterSymbol(T)] diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt index 11425b06b19..316aa0d412b 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt @@ -16,7 +16,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: String origin: JAVA - primaryConstructor: null superTypes: [[] kotlin/Any, [] java/io/Serializable, [] kotlin/Comparable!>, [] kotlin/CharSequence] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt index a82f48bc2b0..1842d61fa43 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt @@ -14,7 +14,6 @@ KtFirClassOrObjectSymbol: modality: ABSTRACT name: MutableEntry origin: LIBRARY - primaryConstructor: null superTypes: [[] kotlin/collections/Map.Entry] symbolKind: MEMBER typeParameters: [KtFirTypeParameterSymbol(K), KtFirTypeParameterSymbol(V)] diff --git a/idea/idea-frontend-fir/testData/symbolPointer/class.kt b/idea/idea-frontend-fir/testData/symbolPointer/class.kt index b6a5c3dd0c5..e07d0c4a014 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/class.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/class.kt @@ -15,7 +15,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt b/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt index 54dd3b9d907..afd6ed56a86 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt @@ -27,7 +27,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt b/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt index 67bb868e3b7..c40b28edf69 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt @@ -80,7 +80,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolPointer/enum.kt b/idea/idea-frontend-fir/testData/symbolPointer/enum.kt index a5aedfef958..dbe3d999397 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/enum.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/enum.kt @@ -30,7 +30,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: X origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Enum] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt b/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt index b4616a34c0d..cad83c89298 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt @@ -57,7 +57,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt b/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt index 89c57879e93..f4e6fb3f5e5 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt @@ -76,7 +76,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt b/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt index 3aa8c68e189..7f4edabcd6a 100644 --- a/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt +++ b/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt @@ -14,7 +14,6 @@ KtFirClassOrObjectSymbol: modality: ABSTRACT name: Iterator origin: LIBRARY - primaryConstructor: null superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [KtFirTypeParameterSymbol(T)] diff --git a/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt b/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt index 2f0f1d293af..041c3a5d8da 100644 --- a/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt +++ b/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt @@ -14,7 +14,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: FileWalkDirection origin: LIBRARY - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Enum] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt index 2f1e266fbc8..596fa5b6665 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt @@ -54,7 +54,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: Anno origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Annotation] symbolKind: TOP_LEVEL typeParameters: [] @@ -93,7 +92,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: X origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt index fdebaa81e17..3aab73080f1 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt @@ -94,7 +94,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: AnonymousContainer origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt index cd8be49a5ba..bd41d19c2d9 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt @@ -16,7 +16,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt index 04f402198a9..13ed397fa28 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt @@ -61,7 +61,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt index 2273ecc0a0a..306778a29b5 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt @@ -30,7 +30,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: A origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [KtFirTypeParameterSymbol(T), KtFirTypeParameterSymbol(R)] diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt index bf109979ae3..31298cff773 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt @@ -47,7 +47,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: F origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Any] symbolKind: LOCAL typeParameters: [] diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt index 386c48be9d0..8b2d0de4c42 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt @@ -30,7 +30,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: Anno1 origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Annotation] symbolKind: TOP_LEVEL typeParameters: [] @@ -49,7 +48,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: Anno2 origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Annotation] symbolKind: TOP_LEVEL typeParameters: [] @@ -68,7 +66,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: Anno3 origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Annotation] symbolKind: TOP_LEVEL typeParameters: [] @@ -87,7 +84,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: Anno4 origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[] kotlin/Annotation] symbolKind: TOP_LEVEL typeParameters: [] @@ -106,7 +102,6 @@ KtFirClassOrObjectSymbol: modality: ABSTRACT name: I origin: SOURCE - primaryConstructor: null superTypes: [[] kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] @@ -177,7 +172,6 @@ KtFirClassOrObjectSymbol: modality: FINAL name: X origin: SOURCE - primaryConstructor: KtFirConstructorSymbol() superTypes: [[Anno1()] I] symbolKind: TOP_LEVEL typeParameters: [] diff --git a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java index 159a0fb16bd..c8aeb52ff76 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java @@ -49,6 +49,11 @@ public class UltraLightClassSanityTestGenerated extends AbstractUltraLightClassS runTest("compiler/testData/asJava/lightClasses/AnnotationClass.kt"); } + @TestMetadata("Constructors.kt") + public void testConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/Constructors.kt"); + } + @TestMetadata("DataClassWithCustomImplementedMembers.kt") public void testDataClassWithCustomImplementedMembers() throws Exception { runTest("compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt"); @@ -129,6 +134,11 @@ public class UltraLightClassSanityTestGenerated extends AbstractUltraLightClassS runTest("compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt"); } + @TestMetadata("OnlySecondaryConstructors.kt") + public void testOnlySecondaryConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt"); + } + @TestMetadata("PublishedApi.kt") public void testPublishedApi() throws Exception { runTest("compiler/testData/asJava/lightClasses/PublishedApi.kt"); diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java index 0bcdc957e9e..24bc5519203 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java @@ -49,6 +49,11 @@ public class IdeCompiledLightClassTestGenerated extends AbstractIdeCompiledLight runTest("compiler/testData/asJava/lightClasses/AnnotationClass.kt"); } + @TestMetadata("Constructors.kt") + public void testConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/Constructors.kt"); + } + @TestMetadata("DataClassWithCustomImplementedMembers.kt") public void testDataClassWithCustomImplementedMembers() throws Exception { runTest("compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt"); @@ -129,6 +134,11 @@ public class IdeCompiledLightClassTestGenerated extends AbstractIdeCompiledLight runTest("compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt"); } + @TestMetadata("OnlySecondaryConstructors.kt") + public void testOnlySecondaryConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt"); + } + @TestMetadata("PublishedApi.kt") public void testPublishedApi() throws Exception { runTest("compiler/testData/asJava/lightClasses/PublishedApi.kt"); diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java index 3296bb7e55c..a9c4476370c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java @@ -49,6 +49,11 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { runTest("compiler/testData/asJava/lightClasses/AnnotationClass.kt"); } + @TestMetadata("Constructors.kt") + public void testConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/Constructors.kt"); + } + @TestMetadata("DataClassWithCustomImplementedMembers.kt") public void testDataClassWithCustomImplementedMembers() throws Exception { runTest("compiler/testData/asJava/lightClasses/DataClassWithCustomImplementedMembers.kt"); @@ -129,6 +134,11 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { runTest("compiler/testData/asJava/lightClasses/NonDataClassWithComponentFunctions.kt"); } + @TestMetadata("OnlySecondaryConstructors.kt") + public void testOnlySecondaryConstructors() throws Exception { + runTest("compiler/testData/asJava/lightClasses/OnlySecondaryConstructors.kt"); + } + @TestMetadata("PublishedApi.kt") public void testPublishedApi() throws Exception { runTest("compiler/testData/asJava/lightClasses/PublishedApi.kt");