Alexander Udalov
4b712bd14b
Remove dependency of backend-common on descriptors.jvm
2019-03-05 16:28:34 +01:00
Roman Artemev
b2cfef4902
[JS IR BE] Lazy initialize lowering properties
2019-03-04 23:24:12 +03:00
Roman Artemev
862ccd05df
[JS IR BE] Merge native fixes into Ir Serializer
2019-03-04 23:24:12 +03:00
Roman Artemev
d034ce106e
[JS IR BE] Implement isPrimitiveArray with pure Ir
2019-03-04 23:24:11 +03:00
Roman Artemev
3a444cd0f3
[JS IR BE] Move IrSerializer from native to JS
...
* Fix issues
2019-03-04 23:24:10 +03:00
Svyatoslav Kuzmich
e11fda1c49
[JS IR BE] Skip external methods in js default arguments stub generators
2019-02-28 20:13:56 +03:00
Svyatoslav Kuzmich
27005d7c2e
[JS IR BE] Basic support for external varargs
2019-02-28 20:13:56 +03:00
Svyatoslav Kuzmich
e9cdad1143
[JS IR BE] Remove support for dynamic symbols and descriptors
...
Dynamic expressions in IR are now represented as IrDynamicOperatorExpression
We don't have dynamic functions, dynamic dispatch receivers anymore
2019-02-28 20:13:55 +03:00
Georgy Bronnikov
5ff1337ec8
Add some phase checkers
2019-02-28 11:53:02 +03:00
Georgy Bronnikov
da13d3288e
Check pre- and postconditions on phases
2019-02-28 11:53:02 +03:00
Mark Punzalan
d4d5a6011c
Flatten nested string concatenation expressions into a single IrStringConcatenation, in a separate lowering phase.
...
Consolidating these into IrStringConcatenations allows the backend to produce efficient code for string concatenations (e.g., using StringBuilder for JVM).
2019-02-27 08:36:35 +01:00
Georgy Bronnikov
28bab6510e
Remove descriptors from JvmOverloadsAnnotationLowering
2019-02-23 00:42:16 +03:00
Georgy Bronnikov
c9b8f58a10
Restore overriddenSymbols consistency in InterfaceDelegationLowering
2019-02-23 00:42:16 +03:00
Georgy Bronnikov
9078cb87e8
Remove descriptors from InitializersLowering
2019-02-23 00:42:16 +03:00
Dmitry Petrov
c248dd29c2
IR: declaration builders, initial iteration, use in some JVM lowerings
2019-02-21 16:03:11 +03:00
Igor Chevdar
1d0fdd7976
[IR] Some fixes to wrapped descriptors
2019-02-20 10:39:30 +05:00
Alexander Udalov
d267f1e875
JVM IR: generate synthetic $annotations methods for properties
2019-02-19 17:25:47 +01:00
Alexander Udalov
c357967c2c
JVM IR: generate Kotlin metadata
...
Introduce MetadataSource as a way to store the original descriptor for
any element (before any lowerings) and maintain it until the end of the
codegen where it's used in generating the metadata. Note that JVM
signatures written to the metadata are formed from the _resulting_
generated elements, not by mapping the original descriptors.
Some corner cases are not supported yet, namely properties declared in
companion objects, synthetic methods for property annotations,
JvmPackageName, etc.
#KT-29119 Fixed
2019-02-19 16:37:47 +01:00
Alexander Udalov
8b395589be
JVM IR: fix incorrect IR types in inner and enum class lowerings
...
In InnerClassesLowering, the type of the "outer$0" expression should be
the outer class, not the inner class. In EnumClassLowering, the type of
the enum entry is the type of its class or the type of the enum class,
but not the type of initialierExpression which is always Unit
2019-02-07 21:25:59 +01:00
Georgy Bronnikov
ab1e334847
Reorganize phaser
2019-02-06 07:26:18 +03:00
Igor Chevdar
0ca28914a5
Minor changes in default arguments lowering
...
Calls to a function with default args can be not only
from function bodies, but for example from initializers
2019-01-31 18:19:40 +03:00
Igor Chevdar
9d84576021
Hack to help lowerings communisation in K/N
...
The hack breaks dependency LocalDeclarationsLowering —> CallableReferenceLowering
2019-01-31 18:19:40 +03:00
Igor Chevdar
07a576ec79
Supported enums in LocalDeclarationsLowering
2019-01-31 18:19:40 +03:00
Igor Chevdar
414899b482
Fixed copy/paste
2019-01-31 18:19:40 +03:00
Igor Chevdar
c765bd74d7
Made LateInitLowering the same in K/N as in other BEs
2019-01-31 18:19:39 +03:00
Mikhael Bogdanov
a122cba862
Switch Kotlin project to jvm-target 1.8
...
#KT-29405
2019-01-31 07:43:05 +01:00
Svyatoslav Kuzmich
a40448aebc
[JS IR BE] Use unsigned types lowering lazily
2019-01-24 16:14:40 +03:00
Georgy Bronnikov
ec0842c0f4
Remove descriptors from CallableReferenceLowering
2019-01-17 23:46:26 +03:00
Georgy Bronnikov
67ab8624c3
Add DeepCopyIrTreeWithDescriptors
2019-01-17 23:46:26 +03:00
Georgy Bronnikov
da0a823992
Remove descriptors from LocalDeclarationslowering
2019-01-17 23:46:26 +03:00
Svyatoslav Kuzmich
ebdbe7ec30
[JS IR BE] Fix fake override functions resolve
...
Use signature of function 'target' (a real function that will
be called instad of fake override) to make boxing/unboxing decision for
return value and type parameters on call site.
2019-01-16 12:11:27 +03:00
Alexander Gorshenev
2775153c1a
Got rid of an unecessary explicit cast.
2019-01-15 14:54:27 +03:00
Alexander Gorshenev
cea32bd4e3
Minor changes in preparation for IR deserialization.
2019-01-15 14:54:27 +03:00
Igor Chevdar
e640f01b4e
Fixed bug with IR parameter copying.
...
Constructors don't have their own type parameters
but rather inherit them from the parent.
2019-01-10 14:35:11 +03:00
Igor Chevdar
1eaf2d2c42
Typo fix
2019-01-10 14:35:11 +03:00
Igor Chevdar
2c0f93b133
IR: Supported special coroutine intrinsic
...
See https://youtrack.jetbrains.com/issue/KT-26317 for details
2019-01-10 14:35:11 +03:00
Igor Chevdar
621a9bd1df
Removed a Native specific lowering
2019-01-10 14:35:10 +03:00
Igor Chevdar
9fee03ca81
IR: Fixed some parents
2019-01-10 14:35:10 +03:00
Igor Chevdar
a78b80f8bf
IR fixes to help symbolization of K/N
2019-01-10 14:35:10 +03:00
Roman Artemev
d363763420
Fix wrapped descriptors
2019-01-10 14:35:10 +03:00
Dmitry Petrov
85f55dec9a
Support SAM conversion in psi2ir
...
SAM conversion takes a function value (function type or a subtype),
and produces a SAM interface value.
2018-12-19 10:58:34 +03:00
Roman Artemev
e436e7cf61
[JS IR BE] Support call super with default parameters
2018-12-18 15:55:09 +03:00
Roman Artemev
256317da15
[IR BE] Fix SharedVariableLowering
...
* make it able to detect shared vars under any declaration kind, not only IrFunction
* Add & update tests
2018-12-18 15:19:17 +03:00
Georgy Bronnikov
3b16fa6af9
Do not generate interface delegation for default parameter stubs
2018-12-18 13:57:23 +03:00
Georgy Bronnikov
5dd9cfca4d
Repair after merge
2018-12-10 17:26:55 +03:00
Georgy Bronnikov
f4a189fe82
Change order of arguments in IrValueParameter.copyTo
2018-12-10 17:26:55 +03:00
Georgy Bronnikov
c018109bca
React to review comments
2018-12-10 17:26:55 +03:00
Georgy Bronnikov
c9343c89bc
Mark java external declarations in IrFunction.origin
2018-12-10 17:26:55 +03:00
Georgy Bronnikov
cbc46fe6e4
JVM_IR. Mostly remove descriptors from InterfaceLowering
...
Descriptors are only used to generate a new method name via a call to
KotlinTypeMapper.
2018-12-10 17:26:55 +03:00
Georgy Bronnikov
55b65546fa
IR. Take care of type parameters for calls in DefaultArgumentStubGenerator
2018-12-10 17:26:55 +03:00