aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
index fcce1e1..e6b3822 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
@@ -317,7 +317,11 @@ public class JavaExpressionReader {
ITypeBinding[] parameterTypes = method.getParameterTypes();
return IntStream.range(0, parameterTypes.length)
.mapToObj(index -> {
- if (method.isVarargs() && index == parameterTypes.length - 1) {
+ boolean isVarargs =
+ method.isVarargs() &&
+ index == parameterTypes.length - 1 &&
+ (javaArguments.size() != parameterTypes.length || !javaArguments.get(index).resolveTypeBinding().isEqualTo(parameterTypes[index]));
+ if (isVarargs) {
Type elementType = typeOf(parameterTypes[index].getElementType());
List<ExpressionNode> elements = IntStream.range(index, javaArguments.size())
.mapToObj(argumentIndex -> readExpression(elementType, javaArguments.get(argumentIndex)))