Mikhael Bogdanov
09eeb414fe
New test for jvm8 nondefaults target
2017-01-13 13:52:57 +01:00
Mikhael Bogdanov
d278a5c6d5
Move java 8+defaults tests to separate folder
2017-01-13 13:52:57 +01:00
Mikhael Bogdanov
0a363fd1a5
Introduced test flag: JVM8_TARGET_WITH_DEFAULTS
2017-01-13 13:52:56 +01:00
Mikhael Bogdanov
7f8acbb759
Use proper flag for interface method invocation
2017-01-13 13:52:55 +01:00
Dmitry Petrov
4dd100122b
Explicitly remove NOPs inserted for bytecode analysis in post-conditional loops.
...
Remove redundant NOPs during bytecode optimization.
NOP instruction is required iff one of the following is true:
(a) it is a first bytecode instruction in a try-catch block (JVM BE assumption);
(b) it is a sole bytecode instruction in a source code line (breakpoints on that line will not work).
All other NOP instructions can be removed.
Note that it doesn't really affect the performance for mature JVM implementations.
However, the perceived quality of the generated code is somewhat improved :).
Related: KT-15609
2017-01-13 10:31:07 +03:00
Dmitry Petrov
ba933fa887
KT-15112, KT-15631
...
Revert changes for "tolerant to uninitialized values" in OptimizationBasicInterpreter:
this approach doesn't converge for some specific cases where local variable is reused
(e.g., in several inlined functions - see https://youtrack.jetbrains.com/issue/KT-15112 ).
Instead, treat fake always-false conditional jump in the beginning of the post-condition loop as a "reference point" for stack on loop break / continue.
This requires an extra abstraction layer in FixStackAnalyzer, since we can't perform fine-grain manipulations on Frames
(such as "combine frame C from local variables of frame A and stack of frame B").
NB additional NOPs will be generated for post-condition loops.
Should make a separate bytecode postprocessing pass to get rid of unnecessary NOPs
(several YT issues for perceived quality of the generated bytecode are about such NOPs).
2017-01-13 10:31:07 +03:00
Alexey Andreev
a016147a79
JS: fix translation of return statement surrounded by try..finally block in suspend lambda. See KT-15625
2017-01-12 18:12:39 +03:00
Alexey Andreev
10a3fbf53f
JS: disable TemporaryAssignmentElimination, fix KT-15512
2017-01-12 18:12:39 +03:00
Alexey Andreev
7d170c0fcd
JS: fix translation of reassignment of inline properties. See KT-15590
2017-01-12 18:12:38 +03:00
Alexey Andreev
4eed7c1fcb
JS: fix translation of augmented assignment in class initializer. See KT-15569
2017-01-12 18:12:38 +03:00
Alexey Andreev
ee74342fbe
JS: fix compiler crash when optimizing JS AST with empty do..while statement. See KT-15513
2017-01-12 18:12:37 +03:00
Alexey Andreev
bad6f41d6e
JS: make some JVM tests compatible with JS BE
2017-01-12 18:12:37 +03:00
Alexey Andreev
70176dfacc
JS: translate call arguments in the order the occur in source code, not in order of parameters in descriptor. See KT-15506
2017-01-12 18:12:36 +03:00
Alexey Andreev
e6b78f68cd
JS: support case when class inherits method from superclass and both implements same method (but with optional parameter) from superinterface.
2017-01-12 18:12:36 +03:00
Alexander Udalov
abe2ad155c
Sanitize names for script class files
...
Use the same process that is done for package parts in the JVM back-end, except
adding the "Kt" suffix
#KT-15225 Fixed
2017-01-12 11:24:24 +03:00
Mikhael Bogdanov
2931c316a3
Fix for KT-15575: VerifyError: Bad type on operand stack
...
#KT-15575 Fixed
2017-01-11 11:50:33 +01:00
Mikhael Bogdanov
5071baf970
Support increment and '*=' operations on inline properties
2017-01-10 14:09:42 +01:00
Mikhael Bogdanov
043f3199c7
Fix for KT-15446: Property reference on an instance of subclass causes java.lang.VerifyError
...
#KT-15446 Fixed
2017-01-10 14:09:42 +01:00
Mikhael Bogdanov
dc4cdbf82d
Fix for KT-14162: Support @InlineOnly on inline properties
...
#KT-14162 Fixed
2017-01-10 14:09:41 +01:00
Alexander Udalov
32d2faf3d1
Fix KAnnotatedElement.findAnnotation when no annotation is found
...
#KT-15540 Fixed
2017-01-10 12:23:26 +03:00
Mikhail Zarechenskiy
cff0865c87
Fix error type for implicit invoke with function literal argument
...
#KT-11401 Fixed
2017-01-10 11:44:51 +03:00
Alexey Andreev
069711c3d5
JS: fix translation of float constants. See KT-8413
2016-12-30 16:22:07 +03:00
Mikhael Bogdanov
3384c6f603
Updated test data
2016-12-30 10:19:57 +01:00
Mikhael Bogdanov
e775cc697e
Fix for KT-15447: Compiler backend error: "Don't know how to generate outer expression for class"
...
#KT-15447 Fixed
2016-12-29 16:57:03 +01:00
Mikhael Bogdanov
2566a7a25e
Rename receiver$0 in CallableReference to receiver
...
#KT-15449 Fixed
2016-12-29 16:57:02 +01:00
Alexey Andreev
07de819377
Regenerate tests and test data
2016-12-29 16:15:49 +03:00
Alexey Andreev
175d37fdc8
JS: add test to prove that KT-13523 is no more reproducible
2016-12-29 16:00:54 +03:00
Alexey Andreev
27c2a4f6a8
JS: disable mangling for PublishedApi. Export declarations marked with PublishedApi. See KT-15442
2016-12-29 16:00:51 +03:00
Alexey Andreev
1af01d0ecb
JS: make call to suspend lambda to resume it immediately. See KT-15379
2016-12-29 16:00:35 +03:00
Alexey Andreev
84f094c770
JS: prohibit to implement functional interfaces. See KT-15136
2016-12-29 16:00:29 +03:00
Ilya Gorbunov
0a840d0174
Migrate 1.1 reflection API usages in tests.
2016-12-29 06:51:01 +03:00
Yan Zhulanow
5844f3cf1b
Kapt3: Write stub class files with metadata (needed for incremental compilation)
2016-12-28 22:28:30 +03:00
Alexander Udalov
73845bfc27
Fix light-analysis test data
2016-12-27 18:19:49 +03:00
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
Alexander Udalov
3d9c264d63
Do not generate CHECKCAST after 'null' literal
...
#KT-15411 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
Alexander Udalov
cf2839a088
Fix light-analysis test data
2016-12-24 14:37:24 +03:00
Alexander Udalov
5402d50ea3
Light analysis tests: do not render empty lines between classes and in the beginning
2016-12-23 22:30:48 +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
1040c97196
Fix for: KT-14011 Compiler crash when inlining: lateinit property allRecapturedParameters has not been initialized
...
#KT-14011 Fixed
2016-12-22 09:44:26 +01: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
Denis Zharkov
d0ba048342
Refine coroutine/suspend functions ABI
...
- `invoke` method must always start a suspend functions
- For creation of coroutine that has not been started yet, there are
two special internal interfaces `SuspendFunction0`/`SuspendFunction1`
2016-12-22 11:08:42 +03:00