Commit Graph

92024 Commits

Author SHA1 Message Date
Pavel Punegov 3a4d6bcb18 [build] Advance kotlin-build-gradle-plugin version to 0.0.38 2022-04-08 14:42:08 +03:00
Pavel Punegov 3d17d476e0 [K/N][build] Define meta versions order and comparing
Move isAtLeast() from compiler downloader and test
to CompilerVersion.kt
2022-04-08 14:42:08 +03:00
Pavel Punegov 4644562e7f [K/N][build] Change MetaVersion to inline class from enum
Support meta versions strings other than pre-defined. All enum entries
were left for source-level compatibility.
2022-04-08 14:42:08 +03:00
Pavel Punegov 4d388118f8 [K/N][build] Fix CompilerVersion pattern to match RC2 2022-04-08 14:42:07 +03:00
Sergej Jaskiewicz e1b0e27e62 [JS Legacy] Fix Unit materialization in overridden methods
^KT-51878 Fixed
2022-04-08 11:09:46 +00:00
Pavel Punegov cfe76343d5 [Commonizer][test] Get K/N distribution in the test instead of the build
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.
2022-04-08 10:38:12 +00:00
Dmitriy Novozhilov 38696a41bc [Test] Add ability to override some services in AbstractKotlinCompilerTest 2022-04-08 09:42:02 +00:00
Dmitriy Novozhilov 543675d99d [Test] Don't fail generation of tests if License file not found 2022-04-08 09:42:02 +00:00
Dmitriy Novozhilov 2c6aea47b1 [Test] Introduce provider of path of standard libraries jars
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
2022-04-08 09:42:02 +00:00
Dmitriy Novozhilov 648a3667e0 [Test] Pack test generator to internal-compiler-test-framework.jar 2022-04-08 09:42:01 +00:00
Dmitriy Novozhilov 419d497929 [Test] Don't pack compiler itself to internal-compiler-test-framework.jar 2022-04-08 09:42:01 +00:00
Dmitriy Novozhilov a45cc17b1c [Test] Provide utility for registering idea properties for proper test run
In Kotlin project they are set up automatically, but outside they should
  be set manually via build system or test framework
2022-04-08 09:42:00 +00:00
Dmitriy Novozhilov afad6a564a [Test] Pass CompilerConfiguration to AbstractEnvironmentConfigurator.registerCompilerExtensions
This is needed to provide ability to configure extensions depending on
  configuration of specific test
2022-04-08 09:42:00 +00:00
Dmitriy Novozhilov 400ad6a01e [Test] Add ability to configure access to application disposable in test configuration
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
2022-04-08 09:41:59 +00:00
Alexander Korepanov 2f3ad476be [JS IR] Ignore fake override calls in IC
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.
2022-04-08 08:54:22 +00:00
Nikolay Krasko 3ee8aabe4c Add root project dir as a base path in -Xklib-relative-path-base
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
2022-04-07 19:17:20 +00:00
Nikolay Krasko 405e90abee Apply -Xklib-relative-path-base to all KotlinCompile tasks
As absolute paths were also revealed in
   atomicfu.jar
   kotlin-stdlib-wasm
   kotlin-test-wasm

Use solution from Alexander Likhachev (avoid accessing
buildDir, projectDir in doFirst()) to prevent breaking the configuration
cache.

Should be removed after fixing KT-50876

KTI-729
2022-04-07 19:17:20 +00:00
Ivan Kochurkin 81b1ed9ad4 [FIR] Fix false positive RETURN_TYPE_MISMATCH in intellij ultimate 2022-04-07 21:03:08 +03:00
Elena Lepilkina 04da0ba55d [K/N][perf] Fix swiftinterop benchmarks linkTask names 2022-04-07 20:06:40 +03:00
Elena Lepilkina 23d66fabad [K/N][perf] Fix swiftinterop benchmrks 2022-04-07 20:06:40 +03:00
Elena Lepilkina 655ed0f7c8 [K/N][perf] Fix compile task name for debug binaries 2022-04-07 20:06:40 +03:00
Elena Lepilkina f401573e5c [K/N][perf] Added chart for execution time of debug binaries on performance server 2022-04-07 20:06:40 +03:00
Elena Lepilkina 087f7e3b31 [K/N] Added possibility to run only base part of benchmarks 2022-04-07 20:06:40 +03:00
Dmitriy Novozhilov b79f5a445f [FIR] Use proper ReturnTypeCalculator inside FakeOverrideTypeCalculator 2022-04-07 12:18:49 +00:00
Dmitriy Novozhilov 6e2402620f [FIR] Fix collecting member candidates on receiver with smartcast
^KT-51460 Fixed
^KT-51827
2022-04-07 12:18:48 +00:00
Dmitriy Novozhilov 51bd0fd2db [FIR] Add ability to specify module name in modularized test
Use `fir.bench.filter.name` property to specify module name instead of
  module path regex
2022-04-07 12:18:48 +00:00
Sergej Jaskiewicz d7d86a0e95 [JS IR] Lift lambdas that capture no context
If a lambda expression does not capture any local variables, convert
it to a global free function and replace the lambda creation with
a reference to that function.

Example: for the following Kotlin code

```kotlin
fun foo(f: () -> Unit) = f()

fun bar() = foo { console.log("hello") }
```

before this patch, we generated:

```js
function foo(f) {
  return f();
}
function bar() {
  return foo(bar$lambda());
}
function bar$lambda() {
  return function () {
    console.log('hello');
  };
}
```

after this patch, we generate:

```js
function foo(f) {
  return f();
}
function bar() {
  return foo(bar$lambda);
}
function bar$lambda() {
  console.log('hello');
}
```
2022-04-07 10:31:35 +00:00
Sergej Jaskiewicz 026f292f4f [IR] Add IrClass.invokeFun helper and use it throughout 2022-04-07 10:31:34 +00:00
Pavel Punegov 4b3a5ad875 [K/N][samples] Use compilations for libcurl dependency setting 2022-04-07 10:13:04 +00:00
Ilmir Usmanov 1488790cd3 Replace recursion with a loop
#KT-51530 Fixed
2022-04-07 01:08:22 +00:00
Denis.Zharkov 6937e08b9c FIR: Remove effectively incorrect code from Candidate.getReceiverType 2022-04-06 16:05:42 +00:00
Denis.Zharkov 3d06a92eea K1: Adjust positioning for NO_CONTEXT_RECEIVER 2022-04-06 16:05:41 +00:00
Denis.Zharkov 82b6fdf97e FIR: Serialize type attributes for non-type-ref types, too 2022-04-06 16:05:41 +00:00
Denis.Zharkov 66bd8dccfa FIR: Unignore all Fir2IrText tests on context receivers 2022-04-06 16:05:40 +00:00
Denis.Zharkov 55159eba45 FIR: Do not verify descriptors consistency for FIR-based IR functions 2022-04-06 16:05:40 +00:00
Denis.Zharkov 2a6700e5d5 FIR: Unignore all blackbox tests on context receivers 2022-04-06 16:05:39 +00:00
Denis.Zharkov 41bc842b9d FIR: Support context receivers in Fir2Ir 2022-04-06 16:05:39 +00:00
Denis.Zharkov aa74bd4293 FIR: Minor. Drop effectively-always-null body parameter 2022-04-06 16:05:38 +00:00
Denis.Zharkov 512446843b FIR: Support typeRef-name label for this 2022-04-06 16:05:37 +00:00
Denis.Zharkov ac399321f0 FIR: Add replace method for contextReceiverNumber 2022-04-06 16:05:37 +00:00
Denis.Zharkov 445705369e FIR: Support context receivers in FirPropertyTypeParametersChecker 2022-04-06 16:05:36 +00:00
Denis.Zharkov 0ba5c528d0 FIR: Support (de)serialization of context receivers 2022-04-06 16:05:35 +00:00
Denis.Zharkov dfc736161a FIR: Fix overload resolution with context receivers 2022-04-06 16:05:35 +00:00
Denis.Zharkov 4349060db1 K1: Support referencing class context receivers in a form of this@Name 2022-04-06 16:05:34 +00:00
Denis.Zharkov c33f06b9e4 FIR tree: add context receivers helper properties 2022-04-06 16:05:34 +00:00
Denis.Zharkov 202413c2f4 FIR: Add context receivers from the containing class to constructors 2022-04-06 16:05:33 +00:00
Denis.Zharkov b2d5bf3eae FIR: Adjust diagnostics test data after resolution of context receivers 2022-04-06 16:05:32 +00:00
Denis.Zharkov ef84dddc88 FIR: Add preliminary support for context receivers in resolution 2022-04-06 16:05:32 +00:00
Denis.Zharkov 588dd23fd9 Drop unused members from DescriptorStorageForContextReceivers 2022-04-06 16:05:31 +00:00
Denis.Zharkov 90b12433ec FIR: Add replaceContextReceivers to FirCallableDeclaration 2022-04-06 16:05:31 +00:00