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
c230a488e2
FIR LC: use the same module name as U/LC tests in IJ
2022-05-25 17:05:15 +02:00
Jinseong Jeon
1fe574f406
FIR LC: mangle internal function names
2022-05-25 17:05:14 +02:00
Jinseong Jeon
c79601e616
FIR LC: utilize effective visibility retrieval for (overridden) members
2022-05-25 17:05:14 +02:00
Jinseong Jeon
e446c988ee
FIR LC: populate default retention policy of annotations
2022-05-24 20:32:56 +02:00
Jinseong Jeon
d196050d9f
FIR LC: remove unnecessary bail-out in annotation util
...
There is another place below that handles the case
where no explicit annotations are bound, and there
unknwon nullability will be handled too.
2022-05-24 20:32:56 +02:00
Jinseong Jeon
58c2433bdd
FIR LC: use unified annotations' ClassId (missed JvmName)
2022-05-24 20:32:55 +02:00
Jinseong Jeon
85388f0c79
FIR LC: correct static modifiers for accessors from companion
2022-05-24 20:32:55 +02:00
Jinseong Jeon
a7a01a1f7e
FIR LC: populate JvmStatic accessors from companion
2022-05-24 20:32:55 +02:00
Jinseong Jeon
63fb00fa21
FIR LC: revisit when to add fields to companion and/or containing class
2022-05-24 20:32:55 +02:00
Jinseong Jeon
89d1a6bc0f
FIR LC: populate fields from companion in interface
2022-05-24 20:32:55 +02:00
Jinseong Jeon
0212e9daae
FIR LC: always run with STDLIB (to handle JVM annotations)
2022-05-24 20:32:55 +02:00
Ilya Kirillov
b5ad6f5db4
[analysis api] move analysis session classes to separate packages, use KtAnalysisApiInternals to mark internal API
2022-05-12 16:15:14 +02:00
Ilya Kirillov
eb9085c083
[analysis api] rename analyse -> analyze to match American word spelling
2022-05-12 16:15:13 +02:00
Ilya Kirillov
fe35204e9f
[analysis api] get rid of additional analyseWithCustomValidityToken
2022-05-12 16:15:11 +02:00
Ilya Kirillov
ef0160c026
[analysis api] rename ValidityToken -> KtLifetimeToken
2022-05-12 16:15:02 +02:00
Ilya Kirillov
207f2c7981
[symbol fir] add small performance optimization for checkIsInheritor
2022-04-19 23:58:12 +02:00
Ilya Kirillov
cff576844e
[symbol fir] fix checkIsInheritor in LC
...
^KT-51240 fixed
2022-04-19 23:58:11 +02:00
Alexander Udalov
ef6d30dd51
Remove usages of JVM target 1.6 from compiler tests
...
#KT-45165
2022-04-19 22:54:40 +02:00
Ilya Kirillov
9a562a0293
[analysis api] optimize search for declarations in IDE
2022-04-19 12:37:49 +02:00
Jinseong Jeon
6a9ed82fdc
FIR/LC: restructure light identifiers
...
* introduced KtLightIdentifierBase so that both FIR LC and ULC share
basic implementations
* detach PsiCompiledElement as per KTIJ-21412,
while introducing KtLightIdentifierWithOrigin so that
UastLightIdentifier can still inherit origin computation logic
^KTIJ-21412 In Progress
2022-04-13 13:43:21 +02:00
Jinseong Jeon
daa17b433c
FIR LC: identifier is not compiled element
...
FIR LC uses KtLightClassForDecompiledDeclaration instead,
when it is asked to convert compiled element to light element.
Such decompiled declaration delegates things to Class stub, where
ClsIdentifierImpl, a subtype of PsiCompiledElement, will be used.
2022-04-13 13:43:20 +02:00
Ilya Kirillov
2649788b87
[analysis api fir] put every library into a separate KtModule in tests
2022-04-13 12:53:22 +02:00
Ilya Kirillov
207ca7eb08
[analysis api, tests] simplify tests
2022-04-13 12:53:17 +02:00
Ilya Kirillov
4bd7fed1ea
[analysis api, test] rework test infrastructure, add multimodule tests
2022-04-13 12:53:01 +02:00
Ilya Kirillov
1e5cf80278
[analysis api, refactoring] move base test cases to base modules, improve service names
2022-04-13 12:53:00 +02:00
Ilya Kirillov
12e0254918
[analysis api] simplify dependent analysis mode tests
2022-04-13 12:52:58 +02:00
Ilya Kirillov
3206c0ce87
[analysis api, refactoring] get rid of HL name in class names
2022-04-13 12:52:57 +02:00
Ilya Kirillov
3838552a75
[analysis api] move some test framework parts to a separate module
2022-04-13 12:52:55 +02:00
Jinseong Jeon
4d938e93c6
FIR LC: remove IDE prefix from FIR version of KotlinAsJavaSupport
...
since it's used in standalone mode as well
2022-03-22 15:44:45 +01:00
Ilya Kirillov
8b8d81cf2f
[symbol lc] fix compilation of SymbolLightClassesForLibraryFrontendApiTestConfiguratorService
2022-03-15 19:50:19 +03: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
Yan Zhulanow
f237631f05
Revert "FIR/LC: create synthetic members of enum class"
...
This reverts commit 1b6ded60
2022-03-14 17:53:55 +09:00
Ilya Kirillov
092550aaee
[Symbol LC] fix invalid caching for FirLightClassBase
...
Previously, value created by FirLightClassesLazyCreator was never recalculated based on dependencies changes
2022-03-03 20:12:56 +03:00
Ilya Kirillov
4a5aee688e
FIR LC: fix invalid type param upper bound
2022-02-25 14:06:05 +01:00
Jinseong Jeon
1b6ded6005
FIR/LC: create synthetic members of enum class
...
^KTIJ-17414 In Progress
^KTIJ-17444 In Progress
2022-02-24 17:51:50 +01:00
Jinseong Jeon
26e7fc9da3
FIR LC: avoid hardcoded annotation name
2022-02-24 17:51:49 +01:00
Jinseong Jeon
f49a42895f
FIR LC: use StandardNames (instead of hardcoded constants)
2022-02-24 17:51:47 +01:00
Roman Golyshev
ca72790962
[FIR IDE] Hack checkIsInheritor until KT-51240 is fixed
...
We do not know for sure if there is any dependency between the
two classes passed to `checkIsInheritor`. To avoid the problem described
in KT-51240, we try to analyse them both and hope that the dependency
in some direction exists.
`NoCacheForModuleException` is introduced to signal about this
particular problem and avoid catching just any `NoSuchElementException`.
This hack is mainly done to fix very annoying KT-51240 for the time
being.
^KTIJ-20852 Fixed
2022-02-10 16:24:44 +03:00
Jinseong Jeon
a986aff429
AA: refactor service registrations
...
such that AA standalone mode doesn't need to unregister services that
were already registered by pre-analysis handlers
2022-02-09 23:11:44 +01:00
Roman Golyshev
7e1a9e2b9a
KTIJ-20637 Group files by module in getFacadeClassesInPackage also
...
Fixup for 35e2561dab , since these changes
were overlooked in the initial commit.
^KTIJ-20637 Fixed
2022-02-02 19:02:23 +03:00
Roman Golyshev
35e2561dab
KTIJ-20637 Group files by module and create facade class for each one
...
Before all files were going to `getOrCreateSymbolLightFacade`. If there
were both compiled and source files, it caused exceptions later
(see `SymbolLightClassFacadeCache.getOrCreateFirLightFacadeNoCache`).
When grouped by the `KtModule`, each file group should contain either
only sources or only compiled classes.
^KTIJ-20637 Fixed
2022-02-01 22:00:51 +03:00
Ilya Kirillov
caddbda01b
Analysis API FIR: introduce library resolve tests
2022-01-31 21:11:56 +01:00
Ilya Muradyan
9637b6b848
REPL: Fix REPL scripts metadata to be correctly recognized by class file decompiler
2022-01-27 02:23:27 +03:00
Jinseong Jeon
7ff468d9e3
FIR LC: populate only const property on multi-file facade
2022-01-11 21:30:54 +03:00
Jinseong Jeon
62fb8446dc
FIR LC: remove unnecessary type parameter shift for inner class
...
U/LC don't do anything like that, and it rather skips necessary type
paraemters to render.
2022-01-10 12:00:10 +03:00
Ilya Kirillov
e6fc434489
Analysis LC: fix isSubClass check for local LC
2022-01-02 21:56:53 +03:00
Ilya Kirillov
1d6d67d0a1
FIR IDE: regenerate tests
2022-01-02 21:56:51 +03:00
Ilya Kirillov
b916c5116a
Analysis LC: add missing text range for LC
2022-01-02 21:56:50 +03:00