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
Dmitry Petrov
c0fbdb1535
JVM_IR KT-46840 don't generate special function references with indy
2021-05-20 21:13:17 +03:00
Dmitriy Novozhilov
3fc7e0ed03
[FIR] Remove COMPARE_WITH_LIGHT_TREE from default directives of fir diagnostic tests
2021-05-20 20:20:40 +03:00
Nikita Bobko
f7aabf03f8
Fix kotlin-native compilation
...
This commit fixes:
```
org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException:
Could not find method intellijDep() for arguments [] on object of type
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler
```
2021-05-20 17:02:00 +02:00
Viacheslav Kormushkin
d10910e553
Added support of custom Xcode configurations to cocoapods plugin
...
#KT-42023
2021-05-20 17:36:08 +03:00
Denis.Zharkov
a801eccf66
FIR: Report ARGUMENT_TYPE_MISMATCH instead of TYPE_MISMATCH for arguments
2021-05-20 17:24:51 +03:00
Denis.Zharkov
db500fab94
FIR: Avoid reporting redundant TYPE_MISMATCH (for assignments)
2021-05-20 17:24:50 +03:00
Denis.Zharkov
36c9418d55
FIR: Convert couple of methods to block-body
2021-05-20 17:24:49 +03:00
Denis.Zharkov
7c05c6420a
FIR: Update test data (incorrect NEW_INFERENCE_ERROR with self types)
...
^KT-46661 Relates
2021-05-20 17:24:48 +03:00
Denis.Zharkov
4433dffbd3
FIR: Mute test that should be disabled since 1.6
2021-05-20 17:24:47 +03:00
Denis.Zharkov
8f41badf74
Minor. Regenerate tests
2021-05-20 17:24:46 +03:00
Denis.Zharkov
c3646b11ac
FIR: Fix inference when unit value should be cast to Any
2021-05-20 17:24:44 +03:00
Denis.Zharkov
d3fc22fc6a
FIR: Mute suspicious test relevant to safe-call and increment
...
See KT-46658
2021-05-20 17:24:43 +03:00
Denis.Zharkov
c4862fb124
FIR: Unwrap type aliases in type arguments
2021-05-20 17:24:42 +03:00
Denis.Zharkov
4f08e1550d
FIR: Update test data (overload resolution by lambda return type)
2021-05-20 17:24:41 +03:00
Denis.Zharkov
be68dd5c11
FIR: Update test data (suspicious UPPER_BOUND_VIOLATED)
2021-05-20 17:24:40 +03:00
Denis.Zharkov
9265377d51
FIR: Update test data (SAM conversions)
...
See KT-46372
2021-05-20 17:24:39 +03:00
Denis.Zharkov
601500fd99
FIR: Update test data (extension function type -> function type)
...
See KT-46371
2021-05-20 17:24:38 +03:00
Denis.Zharkov
e46199d28b
FIR: Update test data (nested type aliases)
...
It's not consistent with FE 1.0, but behavior
for nested type alias is undefined, yet.
2021-05-20 17:24:37 +03:00
Denis.Zharkov
da3233c47d
FIR: Update test data (NEW_INFERENCE_ERROR)
...
Though these diagnostics look correct (the calls or constraint
systems indeed contain errors), more precise diagnostic kinds should be
chosen later.
2021-05-20 17:24:36 +03:00
Denis.Zharkov
010a0c6cdc
FIR: Update test data (delegate inference)
...
Changed data looks correct
2021-05-20 17:24:35 +03:00
Denis.Zharkov
7c5c744e87
FIR: Update test data (suspicious diagnostic on return statement)
...
There should be errors, but different: cannot infer parameter type
^KT-46422 Relates
2021-05-20 17:24:34 +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
dbc0ebd861
FIR: Update test data
...
changed INAPPLICABLE_CANDIDATE -> ARGUMENT_TYPE_MISMATCH
2021-05-20 17:24:32 +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
829f80179c
FIR: Update rendered tree in test data
2021-05-20 17:24:29 +03:00
Denis.Zharkov
faa5e46396
FIR: Fix inference case with flexible captured types
...
Previsously, errors have been ignored because we ignored errors raised
from the completion phase
See the comment above the createConstraintPartForLowerBoundAndFlexibleTypeVariable
2021-05-20 17:24:28 +03:00
Denis.Zharkov
c758069d7c
FIR: Rework reporting COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH
...
Previously, it was reported via additional check on successful calls
But now it's contained within FirErrorNamedReference
2021-05-20 17:24:27 +03:00
Denis.Zharkov
c46d049394
FIR: Implement more precise reporting diagnostics from new inference
2021-05-20 17:24:26 +03:00
Denis.Zharkov
c67ae8a0a3
FIR: Replicate coercion-to-unit behavior from FE 1.0
2021-05-20 17:24:25 +03:00
Denis.Zharkov
dac5c31993
Minor. Simplify ConstraintSystemUtilContext::createArgumentConstraintPosition
2021-05-20 17:24:23 +03:00
Denis.Zharkov
9c7982673b
FIR: Support substitution of inner class constructor capturing outer type parameters
2021-05-20 17:24:22 +03:00
Denis.Zharkov
91806c0a68
FIR: Refine diagnostics in case argument type mismatch on lambda
...
Report ArgumentTypeMismatch instead of imprecise NEW_INFERENCE_ERROR
2021-05-20 17:24:21 +03:00
Denis.Zharkov
2b806e717d
FIR: Avoid adding new constraints when system already has contradictions
2021-05-20 17:24:20 +03:00
Denis.Zharkov
571c16be52
FIR: Fix computing dispatch receiver for property-delegation operators
2021-05-20 17:24:19 +03:00
Denis.Zharkov
35c754c27c
FIR-DFA: Ignore FinallyBlockExitNode when computing return arguments
2021-05-20 17:24:17 +03:00
Denis.Zharkov
d0a0739d10
FIR: Mute builder-inference related tests
...
They started failing once we began reporting diagnostics from completion
^KT-46421 Relates
2021-05-20 17:24:16 +03:00
Denis.Zharkov
78ec4b5248
FIR: Mute property-delegation-inference related tests
...
They started failing once we began reporting diagnostics from completion
The main reason is that we resolve `delegate()` call
from `delegate().getValue()` in the independent context, while in FE 1.0
it's being resolved within the same system as getValue
^KT-46420 Relates
2021-05-20 17:24:15 +03:00