Steven Schäfer
e25a09f2f9
JVM IR: Fix local delegated properties with inline class types
2019-10-07 17:12:30 +02:00
pyos
cd47c11efd
Generate unique parameter names in LocalDeclarationsLowering
2019-10-07 15:14:48 +02:00
Mads Ager
3b2843fe7a
Introduce local variable type checker.
...
CheckLocalVariablesTableTests will now check the validity of
the locals table against types of locals computed based on the
bytecode.
These checks and the new destructuringInFor test act as a
regression test for the changes in
https://github.com/JetBrains/kotlin/pull/2613
These checks also caught a similar issue for destructuring
lambda parameters, where the local is introduced before the
value has been written to the local slot. This change also
fixes that.
Finally, this change fixes the asmLike tests to correctly
look up the name of parameters in the locals table.
2019-10-07 15:06:44 +02:00
Steven Schäfer
3659b517bb
Minor: Fix some test cases
2019-10-07 12:54:11 +02:00
pyos
6e9ee2a46c
JVM_IR: fix const reads from other files in same module
2019-10-07 12:28:55 +02:00
Steven Schäfer
0b76f60b63
JVM IR: Handle NonInlinedConst
2019-10-05 10:52:59 +02:00
Anton Bannykh
aad9cbbf01
[JS IR BE] Fix tests failing due to reduced runtime
2019-10-04 17:30:45 +03:00
Georgy Bronnikov
4b5877f3b5
JVM_IR, codegen: handle names for classes within local classes
2019-10-03 17:11:48 +03:00
Svyatoslav Kuzmich
5d7f18b1b9
[JS] Support wrapped and dynamic types in typeOf
2019-10-03 13:12:46 +03:00
Dmitry Petrov
a633a33627
KT-14513 Don't generate delegated property metadata when unused
...
If the delegated property operators involved are inline, and delegated
property metadata parameter is not used (which is often the case, e.g.,
'lazy'), we can skip those properties in metadata generation.
NOT implemented: special case when only 'kProperty.name' is used by the
corresponding delegated property operators.
Also a sneak fix for KT-34060.
2019-10-02 17:14:48 +04:00
Georgy Bronnikov
e38ff8753e
JVM_IR: support type parameters in @JvmOverload functions
2019-10-02 16:19:06 +03:00
pyos
ea56a5e8b1
Unmute some JVM_IR inlining tests
2019-10-02 14:48:05 +02:00
Denis Zharkov
e54d2c7c32
Support named arguments in their own position
...
^KT-7745 In Proggress
2019-10-02 11:13:15 +03:00
Steven Schäfer
217f681b6e
JVM IR: Use WrappedClassDescriptor in class builder.
2019-10-02 08:29:22 +02:00
Georgy Bronnikov
4920d71d70
JVM_IR: set dispatchReceiverParameter of imported JvmStatic object methods to null
2019-10-01 20:52:56 +03:00
Ilmir Usmanov
08794d17a0
Do not box function argument if it is used in EXACTLY_ONCE lambda
...
Since we cannot change type of parameter, we cannot replace it with
box type.
#KT-29510 Fixed
#KT-29614 Fixed
#KT-29385 Fixed
2019-09-30 17:42:17 +03:00
Mark Punzalan
c16b59191b
Do not cache "last" value (i.e., size/length) in lowered for-loop
...
iteration over CharSequences.
CharSequences may be mutable (e.g., StringBuilder) and therefore its
contents and length can change within the loop.
2019-09-27 13:44:40 +02:00
Svyatoslav Kuzmich
7592048437
[JS] Support typeOf
2019-09-25 18:12:55 +03:00
Kristoffer Andersen
52dc469657
JVM IR: Generate synthetic methods for type aliases with annotations
2019-09-24 12:21:42 +02:00
Steven Schäfer
e4609a9968
JVM IR: Cache inline class replacements at the module level
2019-09-20 23:41:39 +02:00
Steven Schäfer
f40f9611c3
JVM IR: Fix spread operator on unsigned array type
2019-09-20 18:17:31 +02:00
Alexander Udalov
a7b984bcbf
JVM IR: fix generation of generic multi-file delegates
2019-09-19 22:23:16 +02:00
Alexander Udalov
acbe5c4e21
JVM IR: fix IOOBE from remapTypeParameters for synthetic property annotations method
2019-09-19 22:23:16 +02:00
Ilmir Usmanov
f1d31c8221
JVM_IR: Minor. Unmute tests
...
Rename FAKE_CONTINUATION -> fakeContinuation
2019-09-19 19:28:11 +03:00
Ilmir Usmanov
06d0e8a521
JVM_IR: Support suspend functions with extension receivers
2019-09-19 19:28:10 +03:00
Ilmir Usmanov
2bfd17d8fb
JVM_IR: Minor. Unmute test.
2019-09-19 19:28:08 +03:00
Ilmir Usmanov
63f6d515bc
JVM_IR: Generate correct invoke of numbered suspend lambda
...
Instead of continuation type as last parameter's type, generate Object
type.
2019-09-19 19:28:05 +03:00
Ilmir Usmanov
587fcafc85
JVM_IR: Support continuation crossing inline lambda boundaries
...
I.E. generate fake continuation markers.
2019-09-19 19:28:03 +03:00
Mads Ager
507857d452
[IR] Support Collection<*>.indices in for loop lowering.
...
Unmute a couple of tests that are working as intended.
2019-09-18 19:00:17 +02:00
Steven Schäfer
ce3ef4e4d0
Add more tests for inline class equality with nullable arguments
2019-09-18 18:52:58 +02:00
Steven Schäfer
d8646e29b7
Add additional Result api test
2019-09-18 18:52:58 +02:00
Steven Schäfer
49efa5fbc4
Split up Result API boxing tests
2019-09-18 18:52:58 +02:00
Steven Schäfer
b85b2d9af8
Add more tests for inline class equality
2019-09-18 18:52:58 +02:00
Steven Schäfer
cdc5e1347b
JVM: Avoid boxing in inline class equality
2019-09-18 18:52:58 +02:00
Steven Schäfer
f53b28e8a3
JVM: Generate equals-impl0 method for inline classes
2019-09-18 18:52:58 +02:00
Steven Schäfer
2c7da67600
JVM IR: Avoid boxing in inline class equality
2019-09-18 18:52:58 +02:00
Steven Schäfer
b85a475358
JVM IR: Generate equals-impl0 method for inline classes
2019-09-18 18:52:58 +02:00
Steven Schäfer
475079611d
JVM IR: Avoid parameter null-checks in inline class impl methods
2019-09-18 18:52:58 +02:00
Steven Schäfer
cdd3f82396
JVM IR: Use correct scope owner in JvmInlineClassLowering
2019-09-18 18:52:58 +02:00
Alexander Udalov
aa77f6c245
Improve KParameter.toString for instance and extension receiver parameter
...
#KT-17860 Fixed
2019-09-18 14:05:43 +02:00
Alexander Udalov
c69997491f
JVM IR: generate file annotations on file facade classes
2019-09-18 14:05:28 +02:00
Ilmir Usmanov
0e3f0c98e5
JVM_IR: Support inline suspend lambdas
2019-09-17 19:19:27 +03:00
Dmitry Petrov
0531bd4fe6
KT-29229 Intrinsify 'in' operator for unsigned integer ranges
...
Support mixed type case, e.g., '[UByte] in [UIntRange]'.
2019-09-17 15:50:47 +03:00
Ilmir Usmanov
1951ff8054
JVM_IR: Minor. Unmute tests
2019-09-16 16:49:24 +03:00
Ilmir Usmanov
a3284326af
JVM_IR: Do not box/unbox result in continuations
...
Otherwise, it leads to CCE from kotlin/Result.
2019-09-16 16:49:22 +03:00
Ilmir Usmanov
402a77126f
JVM_IR: Support inline suspend functions
...
Only no state-machine version for now.
2019-09-16 16:49:21 +03:00
Ilmir Usmanov
2ec3417e0e
JVM_IR: Move suspend functions into view transformation to codegen phase
...
Support suspend functions with default arguments.
2019-09-16 16:49:18 +03:00
Alexander Udalov
bd8ea9412d
JVM IR: implement MethodSignatureMapper.mapFunctionName directly
2019-09-16 14:57:20 +02:00
Alexander Udalov
45929f57b6
Minor, add test on name mangling of private multi-file part members
2019-09-16 14:44:16 +02:00
Alexander Udalov
9d257a1ed8
JVM IR: generate call to checkNotNull in IrCheckNotNull since 1.4
...
#KT-22275
2019-09-16 12:33:01 +02:00