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.getPackageFragment
|
||||
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.Name
|
||||
import org.jetbrains.kotlin.resolve.calls.components.isVararg
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
|
||||
// This is what Context collects about IR.
|
||||
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 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.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.util.dump
|
||||
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.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
import java.io.File
|
||||
|
||||
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 {
|
||||
val beforeOrAfterStr = actionState.beforeOrAfter.name.toLowerCase()
|
||||
val beforeOrAfterStr = actionState.beforeOrAfter.name.toLowerCaseAsciiOnly()
|
||||
|
||||
var dumpText: 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.findDeclaration
|
||||
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.Name
|
||||
import org.jetbrains.kotlin.psi2ir.findSingleFunction
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
import java.util.*
|
||||
|
||||
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 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")
|
||||
|
||||
@@ -237,15 +237,15 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC
|
||||
val primitiveToSizeConstructor =
|
||||
PrimitiveType.values().associate { type ->
|
||||
type to (primitiveToTypedArrayMap[type]?.let {
|
||||
unOp("${it.toLowerCase()}Array")
|
||||
} ?: getInternalFunction("${type.typeName.asString().toLowerCase()}Array"))
|
||||
unOp("${it.toLowerCaseAsciiOnly()}Array")
|
||||
} ?: getInternalFunction("${type.typeName.asString().toLowerCaseAsciiOnly()}Array"))
|
||||
}
|
||||
|
||||
val primitiveToLiteralConstructor =
|
||||
PrimitiveType.values().associate { type ->
|
||||
type to (primitiveToTypedArrayMap[type]?.let {
|
||||
unOp("${it.toLowerCase()}ArrayOf")
|
||||
} ?: getInternalFunction("${type.typeName.asString().toLowerCase()}ArrayOf"))
|
||||
unOp("${it.toLowerCaseAsciiOnly()}ArrayOf")
|
||||
} ?: getInternalFunction("${type.typeName.asString().toLowerCaseAsciiOnly()}ArrayOf"))
|
||||
}
|
||||
|
||||
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.symbols.IrFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
|
||||
val varargPhase = makeIrFilePhase(
|
||||
::VarargLowering,
|
||||
@@ -97,7 +98,7 @@ private class VarargLowering(val context: JvmBackendContext) : FileLoweringPass,
|
||||
companion object {
|
||||
private val PRIMITIVE_ARRAY_OF_NAMES: Set<String> =
|
||||
(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
|
||||
get() {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
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?
|
||||
|
||||
@@ -16,7 +16,7 @@ fun WasmImmediate.toWat(): String = when (this) {
|
||||
WasmImmediate.None -> ""
|
||||
is WasmImmediate.DeclarationReference -> " $$name"
|
||||
// SpiderMonkey jsshell won't parse Uppercase letters in literals
|
||||
is WasmImmediate.LiteralValue<*> -> " $value".toLowerCase()
|
||||
is WasmImmediate.LiteralValue<*> -> " $value".toLowerCaseAsciiOnly()
|
||||
}
|
||||
|
||||
fun wasmModuleToWat(module: WasmModule): String =
|
||||
|
||||
@@ -615,7 +615,3 @@ val IrFunctionReference.typeSubstitutionMap: Map<IrTypeParameterSymbol, IrType>
|
||||
|
||||
val IrFunctionAccessExpression.typeSubstitutionMap: Map<IrTypeParameterSymbol, IrType>
|
||||
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.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
|
||||
fun IrElement.render() =
|
||||
@@ -206,7 +207,7 @@ class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
|
||||
append(' ')
|
||||
|
||||
if (declaration is IrSimpleFunction) {
|
||||
append(declaration.modality.toString().toLowerCase())
|
||||
append(declaration.modality.toString().toLowerCaseAsciiOnly())
|
||||
append(' ')
|
||||
}
|
||||
|
||||
@@ -262,7 +263,7 @@ class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
|
||||
buildTrimEnd {
|
||||
append(declaration.visibility)
|
||||
append(' ')
|
||||
append(declaration.modality.toString().toLowerCase())
|
||||
append(declaration.modality.toString().toLowerCaseAsciiOnly())
|
||||
append(' ')
|
||||
|
||||
append(declaration.name.asString())
|
||||
|
||||
Reference in New Issue
Block a user