If no line number is emitted, the line number of the last line
in the suspend function is used. That combined with the IntelliJ
debuggers handling of breakpoint setting and the D8 dexers
reordering of blocks can lead to cases where breakpoints on
the last line of a suspend function are never hit.
See https://youtrack.jetbrains.com/issue/KT-51936 for details.
^Fixed KT-51936
Just see if every suspend call is followed only by safe instructions or
returns, then insert a suspension point check if there isn't a direct
return.
The first part of this is equivalent to the old implementation, just
refactored. The second part generates strictly more checks; see, for
example, the fixed test, in which the previous implementation failed to
insert a check before a CHECKCAST.
^KT-51818 Fixed
[Gradle, JS] Use assertOutputDoesNotContain
[Gradle, JS] Add test on no output for dry run in gradle tests
[Gradle, JS] No output for dry run in gradle tests
Merge-request: KT-MR-6029
Merged-by: Ilya Goncharov <Ilya.Goncharov@jetbrains.com>
^KT-51895 fixed
More details: Add ":kotlin-native:Interop:StubGenerator:check" as a dependency to ":kotlin-native:backend.native:tests:run" task. This task is already present in ":kotlin-native:backend.native:tests:sanity" and was missing in "run" just by accident.
Get distribution and home path in the test to simplify gradle build.
Using NativeCompilerDownloader in the build led to the undesired results
where test get old K/N compiler from the bootstrap, also blocking K/N
version class development.
Before this change all paths to all libraries were hardcoded to
`dist/kotlinc/lib/...`, which is not suitable for usages of test
framework outside of Kotlin project
This is needed to unbound CompilerConfigurationProvider from ApplicationEnvironmentDisposer,
which depends on classes from JUnit 5. This will allow to safely use
compiler test framework with base test framework different from JUnit 5
Fake overrides don't have a signature and can't be assiciated with klib index,
therefore they can't be tracked with incremental cache invalidation logic.
Should be fixed after KT-51896.
Previous code didn't work for kotlin-stdlib-wasm because sources from
other gradle projects are included.
`$rootDir/libraries/stdlib/native-wasm/src/*` sources
were present in files.knf as absolute paths. Now they are truncated
as libraries/stdlib/native-wasm/src/*. For example:
libraries/stdlib/native-wasm/src/kotlin/collections/Collections.kt
Should be removed after fixing KT-50876
KTI-729