From 6bca2d10455f9833cc1000621df00e0a4c11c402 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Wed, 11 Apr 2018 00:01:18 +0300 Subject: [PATCH] FIR: Get rid of delegation in resolved imports This prevents strange visitors behaviour --- .../impl/FirResolvedImportImpl.kt | 22 +++++++++++++++---- .../impl/FirResolvedPackageStarImport.kt | 22 +++++++++++++++---- 2 files changed, 36 insertions(+), 8 deletions(-) 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 9be4b97e5e0..2110bc2d6e1 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,22 +5,36 @@ package org.jetbrains.kotlin.fir.declarations.impl +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirSession 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 import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.Name class FirResolvedImportImpl( val delegate: FirImport, override val resolvedFqName: ClassId -) : FirResolvedImport, FirImport by delegate { +) : FirResolvedImport, FirImport { override val packageFqName: FqName get() = resolvedFqName.packageFqName override val relativeClassName: FqName get() = resolvedFqName.relativeClassName - override fun accept(visitor: FirVisitor, data: D): R = - visitor.visitResolvedImport(this, data) + override val aliasName: Name? + get() = delegate.aliasName + + override val importedFqName: FqName? + get() = delegate.importedFqName + + override val isAllUnder: Boolean + get() = delegate.isAllUnder + + override val psi: PsiElement? + get() = delegate.psi + + override val session: FirSession + get() = delegate.session } \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedPackageStarImport.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedPackageStarImport.kt index bbf17ce88d8..ff5d7126d98 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedPackageStarImport.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedPackageStarImport.kt @@ -5,22 +5,36 @@ package org.jetbrains.kotlin.fir.declarations.impl +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirSession 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 import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.Name class FirResolvedPackageStarImport( val delegate: FirImport, override val packageFqName: FqName -) : FirResolvedImport, FirImport by delegate { +) : FirResolvedImport, FirImport { override val relativeClassName: FqName? get() = null override val resolvedFqName: ClassId? get() = null - override fun accept(visitor: FirVisitor, data: D): R = - visitor.visitResolvedImport(this, data) + override val aliasName: Name? + get() = delegate.aliasName + + override val importedFqName: FqName? + get() = delegate.importedFqName + + override val isAllUnder: Boolean + get() = delegate.isAllUnder + + override val psi: PsiElement? + get() = delegate.psi + + override val session: FirSession + get() = delegate.session } \ No newline at end of file