Ilmir Usmanov
0ada383281
Move addFunctionOverride to AddContinuationLowering
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
c613e04962
Do not try to create view of suspend function descriptor on IR BE
...
Keep container source in wrapped descriptor
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
53878b6961
Do not generate synthetic accessors of local functions as suspend
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
48e64e8a07
Use WrappedSimpleFunctionDescriptor instead of real one for
...
suspend function views
2019-06-25 16:30:02 +03:00
Ilmir Usmanov
ca421e0aa5
Do not generate empty bodies for suspend functions
2019-06-25 16:30:01 +03:00
Ilmir Usmanov
95a65ba94d
Restore order of lowerings
2019-06-25 16:30:01 +03:00
Ilmir Usmanov
0628783308
Move coroutines-related stuff to AddContinuationLowering
2019-06-25 16:30:00 +03:00
Ilmir Usmanov
8306c28117
Generate continuation class for suspend lambdas
...
generate state-machine for coroutines.
2019-06-25 16:30:00 +03:00
Ilmir Usmanov
f369324520
Generate continuation class for named functions
...
TODO: Generate label and result for suspend lambdas
2019-06-25 16:30:00 +03:00
Ilmir Usmanov
379390c472
Introduce add continuation pass, which transforms each suspend function
...
and call to have additional continuation parameter.
2019-06-25 16:30:00 +03:00
pyos
54d1df3147
JVM_IR: fix unbound function references
2019-06-25 12:29:23 +02:00
pyos
6a21285aed
JVM_IR: do not generate two nullary constructors
...
when the primary constructor with @JvmOverloads has default values for
all arguments.
2019-06-24 14:58:45 +02:00
pyos
8cca74c932
JVM_IR: support vararg & defaults in function references
2019-06-20 22:37:56 +03:00
pyos
b45e8c7021
JVM_IR: make CallableReferenceLowering a bit shorter
2019-06-20 22:37:56 +03:00
Vyacheslav Gerasimov
5a39c637c2
Build: Fix intellij dependency leak from ir tree module
2019-06-13 21:03:55 +03:00
Steven Schäfer
41ce88cb9b
Move eraseTypeParameters to IrUtils and use it in PromisedValue.coerce
2019-06-13 12:25:06 +02:00
Steven Schäfer
3ce0c336bc
Move IrReturnTarget.returnType to IrUtils
2019-06-13 12:25:06 +02:00
Steven Schäfer
ea3bae5fc9
Split voidValue into immaterialUnitValue and defaultValue
2019-06-13 12:25:06 +02:00
Steven Schäfer
27a850be92
Fix genValueAndPut in IrInlineCodegen
2019-06-13 12:25:06 +02:00
Steven Schäfer
f1f0c7e0a0
Take inline classes into account in JvmBuiltinOptimizationLowering
2019-06-13 11:24:16 +02:00
Steven Schäfer
69cf8d4df4
Produce source function names in CallableReferenceLowering
2019-06-13 11:24:15 +02:00
Steven Schäfer
9c957edcea
Implement inline classes in the JVM_IR backend
2019-06-13 11:24:15 +02:00
Ting-Yuan Huang
f07be024b7
JVM_IR: handle JvmDefault for bridges.
2019-06-12 07:43:45 +02:00
Mads Ager
71604851fe
JVM_IR: Allow delegated companion objects.
...
This currently leads to a compilation error due to metadata
generation.
2019-06-07 13:26:20 +02:00
Ting-Yuan Huang
a447c748bc
JVM_IR: support @JvmDefaults in compatibility mode.
2019-06-06 14:10:28 +02:00
Mads Ager
0c586ef5c1
JVM_IR: Maintain annotations in SAM conversion.
...
Copy method and parameter annotations to the generated SAM
implementation method.
2019-06-05 08:21:59 +02:00
Mikhael Bogdanov
81e6416bfe
Support bound callable reference inlining in IR
2019-06-04 14:56:13 +02:00
Mikhael Bogdanov
3c093f321d
Support unbound callable function references in inliner
2019-06-04 14:56:12 +02:00
Mikhael Bogdanov
bce774eda5
Jvm Ir. IrIntrinsicMethods.kt optimization: avoid 'IrClass.functions' call if it not necessary
2019-06-04 08:45:46 +02:00
Mikhael Bogdanov
30ab11575d
Jvm Ir. Optimization: avoid 'IrClass.functions' call if it not necessary
2019-06-04 08:45:45 +02:00
Roman Artemev
5686de7e09
[JS IR BE] Make kotlinx.io compile
...
- Fix expect/actual default arguments
- Fix dynamic type in inliner
- Fix external varargs
2019-05-31 13:14:43 +03:00
Ting-Yuan Huang
74e8c7c1c5
JVM_IR: generate default constructor
...
Quoted from https://kotlinlang.org/docs/reference/classes.html
"On the JVM, if all of the parameters of the primary constructor have
default values, the compiler will generate an additional parameterless
constructor which will use the default values. This makes it easier to
use Kotlin with libraries such as Jackson or JPA that create class
instances through parameterless constructors."
2019-05-30 18:53:27 +02:00
Georgy Bronnikov
d7dacef9af
JVM_IR: correct RetentionPolicy annotation generation
2019-05-30 19:04:31 +03:00
Alexander Udalov
e72388895b
JVM IR: invoke codegen after lowering all files in the module
...
Inspired by discussion in #2316
2019-05-30 13:28:31 +02:00
Mads Ager
dc5f4ab240
Add annotation to static methods on DefaultImpls.
2019-05-29 15:37:09 +02:00
Alexander Udalov
e9b50157da
Try loading PSI from descriptor in OtherOrigin constructor
...
To simplify several call sites
2019-05-29 10:23:19 +02:00
Dmitriy Novozhilov
bd87332b0c
Fix compiler errors in compiler detected after enabling @OnlyInputTypes in NI
2019-05-29 10:57:08 +03:00
Mads Ager
3f6492ab2a
JVM_IR: Restore lost top-level declaration check in annotation gen.
...
When moving away from descriptors, this top-level declaration check
was lost. That leads to many useless annotation elements in
inner classes attributes for annotations that are not inner classes.
2019-05-28 16:12:49 +03:00
Jiaxiang Chen
d3cc0e6ce9
JVM_IR: Optimize disjunction condition with intrinsic function call.
2019-05-28 08:48:43 +02:00
pyos
6d19eb1853
JVM_IR: sidestep defective getMethodAsmFlags when inlining lambdas
...
It uses isStaticMethod to determine whether to set ACC_STATIC, which is
not correct (see PR #2341 ). This results in using incorrectly typed
opcodes (as all arguments are shifted by 1) when modifying the inlined
lambda's bytecode. For example, in the test added by this commit, these
opcodes are inserted to spill the stack into locals before calling
another inline function.
Because getMethodAsmFlags is used by the non-IR backend (see PR #2341
again for why changing stuff might not be a good idea), the proposed
solution is to ditch it completely and override generateLambdaBody in
IrExpressionLambdaImpl to use FunctionCodegen's IR-based flag
computation logic.
2019-05-28 08:38:16 +02:00
Steven Schäfer
82e4985aa0
Fix dispatch receiver in JvmStaticAnnotationLowering
2019-05-28 08:10:45 +02:00
Steven Schäfer
0d31106738
Fix return type in ToArrayLowering
2019-05-28 08:10:45 +02:00
Steven Schäfer
64120e8220
Fix return type in SyntheticAccessorLowering
2019-05-28 08:10:45 +02:00
Steven Schäfer
e6f65d4260
Fix return types in EnumClassLowering
2019-05-28 08:10:45 +02:00
Steven Schäfer
2da0315d2e
Fix IR types in JVM_IR BridgeLowering
...
Properly implement the java erasure rules on IrTypes and fix the types
for dispatch and extension receivers.
2019-05-28 08:10:45 +02:00
Alexander Udalov
8dc34ae7b9
IR: rename {name,fqName}Safe -> {name,fqName}ForIrSerialization
...
These properties have a very specific detail in their behavior, in that
the constructor's name is set to be "<init>". While this is OK for the
IR serialization, this may not always be expected in other cases, and
their rather common names (`name`, `fqNameSafe`) suggested that these
properties could be used in generic contexts.
Change all usages outside IR serialization to use
`IrDeclarationWithName.name` and nullable
`IrDeclarationWithName.fqNameWhenAvailable` instead
2019-05-24 14:09:09 +02:00
pyos
4cd4ea126b
JVM_IR: generate more accessors for use in inline functions
2019-05-24 11:27:19 +02:00
pyos
cf74b5e87b
Mark callable reference classes as synthetic
2019-05-24 11:27:19 +02:00
Ting-Yuan Huang
bdcd6f73b1
Move tailrecPhase before defaultArgumentStubPhase
...
So that default values can be copied to the recursive call sites.
2019-05-24 09:51:07 +02:00
Mikhail Glukhikh
05154d24d4
Select stub or real symbol for java.lang.Class in IR dependent on mode
...
This commit fixes some black-box IR tests broken by stub introduction
2019-05-23 14:02:07 +03:00