Anton Bannykh
9a56b0e6d6
[JS IR BE] Reorder phases in order to extract a common prefix
2019-03-15 14:56:31 +03:00
Anton Bannykh
017cd3a0f6
IR: more verbose unsatisfied phase requirement reporting
2019-03-15 14:55:10 +03:00
Anton Bannykh
9dd9ef1cf0
IR: Make Phaser complain about duplicate phase names
...
(instead of silently throwing away all but the last phase
with the same name)
2019-03-15 14:55:10 +03:00
Alexander Gorshenev
0c8f0a433d
Copying kotlin-native fix
...
* commit 575cbf48c3
| Author: SvyatoslavScherbina <Svyatoslav.Scherbina@jetbrains.com >
| Date: Thu Mar 14 14:25:10 2019 +0300
|
| Optimize DescriptorReferenceDeserializer again (#2755 )
to common ir deserializer.
2019-03-15 12:48:48 +03:00
Alexander Gorshenev
ee7660065b
Changes after code review
2019-03-15 03:03:08 +03:00
Alexander Gorshenev
f8be378a65
Port of native fix to common deserializer
...
* commit 347e2dadc6
| Author: Igor Chevdar <igor.chevdar@jetbrains.com >
| Date: Wed Mar 6 12:51:40 2019 +0300
|
| [Serializer] More graceful fix of parents
2019-03-15 03:03:08 +03:00
Alexander Gorshenev
cc93239397
Commonized native and js IR serialization infrastructure
2019-03-15 03:03:08 +03:00
Georgy Bronnikov
d7ce24410d
Remove descriptors from SharedVariablesManager
2019-03-13 23:13:41 +03:00
Alexander Udalov
a269e9bc00
JVM IR: fix typo in condition in KCallableNamePropertyLowering
...
This however makes testLocalFunctionName fail because currently
isSubclassOf (incorrectly) returns false and therefore an anonymous
class is generated and the name is taken from there. The name there is
"box$OK" which is incorrect. The isSubclassOf issue is KT-28198 and will
be fixed separately; the incorrect name issue will be investigated later
2019-03-12 18:49:41 +01:00
Igor Chevdar
2c7b05a67b
Wrapped descriptors: supported complex annotations
2019-03-06 13:25:06 +03:00
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