[LL API] Recognize scripts in Analysis API

Although the proper support for script resolution is yet to arrive
in K2, some initial steps are required to make LL API understand
such a concept.
This commit is contained in:
Yan Zhulanow
2023-01-26 02:15:29 +09:00
committed by Space Team
parent 603b46e531
commit f352f7d5ba
9 changed files with 60 additions and 28 deletions
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirScriptSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -29,6 +30,7 @@ abstract class FirScript : FirDeclaration() {
abstract val name: Name
abstract val statements: List<FirStatement>
abstract override val symbol: FirScriptSymbol
abstract val containingFileSymbol: FirFileSymbol
abstract val parameters: List<FirVariable>
abstract val contextReceivers: List<FirContextReceiver>
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable
import org.jetbrains.kotlin.fir.declarations.impl.FirScriptImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirScriptSymbol
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -42,6 +43,7 @@ class FirScriptBuilder : FirAnnotationContainerBuilder {
lateinit var name: Name
val statements: MutableList<FirStatement> = mutableListOf()
lateinit var symbol: FirScriptSymbol
lateinit var containingFileSymbol: FirFileSymbol
val parameters: MutableList<FirVariable> = mutableListOf()
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -56,6 +58,7 @@ class FirScriptBuilder : FirAnnotationContainerBuilder {
name,
statements,
symbol,
containingFileSymbol,
parameters,
contextReceivers.toMutableOrEmpty(),
)
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirScript
import org.jetbrains.kotlin.fir.declarations.FirVariable
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirScriptSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -39,6 +40,7 @@ internal class FirScriptImpl(
override val name: Name,
override val statements: MutableList<FirStatement>,
override val symbol: FirScriptSymbol,
override val containingFileSymbol: FirFileSymbol,
override val parameters: MutableList<FirVariable>,
override var contextReceivers: MutableOrEmptyList<FirContextReceiver>,
) : FirScript() {