diff --git a/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/ArgumentUtils.java b/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/ArgumentUtils.java index 1759ed9d899..28ef79eb622 100644 --- a/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/ArgumentUtils.java +++ b/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/ArgumentUtils.java @@ -21,6 +21,7 @@ import com.intellij.util.Function; import com.intellij.util.containers.ComparatorUtil; import com.sampullara.cli.Argument; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments; import java.lang.reflect.Field; import java.util.ArrayList; @@ -30,18 +31,22 @@ public class ArgumentUtils { private ArgumentUtils() {} @NotNull - public static List convertArgumentsToStringList(@NotNull T arguments, @NotNull T defaultArguments) { + public static List convertArgumentsToStringList( + @NotNull T arguments, + @NotNull T defaultArguments + ) { List result = new ArrayList(); convertArgumentsToStringList(arguments, defaultArguments, arguments.getClass(), result); + result.addAll(arguments.freeArgs); return result; } - private static void convertArgumentsToStringList(T arguments, T defaultArguments, Class clazz, List result) { - Class superClazz = clazz.getSuperclass(); - if (superClazz != null) { - convertArgumentsToStringList(arguments, defaultArguments, superClazz, result); - } - + private static void convertArgumentsToStringList( + @NotNull T arguments, + @NotNull T defaultArguments, + @NotNull Class clazz, + @NotNull List result + ) { for (Field field : clazz.getDeclaredFields()) { Argument argument = field.getAnnotation(Argument.class); if (argument == null) continue; @@ -79,6 +84,11 @@ public class ArgumentUtils { result.add(value.toString()); } + + Class superClazz = clazz.getSuperclass(); + if (superClazz != null) { + convertArgumentsToStringList(arguments, defaultArguments, superClazz, result); + } } private static String getAlias(Argument argument) {