Ting-Yuan Huang
06d3c6f233
Support repeated analysis and frontend-only-mode in K2JsIrCompiler
2021-08-12 18:01:58 +03:00
Ting-Yuan Huang
e75ca75e3e
K2JsIrCompiler: hoist common front-end preparation logic
...
Instead of creating ModuleStructure and run analysis in each backend,
the common preparation logic is moved into K2JsIrCompiler.doExecute().
2021-08-12 18:01:56 +03:00
Igor Laevsky
94af3adb4b
WASM: Disable flaky test
2021-08-12 17:32:35 +03:00
Alexander Udalov
d124239025
JVM IR: do not attempt to mangle function expressions
...
For some reasons, lambdas and function expressions are represented
slightly differently in psi2ir. Lambdas are translated to a block with a
function of origin LOCAL_FUNCTION_FOR_LAMBDA and name "<anonymous>", but
function expressions are translated to a block with DEFINED function
"<no name provided>".
Tweak the condition for detecting local functions a bit, to avoid
similar situation in the future if we add some other origins for local
functions.
#KT-48207 Fixed
2021-08-12 13:50:23 +02:00
Mads Ager
608b88996a
[JVM_IR] Fix inlining of callable references to extension methods.
...
Check directly that the referenced function is an extension
function instead of relying on the annotation on the type.
^ KT-47988 Fixed.
2021-08-11 13:29:11 +02:00
Roman Artemev
d3ddeef67f
[JS IR] Wrap private top level function with internal accessor stub
...
In case internal inline function references private top level function
after inline such function (T.L.P.) couldn't be referenced
in klib and IC cache. So create internally visible accessors for P.T.L.
function similar to what JVM backend does.
- add box test
2021-08-10 19:52:08 +03:00
Roman Artemev
b3dbca7ea6
[JS IC] Fix test runner
2021-08-10 19:52:07 +03:00
Ilya Goncharov
22d202e657
[JS IR] Add test on type check of suspend functional interfaces
...
^KT-46204 fixed
2021-08-10 07:24:47 +00:00
Georgy Bronnikov
54957ead5c
JVM_IR: add test for signatures of flexible types
2021-08-10 00:37:27 +03:00
Alexander Udalov
376b420d1a
Fix warnings in JS/WASM modules
2021-08-06 22:36:22 +02:00
Igor Laevsky
331681b40b
WASM: Add different debug levels to the test runner
2021-08-06 17:34:22 +03:00
Victor Petukhov
1966915e92
Create DONT_CARE type only for dependent lambdas (i.e. to be resolved through the type inference later)
...
^KT-47493 Fixed
2021-08-06 13:27:56 +03:00
Dmitry Petrov
02d8c7527e
JVM_IR more aggressive if-null expressions fusion
...
Assume that changing a return type from T to T?
is not a binary-compatible change.
2021-08-05 17:51:49 +03:00
Igor Laevsky
af865544ff
WASM: Implement string hashcode
2021-08-04 16:23:38 +03:00
Igor Laevsky
c526145a48
WASM: Disable bunch of tests which expose the same issue after switch to the wasm native strings
2021-08-04 16:23:37 +03:00
Igor Laevsky
2538caa84f
WASM: NFC. Rename string import/export functions
2021-08-04 16:23:31 +03:00
Igor Laevsky
ebde1e5491
WASM: Crude println implementation with the wasm-native strings
2021-08-04 16:23:30 +03:00
Igor Laevsky
0f84525bdc
WASM: Implement wasm-native strings part 1
...
There are several changes here but they all required for at least one test to pass.
- Implemented String class and several utility functions using built-in CharArray
- Added new constant memory segment to hold string literals and required funcs to work with them
- Added very crude mostly incorrect rudimentary ability to pass strings back to javascript
2021-08-04 16:23:28 +03:00
Dmitriy Novozhilov
4f73ebbcbd
[Test] Migrate tests for java 9 to regular test infrastructure
2021-08-01 22:23:39 +03:00
Alexander Udalov
0a6d010d1c
Support new repeatable annotations in kotlin-reflect
...
- Unwrap Kotlin-repeatable annotations (with implicit container)
- Introduce `KAnnotatedElement.findAnnotations` to find instances of
repeated annotations
#KT-12794
2021-07-30 19:53:33 +02:00
Alexander Udalov
87130edfa2
Support using Java-repeatable annotations in Kotlin
...
#KT-12794
2021-07-30 19:53:32 +02:00
Victor Petukhov
20d50cfee7
Prevent leaking of type parameter erasion results cache into static scope
2021-07-29 14:23:55 +03:00
Victor Petukhov
6706ee87ad
Introduce TypeParameterUpperBoundEraser to memorize results of type parameters erasion computation
...
^KT-47785 Fixed
2021-07-29 14:23:54 +03:00
pyos
e9b177352c
JVM_IR: do not inline reads of constructor arguments into accessors
2021-07-28 02:16:01 +02:00
Dmitry Petrov
34f5b85ae5
IR KT-47840 fix-point solution for closure conversion
2021-07-23 14:58:23 +03:00
Roman Artemev
f768d5b453
[JS TEST] Refactor test runner a bit
...
Build IC cache for library right after its compilation
2021-07-22 21:56:57 +03:00
Roman Artemev
0310f7cb0b
[JS IC] Lot of fixes after rebase
2021-07-22 21:56:57 +03:00
Anton Bannykh
20088994c1
JS IC: IC lowerings prototype
2021-07-22 21:56:55 +03:00
Leonid Startsev
83c1a75c1e
Revert "Revert "Instantiation of annotations for JVM IR with the corresponding feature flag""
...
Fix incorrectly rebased ce0a3a57df
This reverts commit 3d0126d5
2021-07-21 18:24:07 +03:00
Leonid Startsev
3d0126d5dd
Revert "Instantiation of annotations for JVM IR with the corresponding feature flag"
...
because of incorrect rebase
This reverts commit ce0a3a57
2021-07-21 15:23:24 +03:00
Leonid Startsev
ce0a3a57df
Instantiation of annotations for JVM IR with the corresponding feature flag
...
Seperate checker for platforms that do not support this language feature yet
Synthetic implementations of annotations are generated on-demand with proper
equals, hashCode, and annotationType methods
#KT-47699 Fixed
2021-07-21 10:23:51 +00:00
Mads Ager
6436a1686d
[JVM_IR] Recursively perform constant lowering.
...
Otherwise constants in child expressions are not transformed.
^KT-47716 Fixed.
2021-07-21 02:11:41 +02:00
Mads Ager
2877f1cabe
[JVM_IR] Fix check for inline class property backing in lowering.
...
The inline class lowering would attempt to lower a companion object
property backing field.
^KT-47762 Fixed.
2021-07-21 01:56:46 +02:00
Dmitry Petrov
d41fc0b599
PSI2IR fix suspend conversion tests
...
- support chained suspend conversion + SAM conversion
- support suspend conversion in vararg elements
2021-07-17 09:10:19 +03:00
Victor Petukhov
0cc6fbbc6e
Add tests for converting expressions of function types to suspending functional types
2021-07-17 09:10:17 +03:00
Mads Ager
b51ff799cb
Fix IteratorNext intrinsic to cast its dispatch receiver to
...
the expected type.
^KT-47741 Fixed.
2021-07-16 21:07:11 +02:00
Victor Petukhov
357fda2efa
Initialize builder inference lambda anyway, even a call is inapplicable
...
^KT-47744 Fixed
2021-07-16 19:32:35 +03:00
Ilya Chernikov
c9b6847d83
FIR: Add test on delegated member with default param in overridden...
...
sensitive to the file processing order, therefore failing on the
current fir2ir at least with the new irBuiltIns
2021-07-16 02:24:36 +03:00
Ilya Chernikov
dee0487185
IR: Refactor IrBuiltIns to abstract it from descriptors
2021-07-16 02:24:18 +03:00
Svyatoslav Kuzmich
a468792a19
[Wasm] Support Milestone 3 of V8 Wasm GC
...
Advance V8 version to 9.2.212
Relevant Wasm GC changes:
https://github.com/WebAssembly/gc/commit/f9f8ffa445c2c0fe4ac284a1d12a8c5477da4457
2021-07-15 10:59:06 +00:00
Georgy Bronnikov
96ce124268
JVM_IR: serialize fake overrides in IR
2021-07-14 21:20:21 +03:00
pyos
07cb3a5ff8
JVM: do not reify methods of objects in lambdas
...
All type parameters used in them are not from the inline function
anyway.
2021-07-14 10:11:05 +02:00
pyos
100d2d629c
JVM: inline default lambda coercions from bridge invoke
...
The type of the default lambda may be a subtype of the parameter type,
so we can't really generate our own coercions at all as we don't know
the precise Kotlin type of the `invoke` method.
2021-07-14 10:11:05 +02:00
Dmitry Petrov
dc16d66fb1
Minor: regenerate tests
2021-07-13 21:23:17 +03:00
Roman Artemev
0a49b24320
[JS IR] Move klib resolution from cli into compiler
...
Simplify CLI -> Compiler API
Clean up code
2021-07-13 14:43:40 +03:00
Roman Artemev
103e4ef2a5
[JS IR] Disable ts export check in PIR mode in box tests
...
Since that feature is not declared as working yet
2021-07-13 14:43:38 +03:00
pyos
d988853c11
JVM_IR: optimize out redundant delegated property receiver fields
...
Now this:
class C {
val x = something
val y by x::property
}
is *exactly* the same as this:
class C {
val x = something
val y get() = x.property
}
(plus a `getY$delegate` method)
2021-07-12 22:38:45 +02:00
pyos
6897e89bbc
JVM: add tests for optimized getDelegate
2021-07-12 22:38:45 +02:00
pyos
e49410e07b
JVM_IR: optimize delegation by property references
...
E.g. a statement like
var x by ::y
is semantically equivalent to
var x
get() = y
set(value) { y = value }
and thus does not need a full property reference object, or even a field
if the receiver is not bound.
#KT-39054 Fixed
#KT-47102 Fixed
2021-07-12 22:38:43 +02:00
Ilmir Usmanov
ac7538a269
Set receivers for inline class default function stub calls
...
Default function stubs have dispatch and receiver parameters, but
inline class methods are static by design with receivers as ordinary
parameters. So, take these parameters and set them as receivers during
lowerings.
#KT-46230: Fixed
2021-07-12 19:46:09 +03:00