Ilmir Usmanov
549ea1a3b9
If fun interface methods are already mangled, do not mangle them twice
...
There are two possible scenarios, when fun interface method with inline
class parameter can be compiled.
First is when we compile fun interface itself before SAM adapter. In
that case, fun interface is lowered before we lower SAM adapter. Thus,
its method is mangled and mangling in the second time is an error.
Second is when we compile SAM adapter before the fun interface. In that
case, fun interface is not lowered, and we have to mangle the method.
The only way to distinguish there two cases I can think of is to check
whether the overridden method is already mangled, in other words, check,
whether the overridden method's suffix is doubled.
#KT-48499: Fixed
2021-12-28 17:35:12 +01:00
Sergej Jaskiewicz
71732afae0
[JS IR] Copy JS artifacts to the build directory if the compiler crashes
...
Previously in 3fb1096c18 we've implemented
dumping the IR after each phase when running JS IR box tests.
However, because those dumps are saved to a temporary directory,
they can be lost in case we never make it to
`jsArtifactsHandlersStep` where files from that temporary
directory were copied to the `build/out` directory.
This could happen if, for example, the compiler crashed.
In that case, having IR dumps is even more useful, as they can help
investigate the crash.
Here we make `JsArtifactsDumpHandler` an `AfterAnalysisChecker` so that
it runs no matter what.
2021-12-28 14:42:04 +00:00
Alexander Udalov
9a9a8f1999
Restore support of language version 1.3
...
#KT-50251 Fixed
(cherry picked from commit a0004ed03adc9f50f26c8b11d178afcc2abf2a9c)
2021-12-28 13:21:18 +01:00
Alexander Udalov
92c80873ba
Revert "JVM: remove support for disabling NoConstantValueAttributeForNonConstVals"
...
This is a partial revert of e857966edb .
Specifically, behavior is restored in the old backend, which will allow
to support language version 1.3, where this language feature was not
enabled yet. There are no changes in the JVM IR backend, because to
enable JVM IR with LV 1.3, you need to pass the compiler argument
`-Xuse-ir` which is not stable and we don't guarantee anything about it.
#KT-50251
2021-12-28 13:21:18 +01:00
Alexander Likhachev
5097d426c1
[Gradle] Mark MetricsWriter with Serializable interface
...
#KT-50549 Fixed
2021-12-28 12:05:09 +00:00
Alexander Likhachev
426faf4ca6
[Gradle] Add test for KT-50549
2021-12-28 12:05:08 +00:00
Sergey Igushkin
cb9dfc8e01
KT-50509: Optimize the performance of whenEvaluated { ... } wrapper
...
The Gradle API `pluginManager.withPlugin(id) { ... }` turned out to have
a significant performance footprint due to operations on underlying
immutable collections.
We can replace calls to `withPlugin` with checks of `hasPlugin` running
on each applied plugin.
Issue #KT-50509 Verification pending
2021-12-28 10:09:42 +00:00
Roman Artemev
723ef8f1fb
[KLIB] Deserialize backing field initializers of const in IB-only mode
...
Missing const initializer leads to crash in property accessors inline
lowering during IC recompilation on JS.
- fix #KT-50512
- add test for JS IR IC
2021-12-27 23:43:43 +03:00
mvicsokolova
188d073cc3
kotlinx.atomicfu compiler plugin (JS): tracing supported. ( #4691 )
...
* kotlinx.atomicfu compiler plugin (JS): tracing supported.
* Erasing trace invocations from both IrBlock and IrBlockBody.
2021-12-27 23:20:08 +03:00
Victor Petukhov
29f174f074
Revert "Revert "Temporary workaround for failing tests on teamcity.""
...
This reverts commit 2c51799e0a .
2021-12-27 22:56:01 +03:00
Victor Petukhov
9c225c5b56
Revert "[Compiler CLI] Use LanguageVersion.LATEST_STABLE instead of KotlinVersion.CURRENT for java type enhancement settings to prevent dependency on kotlin version."
...
This reverts commit 0689d74353 .
2021-12-27 22:56:00 +03:00
Martin Petrov
50250ccf65
[Native] Escape the module name in the C adapter.
...
This previously failed if the module name contaned dots or dashes, e.g.
```
kotlinc-native ~/test.kt -produce static -module-name="foo-bar.baz"
```
This change espaces `-` and `.` similar to `ObjCExportNamer`'s `abbreviate`.
2021-12-27 19:45:14 +03:00
Yahor Berdnikau
f895e92b11
Bump Gradle 7.3 version to 7.3.3
...
^KT-45745 In Progress
2021-12-27 15:19:19 +01:00
Yahor Berdnikau
3fca808b63
Revert "Revert "Set minimal supported Gradle version to 6.7.1.""
...
This reverts commit 2aa1c187d9 .
^KT-49733 Fixed
2021-12-27 15:19:15 +01:00
Ilya Kirillov
4d7af4beae
Analysis: fix imports and module names
2021-12-27 16:23:46 +03:00
Ilya Kirillov
ec0123663b
Fix analysisAllTests task name
2021-12-27 16:23:28 +03:00
Ilya Kirillov
4c94e2958e
Analysis: add more run configurations
2021-12-27 16:23:22 +03:00
Ilya Kirillov
62c9a7888b
Analysis: remove // FIR_COMPARISON form LC testdata as LC tests are moved from IJ
2021-12-27 16:23:21 +03:00
Ilya Kirillov
4e58dc3467
Fix small compilation problems in LC testdata which should not influence LC results
2021-12-27 16:23:21 +03:00
Ilya Kirillov
02f9f116b2
Analysis: ignore failing LC test
2021-12-27 16:23:20 +03:00
Ilya Kirillov
db31e0292c
Analysis: add LC testdata with current behaviour
2021-12-27 16:23:20 +03:00
Ilya Kirillov
0b3a0fd799
Analysis: fix LC test environment
2021-12-27 16:23:19 +03:00
Ilya Kirillov
2c80a53a73
Analysis: generate symbol LC tests
2021-12-27 16:23:18 +03:00
Ilya Kirillov
40fdb26569
Analysis LC: introduce Symbol LC tests
2021-12-27 16:23:18 +03:00
Ilya Kirillov
abf7a4c5ac
Introduce ConcurrentMapBasedCache
2021-12-27 16:23:17 +03:00
Ilya Kirillov
1bba3b2256
Migrate decompiled light classes factories from IJ
2021-12-27 16:23:17 +03:00
Jinseong Jeon
09f5ec7bd3
FIR LC: add supports for decompiled declarations
2021-12-27 16:23:16 +03:00
Ilya Kirillov
aa87524513
Migrate stub and psi builders by classfiles form IJ repository
2021-12-27 16:23:16 +03:00
Ilya Kirillov
0efc819e48
Fix invalid repeatable annotations loading in sutb builder
2021-12-27 16:23:16 +03:00
Ilya Kirillov
d2832697d9
Move stub building test generation to analysis generator
2021-12-27 16:23:15 +03:00
Ilya Kirillov
1e9764c639
Move stub building from psi module to analysis module
2021-12-27 16:23:14 +03:00
Ilya Kirillov
cd3905e400
Fix dependencies to intellij modules after gradle dependency DSL update
2021-12-27 16:23:13 +03:00
Ilya Kirillov
b563824b35
Migrate LightMemberOriginForCompiledElement from IJ repository
2021-12-27 16:23:13 +03:00
Ilya Kirillov
764ad8b9fa
Move light classes for decompiled declarations from IJ repository
2021-12-27 16:23:12 +03:00
Ilya Kirillov
fceb46924e
Move decompiler from IJ repository
...
This commit just moves files and fixes imports
2021-12-27 16:23:11 +03:00
Ilya Kirillov
a367fee5cf
Add newly added modules to the list of compiler modules
2021-12-27 16:23:11 +03:00
Ilya Kirillov
3779acbc3d
Add testdata from intellij for cls stub building tests and generate tests
2021-12-27 16:23:11 +03:00
Ilya Kirillov
02d68d7b12
Introduce cls stub building tests (mostly migrated from intellij)
2021-12-27 16:23:10 +03:00
Ilya Kirillov
127dc7670e
Move IDEKotlinBinaryClassCache from intellij
2021-12-27 16:23:10 +03:00
Ilya Kirillov
b222bf88a0
Move DirectoryBasedClassFinder and DirectoryBasedDataFinder from intellij
2021-12-27 16:23:10 +03:00
Ilya Kirillov
dbb3ebb8df
Implement AnnotationLoaderForClassFileStubBuilder
2021-12-27 16:23:09 +03:00
Ilya Kirillov
b9b0bb309d
Move KotlinClsStubBuilder from intellij repository
...
This commit is just move, without any modifications
2021-12-27 16:23:09 +03:00
Ilya Kirillov
78db89b46b
Extract AbstractBinaryClassAnnotationLoader to be used without FE1.0
2021-12-27 16:23:08 +03:00
Ilya Kirillov
52baf7338e
Move KotlinBinaryClassCache to separate module, so it can be used outside FE1.0
2021-12-27 16:23:08 +03:00
Ilya Kirillov
25fe14b514
Move PerformanceCounter to runtime utils, so it can be used outside FE1.0
2021-12-27 16:23:07 +03:00
Ilya Kirillov
3686fc109d
Extract AnnotationLoader from AnnotationAndConstantLoader, so it can be used without FE1.0
2021-12-27 16:23:07 +03:00
Ilya Kirillov
49e9c47071
Move DynamicTypeDeserializer.id from IR module to common module
...
So, it can be used from cls-psi-stub-builder module
2021-12-27 16:23:06 +03:00
Ilya Kirillov
53346e0aa6
Merge KotlinFileStubImpl and KotlinFileStubForIde into KotlinFileStubImpl
...
as the only difference is additional fields in KotlinFileStubForIde
2021-12-27 16:23:05 +03:00
Ilya Kirillov
a9d7e5db72
Move stub builder stuff from intellij
...
This is mechanical moving without fixing compilation errors,
just packages are changes
2021-12-27 16:21:51 +03:00
Igor Chevdar
af09fb51ac
[K/N][IR] Made the compiler pipeline to do per file lowerings
2021-12-27 14:28:29 +05:00