Nikita Bobko
b2397f033b
1/2 analysis-api: Initial implementation for contracts
...
Review: https://jetbrains.team/p/kt/reviews/7652
I need this API for KTIJ-22692
2022-12-01 14:42:49 +01:00
Nikita Bobko
6e637e94ca
analysis-api module: drop unused :compiler:frontend dependency
...
Review: https://jetbrains.team/p/kt/reviews/7652
It's not only unused, this dependency is conceptually wrong because
:compiler:frontend is K1 compiler but :analysis:analysis-api supposed to
be frontend independent
2022-12-01 14:42:49 +01:00
Marco Pennekamp
ea346e3e0e
[AA] Rename originalOverriddenSymbol to unwrapFakeOverrides
...
- `unwrap` signals that fake overrides will be unwrapped until the
original symbol is recovered.
- Also remove nullability of the returned `KtCallableSymbol`. If the
given symbol cannot be unwrapped, it is most likely already the
original symbol.
- Remove the lazy resolve to `STATUS` in `KtFirOverrideInfoProvider`, as
it's not needed to unwrap fake overrides.
2022-11-30 19:49:14 +00:00
Dmitrii Gridin
945e0d9b3f
[AA] KtPsiBasedSymbolPointer: drop redundant api
...
^KT-54051
2022-11-29 13:33:53 +00:00
Dmitrii Gridin
207212e5b8
[SLC] support non-psi classes
...
^KT-54051
2022-11-29 13:33:47 +00:00
Dmitrii Gridin
e27ffada26
[AA] KtSymbol: add context receiver to 'createPointer'
...
^KT-54051
2022-11-29 13:33:46 +00:00
Dmitrii Gridin
37729c0353
[SLC] migrate SymbolLightParameterForReceiver to KtReceiverParameterSymbol
...
^KT-54051
2022-11-29 13:33:43 +00:00
Dmitrii Gridin
40bd222b78
[SLC] drop KtAnalysisSession from SymbolLightFieldForProperty
...
^KT-54051
2022-11-29 13:33:36 +00:00
Dmitrii Gridin
db23cbe29e
[AA] introduce api to create symbol pointer from psi
...
^KT-54051
2022-11-29 13:33:32 +00:00
Dmitrii Gridin
cb8cc65fb8
[AA Fe10] update testData
...
org.jetbrains.kotlin.analysis.api.fe10.test.cases.generated.cases.symbols.Fe10IdeNormalAnalysisSourceModuleSymbolByFqNameTestGenerated.testKclass
2022-11-25 15:33:58 +01:00
Anna Kozlova
abb45a0728
[AA] don't treat incomplete function as anonymous
...
^KTIJ-23672
sync anonymous function predicate with RawFirBuilder/DeclarationsConverter
2022-11-25 14:27:03 +00:00
Dmitrii Gridin
e684607e9d
[AA] FirCallableSignature: add test on type alias
...
^KT-54826
2022-11-24 18:32:45 +00:00
Dmitrii Gridin
dfc59d5d07
[AA FIR] support symbol pointer restore for value parameter from delegated setter
...
^KT-54051
2022-11-24 18:32:44 +00:00
Dmitrii Gridin
55ca2d608b
[AA] AbstractSymbolTest: add check for parameters
...
^KT-54826
2022-11-24 18:32:44 +00:00
Dmitrii Gridin
1222d18b3d
[AA Fe10] fix StackOverflowError from KtFe10PsiClassInitializerSymbol
...
^KT-54826
2022-11-24 18:32:44 +00:00
Dmitrii Gridin
ec613e57ef
[FIR] add Enhancement wrapping for type parameters
...
^KT-55095 Fixed
2022-11-24 18:32:43 +00:00
Dmitrii Gridin
2155a23e4e
[AA FIR] implement FirCallableSignature to simplify search by signature
...
^KT-54826 Fixed
2022-11-24 18:32:43 +00:00
Dmitrii Gridin
48e2e5cc87
[AA] AbstractSymbolTest: add type parameters check
...
^KT-54826
2022-11-24 18:32:43 +00:00
Dmitrii Gridin
7e433a936d
[AA FIR] introduce FirCallableSignature to encapsulate IdSignature
...
^KT-54826
2022-11-24 18:32:42 +00:00
Dmitrii Gridin
b04c9f02b0
[AA] add test on data class members
...
^KT-54051
2022-11-24 18:32:42 +00:00
Anna Kozlova
cdf6ffa167
[AA] do not try to build KtSymbol for FirErrorFunction
...
^KTIJ-23669
FirErrorFunctions are created for unknown labels
when the code in return statements is not complete yet.
Such labels cannot be resolved, and no symbols should be created for them
2022-11-24 13:09:29 +00:00
Ivan Kochurkin
8883de3f00
[FIR] Don't resolve Enum.declaringClass and Enum.getDeclaringClass
...
^KT-53946 Fixed
2022-11-23 18:29:29 +00:00
Anna Kozlova
43bd05f470
[LL FIR] make dependency from library on builtins invisible from outside
...
^KTIJ-23421
hide explicit builtins to reveal target platform dependencies.
Otherwise, `expect` class from builtin of e.g. JDK
would be found instead of actual dependency from Kotlin Runtime
2022-11-23 10:46:49 +00:00
Jinseong Jeon
c79d65536b
Gracefully handle erroneous super type during local type approximation
...
^KTIJ-23528 Fixed
2022-11-22 20:16:40 +01:00
Ilya Kirillov
f775778efa
[Analysis API FIR] fix containing declaration for value parameter
...
now it should also work for non-source declarations
2022-11-22 18:25:30 +01:00
Dmitriy Novozhilov
01c6c7dc59
[FIR] Properly approximate return type of callable declarations
...
- approximate intersection types in all non-local declarations
- approximate local types in non-private non-local declarations
2022-11-22 15:46:20 +00:00
Anna Kozlova
1906a41d9a
fix testdata after merge
2022-11-22 13:31:41 +01:00
Marco Pennekamp
93f560eb4d
[Analysis API] Add call resolution tests for KTIJ-23373
...
- The Java functions aren't recognized as candidates during the test
(`FULL_JDK` isn't helping), so I've replicated the tests with local
extension functions and confirmed that they uncover the same
exception.
2022-11-22 13:13:35 +01:00
Anna Kozlova
702d0b4d54
[compiler] missed type parameters in local properties (KTIJ-23583)
...
even though local variables won't contain type parameters,
let's build fir for them
2022-11-22 10:47:45 +00:00
Jaebaek Seo
c55efe62a3
[AA] handles FIR isUsedAsExpression for return within function block
...
For the following example:
```
fun foo(bar: Int) {
<expr>if (bar == 4) return "Four"
else return "Int"</expr>
}
```
AA FE1.0 `isUsedAsExpression` returns `false`.
Since the current AA FIR `isUsedAsExpression` returns `true` for the
above example, this commit fixes it.
2022-11-21 18:26:41 +01:00
Nikolay Lunyak
fb09f139dd
[FIR] Unmute receiver annotations tests
...
These tests were muted in 89f8821d . Seems they began to work after the
introduction of `FirReceiverParameter` in KT-54417.
2022-11-21 08:51:43 +00:00
Anna Kozlova
e5ce32feeb
[ANALYSIS API] introduce dedicated KtCall for incomplete code
...
KTIJ-23505 and duplicates
2022-11-18 20:59:31 +01:00
Marco Pennekamp
c5e5140c08
[Analysis API] Fix exceptions around type parameters being treated as callables
...
- `toResolvedCallableSymbol`: cast defensively because
the resolved symbol might not be a callable symbol.
- `toKtCallInfo`: Check that the resolved symbol is actually callable.
^KTIJ-23003 fixed
2022-11-17 18:58:38 +00:00
Jinseong Jeon
6caf384bad
AA FIR: handle Java annotation vararg values
2022-11-17 12:58:14 +01:00
Dmitrii Gridin
a0f4c674f5
[AA] KtCallableReceiverRenderer: add annotations renderer
...
^KT-54417
2022-11-17 09:50:19 +00:00
Dmitrii Gridin
b672949820
[AA] replace KtCallableReceiverTypeRenderer with KtCallableReceiverRenderer
...
^KT-54417
2022-11-17 09:50:18 +00:00
Dmitrii Gridin
032026278c
fix compilation and testData after rebase
...
^KT-54417
2022-11-17 09:50:17 +00:00
Dmitrii Gridin
a5d56e1877
[FIR] DebugSymbolRenderer: fix typo
...
^KT-54417
2022-11-17 09:50:14 +00:00
Dmitrii Gridin
d0cc88ffe0
[AA] KtCallableSymbol: introduce receiverType extension
...
^KT-54417
2022-11-17 09:50:12 +00:00
Dmitrii Gridin
1ebfbc0ee9
[AA] KtCallableSymbol: rename receiver to receiverParameter
...
^KT-54417
2022-11-17 09:50:12 +00:00
Dmitrii Gridin
2741052db3
[AA] integrate KtReceiverParameterSymbol to KtCallableSymbol
...
^KT-54417
2022-11-17 09:50:10 +00:00
Dmitrii Gridin
37d688ae83
[AA] introduce FirReceiverParameter
...
^KT-54417
2022-11-17 09:50:09 +00:00
Dmitrii Gridin
be7d282974
[FIR] introduce FirReceiverParameter
...
^KT-54417
2022-11-17 09:50:09 +00:00
Jinseong Jeon
fcba1f215a
AA: handle erroneous type in nested type argument
2022-11-16 14:13:43 +01:00
Dmitrii Gridin
36f9a8b7b8
[AA] fix symbol pointer for setter
...
^KT-54311
2022-11-15 21:37:27 +00:00
Jaebaek Seo
f8a101cf3a
Add KtType.isArrayOrPrimitiveArray/isNestedArray() to AA
2022-11-15 16:50:17 +01:00
Nikolay Lunyak
89f8821d0a
[FIR] KT-53371, KT-53519: Fix annotations arguments mapping
...
See: compiler/testData/asJava/lightClasses/
AnnotatedParameterInInnerClassConstructor.kt
The muted tests don't work with the (KT-53371, KT-53519)-related
changes. During this test happens an attempt to access unresolved
annotations via CustomAnnotationTypeAttribute.
Discussion: KTIJ-23547
2022-11-14 22:40:41 +02:00
Anna Kozlova
9f470e2a4d
[LL API] return FirErrorProperty for top level destructuring declaration
...
KTIJ-23552
2022-11-11 17:39:54 +01:00
Anna Kozlova
3590c4ea35
[Analysis API FIR] support generated temp properties
...
KTIJ-23492 (array index expression), KTIJ-23138 (inc/dec desugaring)
2022-11-11 17:39:53 +01:00
Dmitrii Gridin
592591acad
[AA] KtPsiBasedSymbolPointer: disable type inference
...
^KT-54417
2022-11-11 14:34:52 +00:00