Introduce FirFile.fileSession, get rid of most FirElement.session usages

This commit is contained in:
Mikhail Glukhikh
2019-03-19 16:47:27 +03:00
parent 698594b14d
commit c1984d92ff
15 changed files with 51 additions and 49 deletions
@@ -48,9 +48,6 @@ interface FirDeclarationStatus : FirElement {
val isStatic: Boolean
override val psi: PsiElement?
get() = null
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitDeclarationStatus(this, data)
}
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.BaseTransformedType
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@@ -13,6 +14,11 @@ import org.jetbrains.kotlin.name.FqName
@BaseTransformedType
interface FirFile : @VisitedSupertype FirPackageFragment, FirDeclaration, FirAnnotationContainer {
@Suppress("DEPRECATION")
val fileSession: FirSession
get() = session
val name: String
val packageFqName: FqName
@@ -7,15 +7,16 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl.Modifier.*
open class FirDeclarationStatusImpl(
final override val session: FirSession,
session: FirSession,
override val visibility: Visibility,
override val modality: Modality?
) : FirDeclarationStatus {
) : FirAbstractElement(session, null), FirDeclarationStatus {
protected var flags: Int = 0
private operator fun get(modifier: Modifier): Boolean = (flags and modifier.mask) != 0
@@ -8,24 +8,21 @@ package org.jetbrains.kotlin.fir.declarations.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirDefaultPropertyAccessor(
final override val session: FirSession,
final override val psi: PsiElement?,
session: FirSession,
psi: PsiElement?,
final override val isGetter: Boolean,
visibility: Visibility
) : FirPropertyAccessor {
) : FirAbstractElement(session, psi), FirPropertyAccessor {
override var status = FirDeclarationStatusImpl(
session, visibility, Modality.FINAL
)
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.fir.declarations.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirImport
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport
@@ -14,9 +14,10 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
class FirResolvedImportImpl(
session: FirSession,
val delegate: FirImport,
override val resolvedFqName: ClassId
) : FirResolvedImport, FirImport {
) : FirAbstractElement(session, delegate.psi), FirResolvedImport, FirImport {
override val packageFqName: FqName
get() = resolvedFqName.packageFqName
@@ -31,10 +32,4 @@ class FirResolvedImportImpl(
override val isAllUnder: Boolean
get() = delegate.isAllUnder
override val psi: PsiElement?
get() = delegate.psi
override val session: FirSession
get() = delegate.session
}
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.fir.declarations.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirImport
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport
@@ -14,9 +14,10 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
class FirResolvedPackageStarImport(
session: FirSession,
val delegate: FirImport,
override val packageFqName: FqName
) : FirResolvedImport, FirImport {
) : FirAbstractElement(session, delegate.psi), FirResolvedImport, FirImport {
override val relativeClassName: FqName?
get() = null
@@ -31,10 +32,4 @@ class FirResolvedPackageStarImport(
override val isAllUnder: Boolean
get() = delegate.isAllUnder
override val psi: PsiElement?
get() = delegate.psi
override val session: FirSession
get() = delegate.session
}
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.types.impl
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
@@ -15,9 +16,10 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirDelegatedTypeRefImpl(
session: FirSession,
override var typeRef: FirTypeRef,
override var delegate: FirExpression?
) : FirAbstractElement(typeRef.session, typeRef.psi), FirDelegatedTypeRef {
) : FirAbstractElement(session, typeRef.psi), FirDelegatedTypeRef {
override val annotations: List<FirAnnotationCall>
get() = typeRef.annotations