FIR: support varargs in resolve

This commit is contained in:
Simon Ogorodnik
2019-04-18 14:27:18 +03:00
committed by Mikhail Glukhikh
parent fa135bbab0
commit 9dcf8f836a
13 changed files with 145 additions and 28 deletions
@@ -13,6 +13,7 @@ object StandardClassIds {
private val BASE_KOTLIN_PACKAGE = FqName("kotlin")
private fun String.baseId() = ClassId(BASE_KOTLIN_PACKAGE, Name.identifier(this))
private fun Name.arrayId() = ClassId(Array.packageFqName, Name.identifier(identifier + Array.shortClassName.identifier))
val Nothing = "Nothing".baseId()
val Unit = "Unit".baseId()
@@ -25,14 +26,29 @@ object StandardClassIds {
val Char = "Char".baseId()
val Byte = "Byte".baseId()
val Short = "Short".baseId()
val Int = "Int".baseId()
val Long = "Long".baseId()
val String = "String".baseId()
val Float = "Float".baseId()
val Double = "Double".baseId()
val String = "String".baseId()
fun byName(name: String) = name.baseId()
val primitiveArrayTypeByElementType: Map<ClassId, ClassId> = mutableMapOf<ClassId, ClassId>().apply {
fun addPrimitive(id: ClassId) {
put(id, id.shortClassName.arrayId())
}
addPrimitive(Boolean)
addPrimitive(Char)
addPrimitive(Byte)
addPrimitive(Short)
addPrimitive(Int)
addPrimitive(Long)
addPrimitive(Float)
addPrimitive(Double)
}
val elementTypeByPrimitiveArrayType = primitiveArrayTypeByElementType.map { (k, v) -> v to k }.toMap()
}