Nikita Bobko
14ed660f4f
[cleanup] Remove unused AbstractFirMultiModuleResolveTest
2021-05-25 23:53:08 +03:00
Ilya Kirillov
b18d4af37b
fix fe1.0 plugin testdata
2021-05-25 20:39:37 +03:00
Mark Punzalan
2c18406632
IDE: Add test for message of VAL_OR_VAR_ON_*_PARAMETER diagnostic.
...
Also fall back to getting parameter descriptor if property descriptor
not found for `val/var` parameters.
^KTIJ-13030 Fixed
2021-05-25 20:39:36 +03:00
Mark Punzalan
23605e08be
FIR IDE: Enable RemoveValVarFromParameterFix for
...
VAL_OR_VAR_ON_*_PARAMETER.
2021-05-25 20:39:35 +03:00
Mark Punzalan
af99ad0736
FIR checker: Report VAL_OR_VAR_ON_*_PARAMETER.
2021-05-25 20:39:34 +03:00
Tianyu Geng
71c5c9f6c5
FIR IDE: add quickfix to change function return type
2021-05-25 20:39:32 +03:00
Jinseong Jeon
3c3b5aa4ac
FIR/UAST: commonize abstract UElement and UExpression
2021-05-25 13:09:57 +02: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
d4586cefb4
FIR: Properly deserialize upper bounds of classes type parameters
...
^KT-46661 Fixed
2021-05-25 13:28:25 +03:00
Ivan Kochurkin
cf531dbbe6
[FIR] Implement TYPE_VARIANCE_CONFLICT, TYPE_VARIANCE_CONFLICT_IN_EXPANDED_TYPE diagnostics, fix tests
2021-05-25 00:07:33 +03:00
Dmitriy Novozhilov
478a512b24
[FIR] Expand type of const val in FirConstPropertyChecker
2021-05-21 17:38:26 +03:00
Dmitriy Novozhilov
a1ae108ce5
[FIR] Properly generate IDE diagnostics from multiple diagnostics lists
2021-05-21 14:18:58 +03:00
Dmitriy Novozhilov
a9838131ad
[FIR] Move jvm specific checkers to checkers.jvm module
2021-05-21 14:18:56 +03:00
Dmitriy Novozhilov
f3c58a1df7
[FIR] Add separate diagnostic list for JVM specific diagnostics
2021-05-21 14:18:55 +03:00
Dmitriy Novozhilov
7f18d147c1
[FIR] Introduce new module for jvm specific checkers
2021-05-21 14:18:54 +03:00
Dmitriy Novozhilov
9825babc23
[FIR] Move model classes of diagnostics generation DSL to separate package
2021-05-21 14:18:52 +03:00
Ilya Kirillov
792ac6ab63
FIR IDE: update resolve call testdata after adding targetFunction to KtFunctionalTypeVariableCall
2021-05-21 00:04:48 +02:00
Ilya Kirillov
c72b2caf3e
Fix wrapWithSafeLetCall quickfix testdata
2021-05-21 00:01:20 +02:00
Tianyu Geng
e1b542314a
FIR IDE: quickfix for WrapWithSafeLetCall
...
There is some behavior change regarding the new WrapWithSafeLetCall quickfix
1. it now works correctly on binary expressions by wrapping it with `()`
2. it now looks for a nullable position upward and do the modification there,
if possible. For example, consider the following code
```
fun bar(s: String): String = s
fun test(s: String?) {
bar(bar(bar(<caret>s)))
}
```
After applying this fix, FE1.0 yields
```
bar(bar(s?.let { bar(it) }))
```
while the new implementation yields
```
s?.let { bar(bar(bar(it))) }
```
This behavior aligns with FE1.0 if `bar` accepts nullable values.
2021-05-20 20:33:00 +02:00
Tianyu Geng
0eaab6d8a2
FIR: extract common logic from KotlinNameSuggester and share
2021-05-20 20:33:00 +02:00
Tianyu Geng
00ffa69cb3
FIR: add receiver expression to UNSAFE_CALL diagnostic and its variances
2021-05-20 20:32:59 +02:00
Tianyu Geng
9106ae4f5f
FIR: store in ARGUMENT_TYPE_MISMATCH whether it's due to nullability
2021-05-20 20:32:59 +02:00
Tianyu Geng
cceb7197a5
FIR: allow nullable types in diagnostic parameters
2021-05-20 20:32:59 +02:00
Tianyu Geng
594fbbb4ef
FIR: Allow 4 parameters for diagnostics
2021-05-20 20:32:58 +02:00
Mark Punzalan
d2b8204fdc
FIR/FIR IDE: Use entire FirVariableAssignment when reporting UNSAFE_CALL
...
(e.g., `nullable.a = b`), and use positioning strategies to locate the
dot in the LHS expression.
Without it, only the callee reference is reported on, which makes the
highlighting of the error and application of quickfixes incorrect in the
IDE.
Also fixed issue with annotated and/or labeled expressions on LHS of
assignment (e.g., `(@Ann label@ i) = 34`).
2021-05-20 20:32:58 +02:00
Mark Punzalan
1d9247ae0f
FIR IDE: Offer AddExclExclCallFix for nullable types with an
...
`iterator()` function that does NOT have `operator` modifier.
This is different from FE1.0. Adding `!!` will then surface the error
that `operator` modifier needs to be added (with corresponding fix).
2021-05-20 20:32:58 +02:00
Mark Punzalan
9e01a608b2
FIR IDE: Add ability in test infra to have a "before" file different in
...
FIR vs FE1.0, and made file naming convention more consistent.
2021-05-20 20:32:57 +02:00
Mark Punzalan
efa3bf9c69
FIR IDE: Consolidate tests for AddExclExclFix in one directory.
...
I found these tests only _after_ the previous changes, so I needed to
merge and/or remove redundant tests.
2021-05-20 20:32:57 +02:00
Mark Punzalan
db82797f58
FIR IDE: Enable AddExclExclCallFix for UNSAFE_CALL,
...
UNSAFE_OPERATOR_CALL, UNSAFE_INFIX_CALL, ITERATOR_ON_NULLABLE,
ARGUMENT_TYPE_MISMATCH, RETURN_TYPE_MISMATCH.
TODO: Don't offer fix when target is known to be null (from data flow
analysis).
2021-05-20 20:32:56 +02:00
Mark Punzalan
71a8d9c0bb
FIR quickfix: Enable addExclExclCall tests for FIR, move typeMismatch
...
tests for addExclExclCall to addExclExclCall directory.
2021-05-20 20:32:56 +02:00
Mark Punzalan
85cbea70bf
IDE: Don't do any resolution in AddExclExclExclFix (i.e., in
...
isAvailable and in invoke) by moving computation of element to modify
to before instantiation (i.e., to the factories or equivalent).
This lets us to move it to idea-frontend-independent and re-use it FIR.
2021-05-20 20:32:56 +02:00
Mark Punzalan
c472c9facd
IDE: Don't add this!! in AddExclExclCallFix for nullable member
...
access in extension function.
^KTIJ-10052 Fixed
2021-05-20 20:32:55 +02:00
Denis.Zharkov
8f41badf74
Minor. Regenerate tests
2021-05-20 17:24:46 +03:00
Denis.Zharkov
00821bbc63
FIR: Update test data (repeated diagnostics)
...
They are a bit redundant, but it needs additional work to be done
to avoid them
2021-05-20 17:24:33 +03:00
Denis.Zharkov
b94335dd1c
FIR: Update diagnostics test data
...
Green code correctly became red
2021-05-20 17:24:30 +03:00
Denis.Zharkov
c46d049394
FIR: Implement more precise reporting diagnostics from new inference
2021-05-20 17:24:26 +03:00
Denis.Zharkov
42d387925d
FIR: Refine makesSenseToBeDefinitelyNotNull
...
Make it work just the same as the analogue from FE 1.0
This change is necessary since many tests start failing after
we began reporting diagnostics after call completion
2021-05-20 17:24:12 +03:00
Jinseong Jeon
f0f1e2d945
FIR checker: report CAPTURED_VAL_INITIALIZATION
2021-05-20 13:59:13 +03:00
Andrey Zinovyev
419aa65381
[FIR] Fix more tests because of modifier usage in resolution
2021-05-20 13:46:34 +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
Mikhail Glukhikh
f3c9bd16ee
Fix FIR IDE overrideImplement/androidxNotNull test
2021-05-20 12:22:23 +03:00
Mikhail Glukhikh
eac6da62d6
Fix FIR IDE highlighting tests
2021-05-20 12:22:22 +03:00
Mikhail Glukhikh
6dd41b617a
FIR: position INAPPLICABLE_FILE_TARGET on file use-site (when possible)
2021-05-20 12:22:22 +03:00
Mikhail Glukhikh
6572010eed
Introduce use-site annotation target checks for FIR
2021-05-20 12:22:22 +03:00
Mikhail Glukhikh
2a33a6927c
FIR: report WRONG_ANNOTATION_TARGET(_WITH_USE_SITE_TARGET) on declarations
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
7675ea3c23
Move AnnotationTargetLists & KotlinTarget to common compiler code
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
d11092ae3c
FIR: support WRONG_ANNOTATION_TARGET on expressions
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
92ab600081
FIR: add check of SOURCE retention for EXPRESSION-targeted annotation
2021-05-20 12:22:21 +03:00
Mikhail Glukhikh
4b00a43b22
FIR: add ANNOTATION_ON_SUPERCLASS diagnostic
2021-05-20 12:22:20 +03:00
Mikhail Glukhikh
0d6bc7e7b2
FIR: report ANNOTATION_CLASS_CONSTRUCTOR_CALL diagnostic
2021-05-20 12:22:20 +03:00