Mikhail Glukhikh
2ccad553e6
K1/K2: allow to apply suspend modifier to anonymous function
...
#KT-57991 Fixed
2023-04-17 18:05:44 +00:00
Mikhail Glukhikh
0dbf698653
K1: count anonymous function as function expression in checkers
...
Related to KT-57991
2023-04-17 18:05:44 +00:00
Mikhail Glukhikh
c8b74e5655
K2: reproduce KT-57991
2023-04-17 18:05:43 +00:00
Roman Efremov
9044dfe394
[FE] Revert prohibition of protected members inside actual final classes
...
^KT-28850 Fixed
2023-04-06 13:10:12 +00:00
Roman Efremov
b368b78faa
[FE] Prohibit protected members in final expected or actual classes
...
^KT-28850 Fixed
2023-04-05 15:25:46 +00:00
Nikolay Lunyak
f0720c1d12
[FIR] Fix K2 behavior according to RULES1
...
The compiler should only report diagnostics for
comparisons over builtins and identity-less types,
other incompatibilities should be reported
via inspections.
It's ok that in `equalityChecksOnIntegerTypes`
instead of `EQUALITY_NOT_APPLICABLE_WARNING` we get
`EQUALITY_NOT_APPLICABLE`, because
`ProperEqualityChecksInBuilderInferenceCalls`
is already active by default.
This change also replaces the notion of a representative superclass
with the least upper bound.
This makes complex types like
intersection/flexible transparent to
RULES1-based compatibility checks.
One way to look at it is to think
that this is an automatic way of handling
type parameters: automatic picking of
"interesting" bounds, and checking them against one another.
Note that `TypeIntersector.intersectTypes`
for `Int` and `T` where `T` is a type parameter
may return both `{Int & T}` or `null`
depending on `T`-s bounds. At the same time,
for type parameters `T` and `K` it will
always return `{T & K}`.
`ConeTypeIntersector.intersectTypes`, on the
other hand, will always return `{Int & T}`
irrespectively of the bounds. Meaning, the two
intersectors differ in corner cases.
`lowerBoundIfFlexible` call in `isLiterallyTypeParameter` is backed by
the `equalityOfFlexibleTypeParameters` test.
^KT-35134 #fixed-in-k2
^KT-22499 #fixed-in-k2
^KT-46383 #fixed-in-k2
2023-03-31 15:01:50 +00:00
Ivan Kylchik
f44d82ce6d
Add test to check that name field in Java enum is not constant
2023-03-24 15:55:07 +00:00
Ivan Kylchik
63b340651d
Add possibility to interpret and fold IrStringConcatenation expression
2023-03-24 15:55:06 +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
Ivan Kylchik
8eeb7e2631
Modify test data to reflect changes with IntrinsicConstEvaluation
2023-03-21 20:02:44 +00:00
Nikolay Lunyak
bcfafc601e
Add EnumEntries to minimal-stdlib-for-tests
...
This change allows to revert adding `WITH_STDLIB` directive
to tests which happened at `a9343aeb`.
Co-authored-by: Alexander Udalov <Alexander.Udalov@jetbrains.com >
2023-03-02 10:23:38 +00:00
Ilya Kirillov
1bbcae5ed2
[FIR] fix resolve contract violation from scopes
...
We cannot call lazy resolve to STATUS phase from scopes as scopes may be accessed on a STATUS phase or earlier
^KT-54890
^KTIJ-23587 fixed
2023-01-13 21:32:51 +00:00
Ilya Kirillov
644d1bf0d0
[FIR] ignore tests which fail because of resolve contracts violation
2022-12-12 16:21:07 +00:00
Ilya Kirillov
b6481ed891
[FIR] do not use FirValueParameter for function type parameter
...
As it is a different abstraction, introduced FirFunctionTypeParameter instead
Also, fix syntax checkers for function type parameter
^KT-55035 fixed
2022-11-21 16:17:51 +00:00
Ivan Kylchik
5b16b2c71e
Properly verify args in string concatenation expression for interpreter
...
If string concatenation contains object value, then this argument
will not have explicit toString call. We must find and check toString
method manually.
#KT-54615
2022-10-24 13:14:16 +00:00
Ivan Kylchik
20d0a531df
Add new tests to check evaluation of intrinsic сonsts
2022-05-18 21:20:02 +03:00
Ivan Kylchik
dca22d745a
Drop excessive lowerings that are replaced by ConstEvaluationLowering
2022-05-18 21:20:02 +03:00
Ivan Kylchik
20d8e6607d
Add new diagnostic tests to check new rules for const modifier
2022-05-18 21:19:59 +03:00
Ivan Kylchik
51ccc32a3f
Update test data after introducing IntrinsicConstEvaluation annotation
2022-05-18 21:19:57 +03:00
Victor Petukhov
27fa632630
[FE 1.0] Update test data with new error type representation
2022-03-23 21:13:33 +00:00
Ivan Kylchik
6fc56477bf
Drop all tests that disable features for language version less than 3
2021-12-28 20:08:56 +03:00
Denis.Zharkov
c0b6a593e0
FIR: Fix incorrect type of block generated for inc operator
...
Previously, it was obtained from expected type of a variable being assigned,
but it's better to use the type of resulting expression
Initially this part was brought in 4ab0897d7d ,
but as we see in commit message and tests it was all about unit-coercion
2021-11-26 19:39:38 +03:00
Ivan Kochurkin
2c1c24c042
[FIR] Implement WRONG_MODIFIER_CONTAINING_DECLARATION, DEPRECATED_MODIFIER_CONTAINING_DECLARATION
2021-08-13 18:32:28 +03:00
Ivan Kochurkin
cd6384eb20
[FIR] Fix handling of WRONG_MODIFIER_TARGET
...
Implement DEPRECATED_MODIFIER, DEPRECATED_MODIFIER_FOR_TARGET, REDUNDANT_MODIFIER_FOR_TARGET
2021-08-13 18:32:27 +03:00
Andrey Zinovyev
b2f3485d7c
[FIR] Add ILLEGAL_INLINE_PARAMETER_MODIFIER diagnostic
2021-08-04 17:33:14 +03:00
Andrey Zinovyev
015c2d1875
[FIR] Add NOTHING_TO_INLINE diagnostic
2021-08-04 17:33:08 +03:00
Dmitriy Novozhilov
c3060e861f
[FIR] Add expect actual checker
2021-07-20 10:33:49 +03:00
Ivan Kochurkin
bc3c05a3bd
[FIR] Replace lists with Long in Modifier, refactor Modifier and derived classes
2021-06-17 13:49:08 +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
Denis.Zharkov
b94335dd1c
FIR: Update diagnostics test data
...
Green code correctly became red
2021-05-20 17:24:30 +03:00
Andrey Zinovyev
d38effcbbe
Use camel-case in FirFunctionCallOrigin
...
Also componentCall is operator call
2021-05-20 13:46:35 +03:00
Andrey Zinovyev
07a8ae7e71
[FIR] Mark more calls origin as OPERATOR
2021-05-20 13:46:32 +03:00
Andrey Zinovyev
e021e25d6c
[FIR] Resolve operator calls to operator functions only
2021-05-20 13:46:29 +03:00
Andrey Zinovyev
b1c8669b43
[FIR] Resolve infix calls to infix functions only
...
Implements INFIX_MODIFIER_REQUIRED diagnostics
2021-05-20 13:46:27 +03:00
Andrey Zinovyev
14fe570a00
[FIR] Add more type params checks
...
VARIANCE_ON_TYPE_PARAMETER_NOT_ALLOWED
BOUND_ON_TYPE_ALIAS_PARAMETER_NOT_ALLOWED
2021-04-14 18:11:09 +03:00
zadorotskas
334d0a8b5a
FIR: introduce three diagnostics for const val
2021-04-13 21:36:46 +03:00
Ivan Kochurkin
ad9b962536
[FIR] Fix tests (ARGUMENT_TYPE_MISMATCH instead of INCOMPATIBLE_CANDIDATE)
2021-04-12 23:49:55 +03:00
Julia
5472199bb1
[FIR] Introduce supertypes-for-annotation-class checker
2021-04-05 15:54:57 +03:00
Dmitriy Novozhilov
cd890d5833
[Test] Disable UNUSED_* diagnostics in tests which are not belong to contolFlowAnalysis suite
2021-03-29 16:12:29 +03:00
Tianyu Geng
253c389f4a
FIR checker: fix failed test files after sync
2021-03-29 12:45:27 +03:00
Mikhail Glukhikh
9ce8420491
FIR: introduce not implemented checker
2021-03-24 16:07:25 +03:00
Br0mm
75e4c74256
[FIR] Add FirConstValWithGetterOrDelegateChecker
2021-03-22 15:05:40 +03:00
Mark Punzalan
315047b164
FIR checker: Make FirJvmExternalDeclarationChecker a
...
FirMemberDeclarationChecker.
Set isExternal in status for FirRegularClass. Invoke member declaration
checkers for FirRegularClass.
2021-03-17 10:45:26 +01:00
Mark Punzalan
c3d2ce0c1f
FIR checker/IDE: Add checker and quickfix for WRONG_MODIFIER_TARGET.
...
There are only simple checks for `external` and `const` for now. The
rest of the checks (see ModifiersChecker in FE1.0) will be added later.
2021-03-17 10:45:26 +01:00
Jinseong Jeon
e009b71f88
FIR checker: report uninitialized member/extension properties
2021-03-04 17:56:29 +03:00
Mikhail Glukhikh
6470b713d5
FIR: set isConst on primary constructor properties
2021-03-04 16:13:50 +03:00
Mikhail Glukhikh
d7a6fc80b0
FIR: don't report CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT on variables
2021-03-04 16:13:50 +03:00
Br0mm
dd3bc1a964
FIR: Introduce CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT diagnostic
2021-03-04 16:13:50 +03:00
Tianyu Geng
724ca1d3ee
FIR: introduce diagnostic NESTED_CLASS_NOT_ALLOWED
2021-03-01 16:57:54 +03:00