diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/primitives/CsharpPrimitiveMethods.java | 26 |
1 files changed, 18 insertions, 8 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 3208e17..43ca370 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 @@ -81,14 +81,24 @@ public class CsharpPrimitiveMethods { methods.put("substring", new PrimitiveInstanceMethod( (receiver, arguments) -> { ExpressionNode startIndex = arguments.get(0); - ExpressionNode endIndex = arguments.get(1); - ExpressionNode length = integerSubtract(endIndex, startIndex); - // TODO: handle length going beyond end-of-string - return methodCall( - receiver, - "Substring", - list(startIndex, length), - Types.STRING); + if (arguments.size() == 1) { + return methodCall( + receiver, + "Substring", + list(startIndex), + Types.STRING + ); + } else { + ExpressionNode endIndex = arguments.get(1); + ExpressionNode length = integerSubtract(endIndex, startIndex); + // TODO: handle length going beyond end-of-string + return methodCall( + receiver, + "Substring", + list(startIndex, length), + Types.STRING + ); + } }, Types.STRING )); |
