[RAW FIR] Rename raw FIR builder types for clarity
This commit is contained in:
committed by
Space Team
parent
26e9e9de11
commit
2cc588d6d8
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.KtSourceFile
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.PsiRawFirBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
||||
@@ -47,7 +47,7 @@ fun FirSession.buildFirViaLightTree(
|
||||
|
||||
fun FirSession.buildFirFromKtFiles(ktFiles: Collection<KtFile>): List<FirFile> {
|
||||
val firProvider = (firProvider as FirProviderImpl)
|
||||
val builder = RawFirBuilder(this, firProvider.kotlinScopeProvider)
|
||||
val builder = PsiRawFirBuilder(this, firProvider.kotlinScopeProvider)
|
||||
return ktFiles.map {
|
||||
builder.buildFirFile(it).also { firFile ->
|
||||
firProvider.recordFile(firFile)
|
||||
|
||||
+2
-4
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
|
||||
import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector
|
||||
import org.jetbrains.kotlin.fir.analysis.collectors.FirDiagnosticsCollector
|
||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.PsiRawFirBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.dump.MultiModuleHtmlFirDump
|
||||
import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir
|
||||
@@ -35,12 +35,10 @@ import org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveP
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.createAllCompilerResolveProcessors
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import sun.management.ManagementFactoryHelper
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.PrintStream
|
||||
import java.lang.management.ManagementFactory
|
||||
import java.text.DecimalFormat
|
||||
|
||||
|
||||
private const val FAIL_FAST = true
|
||||
@@ -139,7 +137,7 @@ class FirResolveModularizedTotalKotlinTest : AbstractFrontendModularizedTest() {
|
||||
val lightTree2Fir = LightTree2Fir(session, firProvider.kotlinScopeProvider, diagnosticsReporter = null)
|
||||
bench.buildFiles(lightTree2Fir, sourceFiles)
|
||||
} else {
|
||||
val builder = RawFirBuilder(session, firProvider.kotlinScopeProvider)
|
||||
val builder = PsiRawFirBuilder(session, firProvider.kotlinScopeProvider)
|
||||
bench.buildFiles(builder, sourceFiles.map { it as KtPsiSourceFile })
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter
|
||||
import org.jetbrains.kotlin.fir.lightTree.converter.LightTreeRawFirDeclarationBuilder
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
|
||||
import org.jetbrains.kotlin.lexer.KotlinLexer
|
||||
import org.jetbrains.kotlin.parsing.KotlinLightParser
|
||||
@@ -87,7 +87,7 @@ class LightTree2Fir(
|
||||
sourceFile: KtSourceFile,
|
||||
linesMapping: KtSourceFileLinesMapping,
|
||||
): FirFile {
|
||||
return DeclarationsConverter(session, scopeProvider, lightTree)
|
||||
return LightTreeRawFirDeclarationBuilder(session, scopeProvider, lightTree)
|
||||
.convertFile(lightTree.root, sourceFile, linesMapping)
|
||||
}
|
||||
|
||||
|
||||
+3
-4
@@ -13,20 +13,19 @@ import com.intellij.util.diff.FlyweightCapableTreeStructure
|
||||
import org.jetbrains.kotlin.*
|
||||
import org.jetbrains.kotlin.ElementTypeUtils.isExpression
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.builder.BaseFirBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.Context
|
||||
import org.jetbrains.kotlin.fir.builder.escapedStringToCharacter
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImplWithoutSource
|
||||
import org.jetbrains.kotlin.lexer.KtToken
|
||||
import org.jetbrains.kotlin.lexer.KtTokens.*
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import kotlin.contracts.ExperimentalContracts
|
||||
|
||||
abstract class BaseConverter(
|
||||
abstract class AbstractLightTreeRawFirBuilder(
|
||||
baseSession: FirSession,
|
||||
val tree: FlyweightCapableTreeStructure<LighterASTNode>,
|
||||
context: Context<LighterASTNode> = Context()
|
||||
) : BaseFirBuilder<LighterASTNode>(baseSession, context) {
|
||||
) : AbstractRawFirBuilder<LighterASTNode>(baseSession, context) {
|
||||
protected val implicitType = FirImplicitTypeRefImplWithoutSource
|
||||
|
||||
override fun LighterASTNode.toFirSourceElement(kind: KtFakeSourceElementKind?): KtLightSourceElement {
|
||||
+3
-3
@@ -60,14 +60,14 @@ import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.runUnless
|
||||
|
||||
class DeclarationsConverter(
|
||||
class LightTreeRawFirDeclarationBuilder(
|
||||
session: FirSession,
|
||||
internal val baseScopeProvider: FirScopeProvider,
|
||||
tree: FlyweightCapableTreeStructure<LighterASTNode>,
|
||||
context: Context<LighterASTNode> = Context(),
|
||||
) : BaseConverter(session, tree, context) {
|
||||
) : AbstractLightTreeRawFirBuilder(session, tree, context) {
|
||||
|
||||
private val expressionConverter = ExpressionsConverter(session, tree, this, context)
|
||||
private val expressionConverter = LightTreeRawFirExpressionBuilder(session, tree, this, context)
|
||||
|
||||
/**
|
||||
* [org.jetbrains.kotlin.parsing.KotlinParsing.parseFile]
|
||||
+26
-26
@@ -54,12 +54,12 @@ import org.jetbrains.kotlin.psi.stubs.elements.KtNameReferenceExpressionElementT
|
||||
import org.jetbrains.kotlin.types.expressions.OperatorConventions
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
|
||||
class ExpressionsConverter(
|
||||
class LightTreeRawFirExpressionBuilder(
|
||||
session: FirSession,
|
||||
tree: FlyweightCapableTreeStructure<LighterASTNode>,
|
||||
private val declarationsConverter: DeclarationsConverter,
|
||||
private val declarationBuilder: LightTreeRawFirDeclarationBuilder,
|
||||
context: Context<LighterASTNode> = Context(),
|
||||
) : BaseConverter(session, tree, context) {
|
||||
) : AbstractLightTreeRawFirBuilder(session, tree, context) {
|
||||
|
||||
inline fun <reified R : FirElement> getAsFirExpression(expression: LighterASTNode?, errorReason: String = ""): R {
|
||||
val converted = expression?.let { convertExpression(it, errorReason) }
|
||||
@@ -113,9 +113,9 @@ class ExpressionsConverter(
|
||||
THIS_EXPRESSION -> convertThisExpression(expression)
|
||||
SUPER_EXPRESSION -> convertSuperExpression(expression)
|
||||
|
||||
OBJECT_LITERAL -> declarationsConverter.convertObjectLiteral(expression)
|
||||
FUN -> declarationsConverter.convertFunctionDeclaration(expression)
|
||||
DESTRUCTURING_DECLARATION -> declarationsConverter.convertDestructingDeclaration(expression).toFirDestructingDeclaration(baseModuleData)
|
||||
OBJECT_LITERAL -> declarationBuilder.convertObjectLiteral(expression)
|
||||
FUN -> declarationBuilder.convertFunctionDeclaration(expression)
|
||||
DESTRUCTURING_DECLARATION -> declarationBuilder.convertDestructingDeclaration(expression).toFirDestructingDeclaration(baseModuleData)
|
||||
else -> buildErrorExpression(null, ConeSimpleDiagnostic(errorReason, DiagnosticKind.ExpressionExpected))
|
||||
}
|
||||
}
|
||||
@@ -132,7 +132,7 @@ class ExpressionsConverter(
|
||||
val functionSymbol = FirAnonymousFunctionSymbol()
|
||||
lambdaExpression.getChildNodesByType(FUNCTION_LITERAL).first().forEachChildren {
|
||||
when (it.tokenType) {
|
||||
VALUE_PARAMETER_LIST -> valueParameterList += declarationsConverter.convertValueParameters(it, functionSymbol, ValueParameterDeclaration.LAMBDA)
|
||||
VALUE_PARAMETER_LIST -> valueParameterList += declarationBuilder.convertValueParameters(it, functionSymbol, ValueParameterDeclaration.LAMBDA)
|
||||
BLOCK -> block = it
|
||||
ARROW -> hasArrow = true
|
||||
}
|
||||
@@ -188,7 +188,7 @@ class ExpressionsConverter(
|
||||
}
|
||||
|
||||
body = if (block != null) {
|
||||
declarationsConverter.convertBlockExpressionWithoutBuilding(block!!).apply {
|
||||
declarationBuilder.convertBlockExpressionWithoutBuilding(block!!).apply {
|
||||
statements.firstOrNull()?.let {
|
||||
if (it.isContractBlockFirCheck()) {
|
||||
this@buildAnonymousFunction.contractDescription = it.toLegacyRawContractDescription()
|
||||
@@ -326,7 +326,7 @@ class ExpressionsConverter(
|
||||
binaryExpression.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
OPERATION_REFERENCE -> operationTokenName = it.asText
|
||||
TYPE_REFERENCE -> firType = declarationsConverter.convertType(it)
|
||||
TYPE_REFERENCE -> firType = declarationBuilder.convertType(it)
|
||||
else -> if (it.isExpression()) leftArgAsFir = getAsFirExpression(it, "No left operand")
|
||||
}
|
||||
}
|
||||
@@ -361,8 +361,8 @@ class ExpressionsConverter(
|
||||
context.addNewLabel(pair.first)
|
||||
errorLabelSource = pair.second
|
||||
}
|
||||
BLOCK -> firExpression = declarationsConverter.convertBlock(it)
|
||||
PROPERTY -> firExpression = declarationsConverter.convertPropertyDeclaration(it)
|
||||
BLOCK -> firExpression = declarationBuilder.convertBlock(it)
|
||||
PROPERTY -> firExpression = declarationBuilder.convertPropertyDeclaration(it)
|
||||
else -> if (it.isExpression()) firExpression = getAsFirExpression(it)
|
||||
}
|
||||
}
|
||||
@@ -436,9 +436,9 @@ class ExpressionsConverter(
|
||||
val firAnnotationList = mutableListOf<FirAnnotation>()
|
||||
annotatedExpression.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
ANNOTATION -> firAnnotationList += declarationsConverter.convertAnnotation(it)
|
||||
ANNOTATION_ENTRY -> firAnnotationList += declarationsConverter.convertAnnotationEntry(it)
|
||||
BLOCK -> firExpression = declarationsConverter.convertBlockExpression(it)
|
||||
ANNOTATION -> firAnnotationList += declarationBuilder.convertAnnotation(it)
|
||||
ANNOTATION_ENTRY -> firAnnotationList += declarationBuilder.convertAnnotationEntry(it)
|
||||
BLOCK -> firExpression = declarationBuilder.convertBlockExpression(it)
|
||||
else -> if (it.isExpression()) {
|
||||
context.forwardLabelUsagePermission(annotatedExpression, it)
|
||||
firExpression = getAsFirExpression(it)
|
||||
@@ -604,7 +604,7 @@ class ExpressionsConverter(
|
||||
additionalArgument = getAsFirExpression(node, "Incorrect invoke receiver")
|
||||
}
|
||||
TYPE_ARGUMENT_LIST -> {
|
||||
firTypeArguments += declarationsConverter.convertTypeArguments(node, allowedUnderscoredTypeArgument = true)
|
||||
firTypeArguments += declarationBuilder.convertTypeArguments(node, allowedUnderscoredTypeArgument = true)
|
||||
}
|
||||
VALUE_ARGUMENT_LIST, LAMBDA_ARGUMENT -> {
|
||||
hasArguments = true
|
||||
@@ -713,7 +713,7 @@ class ExpressionsConverter(
|
||||
val whenEntries = mutableListOf<WhenEntry>()
|
||||
whenExpression.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
PROPERTY -> subjectVariable = (declarationsConverter.convertPropertyDeclaration(it) as FirVariable).let { variable ->
|
||||
PROPERTY -> subjectVariable = (declarationBuilder.convertPropertyDeclaration(it) as FirVariable).let { variable ->
|
||||
buildProperty {
|
||||
source = it.toFirSourceElement()
|
||||
origin = FirDeclarationOrigin.Source
|
||||
@@ -810,8 +810,8 @@ class ExpressionsConverter(
|
||||
shouldBindSubject = shouldBindSubject || shouldBind
|
||||
}
|
||||
ELSE_KEYWORD -> isElse = true
|
||||
BLOCK -> firBlock = declarationsConverter.convertBlock(it)
|
||||
else -> if (it.isExpression()) firBlock = declarationsConverter.convertBlock(it)
|
||||
BLOCK -> firBlock = declarationBuilder.convertBlock(it)
|
||||
else -> if (it.isExpression()) firBlock = declarationBuilder.convertBlock(it)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -916,7 +916,7 @@ class ExpressionsConverter(
|
||||
var firType: FirTypeRef? = null
|
||||
whenCondition.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
TYPE_REFERENCE -> firType = declarationsConverter.convertType(it)
|
||||
TYPE_REFERENCE -> firType = declarationBuilder.convertType(it)
|
||||
IS_KEYWORD -> firOperation = FirOperation.IS
|
||||
NOT_IS -> firOperation = FirOperation.NOT_IS
|
||||
}
|
||||
@@ -1101,7 +1101,7 @@ class ExpressionsConverter(
|
||||
var blockNode: LighterASTNode? = null
|
||||
forLoop.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
VALUE_PARAMETER -> parameter = declarationsConverter.convertValueParameter(it, null, ValueParameterDeclaration.FOR_LOOP)
|
||||
VALUE_PARAMETER -> parameter = declarationBuilder.convertValueParameter(it, null, ValueParameterDeclaration.FOR_LOOP)
|
||||
LOOP_RANGE -> rangeExpression = getAsFirExpression(it, "No range in for loop")
|
||||
BODY -> blockNode = it
|
||||
}
|
||||
@@ -1190,7 +1190,7 @@ class ExpressionsConverter(
|
||||
var firStatement: FirStatement? = null
|
||||
body?.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
BLOCK -> firBlock = declarationsConverter.convertBlockExpression(it)
|
||||
BLOCK -> firBlock = declarationBuilder.convertBlockExpression(it)
|
||||
ANNOTATED_EXPRESSION -> {
|
||||
if (it.getChildNodeByType(BLOCK) != null) {
|
||||
firBlock = getAsFirExpression(it)
|
||||
@@ -1215,7 +1215,7 @@ class ExpressionsConverter(
|
||||
var finallyBlock: FirBlock? = null
|
||||
tryExpression.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
BLOCK -> tryBlock = declarationsConverter.convertBlock(it)
|
||||
BLOCK -> tryBlock = declarationBuilder.convertBlock(it)
|
||||
CATCH -> convertCatchClause(it)?.also { oneClause -> catchClauses += oneClause }
|
||||
FINALLY -> finallyBlock = convertFinally(it)
|
||||
}
|
||||
@@ -1256,13 +1256,13 @@ class ExpressionsConverter(
|
||||
var blockNode: LighterASTNode? = null
|
||||
catchClause.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
VALUE_PARAMETER_LIST -> valueParameter = declarationsConverter.convertValueParameters(it, FirAnonymousFunctionSymbol()/*TODO*/, ValueParameterDeclaration.CATCH)
|
||||
VALUE_PARAMETER_LIST -> valueParameter = declarationBuilder.convertValueParameters(it, FirAnonymousFunctionSymbol()/*TODO*/, ValueParameterDeclaration.CATCH)
|
||||
.firstOrNull() ?: return null
|
||||
BLOCK -> blockNode = it
|
||||
}
|
||||
}
|
||||
|
||||
return Triple(valueParameter, declarationsConverter.convertBlock(blockNode), catchClause.toFirSourceElement())
|
||||
return Triple(valueParameter, declarationBuilder.convertBlock(blockNode), catchClause.toFirSourceElement())
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1276,7 +1276,7 @@ class ExpressionsConverter(
|
||||
}
|
||||
}
|
||||
|
||||
return declarationsConverter.convertBlock(blockNode)
|
||||
return declarationBuilder.convertBlock(blockNode)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1442,7 +1442,7 @@ class ExpressionsConverter(
|
||||
var superTypeRef: FirTypeRef = implicitType
|
||||
superExpression.forEachChildren {
|
||||
when (it.tokenType) {
|
||||
TYPE_REFERENCE -> superTypeRef = declarationsConverter.convertType(it)
|
||||
TYPE_REFERENCE -> superTypeRef = declarationBuilder.convertType(it)
|
||||
}
|
||||
}
|
||||
|
||||
+16
-16
@@ -51,11 +51,11 @@ import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.shouldNotBeCalled
|
||||
|
||||
open class RawFirBuilder(
|
||||
open class PsiRawFirBuilder(
|
||||
session: FirSession,
|
||||
val baseScopeProvider: FirScopeProvider,
|
||||
bodyBuildingMode: BodyBuildingMode = BodyBuildingMode.NORMAL
|
||||
) : BaseFirBuilder<PsiElement>(session) {
|
||||
) : AbstractRawFirBuilder<PsiElement>(session) {
|
||||
protected open fun bindFunctionTarget(target: FirFunctionTarget, function: FirFunction) = target.bind(function)
|
||||
protected open fun FirFunctionBuilder.additionalFunctionInit() {}
|
||||
protected open fun FirPropertyBuilder.additionalPropertyInit() {}
|
||||
@@ -87,7 +87,7 @@ open class RawFirBuilder(
|
||||
}
|
||||
|
||||
override fun PsiElement.toFirSourceElement(kind: KtFakeSourceElementKind?): KtPsiSourceElement {
|
||||
val actualKind = kind ?: this@RawFirBuilder.context.forcedElementSourceKind ?: KtRealSourceElementKind
|
||||
val actualKind = kind ?: this@PsiRawFirBuilder.context.forcedElementSourceKind ?: KtRealSourceElementKind
|
||||
return this.toKtPsiSourceElement(actualKind)
|
||||
}
|
||||
|
||||
@@ -458,7 +458,7 @@ open class RawFirBuilder(
|
||||
this.status = status
|
||||
annotations += accessorAnnotationsFromProperty
|
||||
extractAnnotationsTo(this)
|
||||
this@RawFirBuilder.context.firFunctionTargets += accessorTarget
|
||||
this@PsiRawFirBuilder.context.firFunctionTargets += accessorTarget
|
||||
symbol = FirPropertyAccessorSymbol()
|
||||
extractValueParametersTo(
|
||||
this, symbol, ValueParameterDeclaration.SETTER, propertyTypeRefToUse, parameterAnnotationsFromProperty
|
||||
@@ -486,7 +486,7 @@ open class RawFirBuilder(
|
||||
}.also {
|
||||
it.initContainingClassAttr()
|
||||
bindFunctionTarget(accessorTarget, it)
|
||||
this@RawFirBuilder.context.firFunctionTargets.removeLast()
|
||||
this@PsiRawFirBuilder.context.firFunctionTargets.removeLast()
|
||||
}
|
||||
}
|
||||
isGetter || property.isVar -> {
|
||||
@@ -629,7 +629,7 @@ open class RawFirBuilder(
|
||||
require(hasValOrVar())
|
||||
val type = typeReference.convertSafe<FirTypeRef>() ?: createNoTypeForParameterTypeRef()
|
||||
val status = FirDeclarationStatusImpl(visibility, modality).apply {
|
||||
isExpect = hasExpectModifier() || this@RawFirBuilder.context.containerIsExpect
|
||||
isExpect = hasExpectModifier() || this@PsiRawFirBuilder.context.containerIsExpect
|
||||
isActual = hasActualModifier()
|
||||
isOverride = hasModifier(OVERRIDE_KEYWORD)
|
||||
isConst = hasModifier(CONST_KEYWORD)
|
||||
@@ -861,7 +861,7 @@ open class RawFirBuilder(
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
name = NameUtils.delegateFieldName(fieldOrd)
|
||||
returnTypeRef = type
|
||||
symbol = FirFieldSymbol(CallableId(this@RawFirBuilder.context.currentClassId, name))
|
||||
symbol = FirFieldSymbol(CallableId(this@PsiRawFirBuilder.context.currentClassId, name))
|
||||
isVar = false
|
||||
status = FirDeclarationStatusImpl(Visibilities.Private, Modality.FINAL)
|
||||
initializer = delegateExpression
|
||||
@@ -1018,7 +1018,7 @@ open class RawFirBuilder(
|
||||
|
||||
val explicitVisibility = this?.visibility?.takeUnless { it == Visibilities.Unknown }
|
||||
val status = FirDeclarationStatusImpl(explicitVisibility ?: defaultVisibility(), Modality.FINAL).apply {
|
||||
isExpect = this@toFirConstructor?.hasExpectModifier() == true || this@RawFirBuilder.context.containerIsExpect
|
||||
isExpect = this@toFirConstructor?.hasExpectModifier() == true || this@PsiRawFirBuilder.context.containerIsExpect
|
||||
isActual = this@toFirConstructor?.hasActualModifier() == true
|
||||
isInner = owner.hasModifier(INNER_KEYWORD)
|
||||
isFromSealedClass = owner.hasModifier(SEALED_KEYWORD) && explicitVisibility !== Visibilities.Private
|
||||
@@ -1144,7 +1144,7 @@ open class RawFirBuilder(
|
||||
ownerClassHasDefaultConstructor: Boolean
|
||||
): FirDeclaration {
|
||||
val ktEnumEntry = this@toFirEnumEntry
|
||||
val containingClassIsExpectClass = hasExpectModifier() || this@RawFirBuilder.context.containerIsExpect
|
||||
val containingClassIsExpectClass = hasExpectModifier() || this@PsiRawFirBuilder.context.containerIsExpect
|
||||
return buildEnumEntry {
|
||||
source = toFirSourceElement()
|
||||
moduleData = baseModuleData
|
||||
@@ -1172,7 +1172,7 @@ open class RawFirBuilder(
|
||||
moduleData = baseModuleData
|
||||
origin = FirDeclarationOrigin.Source
|
||||
classKind = ClassKind.ENUM_ENTRY
|
||||
scopeProvider = this@RawFirBuilder.baseScopeProvider
|
||||
scopeProvider = this@PsiRawFirBuilder.baseScopeProvider
|
||||
symbol = FirAnonymousObjectSymbol()
|
||||
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
|
||||
|
||||
@@ -1702,7 +1702,7 @@ open class RawFirBuilder(
|
||||
returnTypeRef = selfTypeRef
|
||||
val explicitVisibility = visibility
|
||||
status = FirDeclarationStatusImpl(explicitVisibility, Modality.FINAL).apply {
|
||||
isExpect = hasExpectModifier() || this@RawFirBuilder.context.containerIsExpect
|
||||
isExpect = hasExpectModifier() || this@PsiRawFirBuilder.context.containerIsExpect
|
||||
isActual = hasActualModifier()
|
||||
isInner = owner.hasModifier(INNER_KEYWORD)
|
||||
isFromSealedClass = owner.hasModifier(SEALED_KEYWORD) && explicitVisibility !== Visibilities.Private
|
||||
@@ -1717,7 +1717,7 @@ open class RawFirBuilder(
|
||||
) {
|
||||
getDelegationCall().convert(delegatedTypeRef)
|
||||
}
|
||||
this@RawFirBuilder.context.firFunctionTargets += target
|
||||
this@PsiRawFirBuilder.context.firFunctionTargets += target
|
||||
extractAnnotationsTo(this)
|
||||
typeParameters += constructorTypeParametersFromConstructedClass(ownerTypeParameters)
|
||||
extractValueParametersTo(this, symbol, ValueParameterDeclaration.FUNCTION)
|
||||
@@ -1726,7 +1726,7 @@ open class RawFirBuilder(
|
||||
val (body, contractDescription) = buildFirBody()
|
||||
contractDescription?.let { this.contractDescription = it }
|
||||
this.body = body
|
||||
this@RawFirBuilder.context.firFunctionTargets.removeLast()
|
||||
this@PsiRawFirBuilder.context.firFunctionTargets.removeLast()
|
||||
}.also {
|
||||
it.containingClassForStaticMemberAttr = currentDispatchReceiverType()!!.lookupTag
|
||||
bindFunctionTarget(target, it)
|
||||
@@ -1766,13 +1766,13 @@ open class RawFirBuilder(
|
||||
|
||||
private fun KtDeclarationWithInitializer.toInitializerExpression() =
|
||||
runIf(hasInitializer()) {
|
||||
this@RawFirBuilder.context.calleeNamesForLambda += null
|
||||
this@PsiRawFirBuilder.context.calleeNamesForLambda += null
|
||||
|
||||
val expression = buildOrLazyExpression(null) {
|
||||
initializer.toFirExpression("Should have initializer")
|
||||
}
|
||||
|
||||
this@RawFirBuilder.context.calleeNamesForLambda.removeLast()
|
||||
this@PsiRawFirBuilder.context.calleeNamesForLambda.removeLast()
|
||||
expression
|
||||
}
|
||||
|
||||
@@ -1867,7 +1867,7 @@ open class RawFirBuilder(
|
||||
)
|
||||
|
||||
status = FirDeclarationStatusImpl(visibility, modality).apply {
|
||||
isExpect = hasExpectModifier() || this@RawFirBuilder.context.containerIsExpect
|
||||
isExpect = hasExpectModifier() || this@PsiRawFirBuilder.context.containerIsExpect
|
||||
isActual = hasActualModifier()
|
||||
isOverride = hasModifier(OVERRIDE_KEYWORD)
|
||||
isConst = hasModifier(CONST_KEYWORD)
|
||||
+1
-1
@@ -80,7 +80,7 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase(
|
||||
|
||||
protected fun KtFile.toFirFile(bodyBuildingMode: BodyBuildingMode = BodyBuildingMode.NORMAL): FirFile {
|
||||
val session = FirSessionFactoryHelper.createEmptySession()
|
||||
return RawFirBuilder(
|
||||
return PsiRawFirBuilder(
|
||||
session,
|
||||
StubFirScopeProvider,
|
||||
bodyBuildingMode = bodyBuildingMode
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.types.ConstantValueKind
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
|
||||
//T can be either PsiElement, or LighterASTNode
|
||||
abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Context<T> = Context()) {
|
||||
abstract class AbstractRawFirBuilder<T>(val baseSession: FirSession, val context: Context<T> = Context()) {
|
||||
val baseModuleData: FirModuleData = baseSession.moduleData
|
||||
|
||||
abstract fun T.toFirSourceElement(kind: KtFakeSourceElementKind? = null): KtSourceElement
|
||||
Reference in New Issue
Block a user