Commit Graph

107 Commits

Author SHA1 Message Date
Tianyu Geng 2c2851af6e Analysis API: add test covering get missing when branches
Also fix FIR implementation to generate boolean branches in the same
order as FE1.0.
2021-11-04 23:04:35 +01:00
Ilya Kirillov bec9cec31c LL API: correctly resolve FirSyntheticPropertyAccessor 2021-11-04 12:05:04 +01:00
Denis.Zharkov 2e37ec6f0c FIR: Fix false-positive ILLEGAL_RESTRICTED_SUSPENDING_FUNCTION_CALL on invokeExtension calls 2021-11-02 19:08:27 +03:00
Denis.Zharkov 37b5237e97 FIR: Fix type alias case for callable reference resolution type 2021-11-02 19:08:26 +03:00
Victor Petukhov c8dea3db35 Add test for using underscored type in different positions 2021-11-01 13:03:40 +03:00
Victor Petukhov 5508d40371 Put using underscored type arguments under a feature 2021-11-01 12:25:45 +03:00
Victor Petukhov 248c9550cd Support type annotations resolution on an underscored type argument 2021-11-01 12:25:10 +03:00
Victor Petukhov b69fb6779f Basic support of partially specified type arguments though a new underscore operator for type arguments
^KT-13394
2021-11-01 12:25:07 +03:00
zhelenskiy ea10b4a781 Synchronizing by values and primitives is forbidden
Signed-off-by: zhelenskiy <zhelenskiy2000@yandex.ru>
2021-10-29 18:50:30 +02:00
Dmitriy Novozhilov 877b53201b [FIR] Prohibit access to members of companion of enum from enum entry initializer
^KT-49110
2021-10-29 18:45:23 +03:00
Ivan Kochurkin 744191099c [FIR] Fix false positive "return required" for if/else with inlined return in branch
^KT-49289 Fixed
2021-10-28 20:02:25 +03:00
Dmitriy Novozhilov 0cce0fbbfb [FIR] Remove unused methods from FirProvider
Those methods were created for first prototype of FIR plugin API, and
  now they are completely redundant
2021-10-28 15:01:22 +03:00
Dmitriy Novozhilov 4490f64666 [FIR] Get rid of FirAnnotatedDeclaration
Now all fir declarations have annotations

^KT-49260 Fixed
2021-10-28 15:01:18 +03:00
Nikolay Lunyak 0eb2d117ef [FIR] KT-45972, KT-49072: Add visibility checks to the type resolution 2021-10-28 14:31:27 +03:00
Ilya Chernikov da2d3f29da Add multiple renderer sources support to new diagnostics infrastructure 2021-10-27 22:17:41 +02:00
Ilya Chernikov d3f3aa4b29 Move specific diagnostics infrastructure to frontend.common-psi 2021-10-27 22:17:40 +02:00
Ilya Chernikov e9f59e8d1d Move common diagnostics infrastructure to frontend.common 2021-10-27 22:17:39 +02:00
Ilya Chernikov f1d0ead652 Fix fir analysis api after refactorings 2021-10-27 22:17:39 +02:00
Ilya Chernikov 31c58767cf Rearrange fir diagnostic for further reuse 2021-10-27 22:17:39 +02:00
Ilya Chernikov a65beb2dc5 Move Fir*SourceElement to frontend.common, rename to Kt* (complete) 2021-10-27 21:44:11 +02:00
Mikhail Glukhikh 8bd0b237b7 Convert EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR into deprecation error
#KT-28078 Fixed
2021-10-27 19:43:01 +03:00
Tianyu Geng a969e5af50 FIR: fix API mode checker for local functions 2021-10-27 19:42:52 +03:00
Tianyu Geng 31b7248769 FIR: suppress excessive warning on java Class
The root cause is https://youtrack.jetbrains.com/issue/KT-49358 though.
We should undo this change after that issue is fixed.
2021-10-27 19:42:45 +03:00
Victor Petukhov 2261928f4f Process simple CapturedType in ClassicTypeSystemContext.typeConstructorProjection as well
^KT-49101 Fixed
2021-10-26 19:37:58 +03:00
Victor Petukhov 02d06b6390 Transform VisibilityError diagnostic for callable references to further report it on the corresponding argument of a base call
^KT-46437 Fixed
2021-10-26 19:37:57 +03:00
Denis.Zharkov 5690a9f21b FIR: Fix overridability of Kotlin vararg from Java 2021-10-26 18:45:59 +03:00
Denis.Zharkov 4b1ce6c1a7 FIR: Fix safe call receiver nullability after null check 2021-10-26 18:45:59 +03:00
Denis.Zharkov 0bdea4f20a FIR: Do not create incorrect synthetic property 2021-10-26 18:45:59 +03:00
Denis.Zharkov 52c2908bb7 FIR: Fix another inconsistency with FE1.0 in synthetic properties resolution 2021-10-26 18:45:59 +03:00
Denis.Zharkov 16e8e0e58b FIR: Add test on raw type scope
^KT-49351 Related
2021-10-26 18:45:58 +03:00
Denis.Zharkov 507422d3d8 FIR: Fix bare type case with flexible supertypes 2021-10-26 18:45:58 +03:00
Denis.Zharkov 94129dce2e FIR: Add a test with current behavior on upper bounds with raw types
^KT-49345 Related
2021-10-26 18:45:58 +03:00
Mikhail Glukhikh 1fe7a1ebb3 Add FIR test for KT-35565 2021-10-26 13:38:35 +03:00
Roman Golyshev 3148913e60 Fix test data
It is a follow-up commit for 9b3add0130,
where `CorrespondingProperty` property was added
2021-10-25 21:15:37 +03:00
Ivan Kylchik 225b064470 Implement new 'mix' test mode
This mode must be used when one configuration will run several tests
for different JUnit versions.
2021-10-25 00:14:20 +03:00
Tianyu Geng 8bec5cec61 FIR LL: fix KtDeclarationAndFirDeclarationEqualityChecker
1. Nullable function type is not rendered correctly.
2. Bounds of type parameters are not considered during comparison, this
   would incorrectly treat different declarations as the same, for
   example
   ```
   fun <C: List<String>> C.foo() {}
   fun <C: Set<String>> C.foo() {}
   ```
2021-10-23 15:33:32 +02:00
Tianyu Geng 5a1680ca3b FIR LL: fix resolving proerties in library
Property can be overloaded with different extension receiver type.
2021-10-23 15:33:31 +02:00
Mikhail Glukhikh 79b98f9173 FIR: introduce synthetic property symbol hierarchy 2021-10-23 01:19:07 +03:00
Dmitriy Novozhilov a2b8493f47 [FE 1.0] Prohibit using non exhaustive if and when in rhs of elvis expression
^KT-44705
^KT-49349 Fixed
2021-10-21 19:39:51 +03:00
Dmitriy Novozhilov 06a26a5a74 [FE 1.0/FIR] Fix message of SEALED_SUPERTYPE_IN_LOCAL_CLASS diagnostic
^KT-46285 Fixed
2021-10-21 19:39:49 +03:00
Dmitriy Novozhilov 1513e739c6 [FE 1.0] Prohibit confusing syntax inside when branches
^KT-48385 Fixed
2021-10-21 19:39:36 +03:00
Denis.Zharkov 4ad5f01324 FIR: Support overrides of generic-typed members with raw-typed ones
^KT-49070 Fixed
2021-10-20 22:05:25 +03:00
Denis.Zharkov a0a57581ec FIR: Do not add alias for variables with explicit type 2021-10-20 22:05:24 +03:00
Denis.Zharkov fba44759c0 FIR: Refine visibility check for class members 2021-10-20 22:05:23 +03:00
Yan Zhulanow b7044803d2 [FIR IDE] Move out-of-block modification trigger to FrontendApiTestConfiguratorService 2021-10-20 19:41:29 +03:00
Yan Zhulanow 2894f87541 [FIR IDE] Move test configurators as constructor parameters 2021-10-20 19:41:29 +03:00
Yan Zhulanow e2c9be0932 [FIR IDE] Extract common components of the Analysis API to separate modules 2021-10-20 19:41:23 +03:00
Mikhail Glukhikh 7fc19520a5 FIR: substitute super type during tower building properly #KT-49301 Fixed 2021-10-20 12:17:04 +03:00
Ilmir Usmanov 3f8fa3149b Support extensions in functional supertypes
Under a flag for now.
2021-10-18 18:53:26 +03:00
Dmitriy Novozhilov bee44c6e0f [FIR] Split :compiler:fir:resolve module into three different modules
Those modules are:
- :compiler:fir:providers, which contains Fir and Symbol providers,
    scopes, and different utilities used by them
- :compiler:fir:semantics, which contains different abstractions and
    entities which are used in resolution and in checkers
- :compiler:fir:resolve, which contains all stuff related to resolution
    and inference

There are two pros of this change:
1. It may increase gradle build, because it allows to compile :fir:resolve
  and :fir:checkers modules in parallel
2. Logic of working FIR (scopes, providers, DFA logic system, etc) is
  now separated from logic of resolution phases, so for example checkers,
  which are depend on scopes physically will not be able to run resolve
  in any way
2021-10-18 11:10:47 +03:00