Svyatoslav Kuzmich
befc371f6a
[JS IR BE] Fix bridges construction function handle
2019-01-16 12:11:28 +03:00
Svyatoslav Kuzmich
912f0a267f
[JS IR BE] Use return type in function signature for inline classes
...
Bridge function should be created when return type of override function
is specialised to unboxed inline class. Thus return type should be used in
function signature.
Non-inline-class return types are not added to signature for interop and
infrastructure reasons ("toString" would become "toString_ret$kotlin_String")
2019-01-16 12:11:27 +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
1ba4770800
A little fix to allow Wrapped and non-Wrapped descriptors to coexist.
2019-01-15 14:54:27 +03:00
Denis Zharkov
5cc242e878
Refactor FunctionHandle::isInterfaceDeclaration
...
- Give it more clear name mayBeUsedAsSuperImplementation
because defining if it can be used as super-implementation
this is what it used for
- The meaning is negated, so it's needed to negate its usages and impls
- Also, reuse it in findSuperImplementationForStubDelegation
2019-01-14 14:54:18 +03:00
Roman Artemev
d35b20f764
[JS IR BE] Implement private members lowering to extract private methods from class and transform them into static function
...
* fix kotlin.Long
* update tests
2019-01-11 20:28:04 +03:00
Roman Artemev
75996b1c8e
[JS IR BE] Fix class generator
2019-01-11 20:28:04 +03:00
Roman Artemev
23fc950ae6
[JS IR BE] Fix suspend function lowering
2019-01-11 20:28:04 +03:00
Roman Artemev
c725f4ce32
[JS IR BE] Secondary constructors lowering refactoring
...
* make it per-file
2019-01-11 16:13:26 +03:00
Igor Chevdar
1bef26c80e
[JS IR] Fixed bug with constructors type parameters
2019-01-10 14:35:11 +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
Georgy Bronnikov
c018109bca
React to review comments
2018-12-10 17:26:55 +03:00
Roman Artemev
eff81525d3
Make IrField be IrDeclarationParent
...
* fix parent in TypeOperatorLowering
2018-12-07 17:58:20 +03:00
Roman Artemev
ce70e5850f
[JS IR BE] New Inliner from native
2018-12-07 17:58:20 +03:00
Roman Artemev
30cc5f6d3c
Support Ir Validation in phaser
2018-12-04 19:45:15 +03:00
Roman Artemev
de1cbc396e
Implement JS IR Phaser
2018-12-04 19:45:15 +03:00
Svyatoslav Kuzmich
8359887696
[JS IR BE] Fix inline classes workarounds
...
- Remove uninitialized return type check
- Remove unbound classifier symbol check
2018-12-03 13:07:41 +03:00
Svyatoslav Kuzmich
59032c384e
[JS IR BE] Validate parents
2018-11-29 15:36:57 +03:00
Svyatoslav Kuzmich
39cdee8d6c
[JS IR BE] Enable IrValidator
2018-11-29 15:36:56 +03:00
Svyatoslav Kuzmich
2172a12df4
[JS IR BE] Eliminate identical IrElements duplicates
2018-11-29 15:36:56 +03:00
Svyatoslav Kuzmich
ba0f652e02
[JS IR BE] Fix parameters parents
2018-11-29 15:36:56 +03:00
Svyatoslav Kuzmich
d5f8c63130
[IR] Add returnType to consturcotrs of IrFunctionBase
2018-11-29 15:36:56 +03:00
Svyatoslav Kuzmich
fe6b36391d
[JS IR] JsIrBuilder - add returnType and parent to buildFunction
2018-11-29 15:36:56 +03:00
Svyatoslav Kuzmich
0bf3199c19
Support nullable inline classes
2018-11-08 15:00:33 +03:00
Svyatoslav Kuzmich
370b04df35
[JS IR BE] Inline classes lowering
2018-11-08 15:00:30 +03:00
Svyatoslav Kuzmich
4866c2b36a
[IR] Move irCall from JS backend to common utils
2018-11-08 15:00:09 +03:00
Svyatoslav Kuzmich
dd20775662
[IR] Move IrFunction.isStatic from JS to Common
2018-11-08 15:00:08 +03:00
Svyatoslav Kuzmich
4f6a18e29a
[IR] Update parents when transforming declaration containers
2018-11-08 15:00:08 +03:00
Svyatoslav Kuzmich
38b31e8f7d
[JS IR BE] Fix reusing expression instances
2018-11-08 15:00:08 +03:00
Svyatoslav Kuzmich
47b0f94903
[JS IR BE] Fix funny safe call
2018-11-08 15:00:08 +03:00
Svyatoslav Kuzmich
27ff4da94d
[JS IR BE] Bugfix: set overriden symbols for generated bridges
2018-11-08 15:00:08 +03:00
Roman Artemev
0e7520fde3
[JS IR BE] Fix GetClass on primitive type
2018-11-01 16:51:44 +03:00
Roman Artemev
2d03f87ea5
[IR BE] Support lateinit locals and isInitialized property
...
* update tests
2018-11-01 16:51:43 +03:00
Roman Artemev
535eea7f48
[JS IR BE] fix enum initialization
2018-11-01 16:51:42 +03:00
Roman Artemev
b86e2e6dc0
[JS IR BE] Fix EnumClassLowering
...
* make it incremental
* fix access to enum entry from different module
* drop ExternalEnumLowering
2018-11-01 16:51:42 +03:00
Roman Artemev
12848d4eff
[JS IR BE] Support in callable references
...
* default params
* vararg
Minor refactoring
2018-11-01 16:18:44 +03:00
Roman Artemev
fb709cae92
[JS IR BE] Fix private field names
2018-11-01 16:18:44 +03:00
Roman Artemev
ffdfec4815
[JS IR BE] Minor refactoring
2018-10-25 15:49:33 +03:00
Roman Artemev
080e1ad5b5
[JS IR BE]
...
* Fix type parameters for callable references
* Visit IrCallableReference tree as well
2018-10-25 15:49:22 +03:00
Roman Artemev
04bf93c1bc
[JS IR BE] Refact CallableReferenceLowering
...
* fix cross-module references
* make it incremental
2018-10-25 15:49:20 +03:00
Roman Artemev
43d14ed954
[JS IR BE] Put closure function declaration in container (factory function)
2018-10-25 15:49:20 +03:00
Roman Artemev
9515de0b7e
[JS IR BE] Fix name clash between top-level fields
2018-10-25 15:48:42 +03:00
Roman Artemev
91ea377622
[JS IR BE] Fix translation for float literals
2018-10-25 15:48:42 +03:00
Roman Artemev
276000a974
[JS IR BE] Fix exceptions
...
* set message property in the correct way
* set proper name for each Throwable successor
2018-10-25 15:48:42 +03:00
Roman Artemev
6a05b1eee5
[JS IR BE] Add noWhenBranchMatchedException
...
* refact exception helpers
2018-10-25 15:48:42 +03:00
Roman Artemev
3bea3eca2b
[JS IR BE] Support external enum classes
...
* add lowering pass
* fix EQEQ operator
2018-10-25 15:48:42 +03:00
romanart
eed22b0485
[JS IR BE] Add isTopLevel property to IrFunction
2018-10-25 15:48:42 +03:00
Roman Artemev
fced46ffaf
[JS IR BE] Fix block decomposer
2018-10-25 15:48:42 +03:00