Commit Graph

62228 Commits

Author SHA1 Message Date
Nikolay Krasko 3a5f42cc5e Refactoring: always use compiler settings with de-configuration in tests 2020-02-21 16:07:23 +03:00
Nikolay Krasko 018215f47d De-bunch KotlinLightCodeInsightFixtureTestCase.kt 2020-02-21 16:07:23 +03:00
Pavel Punegov 94be4d77ff Fix init order in inline fun (native test) 2020-02-21 16:04:53 +03:00
Toshiaki Kameyama 19093e2e02 Redundant companion reference: fix false positive when companion has same name member as companion name
#KT-36707 Fixed
2020-02-21 13:57:04 +01:00
Vasily Levchenko 98ce49ba73 [build][native] version with milestone clause 2020-02-21 13:51:20 +01:00
Vladimir Dolzhenko 7053f1d00c Drop CancellationCheck usage from 193
Relates to #KT-36891
2020-02-21 13:40:48 +01:00
Toshiaki Kameyama 5a6cf19c68 Complete statement for class declaration: add '()' to supertype
#KT-31668 Fixed
2020-02-21 13:21:26 +01:00
Dmitry Petrov e9a7be4a46 Fix intersection type handling in PSI2IR 2020-02-21 15:11:16 +03:00
Mikhail Zarechenskiy 1624327ba4 [NI] Fix substitution in builder-inference for empty common system 2020-02-21 14:24:57 +03:00
pyos c5ffbfd33c JVM_IR: mark origins of capture fields in suspend lambdas 2020-02-21 12:11:19 +01:00
pyos 6b98ea2378 JVM_IR: do not place suspend markers around crossinline lambda calls 2020-02-21 12:11:19 +01:00
pyos 39ebc8cfa5 Add a suspend test that fails on JVM_IR 2020-02-21 12:11:19 +01:00
Ilmir Usmanov 52e7cd5725 JVM_IR: Remove $$forInline suffix for fake inliner variables
Otherwise, IDE will not be able to navigate to inline functions.
 #KT-36797 Fixed
2020-02-21 12:08:25 +01:00
Ilmir Usmanov 325ad14ac9 JVM_IR: Treat suspend main wrapper as always tail-call function
In other words, never generate suspend call markers inside it.
2020-02-21 12:00:54 +01:00
Ilmir Usmanov 8c4eef9844 JVM_IR: Return COROUTINE_SUSPENDED from suspend main wrapper
Before, if the code inside suspend main suspended, the wrapper would
just ignore it and return Unit. This was a signal for runSuspend to exit
main loop and return said Unit.
Instead of poping whatever suspend main returns, just return it.
2020-02-21 12:00:52 +01:00
Kristoffer Andersen 5b62c9e54d [WIP] Add Compiler Smoke Tests for (suspend) main methods
This commit ports the (parameterless) main integration tests in
`CompilerSmokeTest` to the IR backend. It also includes a simple
suspend main test.

The advanced ones (like `helloAppSuspendParameterlessMain`) are
currently blocked by pending changes to capturing suspend lambdas,
which are underway.
2020-02-21 12:00:50 +01:00
Kristoffer Andersen 55aafb3430 [JVM IR] Support Suspend Main
This adds supports for (parameterless) suspend main entry points for
the JVM IR backend.

In case main is a suspend function, it gains a continuation during
lowering, so we simply generate a plain old `public static void
main(String[] args)`. This entry point invokes `suspend main` via
`kotlin.coroutines.jvm.internal.RunSuspendKt#runSuspend`.

This PR introduces `runSuspend` as a built-in, and generates the
following `main`, passing `args` as appropriate:

```
fun main(args: Array<String>) {
  runSuspend { main(args) }
}
```

The phase ordering has been reshuffled countrary to previous
discussion on #2780, as the MainMethodGeneration pass now introduces lambdas in
the IR. Hence, it has to run before InventNamesForLocalClasses, yet
still after JvmOverloadsAnnotations.

Some dead code was discovered in AddContinuationLowering
2020-02-21 12:00:47 +01:00
Ilya Goncharov 068d547375 [Gradle, JS] UpperCased KotlinJsCompilerType 2020-02-21 13:14:36 +03:00
Ilya Goncharov 9acd98071e [Gradle, JS] Divide KotlinJsCompilerAttribute 2020-02-21 13:14:36 +03:00
Ilya Goncharov cc97138e9c [Gradle, JS] Extract JS presets container, no js in codegen since now 2020-02-21 13:14:36 +03:00
Ilya Goncharov fa335b5360 [Gradle, JS] Js default compiler type for mpp 2020-02-21 13:14:36 +03:00
Ilya Goncharov 8dc75def19 [Gradle, JS] Use default configuration names only once in constants 2020-02-21 13:14:36 +03:00
Ilya Goncharov 664775a43f [Gradle, JS] Configure compiler type with single platform plugin 2020-02-21 13:14:35 +03:00
Ilya Goncharov e631146fa7 [Gradle, JS] Fix DSL for Gradle JS wizard 2020-02-21 13:03:21 +03:00
Ilya Goncharov 3ae6b27556 [Gradle, JS] Fix DSL for JVM/JS wizard
#KT-36889 fixed
2020-02-21 13:03:18 +03:00
Abduqodiri Qurbonzoda 6670a2fff8 Update public api dump 2020-02-20 21:14:52 +03:00
Ilya Goncharov 569decce43 [Gradle, JS] Fix missed import 2020-02-20 19:32:35 +03:00
Ilya Goncharov d114945b76 [Gradle, JS] Change message in polite manner
#KT-36489 fixed
#KT-36843 fixed
2020-02-20 19:32:35 +03:00
Ilya Goncharov e0be8f271f [Gradle, JS] Not error, but warning with test fix 2020-02-20 19:32:35 +03:00
Ilya Goncharov 40fb6c67d2 [Gradle, JS] Add diagnostic messages for js targets 2020-02-20 19:32:34 +03:00
Ilya Goncharov aefaa6dc7f [Gradle, JS] Remove deprecated configurations 2020-02-20 19:32:34 +03:00
Ilya Goncharov 92291c03e8 [Gradle, JS] Add methods with string definition of compiler 2020-02-20 19:32:34 +03:00
Ilya Goncharov 203ca018e5 [Gradle, JS] Rename public KotlinJsCompilerType 2020-02-20 19:32:34 +03:00
Ilya Goncharov 488538889b [Gradle, JS] Extract JS presets container, no js in codegen since now 2020-02-20 19:32:34 +03:00
Ilya Goncharov 956b57a55d [Gradle, JS] Do not duplicate target initialization 2020-02-20 19:32:34 +03:00
Ilya Goncharov 881de0a538 [Gradle, JS] Make default configuration of target 2020-02-20 19:32:34 +03:00
Ilya Goncharov 9112da2ad7 [Gradle, JS] Create predefined source sets for single platform plugin 2020-02-20 19:32:34 +03:00
Ilya Goncharov 06be32550b [Gradle, JS] Fix lib and app test for both type 2020-02-20 19:32:34 +03:00
Ilya Goncharov a5602165ec [Gradle, JS] Fix names for js mpp 2020-02-20 19:32:33 +03:00
Ilya Goncharov e1f7296426 [Gradle, JS] Fast test with both js compilers 2020-02-20 19:32:33 +03:00
Ilya Goncharov 37b3b3ec56 [Gradle, JS] Js default compiler type for mpp 2020-02-20 19:32:33 +03:00
Ilya Goncharov 3d30598774 [Gradle, JS] Js compiler type in interface 2020-02-20 19:32:33 +03:00
Ilya Goncharov 36631a5954 [Gradle, JS] Fix parallel tests 2020-02-20 19:32:33 +03:00
Ilya Goncharov 86e13c25b3 [Gradle, JS] Default conpiler type instead of legacy 2020-02-20 19:32:33 +03:00
Ilya Goncharov ae89507736 [Gradle, JS] Add fish for js only lib-app test 2020-02-20 19:32:33 +03:00
Ilya Goncharov 16eb23c6b1 [Gradle, JS] Remove test with lib and app with not only legace
Because of performance reasons

- Fix usage of compiler type property
2020-02-20 19:32:33 +03:00
Ilya Goncharov 13594c80aa [Gradle, JS] Declare default configurations in js single plugin
Because in Kotlin DSL we want to declare configurations in methods instead of extensions of Strings
We need to create configurations explicitly in plugin
2020-02-20 19:32:33 +03:00
Ilya Goncharov f3f818edc3 [Gradle, JS] Use default configuration names only once in constants 2020-02-20 19:32:32 +03:00
Ilya Goncharov d9c08945a3 [Gradle, JS] Common dependency configurations for both js 2020-02-20 19:32:32 +03:00
Ilya Goncharov ecb89ad259 [Gradle, JS] Disambiguation classifier consider single platform plugin 2020-02-20 19:32:32 +03:00