Introduce utility function for specifying compiler argument names
^KT-63294
This commit is contained in:
committed by
Space Team
parent
c54d83dcad
commit
6f097dc8f6
+14
@@ -17,6 +17,8 @@
|
|||||||
package org.jetbrains.kotlin.cli.common.arguments
|
package org.jetbrains.kotlin.cli.common.arguments
|
||||||
|
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
import kotlin.reflect.KProperty1
|
||||||
|
import kotlin.reflect.jvm.javaField
|
||||||
|
|
||||||
abstract class CommonToolArguments : Freezable(), Serializable {
|
abstract class CommonToolArguments : Freezable(), Serializable {
|
||||||
companion object {
|
companion object {
|
||||||
@@ -100,3 +102,15 @@ abstract class CommonToolArguments : Freezable(), Serializable {
|
|||||||
// the previous commit. This method can be removed after some time.
|
// the previous commit. This method can be removed after some time.
|
||||||
override fun equals(other: Any?): Boolean = super.equals(other)
|
override fun equals(other: Any?): Boolean = super.equals(other)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An argument which should be passed to Kotlin compiler to enable [this] compiler option
|
||||||
|
*/
|
||||||
|
val KProperty1<out CommonCompilerArguments, *>.cliArgument: String
|
||||||
|
get() {
|
||||||
|
val javaField = javaField
|
||||||
|
?: error("Java field should be present for $this")
|
||||||
|
val argumentAnnotation = javaField.getAnnotation<Argument>(Argument::class.java)
|
||||||
|
return argumentAnnotation.value
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user