Commit Graph

234 Commits

Author SHA1 Message Date
Mikhail Glukhikh 0ee04d0825 FE10 analysis API: revert resolving 'this' references to receivers
FE10 IDE plugin relies on resolving 'this' references to class or callable
2022-06-03 16:25:44 +00:00
Nikolay Lunyak 98c7399a35 [FIR] Remove the redundant backing field check
This commit fixes a failing visibility check
(FirSymbolByPsiTestGenerated.testBackingField) for the backing field.

Merge-request: KT-MR-6389
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
2022-06-02 08:36:14 +00:00
Mikhail Glukhikh c3b5d83f31 FE10 Analysis API: create 17 separate test data files for resolve 2022-05-31 11:34:59 +00:00
Mikhail Glukhikh a3db2e13b2 FE10 analysis API: render type parameter bounds as FIR does 2022-05-31 11:34:58 +00:00
Mikhail Glukhikh 8cb3081bbd Analysis API: add KtReference..Provider to fix reference resolve in FE10 2022-05-31 11:34:56 +00:00
Mikhail Glukhikh f4510773d0 FIR analysis API: add workaround for java.io.Serializable type 2022-05-31 11:34:54 +00:00
Mikhail Glukhikh 446ee943e2 FIR analysis API: fix rendering of Java-based types 2022-05-31 11:34:53 +00:00
Mikhail Glukhikh 564d179cfb FE10 analysis API: fix flexible type pretty-printing 2022-05-31 11:34:50 +00:00
Stanislav Erokhin 2deb0cc237 FIR/Analysis API: Add KtValueParameterSymbol#generatedPrimaryConstructorProperty
This property are used to allow access to the property created from
the primary constructor parameter
2022-05-30 18:39:21 +00:00
Ilya Kirillov e25dee558f [Analysis API] make KtDeclarationSymbol <: KtDeclarationSymbol
To simplify work with annotations
2022-05-27 16:39:38 +00:00
Ilya Kirillov f189fd1ff0 [Analysis API] make KtDeclarationSymbol <: KtSymbolWithTypeParameters
To simplify work with type parameters
2022-05-27 16:39:37 +00:00
Jiaxiang Chen 8f4554959e AA: make KtClassifierSymbol a subtype of KtAnnotatedSymbol 2022-05-27 16:39:37 +00:00
Jiaxiang Chen 866ebcfe2e AA: make KtCallableSymbol a subtype of KtAnnotatedSymbol 2022-05-27 16:39:37 +00:00
Mikhail Glukhikh 133f874351 Fix origin calculation in CliFe10AnalysisFacade
After this commit, all tests in
Fe10IdeNormalAnalysisSourceModuleFileScopeTestGenerated pass
2022-05-25 12:04:57 +00:00
Denis.Zharkov 21b86123e8 FIR: Adjust analysis test data after changes in how we load Java types
Especially, it's about types based on type parameters
2022-05-19 16:54:05 +00:00
Denis.Zharkov d7f87e0182 FIR: Adjust analysis test data to changes in loading Java types 2022-05-19 16:54:02 +00:00
Ivan Kylchik 51ccc32a3f Update test data after introducing IntrinsicConstEvaluation annotation 2022-05-18 21:19:57 +03:00
Ilya Kirillov 7ac001b7bd [analysis api] fix KDoc for the analyze function 2022-05-12 16:24:24 +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
Jiaxiang Chen 7b038860b5 AA: add analyzeWithKtModule API for analyzing without KtElement 2022-05-12 16:15:03 +02:00
Ilya Kirillov ef0160c026 [analysis api] rename ValidityToken -> KtLifetimeToken 2022-05-12 16:15:02 +02:00
Jinseong Jeon 61cca31b6b AA: special handling for converted constants 2022-04-22 18:55:30 +02:00
Jinseong Jeon faf6939515 AA: showcase strange const evaluation for -1 2022-04-22 18:55:30 +02:00
Jinseong Jeon 889db4cc5d AA: indicate whether a value parameter is an implicit lambda parameter
^KTIJ-18800 In progress
2022-04-21 19:18:25 +02:00
Jinseong Jeon a74a51b2d9 AA: add tests about resolution of implicit lambda parameter 2022-04-21 19:18:24 +02:00
Ilya Kirillov 3b4eb2d788 [kotlin fir] fix creating symbol not in analysis scope
^KTIJ-21504 fixed
2022-04-19 19:34:21 +02:00
Ilya Kirillov 3bd892fe82 [analysis api fe10] provide a dummy implementation for KtFe10SymbolContainingDeclarationProvider.getContainingModule
to satisfy some tests
2022-04-13 12:53:26 +02:00
Ilya Kirillov 2cd0792e98 [analysis api, tests] actualize testdata with newly added getContainingModule 2022-04-13 12:53:25 +02:00
Ilya Kirillov 16470a2406 [analysis api] provide a function to get containing module for a KtSymbol 2022-04-13 12:53:24 +02:00
Ilya Kirillov 6831bde751 [analysis api fir, tests] update parameter names in testdata 2022-04-13 12:53:18 +02:00
Ilya Kirillov 443ee4c860 [analysis api] allow generating test with for with more possible parameters 2022-04-13 12:52:59 +02:00
Roman Golyshev 32fa2fc476 [FIR] Resolve receiver in qualified expressions with no selector
In qualified expression like `foo().`, selector expression is null.
Because of that the whole expression was marked as an error FIR
expression, and `foo()` part was not resolved at all (including
arguments and everything else).

This commit fixes the problem by providing receiver's FIR expression
as an underlying expression for error FIR expression. That way
it will be seen by all resolve transformers and will be successfully
resolved.

^KTIJ-21484 Fixed
2022-04-12 10:55:12 +00:00
Victor Petukhov 27fa632630 [FE 1.0] Update test data with new error type representation 2022-03-23 21:13:33 +00:00
Jinseong Jeon 881a6bed35 AA: add tests about resolution to Java static method 2022-03-22 15:44:50 +01:00
Roman Golyshev 22830cf159 [FIR IDE] Fix resolving sugared compound operators (like +=, -=)
^KTIJ-21374 Fixed
2022-03-22 13:14:54 +00:00
Roman Golyshev 644db43e67 [FIR IDE] Filter non-implicit smart-casts in KtSmartCastProviderMixIn
Also, make `getSmartCastInfo` work more like SMART_CAST slice for
binding context

^KTIJ-21013 Fixed
2022-03-18 01:01:46 +04:00
Roman Golyshev 7bcd67068c [FIR IDE] Resolve explicit invoke calls more correctly
Also, enable some muted tests

^KTIJ-21343 Fixed
2022-03-15 21:29:36 +03:00
Jinseong Jeon a106ec6530 Do not create FastJarFileSystem when USE_PSI_CLASS_FILES_READING
because the intention of that configuration is to use "slower" class
reading.

In the near future, even though FIR is enabled, which uses experimental
faster jar file system, FIR clients (e.g., FIR UAST or Android Lint) may
still need to use slower class reading. So, we need to handle that
configuration before checking others.
2022-03-15 19:50:18 +03:00
Jinseong Jeon 89725941df AA: showcase an error in resolution to stdlib in standalone mode 2022-03-15 19:50:16 +03:00
Jinseong Jeon 46707b0426 AA: test evaluation mode with same test inputs 2022-03-11 13:51:16 +01:00
Jinseong Jeon a7fcbfb717 AA: move logic to evaluate constant property initializer
so as to handle composite expressions w/ constant property
2022-03-11 13:51:16 +01:00
Jinseong Jeon 606033e1e6 AA: introduce KtConstantEvaluationMode 2022-03-11 13:51:15 +01:00
Jinseong Jeon 1f93630a9c AA: evaluate constant property initializers 2022-03-11 13:51:14 +01:00
Jinseong Jeon 7ec7cc47a9 AA: ignore evaluating named reference (to avoid exceptions) 2022-03-11 13:51:14 +01:00
Jinseong Jeon e36bf55807 AA: avoid NPE while evaluating operations with non-numbers 2022-03-11 13:51:13 +01:00
Jinseong Jeon a68fd25982 AA: relax the assertion about referenced ClassId and qualified access
If an import alias is involved, they could be not identical.
Since an import alias ends with a simple identifer, we can simply drop
the first segment of qualified access and try the assertion again.
2022-03-02 20:30:31 +01:00
Roman Golyshev 8bcdc70adc FIR IDE: Add IDE tests for sample compiler plugin 2022-02-25 23:08:26 +03:00
Roman Golyshev b1b99e1673 FIR IDE: Add the simplest support for PLUGIN KtDeclarationOrigin 2022-02-25 23:08:25 +03:00