Ivan Kylchik
42ea17b151
Support interpretation of dataClassArrayMemberToString method
2021-08-06 13:33:09 +03:00
Ivan Kylchik
0716c557fe
Allow inner class to has outer super class in interpreter
2021-08-06 13:33:07 +03:00
Ivan Kylchik
574c607f1c
Support proper subtype check in interpreter for KFunction
2021-08-06 13:33:06 +03:00
Ivan Kylchik
9638af042d
Support proper behavior in interpreter for cast of null value
2021-08-06 13:33:05 +03:00
Ivan Kylchik
c2fc017d96
Move doubleArrayOf test file to proper place in interpreter test data
2021-08-06 13:33:04 +03:00
Ivan Kylchik
b44fd1a6fe
Simplify logic of interpreting invoke method for lambdas
...
For now will be created separate invoke method that will contains
a call to lambda. This way it is clearer and more intuitive
2021-08-06 13:33:04 +03:00
Ivan Kylchik
3326cbd9c0
Support passing property as argument to array constructor in interpreter
2021-08-06 13:33:02 +03:00
Ivan Kylchik
59fefb6214
Fix property rendering in interpreter
2021-08-06 13:33:01 +03:00
Ivan Kylchik
23392b73a9
Simplify the interpretation logic of methods defined in super Wrapper
2021-08-06 13:32:58 +03:00
Ivan Kylchik
cf20e64c61
Support basic interpretation of IrGetClass
2021-08-06 13:32:57 +03:00
Victor Petukhov
cd09c8ba51
Report CANNOT_INFER_PARAMETER_TYPE on any error value parameters of a lambda
...
^KT-48058 Fixed
2021-08-06 13:27:57 +03:00
Victor Petukhov
1966915e92
Create DONT_CARE type only for dependent lambdas (i.e. to be resolved through the type inference later)
...
^KT-47493 Fixed
2021-08-06 13:27:56 +03:00
Andrey Zinovyev
06b23d5937
[FIR] Improve the control flow graph around try expressions
...
1. throw goes to catches instead of main exist block
2. return goes via finally (single level only supported atm)
3. collect non-direct return to retrieve all return expressions easier
2021-08-06 11:49:34 +03:00
Dmitry Petrov
02d8c7527e
JVM_IR more aggressive if-null expressions fusion
...
Assume that changing a return type from T to T?
is not a binary-compatible change.
2021-08-05 17:51:49 +03:00
Dmitriy Novozhilov
8578f0beea
[FE 1.0] Check for type mismatch for empty when statements
...
^KT-47922 Fixed
2021-08-04 19:33:45 +03:00
Victor Petukhov
13cb3c138a
Update FE tests
2021-08-04 17:36:53 +03:00
Victor Petukhov
b6cb393796
Check postponed type variables to determine suitability for builder inference (during shouldRunCompletion check) more careful
...
^KT-42139 Fixed
2021-08-04 17:36:53 +03:00
Victor Petukhov
cf3bd016be
Always complete calls not related to the builder inference
...
^KT-47830 Fixed
2021-08-04 17:36:52 +03:00
Victor Petukhov
dc8dbad0bc
Add compiler X-flag to enable self upper bound type inference
...
^KT-48026 Fixed
2021-08-04 17:36:52 +03:00
Victor Petukhov
7567597be6
Java nullability checker: take type arguments' types from resolution atom if possible, instead of from resolved call directly
...
^KT-47833 Fixed
2021-08-04 17:36:51 +03:00
Victor Petukhov
93f9d9dacd
Check if the intersecting types aren't empty during finding the result type for variable fixation
...
^KT-47941 Fixed
2021-08-04 17:36:50 +03:00
Victor Petukhov
3eaa452f9e
Take into account SimpleTypeWithEnhancement and subtyping related places
...
^KT-47854 Fixed
2021-08-04 17:36:50 +03:00
Andrey Zinovyev
c46a393a19
[FIR] Add REDUNDANT_INLINE_SUSPEND_FUNCTION_TYPE diagnostic
2021-08-04 17:33:15 +03:00
Andrey Zinovyev
e56deb4525
[FIR] Add INLINE_SUSPEND_FUNCTION_TYPE_UNSUPPORTED diagnostic
2021-08-04 17:33:14 +03:00
Andrey Zinovyev
b2f3485d7c
[FIR] Add ILLEGAL_INLINE_PARAMETER_MODIFIER diagnostic
2021-08-04 17:33:14 +03:00
Andrey Zinovyev
dabc983f6a
[FIR] Add INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINE diagnostic
2021-08-04 17:33:13 +03:00
Andrey Zinovyev
efce3fc2e0
[FIR] Add NON_INTERNAL_PUBLISHED_API diagnostic
2021-08-04 17:33:12 +03:00
Andrey Zinovyev
46d1b63f70
[FIR] Add INLINE_PROPERTY_WITH_BACKING_FIELD diagnostic
2021-08-04 17:33:11 +03:00
Andrey Zinovyev
38cecf8b12
[FIR] Add REIFIED_TYPE_PARAMETER_IN_OVERRIDE diagnostic
2021-08-04 17:33:10 +03:00
Andrey Zinovyev
29dbaa4ae1
[FIR] Add OVERRIDE_BY_INLINE diagnostic
2021-08-04 17:33:10 +03:00
Andrey Zinovyev
d8b7b7b2dc
[FIR] Add DECLARATION_CANT_BE_INLINED diagnostic
2021-08-04 17:33:09 +03:00
Andrey Zinovyev
4e06814bc5
[FIR] Add NULLABLE_INLINE_PARAMETER diagnostic
2021-08-04 17:33:08 +03:00
Andrey Zinovyev
015c2d1875
[FIR] Add NOTHING_TO_INLINE diagnostic
2021-08-04 17:33:08 +03:00
Andrey Zinovyev
28344c8530
[FIR] Add NOT_YET_SUPPORTED_IN_INLINE diagnostic
2021-08-04 17:33:07 +03:00
Igor Laevsky
af865544ff
WASM: Implement string hashcode
2021-08-04 16:23:38 +03:00
Igor Laevsky
c526145a48
WASM: Disable bunch of tests which expose the same issue after switch to the wasm native strings
2021-08-04 16:23:37 +03:00
Stanislav Erokhin
748a2d2e7c
[MPP] Performance optimization in expect/actual checker
...
Previously, the checker executed for every declaration i.e. every
declaration was considered as expect declaration. Because of that in
some cases this checker could eat 6% of compilation time.
After this commit only declarations marked with expect or actual
are checked. To achieve that, logic, that do reporting about missing
actual modifier was moved to the Actual part.
Please note, that in cases where there is no expect/actual modifier at
all other errors (like redeclaration and missing body on "actual"
declaration) would be reported.
Useful nodes:
- In this checker reportOn is always the same as
descriptor.sourceElement.ktElement. This is because the only case when
it isn't true is PropertyAccessors and they are filtered
- Annotation constructor descriptor isActual == true all the time
- previously for weak incompatible members ACTUAL_MISSING
was not reported
- the logic here is super complicated and crazy, but I don't think that
there is sense to refactor it in the old FE
2021-08-04 15:19:34 +03:00
Andrey Zinovyev
ec4cbfef59
[FIR] UNREACHABLE_CODE diagnostic (wip)
...
Implementation for PSI only
2021-08-04 14:42:24 +03:00
Dmitry Petrov
bd71fbe982
JVM_IR KT-34594 strip fake variable initialization during inlining
2021-08-03 20:41:31 +03:00
Dmitry Petrov
37050e0616
JVM_IR KT-34594 don't generate fake local variable for @InlineOnly
2021-08-03 20:41:31 +03:00
Dmitriy Novozhilov
b584fed93d
[FIR] Migrate warning/error pairs to DiagnosticFactoryForDeprecation
2021-08-03 00:20:11 +03:00
Dmitriy Novozhilov
d17f984edf
[FE 1.0] Migrate most of warning/error pairs to DiagnosticFactoryForDeprecation
2021-08-03 00:17:33 +03:00
Ivan Kochurkin
a7e81d5154
Fix test data OverridenSetterVisibility.kt
2021-08-02 20:43:24 +03:00
Ivan Kochurkin
afb85026c4
Revert "[FIR] Implement INVISIBLE_SETTER"
...
This reverts commit b3d7ed56
2021-08-02 20:10:22 +03:00
Dmitriy Novozhilov
199ec60742
[JVM] Reduce number of param slots for string concatenation
...
With paramSlot = 200 those tests fails on JDKs which are newer than JDK 9
- testConcatDynamic200Long
- testConcatDynamicIndy200Long()
2021-08-01 22:23:48 +03:00
Dmitriy Novozhilov
5206b45ce3
[Test] Use JDK 11 instead of JDK 9 in modern jdk tests
2021-08-01 22:23:47 +03:00
Dmitriy Novozhilov
17fc1da719
[Reflection] Support java records in kotlin reflection
...
^KT-47760
2021-08-01 22:23:46 +03:00
Dmitriy Novozhilov
8dad8fa813
[Reflection] Support java sealed classes in kotlin reflection
...
^KT-46778
2021-08-01 22:23:45 +03:00
Dmitriy Novozhilov
fa1d09c778
[FE 1.0] Support java sealed classes
...
^KT-46778 Fixed
2021-08-01 22:23:45 +03:00
Dmitriy Novozhilov
1fa74ef939
[Test] Move test on modern jdk to separate test runners
...
This is needed to avoid problems with installation of proper jdk
on developer machines. Those tests will be moved back to main box
suites after migrating our tests on LTS versions of jdk (11 and 17
instead of 9 and 15)
2021-08-01 22:23:43 +03:00