Alexander Udalov
b4051c4577
Do not generate unnecessary super-call checks for functions with defaults
...
Such check should only be generated for a function in an open class
#KT-11962 Fixed
2016-12-27 16:22:12 +03:00
Mikhael Bogdanov
4c9bac084c
Fix for KT-15437: VerifyError: Bad local variable type on simplest provideDelegate
...
#KT-15437 Fixed
2016-12-27 14:07:37 +01:00
Mikhael Bogdanov
f1c1fcf0fc
Fix for KT-11969: ProGuard issue with private interface methods
...
#KT-11969 Fixed
2016-12-27 14:07:37 +01:00
Alexander Udalov
f8a88bdffb
Fix "Rewrite at slice LEXICAL_SCOPE" for callable references
...
For special calls (when-expressions, if-expressions, etc.), do not attempt to
get type of the argument expression, which is the block with the callable
reference, instead get type of the callable reference itself. The difference
matters because for block expressions, a new lexical scope is created for each
getTypeInfo (see ExpressionTypingServices.getBlockReturnedType), and we do not
support rewrites of this value in the binding trace
#KT-12044 Fixed
2016-12-27 10:45:46 +03:00
Mikhail Zarechenskiy
38a2518498
Fix computation of erased receiver for intersection types
...
#KT-9630 Fixed
2016-12-26 22:34:40 +03:00
Ilya Gorbunov
85232ffa07
Drop deprecated pre-1.0 API. Remove remaining usages in tests.
2016-12-26 19:07:20 +03:00
Alexey Andreev
11ce184d8e
JS: add suspendCoroutine function
2016-12-26 12:45:14 +03:00
Alexey Andreev
1ecd957981
JS: fix translation of delegated constructor call from secondary constructor when argument is a complex expression which translates to multiple statements. See KT-15357
2016-12-22 17:19:24 +03:00
Alexey Andreev
1ab78dffe5
JS: fix translation of for statement when either next or hasNext method translates to multiple statements. Fix KT-15367
2016-12-22 17:19:24 +03:00
Alexey Andreev
cef32b3327
JS: initialize fields of coroutine state machine with undefined value so that they match local variable semantics. Fix KT-15366
2016-12-22 17:19:23 +03:00
Mikhael Bogdanov
ef825a7559
Fix for KT-14868: CCE in runtime while converting Number to Char
...
#KT-14868 Fixed
2016-12-22 09:44:24 +01:00
Denis Zharkov
8475869fb3
Support common calls on suspend function typed values
...
Also support multiple value parameters in suspend function type
#KT-15379 Fixed
#KT-15380 Fixed
2016-12-22 11:15:52 +03:00
Dmitry Petrov
8fe9de1d35
Generate toArray methods defined in classes inherited from collections as public even if they are declared with different visibility in Kotlin.
2016-12-21 10:50:17 +03:00
Alexey Andreev
eb5c79c70d
JS: support int overflow behaviour in augmented assignment
2016-12-20 15:47:38 +03:00
Alexey Andreev
c411a8febe
JS: update tests
2016-12-20 15:47:37 +03:00
Ilya Gorbunov
10f8e70322
Rename ClosedComparableRange to ClosedFloatingPointRange
2016-12-19 18:36:52 +03:00
Denis Zharkov
a1ac77d382
Support async iterator case with coroutines
...
Not all the `hasNext` operators return types is exactly Z,
suspend operators return boxed versions.
So the fix is just coercing result value after invoked function to Z
2016-12-19 11:07:33 +03:00
Denis Zharkov
5dbc04abbb
Refine returns codegen for suspend functions
...
This change should make the logic a bit more simple.
For all suspend functions/coroutines treat them in expression codegen
like they return boxed version of the original type.
Everything works fine then, except Unit type functions:
their bodies must be generated just like they're VOID and then load
Unit on stack manually.
2016-12-19 11:07:32 +03:00
Alexander Udalov
49de52e7ef
Fix kotlinFunction for inline reified methods in reflection
...
Inline functions with reified type parameters are generated as private (see
AsmUtil.specialCaseVisibility), so we should treat them as "declared" in
reflection to look them up via getDeclaredMethod, not getMethod
#KT-14721 Fixed
2016-12-16 13:12:41 +03:00
Stanislav Erokhin
d7566d84d0
Fixed testdata.
2016-12-16 02:01:12 +03:00
Stanislav Erokhin
b527a4d158
Global rename in test data for coroutines
...
(cherry picked from commit 132f97b)
2016-12-15 23:58:26 +03:00
Alexey Andreev
e2d969d8b0
JS: implement new coroutine convention
2016-12-15 23:58:20 +03:00
Dmitry Petrov
9fd1ac72a9
Purge remaining traces of @AllowSuspendExtensions.
2016-12-15 23:58:19 +03:00
Denis Zharkov
8387d04425
Revert "Add special tests for interceptRun support"
...
This reverts commit 01c21e218a .
2016-12-15 23:57:59 +03:00
Stanislav Erokhin
e014fb7181
Added coroutine import to back-end test.
2016-12-15 23:57:52 +03:00
Stanislav Erokhin
7d1b883171
Replace @Suspend to suspend in box tests.
2016-12-15 23:57:50 +03:00
Denis Zharkov
6649f64e9f
Support new coroutine convention in JVM backend
2016-12-15 23:57:40 +03:00
Alexey Andreev
1bcb225afa
JS: fix translation of invoke convention call when it is declared as extension member inside class. See KT-15073
2016-12-15 19:53:37 +03:00
Alexey Andreev
c82f8213b0
JS: extract outer class reference as dispatchReceiver from ResolvedCall, to include it into UsageTracker mechanism. This allows to capture outer class of super class in local classes. See KT-13166
2016-12-15 19:05:34 +03:00
Alexey Andreev
87f4e53544
JS: when translating nested classes of local classes, capture closure variables via outermost local class. See KT-12566
2016-12-15 19:05:34 +03:00
Alexey Andreev
b50bfaf071
JS: add test to prove that KT-14419 is not more reproducible. Add test to prove that extension delegate with extension getValue is translated correctly.
2016-12-15 19:05:33 +03:00
Alexey Andreev
b21f906856
JS: add tests to prove that compiler does not optimize RTTI and safe calls based on type information. Remove corresponding optimization for !! operation. See KT-14033
2016-12-15 19:05:33 +03:00
Anton Bannykh
1957ac347a
JS: make enum valueOf() throw if not found.
2016-12-15 17:58:40 +03:00
Mikhail Zarechenskiy
5a829809d9
Add operator 'rem' as extension to BigInteger
...
#KT-14650 Fixed
Note that after this change behaviour of '%' on BigInteger is changed,
now it works like a proper remainder
2016-12-14 15:29:00 +03:00
Alexey Andreev
d9cf15a665
JS: deparenthesize LHS of assignment before choosing appropriate AccessTranslator. Fix KT-15169
2016-12-13 14:05:25 +03:00
Stanislav Erokhin
9dc9fb578f
Rename toDelegateFor to provideDelegate.
2016-12-12 23:14:07 +03:00
Alexey Andreev
a01fac9d10
JS: support toDelegateFor in JS backend (see KT-15163)
2016-12-12 23:14:05 +03:00
Mikhael Bogdanov
937a933150
Support local 'toDelegatedFor' properties
2016-12-12 23:14:02 +03:00
Mikhael Bogdanov
c5e14a2059
Some new tests for 'toDelegateFor'
2016-12-12 23:14:01 +03:00
Dmitry Petrov
97d5bbf1c2
toDelegateFor: JVM BE implementation
2016-12-12 23:13:59 +03:00
Dmitry Petrov
5ddf8e60e6
Use delegate initializer expression resolution scope for 'toDelegateFor' resolution.
2016-12-12 23:13:57 +03:00
Alexey Andreev
1db4765801
JS: unmute shared box test that now passes
2016-12-12 14:30:43 +03:00
Mikhail Zarechenskiy
97ca51381a
Gradual migration of operator 'mod' to 'rem'
...
- Introduce new 'rem' operator convention
- Prefer 'rem()' to 'mod()' when both are available, even if mod() is a
member, and rem() -- an extension
- Place operator 'rem' under the language feature
2016-12-09 16:43:35 +03:00
Alexey Andreev
cf25e17209
JS: add tests that emulates promises and wraps them in coroutines, using suspend functions outside of controller
2016-12-09 14:56:21 +03:00
Alexey Andreev
060f08a8dd
JS: add support of interceptResume function in coroutine controller
2016-12-09 14:56:20 +03:00
Alexey Andreev
9eff193ea4
JS: support stack unwinding convention in coroutines
2016-12-09 14:56:20 +03:00
Alexey Andreev
bf74400776
JS: re-enable coroutine tests for JS backend
2016-12-09 14:56:19 +03:00
Mikhael Bogdanov
18cb734c58
Do not mangle internal @PublishedApi functions
2016-12-09 11:55:16 +01:00
Mikhael Bogdanov
627dd66ed5
New ieee754 arithmetic, Fix for KT-14651: Floating point comparisons shall operate according to IEEE754
2016-12-09 09:48:46 +01:00
Ilya Gorbunov
d60fc7d9a8
Introduce ClosedComparableRange interface which inherits ClosedRange to provide special comparison operation for double and float.
2016-12-08 20:50:11 +03:00