Update operations map, remove TODO
This commit is contained in:
+36
-36
@@ -144,12 +144,12 @@ internal val binaryOperations: HashMap<BinaryOperationKey<*, *>, Pair<Function2<
|
|||||||
binaryOperation(BYTE, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(BYTE, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(BYTE, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(BYTE, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(BYTE, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(BYTE, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(BYTE, BYTE, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(BYTE, BYTE, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(BYTE, DOUBLE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(BYTE, DOUBLE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(BYTE, FLOAT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(BYTE, FLOAT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(BYTE, INT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(BYTE, INT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(BYTE, LONG, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(BYTE, LONG, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(BYTE, SHORT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(BYTE, SHORT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(BYTE, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
binaryOperation(BYTE, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
||||||
binaryOperation(BYTE, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(BYTE, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
binaryOperation(BYTE, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(BYTE, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
@@ -193,12 +193,12 @@ internal val binaryOperations: HashMap<BinaryOperationKey<*, *>, Pair<Function2<
|
|||||||
binaryOperation(DOUBLE, INT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, INT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, LONG, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, LONG, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, SHORT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, SHORT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, BYTE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, BYTE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, DOUBLE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, DOUBLE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, FLOAT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, FLOAT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, INT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, INT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, LONG, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, LONG, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, SHORT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, SHORT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, BYTE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, BYTE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
binaryOperation(DOUBLE, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(DOUBLE, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
@@ -236,12 +236,12 @@ internal val binaryOperations: HashMap<BinaryOperationKey<*, *>, Pair<Function2<
|
|||||||
binaryOperation(FLOAT, INT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, INT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, LONG, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, LONG, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, SHORT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, SHORT, "plus", { a, b -> a.plus(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, BYTE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, BYTE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, DOUBLE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, DOUBLE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, FLOAT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, FLOAT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, INT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, INT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, LONG, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, LONG, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, SHORT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, SHORT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, BYTE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, BYTE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
binaryOperation(FLOAT, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(FLOAT, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
@@ -281,12 +281,12 @@ internal val binaryOperations: HashMap<BinaryOperationKey<*, *>, Pair<Function2<
|
|||||||
binaryOperation(INT, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(INT, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(INT, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(INT, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(INT, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(INT, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(INT, BYTE, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(INT, BYTE, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(INT, DOUBLE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(INT, DOUBLE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(INT, FLOAT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(INT, FLOAT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(INT, INT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(INT, INT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(INT, LONG, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(INT, LONG, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(INT, SHORT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(INT, SHORT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(INT, INT, "shl", { a, b -> a.shl(b) }, emptyBinaryFun),
|
binaryOperation(INT, INT, "shl", { a, b -> a.shl(b) }, emptyBinaryFun),
|
||||||
binaryOperation(INT, INT, "shr", { a, b -> a.shr(b) }, emptyBinaryFun),
|
binaryOperation(INT, INT, "shr", { a, b -> a.shr(b) }, emptyBinaryFun),
|
||||||
binaryOperation(INT, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
binaryOperation(INT, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
||||||
@@ -330,12 +330,12 @@ internal val binaryOperations: HashMap<BinaryOperationKey<*, *>, Pair<Function2<
|
|||||||
binaryOperation(LONG, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(LONG, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(LONG, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(LONG, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(LONG, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(LONG, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(LONG, BYTE, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(LONG, BYTE, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(LONG, DOUBLE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(LONG, DOUBLE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(LONG, FLOAT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(LONG, FLOAT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(LONG, INT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(LONG, INT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(LONG, LONG, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(LONG, LONG, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(LONG, SHORT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(LONG, SHORT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(LONG, INT, "shl", { a, b -> a.shl(b) }, emptyBinaryFun),
|
binaryOperation(LONG, INT, "shl", { a, b -> a.shl(b) }, emptyBinaryFun),
|
||||||
binaryOperation(LONG, INT, "shr", { a, b -> a.shr(b) }, emptyBinaryFun),
|
binaryOperation(LONG, INT, "shr", { a, b -> a.shr(b) }, emptyBinaryFun),
|
||||||
binaryOperation(LONG, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
binaryOperation(LONG, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
||||||
@@ -379,12 +379,12 @@ internal val binaryOperations: HashMap<BinaryOperationKey<*, *>, Pair<Function2<
|
|||||||
binaryOperation(SHORT, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(SHORT, INT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(SHORT, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(SHORT, LONG, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(SHORT, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
binaryOperation(SHORT, SHORT, "plus", { a, b -> a.plus(b) }, { a, b -> a.add(b) }),
|
||||||
binaryOperation(SHORT, BYTE, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(SHORT, BYTE, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(SHORT, DOUBLE, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(SHORT, DOUBLE, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(SHORT, FLOAT, "rem", { a, b -> a.mod(b) }, emptyBinaryFun),
|
binaryOperation(SHORT, FLOAT, "rem", { a, b -> a.rem(b) }, emptyBinaryFun),
|
||||||
binaryOperation(SHORT, INT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(SHORT, INT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(SHORT, LONG, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(SHORT, LONG, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(SHORT, SHORT, "rem", { a, b -> a.mod(b) }, { a, b -> a.mod(b) }),
|
binaryOperation(SHORT, SHORT, "rem", { a, b -> a.rem(b) }, { a, b -> a.rem(b) }),
|
||||||
binaryOperation(SHORT, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
binaryOperation(SHORT, BYTE, "times", { a, b -> a.times(b) }, { a, b -> a.multiply(b) }),
|
||||||
binaryOperation(SHORT, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(SHORT, DOUBLE, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
binaryOperation(SHORT, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
binaryOperation(SHORT, FLOAT, "times", { a, b -> a.times(b) }, emptyBinaryFun),
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|||||||
import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil
|
import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.TypeUtils
|
import org.jetbrains.kotlin.types.TypeUtils
|
||||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -105,15 +104,13 @@ fun generate(): String {
|
|||||||
val binaryOperationsMapIterator = binaryOperationsMap.iterator()
|
val binaryOperationsMapIterator = binaryOperationsMap.iterator()
|
||||||
while (binaryOperationsMapIterator.hasNext()) {
|
while (binaryOperationsMapIterator.hasNext()) {
|
||||||
val (funcName, parameters) = binaryOperationsMapIterator.next()
|
val (funcName, parameters) = binaryOperationsMapIterator.next()
|
||||||
// TODO: remove this when 'rem' will be added into the stdlib
|
|
||||||
val funcCall = if (OperatorNameConventions.REM.asString() == funcName) OperatorNameConventions.MOD.asString() else funcName
|
|
||||||
p.println(
|
p.println(
|
||||||
"binaryOperation(",
|
"binaryOperation(",
|
||||||
parameters.map { it.asString() }.joinToString(", "),
|
parameters.map { it.asString() }.joinToString(", "),
|
||||||
", ",
|
", ",
|
||||||
"\"$funcName\"",
|
"\"$funcName\"",
|
||||||
", { a, b -> a.${funcCall}(b) }, ",
|
", { a, b -> a.$funcName(b) }, ",
|
||||||
renderCheckBinaryOperation(funcCall, parameters),
|
renderCheckBinaryOperation(funcName, parameters),
|
||||||
")",
|
")",
|
||||||
if (binaryOperationsMapIterator.hasNext()) "," else ""
|
if (binaryOperationsMapIterator.hasNext()) "," else ""
|
||||||
)
|
)
|
||||||
@@ -148,6 +145,7 @@ fun renderCheckBinaryOperation(name: String, params: List<KotlinType>): String {
|
|||||||
"div" -> "{ a, b -> a.divide(b) }"
|
"div" -> "{ a, b -> a.divide(b) }"
|
||||||
"times" -> "{ a, b -> a.multiply(b) }"
|
"times" -> "{ a, b -> a.multiply(b) }"
|
||||||
"mod",
|
"mod",
|
||||||
|
"rem",
|
||||||
"xor",
|
"xor",
|
||||||
"or",
|
"or",
|
||||||
"and" -> "{ a, b -> a.$name(b) }"
|
"and" -> "{ a, b -> a.$name(b) }"
|
||||||
|
|||||||
Reference in New Issue
Block a user