aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/csharp/primitives
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-06-12 15:16:45 +0100
committerMichael Williamson <mike@zwobble.org>2024-06-12 15:16:45 +0100
commit2934f5546ababe312aec007ce0ef1f3764a680a4 (patch)
tree701d0a8f2cef4ec927042a16d46559e13fe5efa4 /src/main/java/org/zwobble/couscous/backends/csharp/primitives
parent10155eb9e00d58d8a13c37930024ec4c8e1eaaeb (diff)
Fix parsing of integers with non-decimal bases in C# backendHEADmaster
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/csharp/primitives')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/primitives/CsharpPrimitiveMethods.java23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/primitives/CsharpPrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/csharp/primitives/CsharpPrimitiveMethods.java
index 43ca370..3029a60 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/primitives/CsharpPrimitiveMethods.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/primitives/CsharpPrimitiveMethods.java
@@ -1,7 +1,10 @@
package org.zwobble.couscous.backends.csharp.primitives;
import com.google.common.collect.ImmutableMap;
-import org.zwobble.couscous.ast.*;
+import org.zwobble.couscous.ast.ExpressionNode;
+import org.zwobble.couscous.ast.MethodCallNode;
+import org.zwobble.couscous.ast.Operator;
+import org.zwobble.couscous.ast.Receiver;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.types.Types;
@@ -144,12 +147,18 @@ public class CsharpPrimitiveMethods {
))
.put("parseInt", new PrimitiveStaticMethod(
- arguments -> staticMethodCall(
- ScalarType.topLevel("int"),
- "Parse",
- list(arguments.get(0)),
- ScalarType.topLevel("int")
- ),
+ arguments -> {
+ if (arguments.size() == 1 || arguments.size() == 2) {
+ return staticMethodCall(
+ ScalarType.topLevel("System.Convert"),
+ "ToInt32",
+ arguments,
+ ScalarType.topLevel("int")
+ );
+ } else {
+ throw new IllegalArgumentException();
+ }
+ },
Types.INT
))