From 5b53bb354b7e789b53443a251329aa55fda37e64 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 27 Mar 2017 23:15:39 +0100 Subject: Support substring with one arg --- .../csharp/primitives/CsharpPrimitiveMethods.java | 26 +++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'src/main/java/org') 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 )); -- cgit v1.2.3