Alexander Gorshenev
01ef41ab17
No need to explicitly deprecate -Xdisable-fake-override-validator
...
A warning is produced automagically
2020-11-18 12:46:40 +03:00
Alexander Gorshenev
f42b902bc8
Made -Xfake-override-validator off by default
...
Deprected -Xdisable-fake-override-validator
2020-11-18 12:46:40 +03:00
Martin Petrov
68fdeaf865
Produce deterministic jar files.
...
This resets all timestamps present in jars produced by kotlinc.
This is important for build systems like bazel that rely on
deterministic outputs.
Before:
```
$ kotlinc ~/test.kt -d /tmp/a.jar
$ kotlinc ~/test.kt -d /tmp/b.jar
9ab80cd40c9293a7a66adf1154d4e6e9aa92d5b0 /tmp/a.jar
1ba022697317f796bd123fb4dc95418a18bcb51a /tmp/a.jar
6d2a2683470c24928f3fbd6768a4c57f55b0d196 /tmp/b.jar
$ unzip -l /tmp/a.jar
Archive: /tmp/a.jar
Length Date Time Name
--------- ---------- ----- ----
75 09-25-2020 16:48 META-INF/MANIFEST.MF
683 09-25-2020 16:48 TestKt.class
28 09-25-2020 16:48 META-INF/main.kotlin_module
--------- -------
786 3 files
```
After:
```
$ kotlinc ~/test.kt -d /tmp/a.jar
$ kotlinc ~/test.kt -d /tmp/b.jar
$ shasum /tmp/a.jar /tmp/b.jar
9ab80cd40c9293a7a66adf1154d4e6e9aa92d5b0 /tmp/a.jar
9ab80cd40c9293a7a66adf1154d4e6e9aa92d5b0 /tmp/b.jar
$ unzip -l /tmp/a.jar
Archive: /tmp/a.jar
Length Date Time Name
--------- ---------- ----- ----
75 12-31-1969 19:00 META-INF/MANIFEST.MF
590 12-31-1969 19:00 TestKt.class
36 12-31-1969 19:00 META-INF/main.kotlin_module
--------- -------
701 3 files
```
See https://github.com/JetBrains/kotlin/pull/3226 for a similar change.
2020-11-16 19:25:20 +01:00
Dmitriy Novozhilov
ed0e5adce7
[FIR] Make FirAnalyzerFacade returns diagnostics grouped by fir file
2020-11-13 16:19:29 +03:00
Dmitriy Novozhilov
20453bf0d8
[FIR] Get rid of FirSessionProvider.project property
2020-11-13 16:19:29 +03:00
Dmitriy Novozhilov
82a2ecfe14
[FIR] Cleanup creating sessions in CLI FIR compiler
2020-11-13 16:19:29 +03:00
Vyacheslav Gerasimov
3feff16a77
Cleanup 193 compatibility fixes
2020-11-11 14:28:54 +03:00
Vyacheslav Gerasimov
8620d26a8a
Delete 193 bunch files
2020-11-11 14:28:53 +03:00
Vladimir Dolzhenko
b0f6b739d0
Declare missed org.jetbrains.kotlin.defaultErrorMessages EP
2020-11-11 10:29:16 +00:00
Svyatoslav Kuzmich
e51a76bc4e
[Wasm] Basic CLI
...
-Xwasm option that will produce wasm instead of JS when used with -Xir-produce-js
Does not affect klib production
2020-11-10 13:08:04 +03:00
Alexander Gorshenev
5de7a10df0
Eliminated -Xdeserialize-fake-overrides
2020-11-09 16:02:14 +03:00
Ilya Chernikov
d7112a4500
Implement JVM IR support for scripts
2020-10-30 12:57:42 +01:00
Matthew Gharrity
99a6bdeec7
Fix KotlinCoreEnvironment projectCount disposable
...
The disposable which decrements ourProjectCount was a non-capturing
lambda, meaning it had a single identity and could only be registered
in the Disposer tree once. Therefore the application environment
would never be disposed if ourProjectCount ever went above 1.
2020-10-26 12:23:10 +01:00
Alexander Udalov
382a0bd298
JVM IR: clear BindingContext after psi2ir
...
This helps to reduce peak memory in lowerings/codegen by a lot.
A more robust approach would be to have a separate BindingContext for
each file, and clear each of them after running psi2ir on it. This would
also lower peak memory usage in psi2ir.
Provide a fallback workaround compiler argument
-Xir-do-not-clear-binding-context just in case BindingContext is in fact
used somewhere and it's not caught by tests.
2020-10-26 10:34:43 +01:00
Alexander Udalov
dd813777b9
Refactor Main-Class computation in CLI for JVM with .jar outputs
...
Compute FQ name of the main class right after running the analysis and
before invoking codegen. This is needed because MainFunctionDetector
depends on BindingContext, and JVM IR needs to clear BindingContext as
soon as it's not necessary to reduce peak memory usage, thus breaking
any usages of data from it after the codegen.
Also refactor and use the extracted, but not properly reused previously,
copy of findMainClass in findMainClass.kt.
Note that this replaces NPE in KT-42868 with an UOE.
2020-10-26 10:34:43 +01:00
Leonid Startsev
4ec90b18bc
Rework DescriptorSerializerPlugin to be a part of Project's extensions
...
instead of statically registering it.
Static registering can cause subtle errors when plugin implementation
(e.g. SerializationDescriptorPluginForKotlinxSerialization) is registered
from multiple classloaders: in multi-module with daemon compilation scenario
#KT-41857 Fixed
2020-10-22 17:04:35 +03:00
Alexander Udalov
48cd86b717
Add JVM target bytecode version 15
...
#KT-41916 Fixed
2020-10-19 14:47:21 +02:00
Jinseong Jeon
4d28463f1a
FIR CLI: initialize module and dependencies
...
#KT-42624 Fixed
2020-10-14 14:56:37 +03:00
Vladimir Dolzhenko
7c2112d014
Prepare for KT dynamic plugin: make EP dynamic
...
Relates to ^KT-38518
2020-10-12 13:09:17 +00:00
Victor Petukhov
2685c7efce
Jspecify: Rename codeanalysis annotations to jspecify ones
2020-10-08 14:00:10 +03:00
Denis Zharkov
f3a490ee16
Support compiler flag -Xcodeanalysis-annotations
2020-10-08 14:00:09 +03:00
Denis Zharkov
90a9ca6cb3
Minor. Rename flag in JvmAnalysisFlags: jsr305 -> javaTypeEnhancementState
2020-10-08 14:00:08 +03:00
Denis Zharkov
93d9301847
Minor. Extract JavaTypeEnhancementStateParser::parseJsr305State
2020-10-08 14:00:08 +03:00
Denis Zharkov
e7208f0c05
Rename Jsr305Parser -> JavaTypeEnhancementStateParser
2020-10-08 14:00:08 +03:00
Denis Zharkov
6c37574fce
Rename Jsr305State -> JavaTypeEnhancementState
...
Also, rename some of the properties
It's needed to store status for codeanalysis annotation in that class
2020-10-08 14:00:08 +03:00
Alexander Udalov
68157f09fa
Minor, add temporary workaround for KT-42492
2020-10-07 19:33:40 +02:00
Mikhael Bogdanov
d2c4be18a0
Rename runtime-string-concat option into 'string-concat'
2020-10-06 07:14:39 +02:00
Ilya Chernikov
d7e0649d93
Automatically add -- after script/expression in kotlin runner
...
#KT-37987 fixed
2020-10-05 22:35:58 +02:00
Mikhael Bogdanov
c329c22630
Add runtime string concat options. Some renaming
2020-10-02 11:47:27 +02:00
Konstantin Tskhovrebov
5d2adce7ab
as42: Add lost project parameter to CliLightClassGenerationSupport.
2020-09-30 11:38:18 +03:00
Konstantin Tskhovrebov
803463ac11
Revert "as42: Fix override."
...
This reverts commit d33391f4
2020-09-30 10:28:38 +03:00
Konstantin Tskhovrebov
34b6003371
as42: remove unused bunch files
2020-09-29 15:32:35 +03:00
Konstantin Tskhovrebov
8a4aac53d8
as42: Fix override.
2020-09-29 15:32:34 +03:00
Nikolay Krasko
ecff2816ac
as42: Fix duplication registration for com.intellij.psi.classFileDecompiler in plugin
2020-09-29 15:32:33 +03:00
Nikolay Krasko
1f3602c4b7
as42: Register DumbUtil service as it required in PsiElementFinderImpl
2020-09-29 15:32:33 +03:00
Nikolay Krasko
1b97511248
as42: Register classFileDecompiler through xml
...
It doesn't work otherwise. It's expected that extension point is registered
at the moment of ClassFileDecompilers instatiation or it fails.
2020-09-29 15:32:32 +03:00
Nikolay Krasko
5ba70b2cbb
as42: Additional fixes for AS42 and 202 platform
2020-09-29 15:32:32 +03:00
Alexander Udalov
cb5c317f91
Gradle: support moduleName option in KotlinJvmOptions
...
#KT-42058 Fixed
2020-09-25 22:15:55 +02:00
Alexander Udalov
f273edeb8e
Build: upgrade language to 1.3 in cli, compiler plugins and Gradle plugin
...
The language/API version restriction here is to make sure the code works
with Gradle of earlier versions, but all versions of Gradle that we
support already depend on Kotlin 1.3+.
2020-09-22 19:10:58 +02:00
Alexander Udalov
5755c32c84
Minor, fix appendln deprecation warnings in cli
...
Can't use appendLine yet because this module is compiled with API
version 1.3.
2020-09-22 19:10:58 +02:00
Pavel Kirpichenkov
1465e10f12
Add language feature for inference compatibility mode
...
The feature is intended for updates in the inference algorithm
that change behaviour compared to the previous stable version.
2020-09-22 15:06:12 +03:00
pyos
aa58ed9234
JVM_IR: partially implement FIR local delegated property reflection
...
Type parameter references are broken, just like for lambdas. Also, the
code is super ugly.
2020-09-22 09:35:45 +03:00
pyos
dd913ef450
JVM_IR: move common metadata serialization code to ClassCodegen
2020-09-16 18:58:40 +02:00
Mikhail Glukhikh
97ebf2867a
[FIR] Get rid of type mismatch suppression during diagnostic casting
2020-09-14 18:08:33 +03:00
Dmitriy Novozhilov
4929417aea
Remove redundant type arguments to fix compilation with FIR
...
#KT-41835
2020-09-14 10:57:09 +03:00
Andrey Uskov
175a8bec9d
Make KotlinCoreEnvironment.disposeApplicationEnvironment() public
...
The method disposeApplicationEnvironment should be used in Gradle
after the configuration phase. This allows not to recreate the compiler
environment after each kts file compilation and improve overall
performance the evaluation and configuration phases.
2020-09-11 15:13:11 +03:00
Igor Yakovlev
c70383cc70
[ULC] Add compiler flag -Xdisable-ultra-light-classes to fallback to light implementation in CLI
2020-09-11 12:49:04 +03:00
Igor Yakovlev
4b8f1bb362
[ULC] Add LanguageVersionSettings to CliLightClassGenerationSupport
...
+ refactoring
2020-09-11 12:49:04 +03:00
Igor Yakovlev
131c14626c
[ULC] Fix invalid alias search for UL classes
2020-09-11 12:49:03 +03:00
Igor Yakovlev
6542ea9ba1
[ULC] Add constant evaluation to light classes service
2020-09-11 12:49:01 +03:00