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
Jinseong Jeon
4cfefbd921
AA: introduce ProjectStructureProvider builder
2022-06-09 10:35:16 +02:00
Jinseong Jeon
8528f6244d
AA: introduce KtModule builders
2022-06-09 10:35:15 +02:00
Jinseong Jeon
d592dab4b6
AA: rename util file to match module/pcakge name
2022-06-09 10:35:15 +02:00
Jinseong Jeon
355fd48782
AA: remove test prefix at non-test module
2022-06-09 10:35:15 +02:00
Mikhail Zarechenskiy
372879b8e7
[FE 1.0] Don't fail with exception on unresolved type with type argument
...
^KT-50223 Fixed
2022-06-09 08:03:35 +00:00
Roman Golyshev
8fca9f41eb
[FIR IDE] Correctly check declarations' modalities in SamResolver
...
Modality might be null before the declaration itself is resolved to
`STATUS`
^KT-52667 Fixed
2022-06-07 21:14:24 +00:00
Dmitriy Novozhilov
a85d25d7a6
[FIR] Rename UnderAnnotatedWith predicate to AncestorAnnotatedWith
2022-06-07 14:12:26 +00:00
Dmitriy Novozhilov
fb57e1ecd5
[FIR] Add two kinds of Java origin to distinguish source and library declarations
2022-06-07 14:12:23 +00:00
Dmitriy Novozhilov
23c69f8d17
[FIR] Add to new types of annotation predicates
...
- `ParentAnnotatedWith` matches declarations, which parent is annotated
- `HasAnnotatedWith` matches declarations, which have at least one
direct child with annotation
Also, `DeclarationPredicate.Any` is removed, because there is no
intention to support lookup for all declarations in module
^KT-52486 Fixed
2022-06-07 14:12:22 +00:00