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
Jinseong Jeon
a153a1fefb
FIR LC: create inline methods
...
unless the functions (or accessors) have reified type parameters
or inline-only annotations
2021-12-30 10:47:32 +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
Jinseong Jeon
09f5ec7bd3
FIR LC: add supports for decompiled declarations
2021-12-27 16:23:16 +03:00
Vyacheslav Gerasimov
f7a9065b75
Build: Use intellij maven repo instead of downloaded IDEA
...
#KTI-82
2021-12-16 21:48:23 +03:00
Jinseong Jeon
7757fd312b
FIR LC: make fields in objects static
2021-12-15 08:20:03 +03:00
Jinseong Jeon
82c2f0c6fd
FIR LC: use unified annotations' ClassId or FqName
2021-12-15 08:20:02 +03:00
Jinseong Jeon
9a669092e3
FIR LC: backward compatible visibility of enum entry ctor
2021-12-14 18:26:26 +03:00
Jinseong Jeon
f8a6ab9536
FIR LC: populate DefaultImpls if an interface has default implementations
2021-12-09 11:04:25 +01:00
Jinseong Jeon
b9a56f4888
FIR LC: add static modifier to non-inner nested interfaces
2021-12-08 15:28:33 +01:00
Ilya Kirillov
dc9c2aa39d
Analysis API: add KDoc, small cosmetic improvements
2021-12-02 20:09:19 +01:00
Ilya Kirillov
673459580c
Analysis API: introduce annotation value for KClass
2021-12-02 20:09:16 +01:00