Add missing times operator

This commit is contained in:
Chris Smowton
2022-02-18 11:33:12 +00:00
committed by Ian Lynagh
parent 96f3ea460f
commit 377a0f91f0
5 changed files with 87 additions and 0 deletions

View File

@@ -1293,6 +1293,13 @@ open class KotlinFileExtractor(
tw.writeExprsKotlinType(id, type.kotlinResult.id)
binopDisp(id)
}
c.origin == IrStatementOrigin.MUL && isNumericFunction("times") -> {
val id = tw.getFreshIdLabel<DbMulexpr>()
val type = useType(c.type)
tw.writeExprs_mulexpr(id, type.javaResult.id, parent, idx)
tw.writeExprsKotlinType(id, type.kotlinResult.id)
binopDisp(id)
}
c.origin == IrStatementOrigin.DIV && isNumericFunction("div") -> {
val id = tw.getFreshIdLabel<DbDivexpr>()
val type = useType(c.type)

View File

@@ -844,6 +844,46 @@ exprs.kt:
# 243| 0: [ValueNEExpr] ... (value not-equals) ...
# 243| 0: [VarAccess] nullableReftype
# 243| 1: [NullLiteral] null
# 246| 10: [Method] mulOperators
#-----| 4: (Parameters)
# 246| 0: [Parameter] x
# 246| 1: [Parameter] y
# 247| 2: [Parameter] byx
# 247| 3: [Parameter] byy
# 248| 4: [Parameter] sx
# 248| 5: [Parameter] sy
# 249| 6: [Parameter] lx
# 249| 7: [Parameter] ly
# 250| 8: [Parameter] dx
# 250| 9: [Parameter] dy
# 251| 10: [Parameter] fx
# 251| 11: [Parameter] fy
# 251| 5: [BlockStmt] { ... }
# 253| 0: [LocalVariableDeclStmt] var ...;
# 253| 1: [LocalVariableDeclExpr] i
# 253| 0: [MulExpr] ... * ...
# 253| 0: [VarAccess] x
# 253| 1: [VarAccess] y
# 254| 1: [LocalVariableDeclStmt] var ...;
# 254| 1: [LocalVariableDeclExpr] b
# 254| 0: [MulExpr] ... * ...
# 254| 0: [VarAccess] byx
# 254| 1: [VarAccess] byy
# 255| 2: [LocalVariableDeclStmt] var ...;
# 255| 1: [LocalVariableDeclExpr] l
# 255| 0: [MulExpr] ... * ...
# 255| 0: [VarAccess] lx
# 255| 1: [VarAccess] ly
# 256| 3: [LocalVariableDeclStmt] var ...;
# 256| 1: [LocalVariableDeclExpr] d
# 256| 0: [MulExpr] ... * ...
# 256| 0: [VarAccess] dx
# 256| 1: [VarAccess] dy
# 257| 4: [LocalVariableDeclStmt] var ...;
# 257| 1: [LocalVariableDeclExpr] f
# 257| 0: [MulExpr] ... * ...
# 257| 0: [VarAccess] fx
# 257| 1: [VarAccess] fy
# 142| 2: [Class] C
# 142| 1: [Constructor] C
#-----| 4: (Parameters)

View File

@@ -99,5 +99,10 @@
| exprs.kt:241:13:241:37 | ... (value not-equals) ... | exprs.kt:241:13:241:29 | nullablePrimitive | exprs.kt:241:34:241:37 | null |
| exprs.kt:242:13:242:34 | ... (value not-equals) ... | exprs.kt:242:13:242:26 | notNullReftype | exprs.kt:242:31:242:34 | null |
| exprs.kt:243:13:243:35 | ... (value not-equals) ... | exprs.kt:243:13:243:27 | nullableReftype | exprs.kt:243:32:243:35 | null |
| exprs.kt:253:11:253:15 | ... * ... | exprs.kt:253:11:253:11 | x | exprs.kt:253:15:253:15 | y |
| exprs.kt:254:11:254:19 | ... * ... | exprs.kt:254:11:254:13 | byx | exprs.kt:254:17:254:19 | byy |
| exprs.kt:255:11:255:17 | ... * ... | exprs.kt:255:11:255:12 | lx | exprs.kt:255:16:255:17 | ly |
| exprs.kt:256:11:256:17 | ... * ... | exprs.kt:256:11:256:12 | dx | exprs.kt:256:16:256:17 | dy |
| exprs.kt:257:11:257:17 | ... * ... | exprs.kt:257:11:257:12 | fx | exprs.kt:257:16:257:17 | fy |
| funcExprs.kt:26:35:26:42 | ... + ... | funcExprs.kt:26:35:26:38 | this | funcExprs.kt:26:42:26:42 | a |
| localFunctionCalls.kt:5:25:5:29 | ... + ... | localFunctionCalls.kt:5:25:5:25 | i | localFunctionCalls.kt:5:29:5:29 | x |

View File

@@ -700,6 +700,26 @@
| exprs.kt:243:13:243:27 | nullableReftype | exprs.kt:223:1:244:1 | equalityTests | VarAccess |
| exprs.kt:243:13:243:35 | ... (value not-equals) ... | exprs.kt:223:1:244:1 | equalityTests | ValueNEExpr |
| exprs.kt:243:32:243:35 | null | exprs.kt:223:1:244:1 | equalityTests | NullLiteral |
| exprs.kt:253:3:253:15 | i | exprs.kt:246:1:259:1 | mulOperators | LocalVariableDeclExpr |
| exprs.kt:253:11:253:11 | x | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:253:11:253:15 | ... * ... | exprs.kt:246:1:259:1 | mulOperators | MulExpr |
| exprs.kt:253:15:253:15 | y | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:254:3:254:19 | b | exprs.kt:246:1:259:1 | mulOperators | LocalVariableDeclExpr |
| exprs.kt:254:11:254:13 | byx | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:254:11:254:19 | ... * ... | exprs.kt:246:1:259:1 | mulOperators | MulExpr |
| exprs.kt:254:17:254:19 | byy | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:255:3:255:17 | l | exprs.kt:246:1:259:1 | mulOperators | LocalVariableDeclExpr |
| exprs.kt:255:11:255:12 | lx | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:255:11:255:17 | ... * ... | exprs.kt:246:1:259:1 | mulOperators | MulExpr |
| exprs.kt:255:16:255:17 | ly | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:256:3:256:17 | d | exprs.kt:246:1:259:1 | mulOperators | LocalVariableDeclExpr |
| exprs.kt:256:11:256:12 | dx | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:256:11:256:17 | ... * ... | exprs.kt:246:1:259:1 | mulOperators | MulExpr |
| exprs.kt:256:16:256:17 | dy | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:257:3:257:17 | f | exprs.kt:246:1:259:1 | mulOperators | LocalVariableDeclExpr |
| exprs.kt:257:11:257:12 | fx | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| exprs.kt:257:11:257:17 | ... * ... | exprs.kt:246:1:259:1 | mulOperators | MulExpr |
| exprs.kt:257:16:257:17 | fy | exprs.kt:246:1:259:1 | mulOperators | VarAccess |
| funcExprs.kt:16:5:16:33 | functionExpression0a(...) | funcExprs.kt:15:1:46:1 | call | MethodAccess |
| funcExprs.kt:16:26:16:33 | ...->... | funcExprs.kt:15:1:46:1 | call | LambdaExpr |
| funcExprs.kt:16:26:16:33 | Function0<Integer> | funcExprs.kt:15:1:46:1 | call | TypeAccess |

View File

@@ -242,3 +242,18 @@ fun equalityTests(notNullPrimitive: Int, nullablePrimitive: Int?, notNullReftype
val b19 = notNullReftype != null
val b20 = nullableReftype != null
}
fun mulOperators(x: Int, y: Int,
byx: Byte, byy: Byte,
sx: Short, sy: Short,
lx: Long, ly: Long,
dx: Double, dy: Double,
fx: Float, fy: Float) {
val i = x * y
val b = byx * byy
val l = lx * ly
val d = dx * dy
val f = fx * fy
}