Remove dependency of fir.tree on ir.tree
This commit is contained in:
@@ -8,6 +8,8 @@ package org.jetbrains.kotlin.fir.backend
|
|||||||
import com.intellij.psi.PsiCompiledElement
|
import com.intellij.psi.PsiCompiledElement
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirConstKind
|
||||||
import org.jetbrains.kotlin.fir.psi
|
import org.jetbrains.kotlin.fir.psi
|
||||||
import org.jetbrains.kotlin.fir.references.FirReference
|
import org.jetbrains.kotlin.fir.references.FirReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||||
@@ -18,6 +20,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.*
|
|||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||||
import org.jetbrains.kotlin.ir.symbols.*
|
import org.jetbrains.kotlin.ir.symbols.*
|
||||||
import org.jetbrains.kotlin.ir.types.IrErrorType
|
import org.jetbrains.kotlin.ir.types.IrErrorType
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
@@ -190,3 +193,25 @@ fun FirVariableSymbol<*>.toBackingFieldSymbol(declarationStorage: Fir2IrDeclarat
|
|||||||
fun FirVariableSymbol<*>.toValueSymbol(declarationStorage: Fir2IrDeclarationStorage): IrSymbol {
|
fun FirVariableSymbol<*>.toValueSymbol(declarationStorage: Fir2IrDeclarationStorage): IrSymbol {
|
||||||
return declarationStorage.getIrValueSymbol(this)
|
return declarationStorage.getIrValueSymbol(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun FirConstExpression<*>.getIrConstKind(): IrConstKind<*> = when (kind) {
|
||||||
|
FirConstKind.IntegerLiteral -> {
|
||||||
|
val type = typeRef.coneTypeUnsafe<ConeIntegerLiteralType>()
|
||||||
|
type.getApproximatedType().toConstKind()!!.toIrConstKind()
|
||||||
|
}
|
||||||
|
else -> kind.toIrConstKind()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun FirConstKind<*>.toIrConstKind(): IrConstKind<*> = when (this) {
|
||||||
|
FirConstKind.Null -> IrConstKind.Null
|
||||||
|
FirConstKind.Boolean -> IrConstKind.Boolean
|
||||||
|
FirConstKind.Char -> IrConstKind.Char
|
||||||
|
FirConstKind.Byte -> IrConstKind.Byte
|
||||||
|
FirConstKind.Short -> IrConstKind.Short
|
||||||
|
FirConstKind.Int -> IrConstKind.Int
|
||||||
|
FirConstKind.Long -> IrConstKind.Long
|
||||||
|
FirConstKind.String -> IrConstKind.String
|
||||||
|
FirConstKind.Float -> IrConstKind.Float
|
||||||
|
FirConstKind.Double -> IrConstKind.Double
|
||||||
|
FirConstKind.IntegerLiteral -> throw IllegalArgumentException()
|
||||||
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ dependencies {
|
|||||||
compile(project(":core:deserialization"))
|
compile(project(":core:deserialization"))
|
||||||
compile(project(":compiler:fir:cones"))
|
compile(project(":compiler:fir:cones"))
|
||||||
compile(project(":compiler:fir:tree"))
|
compile(project(":compiler:fir:tree"))
|
||||||
|
compile(project(":compiler:frontend"))
|
||||||
compile("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.2")
|
compile("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.2")
|
||||||
|
|
||||||
compileOnly(project(":kotlin-reflect-api"))
|
compileOnly(project(":kotlin-reflect-api"))
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
import org.jetbrains.kotlin.ideaExt.idea
|
import org.jetbrains.kotlin.ideaExt.idea
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm")
|
kotlin("jvm")
|
||||||
id("jps-compatible")
|
id("jps-compatible")
|
||||||
@@ -14,7 +9,8 @@ dependencies {
|
|||||||
compile(project(":compiler:frontend.common"))
|
compile(project(":compiler:frontend.common"))
|
||||||
compile(project(":core:descriptors"))
|
compile(project(":core:descriptors"))
|
||||||
compile(project(":compiler:fir:cones"))
|
compile(project(":compiler:fir:cones"))
|
||||||
compile(project(":compiler:ir.tree"))
|
compile(project(":compiler:resolution"))
|
||||||
|
|
||||||
// Necessary only to store bound PsiElement inside FirElement
|
// Necessary only to store bound PsiElement inside FirElement
|
||||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.expressions
|
package org.jetbrains.kotlin.fir.expressions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.types.ConeIntegerLiteralType
|
|
||||||
import org.jetbrains.kotlin.fir.types.coneTypeUnsafe
|
|
||||||
import org.jetbrains.kotlin.fir.types.toConstKind
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
|
||||||
|
|
||||||
sealed class FirConstKind<T>(val asString: kotlin.String) {
|
sealed class FirConstKind<T>(val asString: kotlin.String) {
|
||||||
object Null : FirConstKind<Nothing?>("Null")
|
object Null : FirConstKind<Nothing?>("Null")
|
||||||
object Boolean : FirConstKind<kotlin.Boolean>("Boolean")
|
object Boolean : FirConstKind<kotlin.Boolean>("Boolean")
|
||||||
@@ -25,25 +20,3 @@ sealed class FirConstKind<T>(val asString: kotlin.String) {
|
|||||||
|
|
||||||
override fun toString() = asString
|
override fun toString() = asString
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirConstExpression<*>.getIrConstKind(): IrConstKind<*> = when (kind) {
|
|
||||||
FirConstKind.IntegerLiteral -> {
|
|
||||||
val type = typeRef.coneTypeUnsafe<ConeIntegerLiteralType>()
|
|
||||||
type.getApproximatedType().toConstKind()!!.toIrConstKind()
|
|
||||||
}
|
|
||||||
else -> kind.toIrConstKind()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun FirConstKind<*>.toIrConstKind(): IrConstKind<*> = when (this) {
|
|
||||||
FirConstKind.Null -> IrConstKind.Null
|
|
||||||
FirConstKind.Boolean -> IrConstKind.Boolean
|
|
||||||
FirConstKind.Char -> IrConstKind.Char
|
|
||||||
FirConstKind.Byte -> IrConstKind.Byte
|
|
||||||
FirConstKind.Short -> IrConstKind.Short
|
|
||||||
FirConstKind.Int -> IrConstKind.Int
|
|
||||||
FirConstKind.Long -> IrConstKind.Long
|
|
||||||
FirConstKind.String -> IrConstKind.String
|
|
||||||
FirConstKind.Float -> IrConstKind.Float
|
|
||||||
FirConstKind.Double -> IrConstKind.Double
|
|
||||||
FirConstKind.IntegerLiteral -> throw IllegalArgumentException()
|
|
||||||
}
|
|
||||||
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
inline val FirAnnotationCall.coneClassLikeType: ConeClassLikeType?
|
inline val FirAnnotationCall.coneClassLikeType: ConeClassLikeType?
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
/*
|
|
||||||
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import tasks.WriteCopyrightToFile
|
import tasks.WriteCopyrightToFile
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
@@ -19,7 +14,7 @@ dependencies {
|
|||||||
compile(project(":compiler:frontend.common"))
|
compile(project(":compiler:frontend.common"))
|
||||||
compile(project(":core:descriptors"))
|
compile(project(":core:descriptors"))
|
||||||
compile(project(":compiler:fir:cones"))
|
compile(project(":compiler:fir:cones"))
|
||||||
compile(project(":compiler:ir.tree"))
|
compile(project(":compiler:resolution"))
|
||||||
|
|
||||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
compileOnly(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
||||||
compileOnly(intellijDep()) {
|
compileOnly(intellijDep()) {
|
||||||
@@ -47,4 +42,3 @@ sourceSets {
|
|||||||
}
|
}
|
||||||
"test" {}
|
"test" {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user