From 211544e79049b8c5dbef2cbb8dd374951f8dc823 Mon Sep 17 00:00:00 2001 From: Tianyu Geng Date: Fri, 20 Aug 2021 12:47:41 -0700 Subject: [PATCH] FIR: rename `FirResolvedImport.resolvedClassId|relativeClassName` These two fields references the parent of the import rather than the classes that are imported. For example ``` import java.util.Map // resolvedClassId -> null import java.util.Map.Entry // resolvedClassId -> java.util.Map import java.util.Map.* // resolvedClassId -> java.util.Map import java.util.Map.someStaticMethod // resolvedClassId -> java.util.Map import kotlin.package.someTopLevelFuntion // resolvedClassId -> null import kotlin.package.MyObject.someObjectFuntion // resolvedClassId -> kotlin.package.MyObject ``` --- .../api/fir/scopes/KtFirNonStarImportingScope.kt | 4 ++-- .../api/fir/scopes/KtFirStarImportingScope.kt | 4 ++-- .../checkers/declaration/FirImportsChecker.kt | 12 ++++++------ .../src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt | 2 +- .../transformers/FirImportResolveTransformer.kt | 2 +- .../fir/scopes/impl/FirAbstractImportingScope.kt | 6 +++--- .../kotlin/fir/declarations/FirResolvedImport.kt | 4 ++-- .../declarations/builder/FirResolvedImportBuilder.kt | 4 ++-- .../fir/declarations/impl/FirResolvedImportImpl.kt | 4 ++-- .../fir/tree/generator/ImplementationConfigurator.kt | 4 ++-- .../kotlin/fir/tree/generator/NodeConfigurator.kt | 4 ++-- 11 files changed, 25 insertions(+), 25 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt index 79459ac6e34..cafee5d0e38 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirNonStarImportingScope.kt @@ -34,8 +34,8 @@ internal class KtFirNonStarImportingScope( imports.forEach { import -> NonStarImport( import.packageFqName, - import.relativeClassName, - import.resolvedClassId, + import.relativeParentClassName, + import.resolvedParentClassId, import.importedName ).let(::add) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirStarImportingScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirStarImportingScope.kt index e2a5e41c6cb..836e617fde9 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirStarImportingScope.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirStarImportingScope.kt @@ -42,8 +42,8 @@ internal class KtFirStarImportingScope( firScope.starImports.map { import -> StarImport( import.packageFqName, - import.relativeClassName, - import.resolvedClassId + import.relativeParentClassName, + import.resolvedParentClassId ) } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt index d19e06fa340..1f6dd559c0e 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt @@ -59,7 +59,7 @@ object FirImportsChecker : FirFileChecker() { //empty name come from LT in some erroneous cases if (importedName.isSpecial || importedName.identifier.isEmpty()) return - val classId = (import as? FirResolvedImport)?.resolvedClassId + val classId = (import as? FirResolvedImport)?.resolvedParentClassId if (classId != null) { val classSymbol = classId.resolveToClass(context) ?: return if (classSymbol.classKind.isSingleton) return @@ -103,7 +103,7 @@ object FirImportsChecker : FirFileChecker() { val alias = import.aliasName ?: return val importedName = import.importedName ?: return if (!OperatorConventions.isConventionName(alias)) return - val classId = import.resolvedClassId + val classId = import.resolvedParentClassId val illegalRename = if (classId != null) { val classFir = classId.resolveToClass(context) ?: return classFir.classKind.isSingleton && classFir.hasFunction(context, importedName) { it.isOperator } @@ -118,10 +118,10 @@ object FirImportsChecker : FirFileChecker() { } private fun FirResolvedImport.resolvesToClass(context: CheckerContext): Boolean { - if (resolvedClassId != null) { + if (resolvedParentClassId != null) { if (isAllUnder) return true - val parentClass = resolvedClassId!! - val relativeClassName = this.relativeClassName ?: return false + val parentClass = resolvedParentClassId!! + val relativeClassName = this.relativeParentClassName ?: return false val importedName = this.importedName ?: return false val innerClassId = ClassId(parentClass.packageFqName, relativeClassName.child(importedName), false) return innerClassId.resolveToClass(context) != null @@ -181,7 +181,7 @@ object FirImportsChecker : FirFileChecker() { private fun checkDeprecatedImport(import: FirImport, context: CheckerContext, reporter: DiagnosticReporter) { val importedFqName = import.importedFqName ?: return if (importedFqName.isRoot || importedFqName.shortName().asString().isEmpty()) return - val classId = (import as? FirResolvedImport)?.resolvedClassId ?: ClassId.topLevel(importedFqName) + val classId = (import as? FirResolvedImport)?.resolvedParentClassId ?: ClassId.topLevel(importedFqName) val classLike: FirRegularClassSymbol = classId.resolveToClass(context) ?: return FirDeprecationChecker.reportDeprecationIfNeeded(import.source, classLike, null, context, reporter) } diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index 990c3b76eb9..a37958121e8 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -1803,7 +1803,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver ws when (import) { is FirResolvedImport -> { - val classId = import.resolvedClassId + val classId = import.resolvedParentClassId if (classId == null) { val importedFqName = import.importedFqName if (importedFqName != null) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt index 27ae8745f20..cebae78e402 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirImportResolveTransformer.kt @@ -84,7 +84,7 @@ open class FirImportResolveTransformer protected constructor( return buildResolvedImport { this.delegate = delegate this.packageFqName = packageFqName - relativeClassName = relativeClassFqName + this.relativeParentClassName = relativeClassFqName } } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt index b27546fbbe0..4751b3fd8df 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractImportingScope.kt @@ -76,7 +76,7 @@ abstract class FirAbstractImportingScope( var result: FirClassLikeSymbol<*>? = null for (import in imports) { val importedName = name ?: import.importedName ?: continue - val classId = import.resolvedClassId?.createNestedClassId(importedName) + val classId = import.resolvedParentClassId?.createNestedClassId(importedName) ?: ClassId.topLevel(import.packageFqName.child(importedName)) val symbol = provider.getClassLikeSymbolByClassId(classId) ?: continue if (!filter.check(symbol, session)) continue @@ -101,7 +101,7 @@ abstract class FirAbstractImportingScope( if (filter == FirImportingScopeFilter.INVISIBLE_CLASSES) return for (import in imports) { val importedName = name ?: import.importedName ?: continue - val staticsScope = import.resolvedClassId?.let(::getStaticsScope) + val staticsScope = import.resolvedParentClassId?.let(::getStaticsScope) if (staticsScope != null) { staticsScope.processFunctionsByName(importedName, processor) } else if (importedName.isSpecial || importedName.identifier.isNotEmpty()) { @@ -117,7 +117,7 @@ abstract class FirAbstractImportingScope( if (filter == FirImportingScopeFilter.INVISIBLE_CLASSES) return for (import in imports) { val importedName = name ?: import.importedName ?: continue - val staticsScope = import.resolvedClassId?.let(::getStaticsScope) + val staticsScope = import.resolvedParentClassId?.let(::getStaticsScope) if (staticsScope != null) { staticsScope.processPropertiesByName(importedName, processor) } else if (importedName.isSpecial || importedName.identifier.isNotEmpty()) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt index 54db585f81f..c0c7ebea318 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt @@ -26,8 +26,8 @@ abstract class FirResolvedImport : FirPureAbstractElement(), FirImport { abstract override val aliasSource: FirSourceElement? abstract val delegate: FirImport abstract val packageFqName: FqName - abstract val relativeClassName: FqName? - abstract val resolvedClassId: ClassId? + abstract val relativeParentClassName: FqName? + abstract val resolvedParentClassId: ClassId? abstract val importedName: Name? override fun accept(visitor: FirVisitor, data: D): R = visitor.visitResolvedImport(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt index 2f03342417e..182fb12dc38 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt @@ -25,13 +25,13 @@ import org.jetbrains.kotlin.name.Name class FirResolvedImportBuilder { lateinit var delegate: FirImport lateinit var packageFqName: FqName - var relativeClassName: FqName? = null + var relativeParentClassName: FqName? = null fun build(): FirResolvedImport { return FirResolvedImportImpl( delegate, packageFqName, - relativeClassName, + relativeParentClassName, ) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt index 8eb0f772327..e488ec66d95 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt @@ -21,14 +21,14 @@ import org.jetbrains.kotlin.fir.visitors.* internal class FirResolvedImportImpl( override var delegate: FirImport, override val packageFqName: FqName, - override val relativeClassName: FqName?, + override val relativeParentClassName: FqName?, ) : FirResolvedImport() { override val source: FirSourceElement? get() = delegate.source override val importedFqName: FqName? get() = delegate.importedFqName override val isAllUnder: Boolean get() = delegate.isAllUnder override val aliasName: Name? get() = delegate.aliasName override val aliasSource: FirSourceElement? get() = delegate.aliasSource - override val resolvedClassId: ClassId? get() = relativeClassName?.let { ClassId(packageFqName, it, false) } + override val resolvedParentClassId: ClassId? get() = relativeParentClassName?.let { ClassId(packageFqName, it, false) } override val importedName: Name? get() = importedFqName?.shortName() override fun acceptChildren(visitor: FirVisitor, data: D) { diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt index e3389437219..a72e920b233 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt @@ -52,8 +52,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() delegate = "delegate" } - default("resolvedClassId") { - delegate = "relativeClassName" + default("resolvedParentClassId") { + delegate = "relativeParentClassName" delegateCall = "let { ClassId(packageFqName, it, false) }" withGetter = true } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 167515be859..5a2fbc176ba 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -431,8 +431,8 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild resolvedImport.configure { +field("delegate", import) +field("packageFqName", fqNameType) - +field("relativeClassName", fqNameType, nullable = true) - +field("resolvedClassId", classIdType, nullable = true) + +field("relativeParentClassName", fqNameType, nullable = true) + +field("resolvedParentClassId", classIdType, nullable = true) +field( "importedName", nameType,