blob: 04eee58a965a04512b70efb801601452814e4fb0 [file] [view] [edit]
## Kotlin compiler arguments
Contains a unified representation of Kotlin compiler arguments for current and old Kotlin releases.
One representation is a Kotlin-based - check `org.jetbrains.kotlin.arguments.description.compilerArguments`.
Another one representation is JSON-based that is bundled into a published jar as `kotlin-compiler-arguments.json` file.
### JSON schema changelog
- `1`: Initial schema
- `2`: Extended `AllKotlinArgumentTypes` with `klibIrInlinerMode`. New argument value type: `KlibIrInlinerModeType`.
- `3`:
- Added `affectsCompilationOutcome` and `argumentType` fields to `KotlinCompilerArgument`.
- Added `modifiers` field to `KotlinCompilerArgumentsLevel` with new `Modifier` enum (`DEPRECATED`, `SEALED`).
- Extended `AllKotlinArgumentTypes` with new enum types: `JvmDefaultMode`, `AbiStabilityMode`, `AssertionsMode`,
`JspecifyAnnotationsMode`, `LambdasMode`, `SamConversionsMode`, `StringConcatMode`, `CompatqualAnnotationsMode`,
`WhenExpressionsMode`, `JdkRelease`, `AnnotationDefaultTargetMode`, `NameBasedDestructuringMode`, `VerifyIrMode`.
- New argument value types: `PathType`, `StringListType`, `SearchPathType`, `PathListType`, `EnumType`.
- Add relevant Path argumentType to some String arguments carrying paths in Klib and JS argument
- Add enum types to all relevant JS and Wasm arguments that carry a finite set of String values
- `4`:
- Change `modeName` to `name` in `/types/explicitApiModes/values`
- `5`:
- Add optional `restrictedToCompilerPhase` that may specify that an argument is only valid for a given compiler phase.
- Add optional `deprecatedMessage` that may specify a deprecation message for the argument (`null` if it isn't deprecated).