Dmitriy Novozhilov
9b7b517f43
[FIR] Properly resolve declarations inside contract calls on CONTRACT phase
2022-11-22 15:46:21 +00:00
Dmitriy Novozhilov
01c6c7dc59
[FIR] Properly approximate return type of callable declarations
...
- approximate intersection types in all non-local declarations
- approximate local types in non-private non-local declarations
2022-11-22 15:46:20 +00:00
Dmitriy Novozhilov
991d8c18aa
[FIR] Fix incorrect inference of return type of anonymous functions
...
Also remove incorrect subtype check checkers
Test unsafeVarianceInAliasedFunctionalType.kt started to fail because
of KT-54894. This bug existed before, changes from this commit just
unhided it (previously it was hidden because incorrect subtype check
in `isSubtypeForTypeMismatch` which is used by FirFunctionReturnTypeMismatchChecker
2022-11-22 15:46:19 +00:00
Dmitriy Novozhilov
0e84bf2053
[FIR] Don't report ARGUMENT_TYPE_MISMATCH on error types
2022-11-22 15:46:19 +00:00
Dmitriy Novozhilov
07567d6748
[FIR] Always fix type variables with UNKNOWN direction
2022-11-22 15:46:18 +00:00
Dmitriy Novozhilov
1b27d60307
[FIR] Support @OnlyInputTypes annotation
...
^KT-54807 Fixed
2022-11-22 15:46:17 +00:00
pyos
ae31275f73
FIR DFA: unwrap transparent expressions in more places
2022-11-22 15:44:35 +00:00
pyos
5b08c300f4
FIR DFA: don't assume != true/false => == false/true
...
This also fixes some returnsNotNull contracts because the old code added
an implication that `== true` => `!= null` then promptly removed any
statement that this could've affected if the argument was a synthetic
variable.
^KT-26612 tag fixed-in-k2
2022-11-22 15:44:34 +00:00
pyos
edaca59d83
FIR DFA: fork flow everywhere
...
In theory, forking persistent flows should be cheap because of object
reuse, so the proposal here is to start from scratch and prove
redundancy of forks on a case-by-case basis. Something something better
safe than sorry.
^KT-28333 tag fixed-in-k2
^KT-28489 tag fixed-in-k2
2022-11-22 15:44:32 +00:00
pyos
6ee6d019ee
FIR DFA: align return-implies checker closer to smartcasts
2022-11-22 15:44:31 +00:00
Dmitriy Novozhilov
7af43176ce
[FIR] Add optin on API of updating type of receiver values. KT-54708
2022-11-03 08:30:09 +00:00
Dmitriy Novozhilov
22c21ca4df
[FIR] Replace uninferred type variables and stub types during delegate inference
2022-11-03 08:30:07 +00:00
Mikhail Glukhikh
50cd560d09
K1: add more tests for BI assignment checker, fix corner cases
...
Related to KT-54004
2022-10-26 09:21:49 +00:00
Mikhail Glukhikh
8e48636b29
K1: don't report assignment TYPE_MISMATCH in BI under feature ON
...
Related to KT-54004
2022-10-26 09:21:48 +00:00
Mikhail Glukhikh
0080f16cc2
K1: report TYPE_MISMATCH for incorrect assignments in builder
...
#KT-54004 Fixed
2022-10-12 08:21:13 +00:00
Mikhail Glukhikh
0940707fd4
FE: add reproducer for KT-54004
2022-10-12 08:21:12 +00:00
Nikolay Lunyak
b6f950ed75
[FIR][FE 1.0] KT-47933: Warn about redundant @Repeatable
...
Merge-request: KT-MR-7318
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com >
2022-10-07 13:33:49 +00:00
Nikolay Lunyak
e2fdb352f1
[FIR] KT-42962: Ensure the issue is not present in K2
...
Merge-request: KT-MR-7288
Merged-by: Nikolay Lunyak <nikolay.lunyak@jetbrains.com >
2022-10-04 12:27:17 +00:00
Nikolay Lunyak
fcd3e4f4c5
[FIR JS] KT-51740: Alter positioning of NO_VALUE_FOR_PARAMETER
2022-09-30 21:39:20 +03:00
Ilya Kirillov
556b7894d5
[Low Level FIR] do not search for declarations from kotlin. package in source modules
2022-09-30 12:15:49 +02:00
Mikhail Glukhikh
591992dc12
K1: mute failing test with slow assertions
...
Note: in this test, we create a flexible type from two captured types
during substitution, which provokes exception from
FlexibleTypeImpl.runAssertions() (they are run only in test mode)
Related to KT-54198
2022-09-28 15:29:44 +00:00
Mikhail Glukhikh
e9bb0f4fda
Resolution: extract projections from captured flexible type properly
...
#KT-54100 Fixed
Related to KT-54196, KT-54198
2022-09-28 15:29:43 +00:00
Mikhail Glukhikh
a4b2a8c4ea
AbstractTypeChecker: fix special case with CapturedType as self type argument
...
#KT-53908 Fixed
May fix also KT-53271
2022-09-19 19:12:21 +00:00
Mikhail Glukhikh
6ab516a7e5
FE: add test for KT-53908
2022-09-19 19:12:20 +00:00
Ilya Gorbunov
e51d25fb60
Fix test data: use also stdlib where stdlib-jdk8 was required
...
#KT-51907
2022-09-15 15:38:32 +00:00
Mikhail Glukhikh
fb9b1ad0dc
K1: implement warning for upper bound violated in type alias constructors
...
Partially implements KT-47473
2022-09-15 08:51:46 +00:00
Mikhail Glukhikh
8c475750b1
FE: add test for KT-47473
2022-09-15 08:51:45 +00:00
Ivan Kochurkin
6c4dafc23c
Disable IgnoreNullabilityForErasedValueParameters for indefinite time, ^KT-53751 Fixed
2022-09-13 16:45:06 +00:00
Mikhail Glukhikh
b78106e437
Don't report INFERRED_..._INTO_EMPTY_INTERSECTION with explicit arguments
2022-08-19 14:01:38 +00:00
Arseniy Terekhov
c0ab367281
[FIR] DeprecationProvider: fix test, remove FIR_IDE_IGNORE
2022-08-19 07:37:55 +00:00
Vsevolod Tolstopyatov
22e26d0756
Move EnumEntries LVS to 1.9
...
* Also cleanup tests to avoid using obsolete WITH_RUNTIME
2022-08-12 09:35:32 +00:00
Mikhail Glukhikh
7333589663
K1/K2: add Enum.entries unconditionally and filter them out in tower
...
Before this commit, we added Enum.entries only in case when
LanguageFeature.EnumEntries was ON (with an exception in K1/Java case).
In this commit we add Enum.entries unconditionally, and in case
the language feature is OFF we filter them out during tower resolve.
2022-08-12 09:35:27 +00:00
Mikhail Glukhikh
81e1131441
SubclassOptInRequired: add extra test about inheritance and superseding
2022-08-11 14:05:09 +00:00
Mikhail Glukhikh
80a9f22052
Add applicability checks & tests for SubclassOptInRequired
2022-08-11 14:05:09 +00:00
Mikhail Glukhikh
76aaecbdf0
Add/fix extra cases for #KT-41886 Fixed
2022-08-11 14:05:08 +00:00
Mikhail Glukhikh
7d3368da58
K2: report errors related to SubClassOptInRequired annotation
...
Related to KT-41886
2022-08-11 14:05:08 +00:00
Mikhail Glukhikh
c67c5cad27
K1: report errors related to SubClassOptInRequired annotation
...
Related to KT-41886
2022-08-11 14:05:07 +00:00
Ilmir Usmanov
b93c000250
Make suspend fun, where suspend is a function error in 1.9
...
instead of 1.8.
#KT-49264
2022-07-28 21:03:07 +02:00
Mikhail Glukhikh
32a73968de
Stop tower resolve in K2 in more similar manner with K1
2022-07-27 15:29:41 +00:00
Mikhail Glukhikh
bc396b9765
K2: don't report RETURN_TYPE_MISMATCH on last statement returns
...
#KT-53198 Fixed
2022-07-22 16:39:51 +00:00
Victor Petukhov
42e71f8c53
Remove explicit enabling the new type inference from test data
2022-07-22 16:03:52 +00:00
Victor Petukhov
224beb24eb
Remove explicit disabling the new type inference from test data
2022-07-22 16:03:51 +00:00
Ilya Kirillov
d04bd320f9
[LL FIR] ignore test failing due to ^KT-53242
2022-07-19 17:17:35 +02:00
pyos
06c7572ee5
FIR CFG: process called-in-place lambdas as loops
2022-07-11 18:11:30 +03:00
Ilya Chernikov
bb996c1b27
Switch kotlin version to 1.8
...
with appropriate fixes in testdata, tests and other
places.
2022-06-29 10:20:30 +02:00
Victor Petukhov
fa7809cd80
[FE] Remove BuilderInference annotation from tests
2022-06-21 15:01:56 +02:00
Ivan Kochurkin
9f69ea1786
[FIR] Add TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM diagnostics, ^KT-52327 Fixed
2022-06-17 23:26:16 +00:00
pyos
63b0708ed5
FIR CFG: join/unify data flow from postponed lambdas at each level
...
For example:
foo(
// `if` joins A & B
if (condition)
run { ... } // A
else
run { ... }, // B
run { ... } // C
) // `foo` unifies `A & B` and `C`, so if it is not resolved itself,
// further `if`s, `when`s, safe calls outside it, etc. continue
// building the correct type predicate until the next completed
// call.
^KT-44512 Fixed
2022-06-15 20:05:49 +00:00
Roman Golyshev
166c771e1b
[FIR IDE] Ensure resolve to CONTRACTS phase in ReturnTypeCalculator
...
If we want to analyse some function's call, we need to know about its
contracts, otherwise resolving the following code would be broken.
Computing return type of function is a prerequisite to using it in any
sensible way, so it's the best place to resolve it to CONTRACTS
KT-50733
2022-06-06 09:14:37 +00:00
Mikhail Glukhikh
6fc27c22f4
K1:report warning on OptIn usages inside SAM constructor #KT-47708 Fixed
2022-06-02 15:36:58 +00:00