Mikhail Zarechenskiy
ac8fbce249
Fix false "useless cast" when target type is flexible
...
#KT-17820 Fixed
2017-05-15 11:24:39 +03:00
Dmitry Neverov
cd24adac32
Detect redundant 'is' check
...
#KT-14187 Fixed
2017-05-15 11:24:35 +03:00
Anton Bannykh
e098de5e33
JS: fix char boxing in elvis expressions (#KT-17700 fixed)
2017-05-11 21:31:38 +03:00
Alexey Andreev
1900b20e6e
Implement inlining of Array constructor in JS BE
...
See KT-15456
2017-05-11 17:10:45 +03:00
Mikhael Bogdanov
97bcf9f538
Add default lambda inlining prototype
2017-05-11 11:06:47 +02:00
Mikhail Zarechenskiy
fba52359ac
Add tests for obsolete issues
...
#KT-13112 Obsolete
#KT-14249 Obsolete
2017-05-10 13:52:26 +03:00
Mikhail Zarechenskiy
adb8e60615
Fix resolve of last destructuring declaration in block
...
Last declaration in block is resolved in DEPENDENT mode because it has
influence on return type and therefore fake call for destructuring declaration
wasn't completed (see `getBlockReturnedTypeWithWritableScope`)
Now we resolve fake call for destructuring declaration in INDEPENDENT
mode as it doesn't have effect on return type
#KT-15480 Fixed
2017-05-05 21:30:38 +03:00
Mikhail Zarechenskiy
7530a9426f
Warn about val reassignment via backing field
...
#KT-16681 In Progress
2017-05-05 21:30:37 +03:00
Mikhail Zarechenskiy
7541a3754d
Move SAM constructors to synthetic scope
2017-05-05 21:30:35 +03:00
Mikhail Zarechenskiy
95ede7fb67
Move SAM adapters from static scope to synthetic one
2017-05-05 21:30:10 +03:00
Denis Zharkov
7c6a15ddfe
Treat inline suspend functions as inline-only
...
Now their bodies don't have real state machines, thus they cannot
be called correctly from Java
#KT-17585 In progress
#KT-16603 In progress
2017-05-05 14:14:38 +03:00
Denis Zharkov
b3f66c7641
Remove $ character from fake continuation parameter
...
The reason is that when it gets captured into the field
having name $$continuation inliner fails with an exception
as it skips fields starting with '$$'
At the same time it doesn't really matter how to call
that parameter because it's only visible in Java
#KT-17585 In Progress
#KT-16603 In Progress
2017-05-05 14:14:37 +03:00
Denis Zharkov
5b5f612a7c
Support new strategy for suspend inline functions
...
The main idea is to leave all the inline functions as is, without
state machines (but keeping suspend-calls markers) and
determine whether we need a state machine from the bytecode
after inlining into a non-inline function
#KT-17585 In Progress
#KT-16603 In Progress
#KT-16448 Fixed
2017-05-05 14:14:00 +03:00
Denis Zharkov
d92c403f9e
Move helpers for coroutine tests in separate package
...
It will help to skip their content when rendering bytecode listing
for box tests
2017-05-05 14:01:50 +03:00
Mikhail Glukhikh
7271ca0b72
KT-13997 related: fix of JS relevant test
2017-05-05 11:17:52 +03:00
Dmitry Petrov
f5fde2c24f
Dump absent type arguments
2017-05-05 09:59:30 +03:00
Dmitry Petrov
ddb2b7508b
Generate property initializer within property scope
2017-05-05 09:59:30 +03:00
Dmitry Petrov
8e84862afa
Generate do-while condition within loop body scope
2017-05-05 09:59:30 +03:00
Dmitry Petrov
fdb4de355c
Use original descriptors to create symbols for callable references
2017-05-05 09:59:30 +03:00
Dmitry Petrov
c2601c947f
Postpone call arguments generation in compound assignment expressions
...
Otherwise RHS is generated twice, causing ISE in symbol binding
2017-05-05 09:59:30 +03:00
Anton Bannykh
2e9a59819a
JS: support internal visibility from friend modules
...
Friend modules should be provided using the -Xfriend-modules flag
in the same format as -libraries. No manual configuration required for
JPS, Gradle and Maven plugins.
Friend modules could be switched off using the -Xfriend-modules-disabled
flag. Doing that will
* prevent internal declarations from being exported,
* values provided by -Xfriend-modules ignored,
* raise a compilation error on attemps to use internal declarations from other modules
Fixes #KT-15135 and #KT-16568.
2017-05-04 21:44:17 +03:00
Anton Bannykh
7503376731
JS: unmute box/test/coroutinessuspendFunctionAsCoroutine/inlineTwoReceivers.kt
2017-05-04 16:47:00 +03:00
Mikhail Glukhikh
1273166ed0
Do not report redundant else for enum / sealed from another module
...
Related to KT-17497
2017-05-04 14:17:43 +03:00
Mikhail Glukhikh
14886827a2
Introduce warning REDUNDANT_ELSE_IN_WHEN #KT-17497 Fixed
2017-05-04 14:17:41 +03:00
Mikhail Glukhikh
e53c548ead
Consider property external if all accessors are external #KT-13997 Fixed
2017-05-04 14:17:40 +03:00
Dmitry Petrov
d5feb2d6f4
Deep copy fixes + sanitize file names for module dumps
2017-05-04 13:51:17 +03:00
Dmitry Petrov
506941e7e0
Optimize range operations for 'until' extension from stdlib (KT-9900)
...
NB: for-in-until loop is generated as precondition loop, because the
corresponding range is right-exclusive (and thus we have no problems
with integer overflows).
2017-05-04 10:09:42 +03:00
Dmitry Petrov
1eb693b8ee
Transform variable-as-function calls for extension functions
...
In the following code example
fun test(f: Any.() -> Unit) = 42.f()
front-end resolves variable-as-function call for 'f' as 'invoke'
with signature 'Function1<Any, Unit>#Any.() -> Unit'.
However, Function1<Any, Unit> has a single 'invoke' method
with signature 'Function1<Any, Unit>#(Any) -> Unit'.
This didn't cause any problems with loosely typed JVM and JS back-ends.
However, in IR with symbols this means a reference to non-existing
declaration.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
0203ba4dff
Use stable order when generating stubs for scope members
2017-05-04 09:33:03 +03:00
Dmitry Petrov
17706d0fb6
Generate parameter declarations for synthetic members of enum classes
2017-05-04 09:33:03 +03:00
Dmitry Petrov
c4346f95ff
Minor: fix testData format local delegated properties with 'suspend'
2017-05-04 09:33:03 +03:00
Dmitry Petrov
8b32d54a62
Minor: fix testData format for IR source range tests
2017-05-04 09:33:03 +03:00
Dmitry Petrov
78a601af87
Generate parameter declarations for fake overrides
2017-05-04 09:33:03 +03:00
Dmitry Petrov
fa4dc26814
Put 'thisReceiver' declaration in class
...
Interfaces also have 'thisReceiver'
2017-05-04 09:33:03 +03:00
Dmitry Petrov
90ec53b3b0
Generate catch-block body within proper scope
2017-05-04 09:33:03 +03:00
Dmitry Petrov
aa515a9e5a
Add test for outer class instance reference from inner class
2017-05-04 09:33:03 +03:00
Dmitry Petrov
6f2c8140cf
IrDelegatingConstructorCall should have substituted descriptor
2017-05-04 09:33:03 +03:00
Dmitry Petrov
a511540aad
Render receivers as 'this@owner: type'
...
Add test for generic inner class with generic outer class.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
1bf6f8fc57
Do not generate separate type parameter declarations for constructors
2017-05-04 09:33:03 +03:00
Dmitry Petrov
a840cf7643
Fix source range tests: support "undefined" offsets
2017-05-04 09:33:03 +03:00
Dmitry Petrov
2b0d3440ad
Descriptors in calls are substituted,
...
and symbols refer to the original descriptors.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
d7a362b4f6
Binding: all current tests are green.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
2b48908586
Local delegated properties implementation + some more fixes
2017-05-04 09:33:03 +03:00
Dmitry Petrov
c9777fd79f
Add symbols to references
...
TODO: fix some more tests
2017-05-04 09:33:03 +03:00
Dmitry Petrov
0595e93952
Use SymbolTable to create symbols for declarations
...
Introduce hierarchical sub-tables (for variables, type parameters, and value parameters).
First version passing all tests.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
a416cddcb2
Generate declarations for FAKE_OVERRIDE members
2017-05-04 09:33:03 +03:00
Dmitry Petrov
8cea27b5bb
Generate IrTypeParameter and IrValueParameter declarations
2017-05-04 09:33:03 +03:00
Ilya Chernikov
15ccd28e2e
Switch old IDE/CLI repls to the new infrastructure
...
should also fix #KT-5822
2017-05-03 18:11:45 +02:00
Mikhael Bogdanov
84eeed51b1
Restore accidentally removed parameter index passing to call generator
...
Parameter index was removed in
7690a8bc3e commit:
"Get rid of redundant 'afterParameterPut' method from call generators"
#KT-17653 Fixed
2017-05-03 12:56:15 +02:00
Igor Chevdar
962bce19a2
Enabled tests on coroutines for native
2017-05-03 10:42:07 +03:00