Alexander Udalov
59342000ae
Fix toString() and reflectLambda() for lambdas with generic types in signatures
...
#KT-10771 Fixed
2016-06-09 17:28:56 +03:00
Denis Zharkov
771cca9c23
Fix some try-catch block related problems in coroutine transformer
...
Split all try-catch blocks when they intersect suspension points
2016-06-08 18:53:16 +03:00
Denis Zharkov
e802049fd0
Ignore handleReturn calls if functions is not operator
2016-06-08 18:53:16 +03:00
Denis Zharkov
692acc463a
Fix handleResult call generation for statement-like last expression in a block
2016-06-08 18:53:16 +03:00
Denis Zharkov
0d01edb7f9
Adapt FixStackAnalyzer to code generated by coroutine transformation
...
Without this change internal error happens while inlining coroutine code with try/catch inside
Also get rid of hack with SKIP_MANDATORY_TRANSFORMATIONS_ANNOTATION_DESC
See comment within MethodAnalyzer for clarification
2016-06-08 18:53:16 +03:00
Denis Zharkov
678e8c2baa
Setup label value in constructor to be invalid until 'invoke(Controller)' call
2016-06-08 18:53:16 +03:00
Denis Zharkov
2bdaec6eac
Refine definition of whether call is suspension point
...
It's not about all calls to suspend functions, they may called from non-coroutine code
2016-06-08 18:53:16 +03:00
Denis Zharkov
dddd7413a1
Fix generated code for suspending in the middle of object construction
2016-06-08 18:53:16 +03:00
Denis Zharkov
b1189eff23
Make suspension calls generation more stable
...
Instead of performing signature change during transformation
it's convinient to make just when generating corresponding call,
for example there is no need to think about default parameters as they just work as is
See comment above replaceSuspensionFunctionViewWithRealDescriptor for clarification
2016-06-08 18:53:16 +03:00
Denis Zharkov
611490e080
Support non-local returns to coroutine label from inline lambda
...
- Use proper class descriptor when retreiving continuation object (see previous commit)
- Use return type as VOID for such cases
- Load correct labels related to coroutine lambda from outer context
2016-06-08 18:53:16 +03:00
Denis Zharkov
94bd6dcc82
Use proper coroutine class descriptor for extension receiver generation
...
Before this commit context.getThisDescriptor() has been used, that was quite correct
until suspension happens inside inlined lambda (it has different this-descriptor)
2016-06-08 18:53:16 +03:00
Denis Zharkov
75e112e752
Implement basic support for coroutines in JVM backend
2016-06-08 18:53:16 +03:00
Alexander Udalov
61290d1225
Temporarily disable inline for bound function references
2016-06-07 12:43:10 +03:00
Alexander Udalov
b9e61f035f
Support bound callable references in codegen
2016-06-07 12:43:09 +03:00
Dmitry Petrov
df335b9e8d
Type aliases: do not reparse RHS of type alias declaration in expanded type resolution
2016-06-03 16:07:20 +03:00
Mikhael Bogdanov
092be8ca8e
Don't generate unnecessary checkcast to java.lang.Number
2016-06-02 16:01:05 +03:00
Mikhael Bogdanov
a6cf169646
Fix for KT-12582: "VerifyError: Bad local variable type" caused by explicit loop variable type
...
#KT-12582 Fixed
2016-06-02 16:01:05 +03:00
Mikhael Bogdanov
c7d97c63a8
Small refactoring in constant processing
2016-06-02 16:01:03 +03:00
Nikolay Krasko
3f4cde3d25
NoSuchFieldError in Evaluate Expression on a property of a derived class (KT-12206)
...
#KT-12206 Fixed
2016-06-02 14:39:51 +03:00
Dmitry Petrov
c63166047c
KT-11588 Type aliases
...
Additional tests for type alias constructor & companion object:
- codegen
- error diagnostics
2016-06-01 14:32:45 +03:00
Mikhael Bogdanov
0f1589fd50
Fix for KT-12200: initial property assignment ignored
...
#KT-12200 Fixed
2016-05-31 15:27:55 +03:00
Alexey Andreev
2bd807bb4e
KT-11960: add test for case of instantiating inner class of a local class
2016-05-31 15:24:30 +03:00
Alexey Andreev
acc5303731
KT-11960 Fix case of instantiation of local class via its inner class or via nested lambda. Move tests to more appropriate location. Fix bug in blackbox codegen generator for JVM, which does not allow to suppress tests.
2016-05-31 15:24:29 +03:00
Alexey Andreev
6f363a71be
KT-11960 Fix for data classes
2016-05-31 15:24:29 +03:00
Alexey Andreev
170a671a1b
KT-11960 Fix for case when class instantiates itself
2016-05-31 15:24:28 +03:00
Mikhail Glukhikh
8713190e33
Back-end JVM: more accurate handling of when expressions with Unit result #KT-12192 Fixed
2016-05-27 18:08:15 +03:00
Alexander Udalov
69343549b7
Move TEST_MODULE_NAME to KotlinTestUtils and change value to "test-module"
...
This name is more generic and thus can be used everywhere, not only in Java
integration tests
2016-05-26 11:47:30 +03:00
Mikhail Glukhikh
1a8181bdc4
Only private constructors for sealed / enum classes #KT-12377 Fixed
...
Also #KT-8497 Fixed
2016-05-23 13:08:57 +03:00
Alexey Andreev
f0ee52faaf
KT-11086 Treat initializer of a companion object as a class initializer
2016-05-23 12:22:50 +03:00
Alexander Udalov
1b79770121
Do not produce trailing space when rendering root package header
2016-05-20 14:53:07 +03:00
Dmitry Petrov
a4406687f1
KT-11588 Type aliases
...
Resolution & expansion for type aliases.
NB: Nested type aliases capturing type parameters of outer classes are not supported yet.
2016-05-20 14:17:24 +03:00
Alexander Udalov
1c8272d3f1
Simplify data class function generation and signature lookup code
...
- change prerequisites for generating equals/hashCode/toString in a data class:
previously they were generated if the corresponding method is trivial (i.e.
it comes from kotlin.Any), now we're generating it always unless it'll cause
a JVM signature clash error (see KT-6206)
- use static KotlinBuiltIns.isXxx methods to compare types instead of checking
against descriptors loaded from certain built-ins instance, this is quicker
and more correct in environments where several built-ins are possible
- don't use isOrOverridesSynthesized, it's not relevant for
equals/hashCode/toString because functions with these names are never
synthesized
#KT-6206 Fixed
2016-05-20 00:54:19 +03:00
Alexander Udalov
2200bfcc85
Simplify ImplementationBodyCodegen#generateToArray
...
- don't do anything for interfaces because there's no point in generating
abstract methods which are already abstract in supertypes
- don't use getDeclaredFunctionByRawSignature, check function signature
manually instead
- don't use isOrOverridesSynthesized because 'toArray' is never synthesized
2016-05-20 00:54:18 +03:00
Alexander Udalov
b208995d73
Render different class kinds differently in bytecode listing test
2016-05-20 00:36:56 +03:00
Stanislav Erokhin
7332032bb6
Support sealed class inheritors in the same file
...
#KT-11573 Fixed
2016-05-19 16:22:40 +03:00
Mikhail Glukhikh
a4ad995f31
Overridden functions using default arguments in recursive call are no more considered tail recursive #KT-4285 Fixed
2016-05-17 14:29:01 +03:00
Mikhail Glukhikh
f35fd32a25
Exhaustive when with 'Unit' result now also generates an exception in else branch #KT-12192 Fixed
2016-05-17 14:28:57 +03:00
Denis Zharkov
d0acb3674a
Fix rendered testData
...
New members in enum member scope
2016-05-16 15:38:13 +03:00
Mikhael Bogdanov
c06b51c1d1
Allow top-level local delegated properties in scripts
2016-05-13 19:11:23 +03:00
Mikhael Bogdanov
6ece2b41d6
Box inline test for local delegated property
2016-05-13 19:11:23 +03:00
Mikhael Bogdanov
ec632c37ab
Support increment and '+=' on local delegated properties
2016-05-13 19:11:21 +03:00
Dotlin
4c223845b6
Delegated Properties: Code generation for local properties (JVM)
2016-05-13 19:11:19 +03:00
Mikhael Bogdanov
d6a64af929
Fix for KT-12125: Wrong increment/decrement on Byte/Char/Short.MAX_VALUE/MIN_VALUE
...
#KT-12125 Fixed
2016-05-11 18:07:25 +03:00
Mikhael Bogdanov
ca31ce8d88
Support new tests on android, disabled not applicable ones
2016-05-06 17:31:53 +03:00
Mikhael Bogdanov
cd6b709ef5
'bytecodeText' test for synthetic accessor generic signature converted to 'writeSignature' test
2016-05-04 17:07:48 +03:00
Mikhael Bogdanov
ee7bbbf530
Fix for KT-12127: Undeclared type variable on delegated property backing field
...
#KT-12127 Fixed
2016-05-04 17:07:48 +03:00
Michael Bogdanov
e2ae2f313c
Support test with self imports, kotlin multifile tests
2016-04-29 16:33:04 +03:00
Denis Zharkov
d259b91143
Add MutableMap.remove(K, V) as built-in declaration
...
Use PlatformDependent annotation to guarantee it's only be available for JDK8
Also adjust type-safe bridges and mutable collection stubs generation
2016-04-29 15:08:54 +03:00
Kirill Rakhman
4a619db721
Add intrinsic for KCallable.name property Fixes #KT-11531
2016-04-28 23:03:00 +03:00
Denis Zharkov
5bc5722051
Load additional JDK functions into built-ins member scope
...
#KT-5990 Fixed
#KT-7127 Fixed
#KT-10370 Fixed
2016-04-25 17:41:08 +03:00