Commit Graph

199 Commits

Author SHA1 Message Date
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