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 org.jetbrains.kotlin.fir.FirElement
|
||||
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.references.FirReference
|
||||
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.ir.IrElement
|
||||
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.types.IrErrorType
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
@@ -190,3 +193,25 @@ fun FirVariableSymbol<*>.toBackingFieldSymbol(declarationStorage: Fir2IrDeclarat
|
||||
fun FirVariableSymbol<*>.toValueSymbol(declarationStorage: Fir2IrDeclarationStorage): IrSymbol {
|
||||
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(":compiler:fir:cones"))
|
||||
compile(project(":compiler:fir:tree"))
|
||||
compile(project(":compiler:frontend"))
|
||||
compile("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.2")
|
||||
|
||||
compileOnly(project(":kotlin-reflect-api"))
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
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 {
|
||||
kotlin("jvm")
|
||||
id("jps-compatible")
|
||||
@@ -14,7 +9,8 @@ dependencies {
|
||||
compile(project(":compiler:frontend.common"))
|
||||
compile(project(":core:descriptors"))
|
||||
compile(project(":compiler:fir:cones"))
|
||||
compile(project(":compiler:ir.tree"))
|
||||
compile(project(":compiler:resolution"))
|
||||
|
||||
// Necessary only to store bound PsiElement inside FirElement
|
||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core") }
|
||||
}
|
||||
|
||||
@@ -5,11 +5,6 @@
|
||||
|
||||
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) {
|
||||
object Null : FirConstKind<Nothing?>("Null")
|
||||
object Boolean : FirConstKind<kotlin.Boolean>("Boolean")
|
||||
@@ -25,25 +20,3 @@ sealed class FirConstKind<T>(val asString: kotlin.String) {
|
||||
|
||||
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.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
|
||||
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
|
||||
|
||||
plugins {
|
||||
@@ -19,7 +14,7 @@ dependencies {
|
||||
compile(project(":compiler:frontend.common"))
|
||||
compile(project(":core:descriptors"))
|
||||
compile(project(":compiler:fir:cones"))
|
||||
compile(project(":compiler:ir.tree"))
|
||||
compile(project(":compiler:resolution"))
|
||||
|
||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
||||
compileOnly(intellijDep()) {
|
||||
@@ -47,4 +42,3 @@ sourceSets {
|
||||
}
|
||||
"test" {}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user