IR: use toLowerCaseAsciiOnly
This commit is contained in:
@@ -26,12 +26,12 @@ import org.jetbrains.kotlin.ir.util.ReferenceSymbolTable
|
|||||||
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
||||||
import org.jetbrains.kotlin.ir.util.getPackageFragment
|
import org.jetbrains.kotlin.ir.util.getPackageFragment
|
||||||
import org.jetbrains.kotlin.ir.util.referenceFunction
|
import org.jetbrains.kotlin.ir.util.referenceFunction
|
||||||
import org.jetbrains.kotlin.ir.util.toLowerCase
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.calls.components.isVararg
|
import org.jetbrains.kotlin.resolve.calls.components.isVararg
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
|
||||||
// This is what Context collects about IR.
|
// This is what Context collects about IR.
|
||||||
abstract class Ir<out T : CommonBackendContext>(val context: T, val irModule: IrModuleFragment) {
|
abstract class Ir<out T : CommonBackendContext>(val context: T, val irModule: IrModuleFragment) {
|
||||||
@@ -128,7 +128,7 @@ abstract class Symbols<out T : CommonBackendContext>(val context: T, private val
|
|||||||
}
|
}
|
||||||
|
|
||||||
val primitiveArrayOfByType = PrimitiveType.values().associate { type ->
|
val primitiveArrayOfByType = PrimitiveType.values().associate { type ->
|
||||||
val function = getSimpleFunction(Name.identifier(type.name.toLowerCase() + "ArrayOf")) {
|
val function = getSimpleFunction(Name.identifier(type.name.toLowerCaseAsciiOnly() + "ArrayOf")) {
|
||||||
it.extensionReceiverParameter == null && it.dispatchReceiverParameter == null && it.valueParameters.size == 1 &&
|
it.extensionReceiverParameter == null && it.dispatchReceiverParameter == null && it.valueParameters.size == 1 &&
|
||||||
it.valueParameters[0].isVararg
|
it.valueParameters[0].isVararg
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -9,11 +9,11 @@ import org.jetbrains.kotlin.ir.IrElement
|
|||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.util.dump
|
import org.jetbrains.kotlin.ir.util.dump
|
||||||
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
||||||
import org.jetbrains.kotlin.ir.util.toLowerCase
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
private val IrElement.elementName: String
|
private val IrElement.elementName: String
|
||||||
@@ -53,7 +53,7 @@ fun <Data, Context> makeVerifyAction(verifier: (Context, Data) -> Unit): Action<
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun dumpIrElement(actionState: ActionState, data: IrElement, context: Any?): String {
|
fun dumpIrElement(actionState: ActionState, data: IrElement, context: Any?): String {
|
||||||
val beforeOrAfterStr = actionState.beforeOrAfter.name.toLowerCase()
|
val beforeOrAfterStr = actionState.beforeOrAfter.name.toLowerCaseAsciiOnly()
|
||||||
|
|
||||||
var dumpText: String = ""
|
var dumpText: String = ""
|
||||||
val elementName: String
|
val elementName: String
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import org.jetbrains.kotlin.ir.types.isLong
|
|||||||
import org.jetbrains.kotlin.ir.util.constructors
|
import org.jetbrains.kotlin.ir.util.constructors
|
||||||
import org.jetbrains.kotlin.ir.util.findDeclaration
|
import org.jetbrains.kotlin.ir.util.findDeclaration
|
||||||
import org.jetbrains.kotlin.ir.util.kotlinPackageFqn
|
import org.jetbrains.kotlin.ir.util.kotlinPackageFqn
|
||||||
import org.jetbrains.kotlin.ir.util.toLowerCase
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi2ir.findSingleFunction
|
import org.jetbrains.kotlin.psi2ir.findSingleFunction
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendContext) {
|
class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendContext) {
|
||||||
@@ -220,7 +220,7 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC
|
|||||||
val jsArrayIteratorFunction = getInternalFunction("arrayIterator")
|
val jsArrayIteratorFunction = getInternalFunction("arrayIterator")
|
||||||
|
|
||||||
val jsPrimitiveArrayIteratorFunctions =
|
val jsPrimitiveArrayIteratorFunctions =
|
||||||
PrimitiveType.values().associate { it to getInternalFunction("${it.typeName.asString().toLowerCase()}ArrayIterator") }
|
PrimitiveType.values().associate { it to getInternalFunction("${it.typeName.asString().toLowerCaseAsciiOnly()}ArrayIterator") }
|
||||||
|
|
||||||
val arrayLiteral = unOp("arrayLiteral")
|
val arrayLiteral = unOp("arrayLiteral")
|
||||||
|
|
||||||
@@ -237,15 +237,15 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC
|
|||||||
val primitiveToSizeConstructor =
|
val primitiveToSizeConstructor =
|
||||||
PrimitiveType.values().associate { type ->
|
PrimitiveType.values().associate { type ->
|
||||||
type to (primitiveToTypedArrayMap[type]?.let {
|
type to (primitiveToTypedArrayMap[type]?.let {
|
||||||
unOp("${it.toLowerCase()}Array")
|
unOp("${it.toLowerCaseAsciiOnly()}Array")
|
||||||
} ?: getInternalFunction("${type.typeName.asString().toLowerCase()}Array"))
|
} ?: getInternalFunction("${type.typeName.asString().toLowerCaseAsciiOnly()}Array"))
|
||||||
}
|
}
|
||||||
|
|
||||||
val primitiveToLiteralConstructor =
|
val primitiveToLiteralConstructor =
|
||||||
PrimitiveType.values().associate { type ->
|
PrimitiveType.values().associate { type ->
|
||||||
type to (primitiveToTypedArrayMap[type]?.let {
|
type to (primitiveToTypedArrayMap[type]?.let {
|
||||||
unOp("${it.toLowerCase()}ArrayOf")
|
unOp("${it.toLowerCaseAsciiOnly()}ArrayOf")
|
||||||
} ?: getInternalFunction("${type.typeName.asString().toLowerCase()}ArrayOf"))
|
} ?: getInternalFunction("${type.typeName.asString().toLowerCaseAsciiOnly()}ArrayOf"))
|
||||||
}
|
}
|
||||||
|
|
||||||
val arrayConcat = getInternalWithoutPackage("arrayConcat")
|
val arrayConcat = getInternalWithoutPackage("arrayConcat")
|
||||||
|
|||||||
+2
-1
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.declarations.IrPackageFragment
|
|||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
|
||||||
val varargPhase = makeIrFilePhase(
|
val varargPhase = makeIrFilePhase(
|
||||||
::VarargLowering,
|
::VarargLowering,
|
||||||
@@ -97,7 +98,7 @@ private class VarargLowering(val context: JvmBackendContext) : FileLoweringPass,
|
|||||||
companion object {
|
companion object {
|
||||||
private val PRIMITIVE_ARRAY_OF_NAMES: Set<String> =
|
private val PRIMITIVE_ARRAY_OF_NAMES: Set<String> =
|
||||||
(PrimitiveType.values().map { type -> type.name } + UnsignedType.values().map { type -> type.typeName.asString() })
|
(PrimitiveType.values().map { type -> type.name } + UnsignedType.values().map { type -> type.typeName.asString() })
|
||||||
.map { name -> name.toLowerCase() + "ArrayOf" }.toSet()
|
.map { name -> name.toLowerCaseAsciiOnly() + "ArrayOf" }.toSet()
|
||||||
|
|
||||||
private val IrFunction.isPrimitiveArrayOf: Boolean
|
private val IrFunction.isPrimitiveArrayOf: Boolean
|
||||||
get() {
|
get() {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.wasm.ast
|
package org.jetbrains.kotlin.backend.wasm.ast
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.util.toLowerCase
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
|
||||||
// TODO: Abstract out S-expression part of dumping?
|
// TODO: Abstract out S-expression part of dumping?
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ fun WasmImmediate.toWat(): String = when (this) {
|
|||||||
WasmImmediate.None -> ""
|
WasmImmediate.None -> ""
|
||||||
is WasmImmediate.DeclarationReference -> " $$name"
|
is WasmImmediate.DeclarationReference -> " $$name"
|
||||||
// SpiderMonkey jsshell won't parse Uppercase letters in literals
|
// SpiderMonkey jsshell won't parse Uppercase letters in literals
|
||||||
is WasmImmediate.LiteralValue<*> -> " $value".toLowerCase()
|
is WasmImmediate.LiteralValue<*> -> " $value".toLowerCaseAsciiOnly()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun wasmModuleToWat(module: WasmModule): String =
|
fun wasmModuleToWat(module: WasmModule): String =
|
||||||
|
|||||||
@@ -615,7 +615,3 @@ val IrFunctionReference.typeSubstitutionMap: Map<IrTypeParameterSymbol, IrType>
|
|||||||
|
|
||||||
val IrFunctionAccessExpression.typeSubstitutionMap: Map<IrTypeParameterSymbol, IrType>
|
val IrFunctionAccessExpression.typeSubstitutionMap: Map<IrTypeParameterSymbol, IrType>
|
||||||
get() = getTypeSubstitutionMap(symbol.owner)
|
get() = getTypeSubstitutionMap(symbol.owner)
|
||||||
|
|
||||||
// Perhaps move to some even more general utilities?
|
|
||||||
fun String.toLowerCase() = toLowerCase(Locale.ROOT)
|
|
||||||
fun String.toUpperCase() = toUpperCase(Locale.ROOT)
|
|
||||||
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.ir.types.*
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
|
|
||||||
fun IrElement.render() =
|
fun IrElement.render() =
|
||||||
@@ -206,7 +207,7 @@ class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
|
|||||||
append(' ')
|
append(' ')
|
||||||
|
|
||||||
if (declaration is IrSimpleFunction) {
|
if (declaration is IrSimpleFunction) {
|
||||||
append(declaration.modality.toString().toLowerCase())
|
append(declaration.modality.toString().toLowerCaseAsciiOnly())
|
||||||
append(' ')
|
append(' ')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,7 +263,7 @@ class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
|
|||||||
buildTrimEnd {
|
buildTrimEnd {
|
||||||
append(declaration.visibility)
|
append(declaration.visibility)
|
||||||
append(' ')
|
append(' ')
|
||||||
append(declaration.modality.toString().toLowerCase())
|
append(declaration.modality.toString().toLowerCaseAsciiOnly())
|
||||||
append(' ')
|
append(' ')
|
||||||
|
|
||||||
append(declaration.name.asString())
|
append(declaration.name.asString())
|
||||||
|
|||||||
Reference in New Issue
Block a user