5034 Commits

Author SHA1 Message Date
Yan Zhulanow e943ee1e33 [FIR IDE] Fix callableIdIfNonLocal in AAPI/FE10
Before, implementations of 'callableIdIfNonLocal' in Fe10KtSymbols
returned CallableIds even for local declarations. This commit fixes this
behavior.

This commit fixes KtFe10SymbolByPsiTestGenerated.testLocalDeclarations().
2021-11-12 20:09:48 +09:00
Yan Zhulanow f7b4fa64ea [FIR IDE] Fix Fe10PsiKtEnumEntrySymbol.annotatedType in AAPI/FE10
'annotatedType' should return type of the enum itself, not of its entry.
This commit fixes KtFe10SymbolByPsiTestGenerated.testEnum().
2021-11-12 20:09:48 +09:00
Yan Zhulanow 47b5474955 [FIR IDE] Decouple KtFe10AnalysisSession and symbols 2021-11-12 20:09:47 +09:00
Yan Zhulanow b075fe8741 [FIR IDE] Fix CliFe10AnalysisFacade, so it can be used as a Project component 2021-11-12 20:09:47 +09:00
Yan Zhulanow 0388f1e5ca [FIR IDE] Refactoring, accept only KtElement sources in KtFe10AnalysisSession 2021-11-12 20:09:47 +09:00
Yan Zhulanow 0382323dad [FIR IDE] Refactoring, make KtFe10AnalysisSession final 2021-11-12 20:09:47 +09:00
Yan Zhulanow b59067ca45 [FIR IDE] Extract CLI parts of KtSymbol-aware KtReferences 2021-11-12 20:09:46 +09:00
Jinseong Jeon 4a16027873 FIR IDE: find source of deserialized top-level properties 2021-11-12 12:11:06 +03:00
Jinseong Jeon cf886c5975 FIR LL: fix searching logic for enum entry
KtEnumEntry, a subtype of KtClass, has been handled by
findNonLocalClass. Since KtEnumEntry doesn't have class id, that util
always throws an error while retrieving class id.

Instead, we should use containing class (i.e., enum class) id.
Also, once the enum class is resolved, we should search for matching
enum entry inside the enum class.
2021-11-12 12:11:06 +03:00
Jinseong Jeon 140b8d6ddf FIR LL: remove redundant test data for library module resolve
There are in plugins/kotlin/fir-low-level-api-ide-impl in intellij repo.
2021-11-12 12:11:05 +03:00
Denis.Zharkov 6e15ee8fea FIR: Refine callable reference resolution in assignment position
synthetic_select<() -> T>(::foo) form allows to select better candidate
than synthetic_select(::foo) with expect type `() -> T`
2021-11-10 22:00:01 +03:00
Denis.Zharkov 65d7da122f FIR: Fix invalid INITIALIZER_TYPE_MISMATCH for suspend lambda 2021-11-10 22:00:01 +03:00
Denis.Zharkov 994040c91c FIR: Support invoke convention on super-qualified calls 2021-11-10 22:00:00 +03:00
Ilya Kirillov 0c7728f64a Analysis API: fix PsiType creation for type parameter type with flexible upper bound 2021-11-10 18:49:43 +01:00
Dmitriy Novozhilov ec079a2663 [Build] Add runtime dependency on descriptors.runtime to tests for low level api
This is needed to keep ability to run those tests using JPS
2021-11-09 20:06:11 +03:00
Jinseong Jeon 08e181a543 FIR IDE: add tests about types of array/list and their element 2021-11-09 09:25:45 +01:00
Ivan Kylchik 37f02390ec [TESTS] Extract common backend directives into ConfigurationDirectives 2021-11-08 23:50:33 +03:00
Jinseong Jeon 4eec381d1b FIR IDE/LC: introduce/use KtTypeMappingMode 2021-11-08 20:12:17 +01:00
Jinseong Jeon 0da9ef873a FIR LC: use optimal type mapping mode for return type 2021-11-08 20:12:17 +01:00
Jinseong Jeon d3c34fa200 FIR LC: use optimal type mapping mode for value parameter 2021-11-08 20:12:17 +01:00
Jinseong Jeon 6d150fb7a5 FIR IDE: add APIs about FunctionClassKind 2021-11-08 20:12:17 +01:00
Jinseong Jeon d029e84b96 FIR LC: use proper use-site target for accessor's JVM name 2021-11-08 20:12:16 +01:00
Ilya Kirillov 348403b1f3 FIR: do not inherit external modifier from super declaration 2021-11-08 19:01:35 +01:00
Ilya Kirillov 711b882e71 Analysis API: get rid of KtImportingScope as public API 2021-11-05 15:47:49 +01:00
Ilya Kirillov d9fcea9451 Analysis API: simplify fir scope hierarchy 2021-11-05 15:46:10 +01:00
Ilya Kirillov 6453f2bdbf Analysis API: simplify scope hierarchy 2021-11-05 15:46:09 +01:00
Ilya Kirillov 0dca176e28 FIR LC: make fir LC utils internal 2021-11-05 15:46:09 +01:00
Ilya Kirillov dd9a96a12f FIR LC: fix light facade caching 2021-11-05 15:46:07 +01:00
Tianyu Geng f217bb94de Use more consistent names for inheritors of BooleanIsMissing 2021-11-04 23:04:35 +01:00
Tianyu Geng 2c2851af6e Analysis API: add test covering get missing when branches
Also fix FIR implementation to generate boolean branches in the same
order as FE1.0.
2021-11-04 23:04:35 +01:00
Tianyu Geng ae50d52131 FIR IDE: add validity token to data classes related to smartcast API
Also move KtImplicitReceiverSmartCast closer to where it's used.
2021-11-04 16:00:38 +01:00
Tianyu Geng 7de0937031 FIR IDE: get unstable smartcast from FE1.0-based analysis API
Note that the current FE1.0 implementation still has some limitations

1. only references used as receiver are being considered for smartcast.
2. Somehow the smartcast information is not retained if the for generic
typed receivers. See multiSmartcastAsReceiver_stable.descriptors.txt
2021-11-04 16:00:37 +01:00
Tianyu Geng 197079c85c FIR IDE: make smartcast API return unstable smartcasts 2021-11-04 16:00:37 +01:00
Ilya Kirillov 6462642988 Analysis API: fix type rendering for ConeDefinitelyNotNullType 2021-11-04 12:05:05 +01:00
Ilya Kirillov da88ddfc71 FIR IDE: always approximate non-denotable types for creating PsiType 2021-11-04 12:05:04 +01:00
Ilya Kirillov bec9cec31c LL API: correctly resolve FirSyntheticPropertyAccessor 2021-11-04 12:05:04 +01:00
Ilya Kirillov 79f30755a5 FIR LC: do not create light classes for non-source declarations 2021-11-04 12:05:03 +01:00
Ilya Kirillov 55e6df6920 Analysis API: do not consider ValidityToken when comparing symbols and types
Symbols with the same FirDeclaration may come from the different analysis sessions
2021-11-04 12:05:02 +01:00
Ilya Kirillov d63c136854 Analysis API: recreate analysis session when not found by resolve state 2021-11-04 12:04:54 +01:00
Denis.Zharkov 2e37ec6f0c FIR: Fix false-positive ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL on invokeExtension calls 2021-11-02 19:08:27 +03:00
Denis.Zharkov 37b5237e97 FIR: Fix type alias case for callable reference resolution type 2021-11-02 19:08:26 +03:00
Jinseong Jeon c3c79b874d FIR IDE: make constant evaluator robust to arithmetic exception 2021-11-01 22:50:47 +01:00
Jinseong Jeon 5aa8e2d0d1 FIR LC: fix nullable annotation on return type of suspend function 2021-11-01 19:19:39 +01:00
Jinseong Jeon 5880d80d26 FIR LC: add support for inline class 2021-11-01 19:17:26 +01:00
Jinseong Jeon 0e7d1b3945 FIR LC: refactor creation of property accessors 2021-11-01 19:17:26 +01:00
Victor Petukhov c8dea3db35 Add test for using underscored type in different positions 2021-11-01 13:03:40 +03:00
Victor Petukhov 5508d40371 Put using underscored type arguments under a feature 2021-11-01 12:25:45 +03:00
Victor Petukhov 248c9550cd Support type annotations resolution on an underscored type argument 2021-11-01 12:25:10 +03:00
Victor Petukhov b69fb6779f Basic support of partially specified type arguments though a new underscore operator for type arguments
^KT-13394
2021-11-01 12:25:07 +03:00
zhelenskiy ea10b4a781 Synchronizing by values and primitives is forbidden
Signed-off-by: zhelenskiy <zhelenskiy2000@yandex.ru>
2021-10-29 18:50:30 +02:00