Kotlin Facet: Import compiler arguments from Gradle project

#KT-15819 Fixed
 #KT-15929 Fixed
This commit is contained in:
Alexey Sedunov
2017-01-24 16:27:25 +03:00
parent dafb6f8b3c
commit 591910a216
7 changed files with 72 additions and 15 deletions
@@ -22,15 +22,17 @@ import java.lang.reflect.Field
import java.lang.reflect.Modifier
import java.util.*
fun <A : CommonCompilerArguments> parseArguments(args: Array<String>, arguments: A) {
@JvmOverloads fun <A : CommonCompilerArguments> parseArguments(args: Array<String>, arguments: A, ignoreInvalidArguments: Boolean = false) {
val unparsedArgs = Args.parse(arguments, args, false)
val (unknownExtraArgs, unknownArgs) = unparsedArgs.partition { it.startsWith("-X") }
arguments.unknownExtraFlags = unknownExtraArgs
arguments.freeArgs = unknownArgs
arguments.freeArgs = if (ignoreInvalidArguments) unknownArgs.filterNot { it.startsWith("-") } else unknownArgs
for (argument in arguments.freeArgs) {
if (argument.startsWith("-")) {
throw IllegalArgumentException("Invalid argument: " + argument)
if (!ignoreInvalidArguments) {
for (argument in unknownArgs) {
if (argument.startsWith("-")) {
throw IllegalArgumentException("Invalid argument: " + argument)
}
}
}
}