Roman Golyshev
8bcdc70adc
FIR IDE: Add IDE tests for sample compiler plugin
2022-02-25 23:08:26 +03:00
Mark Punzalan
afb34d3193
Analysis API: Implement KtCallResolver.collectAllCandidates for FE 1.0.
2022-02-17 19:51:35 +01:00
Mark Punzalan
3f3873dc50
Analysis API: Return KtCallCandidateInfo instead of KtCallInfo in
...
KtCallResolver.collectAllCandidates().
2022-02-11 13:22:58 +01:00
Mark Punzalan
7a1ef25333
Analysis API: Rename resolveCandidates to collectCallCandidates.
...
Didn't bother to rename the directory in the test data.
2022-02-11 13:22:58 +01:00
Mark Punzalan
9b9da94a09
Analysis API: Fix issues related to implicit invoke calls:
...
- Correctly set explicit receiver value.
- Restore original function call from FirImplicitFunctionCall (i.e.,
calls implicitly resolved to `invoke`) to get the correct name for
getting all candidates.
- Collect candidates at all tower levels.
Also make order of candidate calls in tests deterministic.
2022-02-11 13:22:58 +01:00
Mark Punzalan
ace826c570
Analysis API: Get argument mapping from candidate and type parameters
...
from candidate symbol.
2022-02-11 13:22:58 +01:00
Mark Punzalan
f62bdf5826
Analysis API: Move AbstractResolveCallTest from fir to components
...
package.
2022-02-11 13:22:57 +01:00
Mark Punzalan
4a09abc418
Analysis API: Add API functions to get all the candidates (with argument
...
mapping and substitutor) for a function call.
2022-02-11 13:22:57 +01: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
Mads Ager
a398f7d6cb
Rename kt-reference module to kt-references.
2022-02-07 15:01:24 +01:00
Mads Ager
17aee1e944
Move frontend independent parts of KtReference.isReferenceTo up to share it.
2022-02-07 15:01:24 +01:00
Mads Ager
6f0bb0eda5
Add analysis:kt-reference module and move KtReferences there.
2022-02-07 15:01:23 +01:00
Dmitriy Novozhilov
52b72a7dac
[FIR] Implement Int -> Long conversions for literals and operators over them
...
^KT-38895
^KT-50996 Fixed
^KT-51000 Fixed
^KT-51003 Fixed
^KT-51018 Fixed
2022-02-07 13:36:36 +03:00
Roman Golyshev
564e408434
KT-50862 Add name property to KtSignature
...
See the KDoc of the property for the reasons why
it was created
2022-01-29 07:42:17 +00:00
Roman Golyshev
8befbc6375
KTIJ-20826 Approximate builder inference stub types as type parameters
...
This is a temporary fix to avoid crashes in FIR IDE
Of all stub types, only `ConeStubTypeForChainInference` is handled now,
so we can catch the other possible errors with stub types (in the
delegates' inference, for example)
The fix introduced in this commit should be reworked when KT-50916 is
fixed
^KTIJ-20826 Fixed
2022-01-25 17:09:03 +03:00
Ilya Kirillov
3b943706d8
Analysis API: fix call resolve inside plusAssign target
...
^KT-50864 fixed
2022-01-20 23:26:28 +03:00
Ilya Kirillov
11c50a48ba
Analysis API: add isSubclassOf tests
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
af789346f5
Analysis API: fix getKtExpressionType for array assignment target
2022-01-02 21:56:49 +03:00
Ilya Kirillov
40fdb26569
Analysis LC: introduce Symbol LC tests
2021-12-27 16:23:18 +03:00
Roman Golyshev
e3219cc5b6
FIR IDE: Avoid resolving elvis operator, because it doesn't make sense
...
There are intrinsics to which elvis operator's usages are resolved;
however, we do not want to expose those intrinsics through the
high-level resolve
2021-12-21 18:48:00 +03:00
Tianyu Geng
5fbe5981f7
Analysis API: add KtType.isDenotable()
2021-12-15 16:09:31 +03:00
Tianyu Geng
2f393cdd02
FE1.0 Analysis API: get smartcast if available with getKtExpressionType
...
The current implementation still does not work with multicast. In
addition, it appears FE1.0 does not attempt smart cast if it's not used.
2021-12-15 16:09:29 +03:00
Tianyu Geng
f197fc93db
Analysis API: add test for KtDiagnosticsProvider
2021-12-09 15:56:52 +03:00
Jinseong Jeon
f8a6ab9536
FIR LC: populate DefaultImpls if an interface has default implementations
2021-12-09 11:04:25 +01:00
Tianyu Geng
9153db2ecc
FE1.0 Analysis API: rewrite KtFe10CallResolver
2021-12-09 11:01:52 +01:00
Tianyu Geng
f1bd3597f8
FE1.0 Analysis API: make KtSymbol only reference declaration-site subst-overrides
...
This is the FE1.0 counterpart of fa8bb47bdf
2021-12-09 11:01:52 +01:00
Tianyu Geng
eeb4e4278d
FE1.0 Analysis API: comment out KtFe10CallResolver for now
2021-12-06 12:40:43 +01:00
Tianyu Geng
9b05019137
FIR Analysis API: reimplement KtFirCallResolver with new data model
2021-12-06 12:40:43 +01:00
Tianyu Geng
c9f9ce99c1
Analysis API: adapt to KtCall data model change
...
Also add API to check if a `KtFunctionSymbol` is the invoke function on
a Kotlin builtin functional type.
2021-12-06 12:40:42 +01:00
Tianyu Geng
bc95733818
FIR LL API: resolve PSI elements to more specific FIR element
...
Compound access and implicit delegated constructor are mapped to FIR
elements that are way too broad.
2021-12-06 12:40:41 +01:00
Ilya Kirillov
7440c726d0
Analysis API: fix invalid psi elements for constants and annotation values
2021-12-02 20:09:19 +01:00
Ilya Kirillov
dc9c2aa39d
Analysis API: add KDoc, small cosmetic improvements
2021-12-02 20:09:19 +01:00
Ilya Kirillov
985c6fa0b8
Analysis API: rework KtSymbol hierarchy
...
- make some symbols to be KtPossiblyMemberSymbols
- introduce KtDeclarationSymbol for declarations
2021-12-02 20:09:19 +01:00
Ilya Kirillov
22e31ea414
Analysis API FE1.0: fix invalid file scope
2021-12-02 20:09:19 +01:00
Ilya Kirillov
aef52323a8
Analysis API FIR/FE1.0: fix backing field rendering & resolving
2021-12-02 20:09:18 +01:00
Ilya Kirillov
5cffcfaf9f
Analysis API FE1.0: consider rendering parameters when rendering annotations
2021-12-02 20:09:18 +01:00
Ilya Kirillov
2d032112fd
Analysis API FE1.0: fix rendering of enum entry
2021-12-02 20:09:18 +01:00
Ilya Kirillov
19dec92247
Analysis API: rework declaration renderer
...
- refactor code to use PrettyPrinter instead of ad-hoc one
- do not print nested local declarations as this does not seem to have use-cases
2021-12-02 20:09:18 +01:00
Ilya Kirillov
c4e5ec2ff2
Analysis API: fix unsigned constant value creation for fe1.0
2021-12-02 20:09:17 +01:00
Ilya Kirillov
673459580c
Analysis API: introduce annotation value for KClass
2021-12-02 20:09:16 +01:00
Ilya Kirillov
f722a54c78
Analysis API: separate constant values from annotation values
2021-12-02 20:09:16 +01:00
Ilya Kirillov
47c1da2845
FIR IDE: separate KtAnnotationApplication and KtAnnotationApplicationValue
2021-12-02 20:09:16 +01:00
Ilya Kirillov
b1c8a9e886
Analysis API: rename KtConstantValue -> KtAnnotationValue as it is annotation specific
2021-12-02 20:09:14 +01:00
Ilya Kirillov
a70c336c2c
Analysis API: fix constructor return type for FE1.0 implementation
2021-11-30 18:02:33 +01:00
Tianyu Geng
6e555e1d28
FE1.0 Analysis API: fix getReturnTypeForKtDeclaration for setter parameter
2021-11-30 18:02:33 +01:00
Tianyu Geng
f1d0791f15
Analysis API: add test for KtDeclaration.getReturnKtType
...
FE1.0 always return kotlin.Unit as return type for constructors while
FIR returns the constructed class type. I am not sure which is more
desirable. Also, I am not sure how to make FE1.0 behave the same way.
2021-11-30 18:02:33 +01:00
Roman Golyshev
2a8431d80c
[FIR IDE] Unify creation of KtFe10DescFunctionSymbol
...
It will be required later to implement overrides unwrapping logic
for descriptor-based symbols
2021-11-25 21:19:58 +03:00
Roman Golyshev
fa8bb47bdf
[FIR IDE] Add unwrapping substitution overrides which doesn't affect function's signature
...
Also, do not use PSI to restore SUBSTITUTION_OVERRIDE function/property
symbols
2021-11-25 21:19:56 +03:00
Ilya Kirillov
1d1f5ace8f
Analysis API: rename KtCallableSymbol.type -> returnType
2021-11-22 22:47:01 +01:00