Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-11-05 02:50:05 +01:00
Fix pre- and post- ops
(cherry picked from commit 0f787a89b8f2b0f29e0e4a2327224a3b0d050171)
Dieser Commit ist enthalten in:
Ursprung
6d9f30e6a6
Commit
e20765beef
@ -269,13 +269,14 @@ class CompilingVisitor extends ExpressionBaseVisitor<MethodHandle> {
|
||||
return ExpressionHandles.call(data -> {
|
||||
LocalSlot.Variable variable = ExpressionHandles.getVariable(data, target);
|
||||
double value = variable.getValue();
|
||||
double result = value;
|
||||
if (opType == INCREMENT) {
|
||||
value++;
|
||||
} else {
|
||||
value--;
|
||||
}
|
||||
variable.setValue(value);
|
||||
return value;
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
@ -286,14 +287,13 @@ class CompilingVisitor extends ExpressionBaseVisitor<MethodHandle> {
|
||||
return ExpressionHandles.call(data -> {
|
||||
LocalSlot.Variable variable = ExpressionHandles.getVariable(data, target);
|
||||
double value = variable.getValue();
|
||||
double result = value;
|
||||
if (opType == INCREMENT) {
|
||||
value++;
|
||||
} else {
|
||||
value--;
|
||||
}
|
||||
variable.setValue(value);
|
||||
return result;
|
||||
return value;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -84,6 +84,14 @@ class ExpressionTest extends BaseExpressionTest {
|
||||
checkTestCase("3+1", 4);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPostPreOps() {
|
||||
checkTestCase("a=0; b=a++; a+b", 1);
|
||||
checkTestCase("a=0; b=++a; a+b", 2);
|
||||
checkTestCase("a=0; b=a--; a+b", -1);
|
||||
checkTestCase("a=0; b=--a; a+b", -2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testErrors() {
|
||||
// test lexer errors
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren