FIR: replace UnambiguousFqName with ClassId
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
@@ -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<ConeTypeParameterDescriptor>
|
||||
|
||||
val fqName: UnambiguousFqName
|
||||
val fqName: ClassId
|
||||
}
|
||||
|
||||
interface ConeTypeParameterDescriptor : ConeClassifierDescriptor
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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<ConeKotlinTypeProjection>
|
||||
) : ConeClassType()
|
||||
|
||||
|
||||
+2
-2
@@ -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<ConeTypeParameterDescriptor>,
|
||||
override val fqName: UnambiguousFqName,
|
||||
override val fqName: ClassId,
|
||||
override val superTypes: List<ConeKotlinType>,
|
||||
override val nestedClassifiers: List<ConeClassifierDescriptor>
|
||||
) : ConeClassDescriptor, AbstractFirBasedDescriptor<FirResolvedClass>() {
|
||||
|
||||
+8
-13
@@ -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<Nothing?>() {
|
||||
override fun <E : FirElement> transformElement(element: E, data: Nothing?): CompositeTransformResult<E> {
|
||||
return element.compose()
|
||||
}
|
||||
|
||||
lateinit var packageFqName: FqNameUnsafe
|
||||
lateinit var packageFqName: FqName
|
||||
|
||||
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirFile> {
|
||||
packageFqName = file.packageFqName.toUnsafe()
|
||||
packageFqName = file.packageFqName
|
||||
return file.also { it.transformChildren(this, null) }.compose()
|
||||
}
|
||||
|
||||
@@ -60,7 +55,7 @@ class FirClassifierResolveTransformer : FirTransformer<Nothing?>() {
|
||||
|
||||
val descriptor = ConeClassDescriptorImpl(
|
||||
typeParameters,
|
||||
UnambiguousFqName(packageFqName, actualClassName),
|
||||
ClassId(packageFqName, actualClassName, false),
|
||||
superTypes,
|
||||
nestedClassifiers
|
||||
)
|
||||
|
||||
+2
-2
@@ -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<Nothing?>() {
|
||||
@@ -37,7 +37,7 @@ class FirImportResolveTransformer : FirTransformer<Nothing?>() {
|
||||
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) {
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ class FirTypeResolveTransformer : FirTransformer<Nothing?>() {
|
||||
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirFile> {
|
||||
importingScope = FirCompositeImportingScope(
|
||||
FirExplicitImportingScope(file.imports),
|
||||
FirSelfImportingScope(file.packageFqName.toUnsafe(), file.session)
|
||||
FirSelfImportingScope(file.packageFqName, file.session)
|
||||
)
|
||||
return file.also { it.transformChildren(this, null) }.compose()
|
||||
}
|
||||
|
||||
@@ -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<FirFile>
|
||||
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<FirFile>
|
||||
}
|
||||
@@ -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<FirQualifierPart>, prefix: UnambiguousFqName): ConeKotlinType?
|
||||
fun resolveTypeWithPrefix(parts: List<FirQualifierPart>, prefix: ClassId): ConeKotlinType?
|
||||
|
||||
fun resolveType(parts: List<FirQualifierPart>): ConeKotlinType?
|
||||
|
||||
|
||||
@@ -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<FqNameUnsafe, List<FirFile>>()
|
||||
private val classifierMap = mutableMapOf<UnambiguousFqName, FirMemberDeclaration>()
|
||||
|
||||
override fun getFirFilesByPackage(fqName: FqNameUnsafe): List<FirFile> {
|
||||
|
||||
private val fileMap = mutableMapOf<FqName, List<FirFile>>()
|
||||
private val classifierMap = mutableMapOf<ClassId, FirMemberDeclaration>()
|
||||
|
||||
override fun getFirFilesByPackage(fqName: FqName): List<FirFile> {
|
||||
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 }
|
||||
|
||||
+9
-5
@@ -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<FirQualifierPart>): ConeKotlinType? {
|
||||
private fun FirMemberDeclaration.toConeKotlinType(fqName: ClassId, parts: List<FirQualifierPart>): 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<FirQualifierPart>, prefix: UnambiguousFqName): ConeKotlinType? {
|
||||
override fun resolveTypeWithPrefix(parts: List<FirQualifierPart>, 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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
+2
-2
@@ -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
|
||||
|
||||
+3
-4
@@ -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<FirImport>) : FirImportingScope {
|
||||
@@ -18,9 +17,9 @@ class FirExplicitImportingScope(imports: List<FirImport>) : FirImportingScope {
|
||||
private val simpleImports =
|
||||
imports.filterIsInstance<FirResolvedImport>()
|
||||
.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)) {
|
||||
|
||||
+4
-6
@@ -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<FirProvider>()
|
||||
|
||||
|
||||
@@ -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 -> "*"
|
||||
|
||||
@@ -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 <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitResolvedImport(this, data)
|
||||
|
||||
+2
-2
@@ -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 <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitResolvedImport(this, data)
|
||||
|
||||
@@ -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"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user