Steven Schäfer
a475fa2a21
JVM IR: Use raw types in SAM wrappers
2020-11-19 19:46:49 +01:00
Steven Schäfer
999151abac
JVM IR: Generate SAM wrapper fields as synthetic final
2020-11-19 19:46:49 +01:00
Steven Schäfer
ec1d42e92b
JVM IR: Generate SAM wrapper classes as non-synthetic
2020-11-19 19:46:49 +01:00
Steven Schäfer
36711a768b
JVM IR: Use inline SAM wrappers inside of inline lambdas
2020-11-19 19:46:49 +01:00
Ilmir Usmanov
b33774e5f2
IC mangling: Use empty list as a separator in the new mangling scheme
2020-11-19 17:39:28 +01:00
Ilmir Usmanov
488d4ab018
IC mangling: Use '_' instead of 'x' as a placeholder before hashing
2020-11-19 17:39:27 +01:00
Ilmir Usmanov
f7164404c9
IC mangling: Ignore FIR tests
2020-11-19 17:39:26 +01:00
Ilmir Usmanov
c62093f54c
IC mangling: Change mangling rules
...
1. Use 'x' for each parameter, which is not an inline class, every
possible clash is handled by signature rather than name. This change
makes more API changes binary-compatible. So, the changes are in line
with the vision of inline classes are value classes, like primitives.
2. Take return type into account when mangling a function if the return
type is inline class. Otherwise, boxing bridge will not be generated,
which leads to CCE at runtime.
2020-11-19 17:39:24 +01:00
Jinseong Jeon
4cb32cd38a
FIR2IR: add implicit NOT_NULL cast for @FlexibleNullability type
2020-11-18 13:06:48 +03:00
Denis Zharkov
4c9a4548f2
FIR: Fix overrides binding for Java inheritor
...
`overriddenMembers` contract requires original (non-enhanced) function
See other usages
Ignored tests have been working accidentally
^KT-43289 Open
2020-11-16 15:50:39 +03:00
Dmitry Petrov
653b26174b
KT-43006 don't generate no-arg constructor with inline class parameters
2020-11-13 09:59:34 +03:00
Mikhail Glukhikh
e7a84fd1ee
[FIR2IR] Preserve 'EnhancedNullability' type annotation in IR
2020-11-10 21:07:26 +03:00
Georgy Bronnikov
d246005891
JVM_IR: fix unbound type parameters in AddContinuationLowering
2020-11-10 17:49:55 +03:00
Ilmir Usmanov
7b315a8b52
JVM_IR: Do not box inline class in methods
2020-11-02 10:50:00 +01:00
Ilmir Usmanov
28e148d35a
Old JVM: support init blocks in inline classes
...
#KT-28055 Fixed
2020-10-29 20:38:03 +01:00
Denis Zharkov
2bdb21793f
FIR: Adjust test data
2020-10-28 11:43:25 +03:00
Jinseong Jeon
46cc01602e
FIR2IR: add implicit NOT_NULL cast if needed
2020-10-22 10:51:20 +03:00
Dmitry Petrov
b1b87becc8
PSI2IR more JVM-like exhaustive when behavior KT-36840
2020-10-21 20:07:11 +03:00
Mads Ager
0505bd958a
[JVM] Fix the nop removal optimization.
...
Never remove a nop if that would cause a line number to move
across a local lifetime boundary.
This fixes KT-42725.
2020-10-16 19:21:08 +03:00
pyos
a9b53adc50
JVM_IR: make primitive == object slightly less lazy.
...
Discarding the value used to leave an unused-but-never-destroyed
temporary variable. It's best to not separate calls to `enterTemp`
and `leaveTemp`.
Not sure what kind of test to add though, since this is minor -- if the
result of the comparison is discarded, then the entire statement is more
or less pointless.
#KT-42251 Fixed
2020-10-16 12:25:55 +02:00
Jinseong Jeon
5f64d6ec76
FIR2IR: add support for callable reference to Java field
...
#KT-42656 Fixed
2020-10-15 08:47:46 +03:00
Mikhail Glukhikh
2f9b7495fc
[FIR2IR] Make safe call result always nullable
2020-10-14 16:33:37 +03:00
Mark Punzalan
8bc7370b92
ForLoopsLowering: Add PLUSEQ origin to increment to use IINC
...
instructions if possible.
2020-10-09 21:34:56 +02:00
Mark Punzalan
ccbf7cc2ee
ForLoopsLowering: Use last-exclusive for-loops for optimized until
...
progressions instead of decrementing "last".
#KT-41352 Fixed
2020-10-09 21:34:56 +02:00
Ilmir Usmanov
375d92cf67
Merge two consequent records in LVT
...
Otherwise, atomicfu will be unable to transform atomic variable usages.
2020-10-09 18:36:37 +02:00
pyos
adcbfc7b4c
IR: add an emptiness check to all unsigned until loops
...
Unlike signed integers, a larger unsigned type does not mean a lower
minimum value, so `x - 1` can overflow even if `x` is casted to a larger
type.
#KT-42186 Fixed
2020-10-07 12:53:00 +02:00
Mikhael Bogdanov
ed5c2b0565
Add tests for data class runtime string concatenation
...
#KT-35176
2020-10-06 13:20:41 +02:00
Mikhael Bogdanov
eb32a6ddbd
Add test for for kt42457 wrong behaviour. Align runtime concatenation with it
...
#KT-42457
2020-10-06 13:20:40 +02:00
Mikhael Bogdanov
d2c4be18a0
Rename runtime-string-concat option into 'string-concat'
2020-10-06 07:14:39 +02:00
Dmitry Petrov
e018f2bd3e
JVM_IR more precise check for special bridges in super class
...
KT-41123
2020-10-02 12:51:49 +03:00
Mikhael Bogdanov
cf5bd38bec
JVM_IR. Support runtime string concatenation
2020-10-02 11:47:28 +02:00
Mikhael Bogdanov
1938f9459f
Support indy concatenation
2020-10-02 11:47:28 +02:00
Mikhael Bogdanov
942e1962d9
Properly process constants
2020-10-02 11:47:27 +02:00
Mikhael Bogdanov
c329c22630
Add runtime string concat options. Some renaming
2020-10-02 11:47:27 +02:00
Mikhael Bogdanov
04012951c1
Basic invokedynamic string concatenation support
2020-10-02 11:47:27 +02:00
Mikhail Glukhikh
2fd752f8f6
IR interpreter: fix calculation of constant Java fields
...
#KT-42117 Fixed
2020-10-02 08:57:44 +03:00
Denis Zharkov
3dfbd36f15
FIR: Unmute passing blackbox tests
2020-10-01 17:49:02 +03:00
Mikhail Glukhikh
ac50433e17
Fix failing bytecode text test
...
In this commit I moved IGNORE_BACKEND_FIR to the end or deleted it
when it was applicable, to preserve correct line numbers
2020-09-29 19:16:42 +03:00
Alexander Udalov
445b2d6eb1
JVM IR: minor, unmute bytecode text test
...
Also fix typo in the name
2020-09-29 12:38:54 +02:00
Mark Punzalan
238cc7c257
[FIR] Enable BytecodeText tests for FIR.
...
143 out of 767 tests (18.6%) are currently failing.
2020-09-29 10:21:21 +03:00
pyos
bd6ead0467
JVM_IR: check for null when converting unboxed inline classes to strings
...
`C?` can be unboxed into `T?` if if wraps a reference type `T!!`, but in
this case `null` is not a valid value to pass to `toString-impl`.
#KT-42005 Fixed
2020-09-25 16:50:34 +02:00
Ilmir Usmanov
f22f10febb
JVM_IR: Unbox inline classes in suspend functions
...
if the function can be verified to safely returning unboxed
inline class.
Box the return value on resume path.
2020-09-24 10:08:41 +02:00
Steven Schäfer
111c550f3c
JVM IR: More tests for inlining in $default stubs
2020-09-24 07:53:31 +02:00
Steven Schäfer
5e27d9b089
JVM IR: Make inlining in $default stubs compatible with the JVM BE
...
The JVM BE inlines calls to the underlying function in a $default stub
verbatim, e.g., without renaming LVT entries or regenerating anonymous
objects. This commit introduces the same behavior in the JVM IR BE.
Fixes KT-36769.
2020-09-24 07:53:31 +02:00
Alexander Udalov
84df996204
JVM IR: fix "step over" for inline function calls in conditions
...
Reimplement the same hacky approach used in the old backend (see
cc2fe6b0c6 ).
Previously, the debugger incorrectly stepped into Collections.kt on
"step over" inline function calls from stdlib like 'any'.
Since `if` and `when` expressions are represented the same way in IR,
the behavior is fixed for both of them. It's not the case in the old JVM
backend, where stepping over `when` conditions still suffers from the
same problem, which the newly added test checks.
2020-09-23 15:54:15 +02:00
Ilmir Usmanov
e8a451072e
Minor. Add tests with same JvmType in covariant override
2020-09-09 17:43:41 +02:00
Ilmir Usmanov
1c97eafea8
Check for COROUTINE_SUSPENDED inside callable reference
...
#KT-41429 Fixed
2020-09-09 17:43:37 +02:00
Ilmir Usmanov
023cdd7cd4
Support not boxing inline class of reference class
...
even if the class is other than Any.
#KT-41429 In progress
2020-09-09 17:43:34 +02:00
Steven Schäfer
4792be2522
JVM IR: Optimize static property references (KT-36975)
2020-09-07 21:01:29 +02:00
Steven Schäfer
78ab957bfe
JVM IR: Fix mangling for suspend functions with inline class params (KT-41374)
2020-08-31 18:43:29 +02:00