diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/UnambiguousFqName.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/UnambiguousFqName.kt deleted file mode 100644 index b6325b346cb..00000000000 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/UnambiguousFqName.kt +++ /dev/null @@ -1,22 +0,0 @@ - -/* - * Copyright 2010-2018 JetBrains s.r.o. 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.fir - -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.FqNameUnsafe - -/* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. - */ - -data class UnambiguousFqName(val packageFqName: FqNameUnsafe, val classFqName: FqName) { - - override fun toString(): String { - return packageFqName.asString() + "/" + classFqName.asString() - } -} \ No newline at end of file diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/descriptors/ConeDescriptors.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/descriptors/ConeDescriptors.kt index f890ba35fff..af34b9d0687 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/descriptors/ConeDescriptors.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/descriptors/ConeDescriptors.kt @@ -5,8 +5,8 @@ package org.jetbrains.kotlin.fir.descriptors -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.types.ConeKotlinType +import org.jetbrains.kotlin.name.ClassId interface ConeDescriptor @@ -16,7 +16,7 @@ interface ConeClassifierDescriptor : ConeDescriptor interface ConeClassifierDescriptorWithTypeParameters : ConeClassifierDescriptor { val typeParameters: List - val fqName: UnambiguousFqName + val fqName: ClassId } interface ConeTypeParameterDescriptor : ConeClassifierDescriptor diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeKotlinType.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeKotlinType.kt index a85a03a5958..b9659631ccf 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeKotlinType.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeKotlinType.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.fir.types -import org.jetbrains.kotlin.fir.UnambiguousFqName +import org.jetbrains.kotlin.name.ClassId sealed class ConeKotlinTypeProjection(val kind: ProjectionKind) @@ -29,5 +29,5 @@ abstract class ConeKotlinType : ConeKotlinTypeProjection(ProjectionKind.INVARIAN } abstract class ConeClassType : ConeKotlinType() { - abstract val fqName: UnambiguousFqName + abstract val fqName: ClassId } \ No newline at end of file diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt index 391aadc3c35..22d5714d71b 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.fir.types.impl -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.types.* +import org.jetbrains.kotlin.name.ClassId class ConeClassTypeImpl( - override val fqName: UnambiguousFqName, + override val fqName: ClassId, override val typeArguments: List ) : ConeClassType() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/ConeClassDescriptorImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/ConeClassDescriptorImpl.kt index b434c8aa098..13e9dc5d97c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/ConeClassDescriptorImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/ConeClassDescriptorImpl.kt @@ -5,16 +5,16 @@ package org.jetbrains.kotlin.descriptors -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.declarations.FirResolvedClass import org.jetbrains.kotlin.fir.descriptors.ConeClassDescriptor import org.jetbrains.kotlin.fir.descriptors.ConeClassifierDescriptor import org.jetbrains.kotlin.fir.descriptors.ConeTypeParameterDescriptor import org.jetbrains.kotlin.fir.types.ConeKotlinType +import org.jetbrains.kotlin.name.ClassId class ConeClassDescriptorImpl( override val typeParameters: List, - override val fqName: UnambiguousFqName, + override val fqName: ClassId, override val superTypes: List, override val nestedClassifiers: List ) : ConeClassDescriptor, AbstractFirBasedDescriptor() { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirClassifierResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirClassifierResolveTransformer.kt index 87fd5f1e578..c7a6a7c9145 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirClassifierResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirClassifierResolveTransformer.kt @@ -7,34 +7,29 @@ package org.jetbrains.kotlin.descriptors import org.jetbrains.kotlin.fir.FirDescriptorOwner import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.UnambiguousFqName -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirFile +import org.jetbrains.kotlin.fir.declarations.FirResolvedClass import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedClassImpl import org.jetbrains.kotlin.fir.descriptors.ConeClassifierDescriptor import org.jetbrains.kotlin.fir.descriptors.ConeTypeParameterDescriptor -import org.jetbrains.kotlin.fir.resolve.FirTypeResolver -import org.jetbrains.kotlin.fir.scopes.FirImportingScope -import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeImportingScope -import org.jetbrains.kotlin.fir.scopes.impl.FirExplicitImportingScope -import org.jetbrains.kotlin.fir.scopes.impl.FirSelfImportingScope import org.jetbrains.kotlin.fir.types.FirResolvedType -import org.jetbrains.kotlin.fir.types.FirType -import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeImpl import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.compose +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.FqNameUnsafe class FirClassifierResolveTransformer : FirTransformer() { override fun transformElement(element: E, data: Nothing?): CompositeTransformResult { return element.compose() } - lateinit var packageFqName: FqNameUnsafe + lateinit var packageFqName: FqName override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult { - packageFqName = file.packageFqName.toUnsafe() + packageFqName = file.packageFqName return file.also { it.transformChildren(this, null) }.compose() } @@ -60,7 +55,7 @@ class FirClassifierResolveTransformer : FirTransformer() { val descriptor = ConeClassDescriptorImpl( typeParameters, - UnambiguousFqName(packageFqName, actualClassName), + ClassId(packageFqName, actualClassName, false), superTypes, nestedClassifiers ) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirImportResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirImportResolveTransformer.kt index 00f90d87030..4be353ff548 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirImportResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirImportResolveTransformer.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.descriptors import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirImport import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedImportImpl @@ -14,6 +13,7 @@ import org.jetbrains.kotlin.fir.resolve.FirProvider import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.compose +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName class FirImportResolveTransformer : FirTransformer() { @@ -37,7 +37,7 @@ class FirImportResolveTransformer : FirTransformer() { lastPart.add(0, firstPart.shortName().asString()) firstPart = firstPart.parent() - val resolvedFqName = UnambiguousFqName(firstPart.toUnsafe(), FqName.fromSegments(lastPart)) + val resolvedFqName = ClassId(firstPart, FqName.fromSegments(lastPart), false) val foundClassifier = firProvider.getFirClassifierByFqName(resolvedFqName) if (foundClassifier != null) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirTypeResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirTypeResolveTransformer.kt index e965501e17b..9682464c2bd 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirTypeResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/descriptors/FirTypeResolveTransformer.kt @@ -29,7 +29,7 @@ class FirTypeResolveTransformer : FirTransformer() { override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult { importingScope = FirCompositeImportingScope( FirExplicitImportingScope(file.imports), - FirSelfImportingScope(file.packageFqName.toUnsafe(), file.session) + FirSelfImportingScope(file.packageFqName, file.session) ) return file.also { it.transformChildren(this, null) }.compose() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirProvider.kt index 310862ceef6..4a0687d3536 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirProvider.kt @@ -6,23 +6,23 @@ package org.jetbrains.kotlin.fir.resolve import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.service -import org.jetbrains.kotlin.name.FqNameUnsafe +import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name interface FirProvider { - fun getFirFilesByPackage(fqName: FqNameUnsafe): List + fun getFirClassifierByFqName(fqName: ClassId): FirMemberDeclaration? - fun getFirClassifierByFqName(fqName: UnambiguousFqName): FirMemberDeclaration? - - fun getFirTypeParameterByFqName(fqName: UnambiguousFqName, parameterName: Name): FirTypeParameter? + fun getFirTypeParameterByFqName(fqName: ClassId, parameterName: Name): FirTypeParameter? companion object { fun getInstance(session: FirSession): FirProvider = session.service() } + + fun getFirFilesByPackage(fqName: FqName): List } \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirQualifierResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirQualifierResolver.kt index 96d6c6bc3cd..d4dd3708d29 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirQualifierResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirQualifierResolver.kt @@ -6,14 +6,14 @@ package org.jetbrains.kotlin.fir.resolve import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.service import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirQualifierPart +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName interface FirQualifierResolver { - fun resolveTypeWithPrefix(parts: List, prefix: UnambiguousFqName): ConeKotlinType? + fun resolveTypeWithPrefix(parts: List, prefix: ClassId): ConeKotlinType? fun resolveType(parts: List): ConeKotlinType? diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt index 6fc2abab042..53d00386a28 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirProviderImpl.kt @@ -7,18 +7,17 @@ package org.jetbrains.kotlin.fir.resolve.impl import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.FirProvider import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.name.Name class FirProviderImpl(val session: FirSession) : FirProvider { fun recordFile(file: FirFile) { - val packageName = file.packageFqName.toUnsafe() + val packageName = file.packageFqName fileMap.merge(packageName, listOf(file)) { a, b -> a + b } file.acceptChildren(object : FirVisitorVoid() { @@ -28,7 +27,7 @@ class FirProviderImpl(val session: FirSession) : FirProvider { override fun visitClass(klass: FirClass) { val fqName = containerFqName.child(klass.name) - classifierMap[UnambiguousFqName(packageName, fqName)] = klass + classifierMap[ClassId(packageName, fqName, false)] = klass containerFqName = fqName klass.acceptChildren(this) @@ -37,25 +36,23 @@ class FirProviderImpl(val session: FirSession) : FirProvider { override fun visitTypeAlias(typeAlias: FirTypeAlias) { val fqName = containerFqName.child(typeAlias.name) - classifierMap[UnambiguousFqName(packageName, fqName)] = typeAlias + classifierMap[ClassId(packageName, fqName, false)] = typeAlias } }) } - private val fileMap = mutableMapOf>() - private val classifierMap = mutableMapOf() - - override fun getFirFilesByPackage(fqName: FqNameUnsafe): List { - + private val fileMap = mutableMapOf>() + private val classifierMap = mutableMapOf() + override fun getFirFilesByPackage(fqName: FqName): List { return fileMap[fqName].orEmpty() } - override fun getFirClassifierByFqName(fqName: UnambiguousFqName): FirMemberDeclaration? { + override fun getFirClassifierByFqName(fqName: ClassId): FirMemberDeclaration? { return classifierMap[fqName] } - override fun getFirTypeParameterByFqName(fqName: UnambiguousFqName, parameterName: Name): FirTypeParameter? { + override fun getFirTypeParameterByFqName(fqName: ClassId, parameterName: Name): FirTypeParameter? { val typeParameterContainer = (getFirClassifierByFqName(fqName) as? FirTypeParameterContainer) ?: return null // TODO: Optimize search here return typeParameterContainer.typeParameters.find { it.name == parameterName } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirQualifierResolverImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirQualifierResolverImpl.kt index 282b40eec0b..0ab2e3bcda1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirQualifierResolverImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirQualifierResolverImpl.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.resolve.impl import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.resolve.FirProvider import org.jetbrains.kotlin.fir.resolve.FirQualifierResolver @@ -14,12 +13,13 @@ import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeKotlinTypeProjectionInImpl import org.jetbrains.kotlin.fir.types.impl.ConeKotlinTypeProjectionOutImpl +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.types.Variance class FirQualifierResolverImpl(val session: FirSession) : FirQualifierResolver { - private fun FirMemberDeclaration.toConeKotlinType(fqName: UnambiguousFqName, parts: List): ConeKotlinType? { + private fun FirMemberDeclaration.toConeKotlinType(fqName: ClassId, parts: List): ConeKotlinType? { return ConeClassTypeImpl(fqName, parts.flatMap { it.typeArguments.map { when (it) { @@ -38,10 +38,14 @@ class FirQualifierResolverImpl(val session: FirSession) : FirQualifierResolver { }) } - override fun resolveTypeWithPrefix(parts: List, prefix: UnambiguousFqName): ConeKotlinType? { + override fun resolveTypeWithPrefix(parts: List, prefix: ClassId): ConeKotlinType? { val firProvider = FirProvider.getInstance(session) - val fqName = UnambiguousFqName(prefix.packageFqName, parts.fold(prefix.classFqName) { prefix, suffix -> prefix.child(suffix.name) }) + val fqName = ClassId( + prefix.packageFqName, + parts.fold(prefix.relativeClassName) { prefix, suffix -> prefix.child(suffix.name) }, + false + ) val foundClassifier = firProvider.getFirClassifierByFqName(fqName) return foundClassifier?.toConeKotlinType(fqName, parts) @@ -58,7 +62,7 @@ class FirQualifierResolverImpl(val session: FirSession) : FirQualifierResolver { lastPart.add(0, firstPart.last()) firstPart.removeAt(firstPart.lastIndex) - val fqName = UnambiguousFqName(firstPart.toFqNameUnsafe(), lastPart.toFqName()) + val fqName = ClassId(firstPart.toFqName(), lastPart.toFqName(), false) val foundClassifier = firProvider.getFirClassifierByFqName(fqName) if (foundClassifier != null) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirImportingScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirImportingScope.kt index 989a669ff1e..5637c23ddc6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirImportingScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirImportingScope.kt @@ -5,9 +5,9 @@ package org.jetbrains.kotlin.fir.scopes -import org.jetbrains.kotlin.fir.UnambiguousFqName +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name interface FirImportingScope { - fun processClassifiersByName(name: Name, processor: (UnambiguousFqName) -> Boolean): Boolean + fun processClassifiersByName(name: Name, processor: (ClassId) -> Boolean): Boolean } \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirCompositeImportingScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirCompositeImportingScope.kt index c2f979c7f42..7d119fc67ee 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirCompositeImportingScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirCompositeImportingScope.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.fir.scopes.impl -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.scopes.FirImportingScope +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name class FirCompositeImportingScope(vararg val scopes: FirImportingScope) : FirImportingScope { - override fun processClassifiersByName(name: Name, processor: (UnambiguousFqName) -> Boolean): Boolean { + override fun processClassifiersByName(name: Name, processor: (ClassId) -> Boolean): Boolean { for (scope in scopes) { if (!scope.processClassifiersByName(name, processor)) { return false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirExplicitImportingScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirExplicitImportingScope.kt index bceae96c5a6..5bb22149bc9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirExplicitImportingScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirExplicitImportingScope.kt @@ -5,11 +5,10 @@ package org.jetbrains.kotlin.fir.scopes.impl -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.declarations.FirImport import org.jetbrains.kotlin.fir.declarations.FirResolvedImport -import org.jetbrains.kotlin.fir.resolve.FirQualifierResolver import org.jetbrains.kotlin.fir.scopes.FirImportingScope +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name class FirExplicitImportingScope(imports: List) : FirImportingScope { @@ -18,9 +17,9 @@ class FirExplicitImportingScope(imports: List) : FirImportingScope { private val simpleImports = imports.filterIsInstance() .filter { !it.isAllUnder } - .groupBy { it.aliasName ?: it.resolvedFqName.classFqName.shortName() } + .groupBy { it.aliasName ?: it.resolvedFqName.shortClassName } - override fun processClassifiersByName(name: Name, processor: (UnambiguousFqName) -> Boolean): Boolean { + override fun processClassifiersByName(name: Name, processor: (ClassId) -> Boolean): Boolean { val imports = simpleImports[name] ?: return true for (import in imports) { if (!processor(import.resolvedFqName)) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirSelfImportingScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirSelfImportingScope.kt index f5e2b94a835..2896b675c4b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirSelfImportingScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirSelfImportingScope.kt @@ -6,20 +6,18 @@ package org.jetbrains.kotlin.fir.scopes.impl import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.resolve.FirProvider -import org.jetbrains.kotlin.fir.resolve.FirQualifierResolver import org.jetbrains.kotlin.fir.scopes.FirImportingScope import org.jetbrains.kotlin.fir.service +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.name.Name -class FirSelfImportingScope(val fqName: FqNameUnsafe, val session: FirSession) : FirImportingScope { - override fun processClassifiersByName(name: Name, processor: (UnambiguousFqName) -> Boolean): Boolean { +class FirSelfImportingScope(val fqName: FqName, val session: FirSession) : FirImportingScope { + override fun processClassifiersByName(name: Name, processor: (ClassId) -> Boolean): Boolean { - val unambiguousFqName = UnambiguousFqName(fqName, FqName.topLevel(name)) + val unambiguousFqName = ClassId(fqName, name) val firProvider = session.service() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index 18abb861364..5fad7d96f49 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -384,7 +384,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() { sb.append(packageFqName.asString().replace('.', '/')) } sb.append('.') - sb.append(fqName.classFqName.asString()) + sb.append(fqName.relativeClassName.asString()) sb.append(typeArguments.joinToString { it -> when (it) { StarProjection -> "*" diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt index 459de2a1209..1e8014455ca 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.fir.declarations -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.visitors.FirVisitor +import org.jetbrains.kotlin.name.ClassId interface FirResolvedImport : FirImport { - val resolvedFqName: UnambiguousFqName + val resolvedFqName: ClassId override fun accept(visitor: FirVisitor, data: D): R = visitor.visitResolvedImport(this, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt index 39c20e23d14..a9399743e0c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt @@ -5,14 +5,14 @@ package org.jetbrains.kotlin.fir.declarations.impl -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.declarations.FirImport import org.jetbrains.kotlin.fir.declarations.FirResolvedImport import org.jetbrains.kotlin.fir.visitors.FirVisitor +import org.jetbrains.kotlin.name.ClassId class FirResolvedImportImpl( val delegate: FirImport, - override val resolvedFqName: UnambiguousFqName + override val resolvedFqName: ClassId ) : FirResolvedImport, FirImport by delegate { override fun accept(visitor: FirVisitor, data: D): R = visitor.visitResolvedImport(this, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirBuiltinType.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirBuiltinType.kt index 718949dce0c..434fb32f9e2 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirBuiltinType.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirBuiltinType.kt @@ -7,12 +7,11 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.UnambiguousFqName import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirResolvedType +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.name.Name sealed class FirBuiltinType( @@ -21,9 +20,9 @@ sealed class FirBuiltinType( val name: String ) : FirResolvedType { final override val type: ConeKotlinType = ConeClassTypeImpl( - UnambiguousFqName( + ClassId( KOTLIN_PACKAGE_FQ_NAME, - FqName.topLevel(Name.identifier(name)) + Name.identifier(name) ), emptyList() ) @@ -33,7 +32,7 @@ sealed class FirBuiltinType( get() = emptyList() companion object { - private val KOTLIN_PACKAGE_FQ_NAME = FqNameUnsafe.topLevel(Name.identifier("kotlin")) + private val KOTLIN_PACKAGE_FQ_NAME = FqName.topLevel(Name.identifier("kotlin")) } }