FIR: Get rid of delegation in resolved imports

This prevents strange visitors behaviour
This commit is contained in:
Simon Ogorodnik
2018-04-11 00:01:18 +03:00
committed by Mikhail Glukhikh
parent e010a96055
commit 6bca2d1045
2 changed files with 36 additions and 8 deletions
@@ -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 <R, D> accept(visitor: FirVisitor<R, D>, 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
}
@@ -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 <R, D> accept(visitor: FirVisitor<R, D>, 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
}