Kirill Rakhman
03fc0fd381
[FIR] Remove FirLambdaArgumentExpression
...
It's not really necessary if the information about if the lambda was a
trailing lambda can be directly saved in FirAnonymousFunctionExpression.
Removing the FIR node uncovered a couple of bugs
(UNINITIALIZED_ENUM_ENTRY, ERROR_IN_CONTRACT_DESCRIPTION) that were
caused by assuming that a lambda is always a trailing lambda.
#KT-66124
2024-03-13 17:05:48 +00:00
Nikolay Lunyak
88ff93df7f
[FIR] Check is for impossibility
...
^KT-58203 Fixed
^KT-62646
2024-03-08 15:37:44 +00:00
Vladimir Sukharev
0fb853a995
[FIR] Fix Disappeared CONTRACT_NOT_ALLOWED
...
https://youtrack.jetbrains.com/issue/KT-60004/K2-Disappeared-CONTRACTNOTALLOWED
Merge-request: KT-MR-12613
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-11-02 20:47:05 +00:00
Alexander Udalov
7fc3e60854
K2: add JVM checker for NO_REFLECTION_IN_CLASS_PATH warning
...
It's based on the existing K1 checker `JvmReflectionAPICallChecker`.
#KT-60587 Fixed
2023-08-03 13:42:03 +00:00
Nikolay Lunyak
884cd6c754
[FIR] Move FirReturnsImpliesAnalyzer to the extended checkers
2023-07-10 09:28:54 +00:00
Nikolay Lunyak
7541732752
[FIR] Fix TEST SPEC tests
...
Ensure the test data contents for both the frontends
are identical. This is needed for proper analysis of
K2-differences.
2023-06-19 07:40:15 +00:00
Dmitrii Gridin
72def186a3
[LL FIR] rework transformers, so transformers resolve only a specific set of declarations
...
The change is needed for the parallel resolution (^KT-55750), so we can resolve the declaration
under a lock that is specific to this declaration.
Previously, if LL FIR was resolving some FirClass, LL FIR resolved all its children too, and it had no control over what parts of the FIR tree were modified.
The same applied to the designation path, sometimes the classes on the designation path
might be unexpectedly (and without lock) modified.
This commit introduces LLFirResolveTarget, which specifies which exact declarations should be resolved during the lazy resolution of the declaration.
All elements outside the declarations specified for resolve in LLFirResolveTarget, should not be modified.
The logic of lazy transformers is the following:
- Go to target declaration collecting all scopes from the file and containing classes
- Resolve only declarations that are specified by the LLFirResolveTarget, performing the resolve under a separate lock for each declaration
^KT-56543
^KT-57619 Fixed
2023-04-19 20:12:38 +00:00
Dmitriy Novozhilov
f8dc8057f0
[FIR] Prohibit referencing type parameters in contracts ...
...
...if they are not reified or not belong to owner declaration of the contract
KT-57911
2023-04-18 13:31:28 +00:00
Dmitriy Novozhilov
5a92eb2c67
[FIR] Properly track problems in contract description during effect extraction
2023-04-18 13:31:28 +00:00
Dmitrii Gridin
9a4a3d1f49
[LL FIR] introduce test with reversed resolve order
...
^KT-56543
Merge-request: KT-MR-9299
Merged-by: Dmitrii Gridin <dmitry.gridin@jetbrains.com >
2023-03-22 17:34:07 +00:00
Nikolay Lunyak
c7a71fec17
[FIR] KT-56877: Allow referencing implicit receivers in class contracts
2023-03-09 09:43:02 +00:00
Kirill Rakhman
f946ddeb40
[FIR] Implement checks for contract not allowed
...
^KT-55423 Fixed
2023-03-09 08:32:02 +00:00
Yan Zhulanow
d652dc620c
[FE] Preserve legacy contract description calls in bodies
...
^KT-55231 Fixed
^KTIJ-21012 Fixed
2022-12-26 11:46:58 +00:00
Victor Petukhov
27fa632630
[FE 1.0] Update test data with new error type representation
2022-03-23 21:13:33 +00:00
Ivan Kochurkin
2b5524b18f
[FIR] Add CAST_NEVER_SUCCEEDS
2021-11-12 15:20:44 +03:00
Mikhail Glukhikh
b0ec3cb831
Switch off FIR version off REDUNDANT_LABEL_WARNING (performance-related)
...
This reverts commit 363b2550 (partially)
2021-10-27 12:26:59 +03:00
Tianyu Geng
363b25504d
FIR checker: report REDUNDANT_LABEL_WARNING
...
Since many labels are not present in the FIR tree, this checker is
implemented as a syntax checker. Comparing with FE1.0, this change
reports some REDUNDANT_LABEL_WARNING that FE1.0 has missed, especially
LHS of assignments.
2021-10-25 13:51:01 +03:00
Mikhail Glukhikh
fc6403679a
Rename !USE_EXPERIMENTAL test directive to !OPT_IN
2021-09-10 16:29:16 +03:00
Tianyu Geng
263b876e6e
FIR: extends scope of SENSELESS_COMPARISON
...
FE1.0 only reports SENSELESS_COMPARISON if one of the operand is `null`.
This change makes FIR reports also in case one of the operand has type
`Nothing?`.
In addition, fix handling of type alias in ConeTypeContext#isNullableType
2021-08-06 22:57:17 +03:00
Tianyu Geng
c7272f6986
FIR checker: SENSELESS_(COMPARISON|NULL_IN_WHEN)
...
Currently DFA does not set "definitely equal to null" for access to variables that got assigned `null`. For example, FIR should mark the following line as SENSELESS_COMPARISON due to `s = null` above.
https://github.com/JetBrains/kotlin/blob/d1531f9cdd5852352c0133198706125dc63b6007/compiler/testData/diagnostics/tests/smartCasts/alwaysNull.fir.kt#L6
The problem is at https://github.com/JetBrains/kotlin/blob/7e9f27436a77de1c76e3705da7aa1fbe8938336b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt#L1104
For null assignment, ideally the type should be `Nothing?`. This is
addressed in a followup commit instead.
2021-08-06 22:57:16 +03:00
Dmitriy Novozhilov
7b5a5f5682
[FE 1.0] Report USELESS_IS_CHECK if is expression is always false
...
^KT-47684 Fixed
2021-07-13 10:35:01 +03:00
Denis.Zharkov
ddbdfafa79
Remove OI/NI attributes from test data
2021-05-25 13:28:27 +03:00
Denis.Zharkov
2ecba6ac39
Remove WITH_NEW_INFERENCE directive from all tests
...
This directive anyway does not make test run twice with OI, and with NI
It only once run the test with specific settings (// LANGUAGE)
and ignores irrelevant (OI or NI tags)
2021-05-25 13:28:26 +03:00
Jinseong Jeon
e2dc21da90
FIR checker: warn useless as and is
2021-05-05 18:20:51 +03:00
Dmitriy Novozhilov
32c3f85679
[FIR] Add inline checker for bodies of inline functions
...
This checker doesn't support `@PublishedAPI` yet, so some BB tests for it
were muted. #KT-46270
2021-04-27 18:39:09 +03:00
Ivan Kochurkin
4353365968
[FIR] Implement NULL_FOR_NONNULL_TYPE diagnostics, fix tests
2021-04-19 12:46:08 +03:00
Ivan Kochurkin
ad9b962536
[FIR] Fix tests (ARGUMENT_TYPE_MISMATCH instead of INCOMPATIBLE_CANDIDATE)
2021-04-12 23:49:55 +03:00
Andrey Zinovyev
67505a0071
[FIR] Add FINAL_UPPER_BOUND checker
2021-04-05 14:51:44 +03:00
Jinseong Jeon
20f9787c70
FIR checker: report errors in contract description
2021-02-11 17:02:18 +03:00
Oleg Ivanov
21b8679799
[FIR] Add ReturnsImplies effect analyzer
2020-08-12 11:06:07 +03:00
Mikhail Zarechenskiy
100a6f70ca
Relax rules about inferring to Nothing for special calls
...
#KT-37388 Fixed
#KT-38427 Fixed
#KT-39953 Fixed
#KT-38899 Fixed
2020-07-16 09:56:46 +03:00
Ivan Kylchik
307871a050
[FIR] Unmute fir spec tests
...
#KT-38397 Fixed
#KT-38334 Fixed
2020-07-09 23:49:39 +03:00
anastasiia.spaseeva
9d862aaa1d
[Spec tests] Remove spec info from fir tests
2020-05-26 17:27:06 +03:00
Denis Zharkov
3bb6aa6f28
Mark as FIR_IDENTICAL passing spec tests
2020-04-21 10:16:42 +03:00
Denis Zharkov
b375e021e5
FIR: Ignore failing spec test
...
^KT-38397
2020-04-21 10:16:40 +03:00
Denis Zharkov
86e1aadd31
FIR: Adjust testData for spec tests: contracts
2020-04-21 09:52:52 +03:00
Mikhail Zarechenskiy
759127df9a
Add NI diagnostics for spec tests
2020-02-12 10:37:35 +03:00
Dmitriy Novozhilov
d210df9ea3
Update spec testdata according to previous commits
2019-12-26 17:43:28 +03:00
victor.petukhov
cf692fb257
Implement tests map generator and refactor folder structure to spec tests linking
2019-08-19 18:31:40 +03:00
victor.petukhov
86bb5d689d
Add various tests for DFA testing
2019-04-19 11:55:30 +03:00
Dmitriy Novozhilov
77c98bef4d
Fix recursion in contract declaration analysis. KT-26386 Fixed
...
Issue fixed only in old inference
2019-03-07 14:35:18 +03:00
Dmitriy Novozhilov
d0462859bf
Minor. Fix reporting diagnostic in contract with callable reference
2019-03-07 14:35:13 +03:00
Dmitriy Novozhilov
2f5843f764
Move detecting of illegal call of contract function into call checker
...
(#KT-26153, #KT-26191) fixed
2019-03-01 14:50:46 +03:00
Dmitriy Novozhilov
54e5cce9be
Prohibit declaring multiple callsInPlace contract on same lambda.
...
#KT-26150 fixed
2019-03-01 14:50:46 +03:00
victor.petukhov
06b5a42d0d
Improve test exceptions fixation:
...
- exceptions is analyzed if it's specified explicitly only,
- compute test case number for diagnostic tests in which an exception is thrown.
2019-02-14 12:31:43 +03:00
victor.petukhov
ec8a6cbe9c
Alphabetical sort wrapped intersection types for rendered diagnostics
2019-02-14 12:31:43 +03:00
victor.petukhov
46bd5ba107
Add alphabetical sorting diagnostics with same ranges
2019-02-14 12:31:42 +03:00
victor.petukhov
b9d1825765
Implement tests exceptions fixation mechanism
2018-12-07 18:35:43 +03:00
victor.petukhov
64f531fc93
Reorganize spec tests infrastructure code
...
- Add the tests mute system for the diagnostic tests
- Move the code for the test info parsing to the separate package `parsers`
- Unification of the `linked` and `not linked` spec tests
- Package structure is refactored
- Change the multiline comment format with a test information
- Actualize `PrintSpecTestsStatistic`
- Other different code improvements
2018-11-23 17:23:41 +03:00
victor.petukhov
4ee0a666cb
Temporary mute test with FrontEndException (KT-26386)
2018-10-09 09:59:56 +03:00