Dmitrii Gridin
5c71015b09
[LC] implement isRecord for classes
...
Java world should better understand our classes with JvmRecord annotation
^KT-62357
2024-01-04 16:32:10 +00:00
Dmitriy Novozhilov
704e2ef5c5
Suppress K2 specific warnings in the codebase
...
^KT-62472
2023-10-18 07:59:27 +00:00
Nikolay Lunyak
ec9cb8beb6
[FIR] Rename JvmNames -> JvmStandardClassIds
...
This is more consistent with the code of
the common compiler checkers.
It would be nice to refactor the contents
of this object further, but it's out
of scope of the current branch.
^KT-54596
2023-09-19 22:14:09 +00:00
Vladimir Dolzhenko
d8c80b0270
Fix parameters matching for suspend functions
...
#KT-61894 Fixed
2023-09-13 11:59:02 +00:00
Dmitrii Gridin
e05cb49671
[SLC] invalidate local class members cache on any file changes
...
We should track the containing file modifications to avoid PIEAE by
changes in members
^KTIJ-26661 Fixed
2023-08-16 10:22:13 +00:00
Anna Kozlova
b725cd3e6c
[light classes] match property with getter or setter only
...
^ KTIJ-26536
2023-08-09 07:09:35 +00:00
Ilya Kirillov
0a1f27e43a
[LC] remove duplicating checkIsMangled function
2023-06-30 13:43:30 +00:00
Anna Kozlova
956294821b
[psi] don't load text for compiled code
...
use stubs when possible, when stub doesn't contain anything,
decompiled text won't contain it either,
no sense to load
2023-05-02 10:30:34 +00:00
Jinseong Jeon
0ac3fae9ab
LC: commonize facade for multi-file class
2023-03-29 18:51:03 +02:00
Dmitrii Gridin
7af78db2e1
[DLC] drop hard references to member declarations to reduce memory consumption
...
^KT-56613
2023-03-01 10:43:02 +00:00
Dmitrii Gridin
847b29ac15
[DLC] add missing identity checks to 'equals'
...
^KT-56613
2023-03-01 10:43:01 +00:00
Dmitrii Gridin
95455c9870
[DLC] add missing visitor methods
...
Some of our light classes have no correct parent (KT-56882),
so I temporarily disabled
AbstractSymbolLightClassesParentingTestBase for such cases
(previously decompiled light classes were not tested at all)
^KT-56613
^KT-56882
2023-03-01 10:43:01 +00:00
Dmitrii Gridin
5e18ebcd7e
[DLC] cleanup code and drop some redundant constructions
...
^KT-56613
2023-03-01 10:42:58 +00:00
Dmitrii Gridin
007af1c547
[DLC] use library tracker instead of out of block tracker
...
^KT-56613
2023-03-01 10:42:58 +00:00
Dmitrii Gridin
761553ea75
[LC] reduce memory consumption from SLC and DLC
...
The main change is drop `LightClassesLazyCreator`
KtLightClassForDecompiledDeclaration:
* fixed a few captured fields
^KT-56561 Fixed
2023-02-13 16:08:17 +00:00
Roman Efremov
25f65aff3a
Replace getEntries with hardcoded PsiMethod in LC decompiled declaration
...
This adds NotNull annotation.
^KTIJ-23530 Fixed
2022-12-27 14:41:53 +00:00
Vladimir Dolzhenko
5dc2442872
Safe reporting PSI elements in KEWA
2022-11-03 17:27:11 +00:00
Dmitry Gridin
7013fa1864
[lc] decompiled: support stub search for top level callable
...
^KT-53934
2022-09-15 09:27:53 +00:00
Dmitry Gridin
9eb2672282
[lc] decompiled: improve stub search for fields
...
^KT-53934
2022-09-15 09:27:53 +00:00
Dmitry Gridin
438faf478b
[lc] decompiled: extract common part to KotlinDeclarationInCompiledFileSearcher
...
^KT-53934
2022-09-15 09:27:53 +00:00
Dmitry Gridin
5f2098d572
[lc] decompiled: LightMemberOriginForCompiledElement: cleanup code
...
^KT-53934
2022-09-15 09:27:52 +00:00
Dmitry Gridin
d13f2af6ec
[lc] decompiled: make isEquivalentTo lightweight
...
^KT-53934 Fixed
2022-09-15 09:27:51 +00:00
Dmitry Gridin
51fd2af6fd
[lc] decompiled: update debug info
...
^KTIJ-22722
2022-09-10 21:37:47 +02:00
Dmitry Gridin
feb31b79de
[lc] support decompiled facade only for .class
...
we have support only for KtClsFile (see decompiled light classes) so kotlin_builtins and kotlin_metadata should be ignored
^KT-53543
2022-08-29 11:51:43 +00:00
Dmitry Gridin
0ea041a1eb
[lc] move SymbolLightClassForDecompiledFacade to common decompiled part
...
^KT-53543
2022-08-29 11:51:42 +00:00
Ilya Kirillov
7441388f9d
[Decompiled LC] restore missed ^IDEA-286315 fix during Decompiled LC migration to the kotlin repo
...
^IDEA-297478 fixed
2022-08-18 16:10:51 +00:00
Dmitry Gridin
1708b4fe48
[light classes] move light-classes-base module to analysis
...
^KT-53097
2022-08-01 13:56:34 +00:00
Dmitry Gridin
2ff1c21c8c
[light classes] replace light class dependency from analysis.decompiled.light-classes-for-decompiled to light-classes-base
...
^KT-53097
2022-07-19 15:42:00 +00:00
Dmitry Gridin
f10c5c28a5
Revert "Revert "[light classes] drop old light classes and backend: iteration #1 ""
...
This reverts commit 57de064251 .
2022-06-28 17:57:29 +02:00
Dmitry Gridin
57de064251
Revert "[light classes] drop old light classes and backend: iteration #1 "
...
This reverts commit 3cb2df9360 .
2022-06-28 13:52:11 +02:00
Dmitry Gridin
3cb2df9360
[light classes] drop old light classes and backend: iteration #1
...
drop clsDelegate and related
^KT-48773
2022-06-28 11:44:38 +00:00
Ilya Kirillov
314d9b9477
[analysis] move DecompiledPsiDeclarationProvider to symbol light classes module to avoid circular dependencies
2022-05-30 17:48:34 +02:00
Jinseong Jeon
55e24451a4
AA: migrate PSI declaration provider (from IJ)
2022-05-30 17:48:34 +02:00
Vladimir Dolzhenko
efd5beb49b
IJ file type optimizations based on extension
...
#KTIJ-21668
Merge-request: KT-MR-6288
Merged-by: Vladimir Dolzhenko <Vladimir.Dolzhenko@jetbrains.com >
2022-05-17 14:46:00 +00:00
Yan Zhulanow
c334a44e02
Preserve synthetic enum methods in stub-based 'ClsClassImpl'
...
'ClsClassImpl' instances created by the platform contain synthetic
enum methods (added by 'ClassInnerStuffCache.calcMethods()'). Such
convention is common in IntelliJ (see KT-36095 and
'9a8b345adaded83fe13980a28db5d9f9acc7450d' in the IntelliJ repository).
This commit makes Kotlin's stub-based classes consistent with the
convention. Instead, a filter is added in place of 'ClsClassImpl' usage.
See also the following commits:
- 7c86911f44
- 43468c6d55
2022-03-14 17:53:55 +09:00
Yan Zhulanow
fa4dadf9b7
Update KotlinClassInnerStuffCache implementation
...
'KotlinClassInnerStuffCache' was copy-pasted from the platform's
'ClassInnerStuffCache' several years ago. After J2K and other changes,
it became quite dirty.
Besides cleaning things up, enum synthetic method handling have
significantly improved. Before, such methods were handled only in
'processDeclarationsInEnum', and 'getMethods()' didn't return them.
This led to inconsistent behavior and was reason for providing special
ad-hoc support in '1b6ded600518176b21cc308ed3e032ef8d04cc90'.
2022-03-14 17:53:55 +09:00
Yan Zhulanow
955d0841bd
Remove unused modification tracker in KotlinClassInnerStuffCache
...
'dropCaches()' is not used anywhere both in the compiler and in the IDE.
2022-03-14 17:53:55 +09:00
Ilya Kirillov
40fdb26569
Analysis LC: introduce Symbol LC tests
2021-12-27 16:23:18 +03:00
Ilya Kirillov
1bba3b2256
Migrate decompiled light classes factories from IJ
2021-12-27 16:23:17 +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