Denis Zharkov
76845a76b9
Fixed KT-4814: check type when a += b is a = a+b
...
In cases when a += b is a = a + b, check that (a+b) can be safely casted to a
2014-07-28 22:00:14 +04:00
Alexey Sedunov
9cbcabffa4
Control-Flow Analysis: Reuse pseudo-value information for unused expression analysis
2014-07-28 13:07:37 +04:00
Alexey Sedunov
2a19016d58
Pseudocode: Add test for parenthesized call in selector
2014-07-28 13:07:34 +04:00
Alexey Sedunov
85bb4f9b8e
Pseudocode: Generate read instructions on call expression (instead of
...
callee)
2014-07-28 13:07:33 +04:00
Alexey Sedunov
9f3ebe5f3b
Pseudocode: Generate merge instruction regardless of number of branches
2014-07-28 13:07:32 +04:00
Alexey Sedunov
d008cb8c21
Pseudocode: Do not regenerate receiver values
2014-07-28 13:07:30 +04:00
Alexey Sedunov
77bbf8f73b
Pseudocode: Generate fake values for Unit/Nothing-typed expressions
2014-07-28 13:07:29 +04:00
Alexey Sedunov
2d3ac9109b
Pseudocode: Generate synthetic VALUE_CONSUMER for both property and class delegates
2014-07-28 13:06:46 +04:00
Alexey Sedunov
d07deeb5fb
Pseudocode: Generate UNSUPPORTED_ELEMENT for misplaced returns
2014-07-28 13:04:02 +04:00
Alexey Sedunov
b0bf11c51e
Pseudocode: Consume value of true condition in while-loop
2014-07-28 13:04:01 +04:00
Alexey Sedunov
e11ffb8542
Pseudocode: Replace UnsupportedElementInstruction with UNSUPPORTED_ELEMENT magic.
...
Generate UNSUPPORTED_ELEMENT for assignments with unresolved left-han side
2014-07-28 13:04:00 +04:00
Alexey Sedunov
c32d112e67
Pseudocode: Generate magics for cast expressions
2014-07-28 13:03:12 +04:00
Alexey Sedunov
ffd4af872c
Pseudocode: Track merged values. Compute closure of value usages over merge instructions. Exclude merge instructions from usage lists
2014-07-28 13:03:09 +04:00
Alexey Sedunov
4f54d833d3
Pseudocode: Generate instructions for callable reference expressions
2014-07-28 13:03:05 +04:00
Alexander Udalov
c24c799819
Fix NoSuchMethodError on private components of data classes
...
A follow-up to
https://github.com/JetBrains/kotlin/commit/d5681540ec47ee5c9a548ba56df8b4e20097549d
2014-07-26 01:31:11 +04:00
Alexander Udalov
99025de748
Drop "-jar" and "-output" kotlinc-jvm CLI arguments
...
In favor of a brand new "-d" option
2014-07-26 00:32:28 +04:00
Alexander Udalov
9908d797e0
Minor, fix LoadBuiltinsTest test data
2014-07-26 00:27:31 +04:00
Alexander Udalov
de0f751207
Replace object$ -> OBJECT$, instance$ -> INSTANCE$ in the project
2014-07-26 00:21:05 +04:00
Alexander Udalov
133b2918e1
Drop a hack which allowed to make Unit an object
2014-07-25 21:45:15 +04:00
Alexander Udalov
98ffdb3e32
Minor, delete Object from some test data
2014-07-25 21:19:39 +04:00
Alexander Udalov
fb958897a9
Introduce kotlin.Cloneable
...
- Cloneable is a trait with a single protected member 'clone', which is mapped
to java.lang.Cloneable on JVM
- 'clone' is non-abstract to be able to call 'super.clone()' in the
implementations. Also if you need your class to be Cloneable, most of the
time inheriting from Cloneable and calling 'super.clone()' will work
- hack 'super.clone()' in JVM intrinsics and TImpl delegation generation
- make arrays Cloneable, handle 'clone()' calls in the intrinsic
#KT-4890 Fixed
2014-07-25 21:19:39 +04:00
Alexander Udalov
f3309d1fa7
Don't ignore methods of Object in tests
...
Ignore methods of kotlin.Any instead
2014-07-25 21:19:39 +04:00
Alexander Udalov
5dc37217c8
Remove Object from supertypes in LoadJava testData
2014-07-25 21:19:38 +04:00
Alexander Udalov
a79398fa00
Don't load Object as a supertype for Java classes
...
#KT-4890 In Progress
#KT-5002 Fixed
2014-07-25 21:19:37 +04:00
Svetlana Isakova
8c13a76805
KT-5527 Double TYPE_MISMATCH diagnostic when returns object
...
#KT-5527 Fixed
2014-07-25 21:17:31 +04:00
Alexander Udalov
485f63e1cd
Rename object$ -> OBJECT$, instance$ -> INSTANCE$
...
According to Java code conventions, public static final constants should be
named with all capital letters
2014-07-25 21:15:13 +04:00
Zalim Bashorov
c767ffc3e7
Unit.VALUE -> Unit in testData
2014-07-25 17:16:40 +04:00
Zalim Bashorov
c85ec97589
Minor: revert dc68d78 (Minor: revert changes in StackValue and fix tes data. another fixes)
2014-07-25 17:16:40 +04:00
Alexander Udalov
19b80f57cf
Support "-d" option in kotlinc-jvm
...
The intent is to unify "-output" and "-jar" options into the one "-d"
(destination)
2014-07-23 21:24:40 +04:00
Alexander Udalov
de0fd3818c
Drop "-src" in kotlinc-jvm
...
Free arguments should be used instead
2014-07-23 21:24:39 +04:00
Alexander Udalov
87439b8e0b
Drop "-sourceFiles" in kotlinc-js
...
Use free arguments instead, as is done in kotlinc-jvm and all sensible
compilers everywhere
Also fix some cases of AntTaskTest to be able to run them locally
2014-07-23 21:24:38 +04:00
Alexander Udalov
125c5e2942
Drop "-printArgs"
2014-07-23 16:01:12 +04:00
Alexander Udalov
5003a2f570
Send compiler output to stderr instead of stdout
...
Test only stderr in kotlinc test now and move the '-script' test to integration
tests where both stdout and stderr is tested
2014-07-23 16:01:11 +04:00
Denis Zharkov
18cb479ef3
When2Switch: tests for non-literal expression in when by integral
2014-07-21 17:13:57 +04:00
Denis Zharkov
8d8c3d2b9e
When2Switch: generate ifnonnull check for nullable values before *switch-opcode
2014-07-21 17:13:56 +04:00
Denis Zharkov
d4cb822ee8
When by String constants:
...
Generate TABLESWITCH/LOOKUPSWITCH bytecode operation for when operator by String constants
2014-07-21 17:13:56 +04:00
Denis Zharkov
5a1c995b5c
When by enum:
...
Generate TABLESWITCH/LOOKUPSWITCH bytecode command in case of "when" by enum entries
2014-07-21 17:13:55 +04:00
Alexander Udalov
70adb0f4e2
Temporarily prohibit non-local returns for some stdlib functions
...
Make InlineUtil work with FQ names, not descriptors
#KT-5496 Fixed
#KT-5497 Fixed
2014-07-19 02:13:27 +04:00
Alexander Udalov
540b87a1dc
Support object array annotation arguments in deserialization
2014-07-19 02:13:26 +04:00
Alexander Udalov
d5681540ec
Fix NoSuchMethodError for data classes with private parameters
...
Introduced in a07909bb52
2014-07-19 02:13:26 +04:00
Alexander Udalov
65c21561a4
Fix super constructor calls of anonymous objects and local classes
...
If a class inherits from another class which captures something (outer class
instance, receiver parameter, local variables, etc.), the constructor of the
former class should contain all the parameters of the super constructor as its
own parameters, so that it could make a proper super call. All such parameters
are now replicated in the derived constructor with kind = SUPER_CALL_PARAM,
except an instance of the outer class (kind = OUTER), which can be taken from
the derived's own OUTER when it has one, to prevent multiple passing of the
same argument.
Previously it worked only when inheriting from inner classes via a special hack
(ConstructorFrameMap).
Also reuse recently introduced ArgumentGenerator to automatically take care of
default and vararg arguments of super constructor
#KT-3581 Fixed
#KT-5342 Fixed
#KT-5343 Fixed
2014-07-18 16:26:46 +04:00
Alexander Udalov
a07909bb52
Don't generate unnecessary accessors for private class properties
2014-07-17 19:18:05 +04:00
Alexander Udalov
4bdf7e3426
Use direct field access to trivial class properties
...
#KT-3845 Fixed
2014-07-17 19:18:05 +04:00
Denis Zharkov
0b2b8ba816
Fixed KT-5493: NPE fix
2014-07-17 18:43:44 +04:00
Nikolay Krasko
0b7699b844
Fix silence turning integers with leading zero into doubles
...
#KT-4296 Fixed
2014-07-16 18:35:19 +04:00
Denis Zharkov
0e683b0b99
Added "optimize" flag to settings everywhere
2014-07-15 21:34:32 +04:00
Denis Zharkov
0f5e29df9b
tests added
2014-07-15 21:26:53 +04:00
Denis Zharkov
3fa5fc7b11
Tests updated after integration with optimization subsystem
2014-07-15 21:23:50 +04:00
Zalim Bashorov
dc68d78d9d
Minor: revert changes in StackValue and fix tes data.
...
(this commit should be reverted after make Unit object)
2014-07-11 20:28:57 +04:00
Alexey Sedunov
487e7f2a91
Pseudocode: Replace {<: Any?} type predicate with *
2014-07-11 19:13:52 +04:00