but only explicitly. This does not fix a breaking change described in
#KT-52120, because it seems the correct behavior, but it allows
to "workaround" the problem by specifying nullability explicitly.
Also improve handling of nullable bindings in JSR-223.
#KT-49173 fixed
#KT-51213 fixed
Now common SourceSet output will have '_common' suffix, while all
variants will have the same name - '<module-name>.kotlin_module'.
This change is required for KSP as short-term workaround, as they
are using some internal properties/methods, which was mangled before
this change and hard to access in different variants.
^KT-52138 Fixed
The test project will be compiled and proves that
'platform.posix.DIR' retains it's 'CPointed' supertype.
The test is expected to fail on platforms that do not support
macos (windows and linux), since the issue seems to be caused
by optimistic, single platform propagation.
Extending by external plugins:
project.kotlinArtifactsExtension.apply {
artifactConfigs.all {
//add custom extension to artifact config DSL
(it as ExtensionAware).extensions.create("myConfig", Config::class.java)
}
artifacts.all {
val config = it.extensions.findByName("myConfig") as Config
//configure additional tasks, etc
//here we can use artifact parameters
}
}
But still compile stdlib, reflect, kotlin.test and scripting runtimes
with JVM target 1.6 to simplify migration from Kotlin 1.6 to 1.7.
#KT-45165 Fixed
This flag was introduced for KT-21030 (see also KT-31027), to change JVM
target 1.6 to 1.8 if Android options declare source/target compatibility
with JDK 1.8.
After JVM target 1.8 became the default for Kotlin (KT-29405), the logic
was changed in e9436da858 to the reverse: if Android options declare
source/target compatibility 1.6, then also use JVM target 1.6. Note that
at that point, the problem with usages of default interface methods
described in KT-21030 became obsolete, because it described a runtime
crash when Kotlin tooling failed to recognized that JVM target >= 1.8
should be used -- which was now always the case, unless you explicitly
opted in with `-jvm-target 1.6` (which would make little sense).
Now that we're removing support for JVM target 1.6 in KT-45165, there is
no use in this flag anymore. Even if Android options declare
source/target compatibility 1.6, Kotlin should still use the minimal
supported version for the JVM target, which is now 1.8. And since 1.8
is the default, no changes to the compiler options are needed.