Ilya Kirillov
78c63c082b
[Analysis API] introduce API to work with signatures substitution
2022-06-22 09:31:39 +02:00
Ilya Kirillov
2db73af75e
[analysis api] make KtCallableSymbol to be sealed class
2022-06-22 09:31:39 +02:00
Ilya Kirillov
2e35e513ee
[analysis api fir] get rid of read only FirDeclaration -> KtSymbol used for completion
2022-06-22 09:31:38 +02:00
Ilya Kirillov
3033a91567
[analysis api] introduce KtTypeScope which will contain callable signatures
2022-06-22 09:31:38 +02:00
Ilya Kirillov
3ee0410c77
[analysis api fir, refactoring] remove unreachable when branch
2022-06-22 09:31:38 +02:00
Ilya Kirillov
aeca112c5b
[analysis api fir, refactoring] move scope utils out of KtFirDelegatingScope.kt
2022-06-22 09:31:37 +02:00
Ilya Kirillov
82a330cf84
[analysis api] move KtScopeNameFilter to separate file
2022-06-22 09:31:37 +02:00
Ilya Kirillov
a10e55cd6a
[analysis api] remove KtClassKind.ENUM_ENTRY as enum entry is not a classifier
2022-06-22 09:31:36 +02:00
Ilya Kirillov
a16a01bf37
[analysis api] fix Analysis API contracts violation
2022-06-22 09:31:36 +02:00
Ilya Kirillov
c2558521cf
[analysis api fir] make KtFirBackingFieldSymbol.hashCode to be consistent with equals
2022-06-22 09:31:35 +02:00
Ilya Kirillov
0da66cc52f
[Low Level API FIR] fix invalid traverse of supertypes list
...
the supertypes list should not be traversed without proper locking,
otherwise some transformer may transform it concurrently
In case of looking for a declaration by class id it just should not be traversed
^KTIJ-21791
2022-06-21 18:16:27 +00:00
Jaebaek Seo
6b3c10fa9c
FIR usage: resolve KtFirSimpleNameReference using getter/setter
...
`fun getResolvedToPsi(analysisSession: KtAnalysisSession): Collection<PsiElement>`
of `KtFirReference` resolves the target of the reference. When the
target of reference to a property is a getter or setter, we have to
check the getter/setter if the target for the property does not
exist. This commit adds the fallback logic i.e., resolving the
getter/setter of the property in
`fun getResolvedToPsi(analysisSession: KtAnalysisSession): Collection<PsiElement>`
of `KtFirSimpleNameReference`.
2022-06-21 17:25:19 +02:00
Dmitriy Novozhilov
eb453dc96b
[FIR] Expand typealiases in OverloadConflictResolver
...
^KT-52825 Fixed
2022-06-21 14:10:38 +00:00
Dmitriy Novozhilov
ed8187109a
[FIR] Fix forgotten level changes during building CFG for !!
2022-06-21 14:10:37 +00:00
Jinseong Jeon
9e8524d21a
AA FIR: refactor KtFirType hierarchy
2022-06-21 11:36:02 +02:00
Jinseong Jeon
87ba8525cf
AA: allow directory as source roots
2022-06-21 11:34:09 +02:00
Jinseong Jeon
4af2fcd633
AA: handle lib directory as a binary root
2022-06-21 11:34:09 +02:00
Jinseong Jeon
8c3df04c8e
AA: null check containing file for PsiElement
2022-06-21 11:34:09 +02:00
Jinseong Jeon
814920b344
AA: restore JavaRoot from binary roots in JDK module
2022-06-21 11:34:09 +02:00
Jinseong Jeon
13c7fde071
AA: avoid reflective service registrations
2022-06-21 11:34:09 +02:00
Jinseong Jeon
38c3fbc0d1
AA: remove a redundant service registration
2022-06-21 11:34:09 +02:00
Ilya Kirillov
ba797fa1b4
[stubs] fix cls stubs for declarations with context receivers
...
^KTIJ-21243 fixed
2022-06-20 19:10:36 +02:00
Ilya Kirillov
a47880a98b
[stubs] add test which checks consistency between cls and decompiled stubs
2022-06-20 19:09:44 +02:00
Jinseong Jeon
b18999be82
FIR/LC: filter out scripts for facade creation
...
^KTIJ-22016 Fixed
2022-06-20 17:38:50 +02:00
Mikhail Glukhikh
065e852199
FIR: support more precise diagnostics about parameter names
...
#KT-52762 Fixed
2022-06-20 11:28:55 +00:00
Mikhail Glukhikh
9fbafc3eb9
Add test for KT-52762
2022-06-20 11:28:55 +00:00
Victor Petukhov
eb19d39cbf
[FE 1.0] Build captured type's supertypes in an alternative way: use own projection type as a first supertype, then supertypes from the corresponding type parameter's upper bounds
...
The original case provoked forking a constraint system which isn't supported in K1 (K2 only). If the captured type is recursive, then type parameter's upper bounds may break subtyping due to substitution the current captured type again, into a recursive type parameter.
Note that we already have special logic for recursive captured types. See `isTypeVariableAgainstStarProjectionForSelfType`.
^KT-52782 Fixed
2022-06-18 14:04:40 +02:00
Ivan Kochurkin
9f69ea1786
[FIR] Add TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM diagnostics, ^KT-52327 Fixed
2022-06-17 23:26:16 +00:00
Ivan Kochurkin
34b5ce21a1
[FIR] Fix WRONG_ANNOTATION_TARGET for annotation for block, ^KT-52175 Fixed
2022-06-17 23:26:15 +00:00
Jinseong Jeon
abdc2cf85e
AA: populate SingleJavaFileRootsIndex properly
2022-06-16 22:14:18 +02:00
Jinseong Jeon
9ba6cf47ea
AA: use partition to group directory/jar library roots
2022-06-16 22:14:18 +02:00
pyos
c2ae74c7cd
FIR CFG: when unifying flows, group statements by assignment
...
Consider a function `run2` that has 2 lambda arguments called in place.
We don't know the order in which they're called, so here:
var x: Any? = something
run2(
{ x = null },
{ x as String },
)
// <--
it's not correct to simply `&&` the statements together, as that would
produce `x is Nothing? && x is String && x is Any?`. Instead, statements
should be grouped by assignment first, and different groups are `||`-ed.
This means in the above example we now get `x is Nothing? || (x is Any?
&& x is String)` == `x is String?`.
2022-06-15 20:05:50 +00:00
pyos
25f66b4e0e
FIR CFG: mark variables touched by not-in-place lambdas in all scopes
2022-06-15 20:05:49 +00:00
pyos
755c54553a
FIR CFG: add more KT-44512 related tests
2022-06-15 20:05:48 +00:00
Mikhail Glukhikh
5ca730e38c
Add more tests for KT-49200
...
- exotic situation 1 field + 2 entries
- named import case
- exotic situation 2 fields + 1 entry
2022-06-15 17:20:00 +00:00
Mikhail Glukhikh
088f472117
Add test for KT-49200 deprecation
2022-06-15 17:19:58 +00:00
Dmitriy Novozhilov
12ce433bc2
[FE] Don't report cycle on annotation parameters if argument is vararg or array
...
^KT-52742 Fixed
^KT-47932
2022-06-15 09:55:27 +00:00
Roman Golyshev
581ae5fcb7
[FIR IDE] Add a special type of KtCall for generic type qualifiers
...
^KTIJ-21672 Fixed
2022-06-14 15:00:13 +00:00
Roman Golyshev
fe06070d23
[FIR IDE] Make AbstractResolveCallTest.kt more strict
2022-06-14 15:00:13 +00:00
Roman Golyshev
4d6b424280
[FIR IDE] Properly handle generic types qualifiers
...
In code like `foo.Bar<Bazz>`, `Bar<Bazz>` is considered to be
`KtCallExpression` from the PSI point
^KT-52779 Fixed
2022-06-14 15:00:12 +00:00
pyos
9968fa252a
FIR: fork flow on function entry, restore receivers on exit
...
^KT-52680 Fixed
2022-06-10 09:42:02 +03:00
Denis.Zharkov
9caa60d389
Revert "KT-35811: Type parameter angle brackets followed by equal sign are parsed incorrectly if whitespace is missing"
...
This reverts commit ba5c85d6
^KT-52684 Related
2022-06-09 15:44:36 +00:00
Denis.Zharkov
67f9025f9e
Add test data for parsing of complicated <..> and <..>= combinations
...
^KT-52684 Related
^KT-8263 Related
2022-06-09 15:44:35 +00:00
Mikhail Glukhikh
a31d383b4d
Analysis API: add implementation of ReadWriteAccessChecker via descriptors
2022-06-09 11:05:36 +00:00
Jinseong Jeon
5c147c1ded
AA: fail-safe binary root lookup
2022-06-09 10:35:17 +02:00
Jinseong Jeon
c1b2469e51
AA: register CoreJavaFileManager
...
in a similar way
KotlinCoreEnvironment.ProjectEnvironment.registerJavaPsiFacade does
2022-06-09 10:35:17 +02:00
Jinseong Jeon
af053fd8f3
AA: fail-safe JvmRoot lookup
2022-06-09 10:35:17 +02:00
Jinseong Jeon
aef3df0336
AA: introduce AA session and builder
2022-06-09 10:35:16 +02:00
Jinseong Jeon
5585d84808
AA: make utils in StandaloneProjectFactory more general
2022-06-09 10:35:16 +02:00
Jinseong Jeon
72bf702309
AA: utilize file lookup utils (to reuse in facade)
2022-06-09 10:35:16 +02:00