pyos
03304bce96
FIR: enhance Java type parameter bounds
...
This also fixes handling of self-recursive types.
TODO: fix jspecify/{strict,warn}Mode/Captured.fir.kt
2021-09-06 13:11:08 +03:00
pyos
5355d04553
FIR: enhance in/out-variant type arguments
2021-09-06 13:11:03 +03:00
pyos
8e122397b0
FIR: fix type index computation during enhancement
...
1. in/out type parameters count;
2. star projections take up 1 space in the tree.
2021-09-06 13:11:02 +03:00
pyos
5fec9f34b1
FIR: revert a hack that allows overriding T!! with T
...
1. this should've been only done if the language feature for validating
that is disabled;
2. that feature probably won't matter by the time FIR is stable;
3. it only worked because type enhancement of type arguments is broken
anyway - a more correct hack would be to provide a custom
ConeTypePreparator.
2021-09-06 13:11:01 +03:00
Mikhail Glukhikh
08e498f1f2
FIR: add proper receiver check for protected visibility #KT-48378 Fixed
2021-08-31 17:31:57 +03:00
Denis.Zharkov
62bef48f9d
Adjust test data to changed rendering: T!! -> T & Any
...
^KT-26245 In Progress
2021-08-31 15:41:15 +03:00
Denis.Zharkov
112af9b145
FIR: Rework bare types support
...
^KT-48305 Fixed
2021-08-30 16:24:44 +03:00
Dmitriy Novozhilov
67dd23354c
[FIR] Check compatibility of equality call between IT by component of each type
...
^KT-48113 Fixed
2021-08-30 11:11:50 +03:00
pyos
a12e31daf1
FIR: dump nested classes in loadJava tests
...
Because those test are single Java files, many of them use a top-level
class as a container for multiple classes to be tested. Such tests do
almost nothing if those nested classes aren't handled.
2021-08-27 18:03:01 +03:00
Tianyu Geng
4d9102f749
FIR checker: fix position strategy of TYPE_PARAMETERS_IN_OBJECT
2021-08-26 12:25:03 +03:00
Dmitriy Novozhilov
3176dd1341
[FIR] Properly create edges from return expression to finally block
...
^KT-48376 Fixed
2021-08-26 10:08:52 +03:00
Dmitriy Novozhilov
0924216ed2
[FIR] Distinguish stub types for builder inference and for subtyping
...
^KT-48110 Fixed
2021-08-26 10:08:52 +03:00
Ivan Kochurkin
84c5f58cab
[FIR] Implement UNRESOLVED_REFERENCE_WRONG_RECEIVER
2021-08-25 21:53:23 +00:00
Ivan Kochurkin
34cc7e5199
[FIR] Fix resolving to star import member instead of builtin (^KT-48157 Fixed)
2021-08-25 21:53:23 +00:00
Ivan Kochurkin
bb27ae2b42
[FIR] Fix incorrect resolve of callable reference in function signature (^KT-48304 Fixed)
2021-08-25 21:53:23 +00:00
Mikhail Glukhikh
19ab0ab2f8
FIR: approximate intersections in public position properly
...
#KT-48166 Fixed
2021-08-23 14:18:36 +03:00
Andrey Zinovyev
1cd321a90f
[FIR] Add INAPPLICABLE_OPERATOR_MODIFIER diagnostic
2021-08-18 16:03:01 +03:00
Denis.Zharkov
753ba99b04
FIR: Support enhanced types when checking if Java type is primitive
2021-08-17 21:38:01 +03:00
Andrey Zinovyev
1cdbbad367
[FIR] ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION diag
2021-08-17 16:05:42 +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
Mikhail Glukhikh
a21d281c19
FIR: fix capturing on intersection types #KT-48109 Fixed
2021-08-13 11:14:03 +03:00
Mikhail Glukhikh
a04913a197
FIR: use captureFromTypeParameterUpperBoundIfNeeded for argument types
...
#KT-48161 Fixed
2021-08-13 11:14:02 +03:00
Mikhail Glukhikh
73a8b4544a
FIR: don't report EQUALITY_NOT_APPLICABLE for classes from java.*
...
Workaround for KT-48113
2021-08-13 11:14:01 +03:00
Mikhail Glukhikh
b617aca8ee
FIR: fix scope order for super-type resolve #KT-48159 Fixed
2021-08-13 11:14:01 +03:00
Mikhail Glukhikh
ca98417a0c
FIR: add test for erroneous type inference in UAST (KT-48159)
2021-08-13 11:14:00 +03:00
Mikhail Glukhikh
b1bcbaf48f
FirConstChecks: support "Some string".length case properly
...
#KT-48165 Fixed
2021-08-13 11:13:59 +03:00
Mikhail Glukhikh
2e2edf398c
FIR: consider enum class overridden members non-final #KT-48164 Fixed
2021-08-13 11:13:57 +03:00
Tianyu Geng
06ee84f809
FIR checker: report AMBIGUOUS_SUPER
2021-08-10 19:36:44 +03:00
Tianyu Geng
280c445783
FIR checker: check super reference
...
This change touches the following diagnostics to make them behave closer
to FE1.0
* SUPER_NOT_AVAILABLE
* SUPER_IS_NOT_AN_EXPRESSION
* INSTANCE_ACCESS_BEFORE_SUPER_CALL
* NOT_A_SUPERTYPE
Other than tweaking the diagnostics, this change also alters resolution
by consider marking `super` with mismatched type parameter as
errorenous. As a result, the following code no longer resolves.
```
class A: B() {
fun test() {
super<String>.length
// ^^^^^^ FIR currently resolves this to `String.length`.
// With this change, `length` becomes unresolved
// instead
}
}
```
Also, now we report `UNRESOLVED_LABEL` on unresolved label on `super`
reference, though FE1.0 reports `UNRESOLVED_REFERENCE`.
All the errors above are reported as ConeDiagnostics and hence some
checkers are deleted.
In addition, it also suppresses more downstream (mostly unresolved)
errors if the receiver has errors. FE1.0 doesn't do it for all the cases
we have here. But it seems nicer to reduce these "redundant" unresolved
errors.
2021-08-10 19:36:43 +03:00
Tianyu Geng
bcf6202863
FIR checker: fix position strategy for UNRESOLVED_LABEL
2021-08-10 19:36:04 +03:00
Ivan Kochurkin
fd92b851a2
[FIR] Implement PACKAGE_OR_CLASSIFIER_REDECLARATION
...
Fix REDECLARATION positioning
2021-08-10 15:09:25 +00:00
Tianyu Geng
cd99c35649
FIR: instantiate type argument to captured type if needed
2021-08-09 14:38:30 +03:00
Dmitriy Novozhilov
1d491fdce6
[FIR] Don't create union call node for lambda from one when branch and call from condition of another
2021-08-06 22:57:18 +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
Tianyu Geng
4726dcce40
FIR DFA: smartcast variable to Nothing? on null assignment
...
In order to make resolution still work for members not available from
`Nothing`, we track the type without `Nothing?` and use that for
resolution instead.
2021-08-06 22:57:15 +03:00
Dmitriy Novozhilov
a9882a86c0
[FIR] Consider extension receiver type in conflicting members checker
2021-08-06 13:31:20 +03:00
Mikhail Glukhikh
22ccb7a943
FIR: discriminate generics during callable reference resolve
2021-08-05 19:24:04 +03:00
Mikhail Glukhikh
e924ee3150
FIR: add test with minOf ambiguity
2021-08-05 19:24:02 +03:00
Dmitriy Novozhilov
60195114c1
[FIR] Properly create class scopes while resolving of annotations arguments
2021-08-04 18:23:06 +03:00
Andrey Zinovyev
015c2d1875
[FIR] Add NOTHING_TO_INLINE diagnostic
2021-08-04 17:33:08 +03:00
Ivan Kochurkin
5291648d39
[FIR] Temporary change UPPER_BOUND_VIOLATED to warning to unblock bootstrap tests
2021-08-03 23:15:40 +03:00
Dmitriy Novozhilov
b584fed93d
[FIR] Migrate warning/error pairs to DiagnosticFactoryForDeprecation
2021-08-03 00:20:11 +03:00
Dmitriy Novozhilov
71def0666e
[FIR] Introduce special phase for resolve of enums and class literals
2021-08-02 20:29:05 +03:00
Simon Ogorodnik
8e890eba3e
[FIR] Hack-in indirectly nested locals resolution
2021-08-02 17:07:15 +03:00
Simon Ogorodnik
7422571c72
[FIR] Fix cycle when loading nested enum within java annotation
2021-08-02 17:07:15 +03:00
Mark Punzalan
504449f03e
FIR: Report UNSAFE_CALL instead of SMARTCAST_IMPOSSIBLE when smartcast
...
to null.
Currently the error message shows the expression is impossible to
smartcast to the nullable type, which is nonsensical since it's already
that type.
2021-07-30 21:49:50 +03:00
Ivan Kochurkin
1a40164ef0
[FIR] Fix resolving of single underscore _
...
Now compiler throws `UNRESOLVED_REFERENCE` here:
```
val boo = { _: Exception -> `_`.stackTrace }
```
2021-07-30 16:58:07 +00:00
Ivan Kochurkin
d4e1cded59
[FIR] Implement RESOLUTION_TO_CLASSIFIER
2021-07-28 23:18:38 +03:00
Ivan Kochurkin
2574dc907c
[FIR] Implement FUNCTION_EXPECTED
2021-07-28 23:17:31 +03:00