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 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.FirImport
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport 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.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
class FirResolvedImportImpl( class FirResolvedImportImpl(
val delegate: FirImport, val delegate: FirImport,
override val resolvedFqName: ClassId override val resolvedFqName: ClassId
) : FirResolvedImport, FirImport by delegate { ) : FirResolvedImport, FirImport {
override val packageFqName: FqName override val packageFqName: FqName
get() = resolvedFqName.packageFqName get() = resolvedFqName.packageFqName
override val relativeClassName: FqName override val relativeClassName: FqName
get() = resolvedFqName.relativeClassName get() = resolvedFqName.relativeClassName
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = override val aliasName: Name?
visitor.visitResolvedImport(this, data) 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 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.FirImport
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport 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.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
class FirResolvedPackageStarImport( class FirResolvedPackageStarImport(
val delegate: FirImport, val delegate: FirImport,
override val packageFqName: FqName override val packageFqName: FqName
) : FirResolvedImport, FirImport by delegate { ) : FirResolvedImport, FirImport {
override val relativeClassName: FqName? override val relativeClassName: FqName?
get() = null get() = null
override val resolvedFqName: ClassId? override val resolvedFqName: ClassId?
get() = null get() = null
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = override val aliasName: Name?
visitor.visitResolvedImport(this, data) 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
} }