Denis Zharkov
02b40326cc
Fix incorrect coroutines codegen behavior
...
If all the suspension calls in a suspend function were "hidden"
under the for-convention (iterator/next/hasNext) calls,
control-flow didn't find them, thus supposing that there is no
suspension points and there is no need to generate a coroutine state machine
The solution is to add relevant calls to CFG
#KT-15824 Fixed
2017-01-25 13:54:01 +03:00
Mikhail Glukhikh
b7e8f71367
Fix of getCorrespondingLoop for complex loop / try-finally trees #KT-8246 Fixed
2016-03-30 18:49:23 +03:00
Svetlana Isakova
976d5ab030
Pseudocode: don't write full label name when jump on it
2014-09-07 01:04:00 +04:00
Svetlana Isakova
61dc110cc7
Report 'break or continue outside a loop'
...
for break/continue outside a loop body (e.g. in loop condition)
#KT-5724 Fixed
2014-09-07 01:03:57 +04:00
Svetlana Isakova
3d7c22f242
Added exact label names for labels
2014-09-05 18:31:53 +04:00
Alexey Sedunov
77bbf8f73b
Pseudocode: Generate fake values for Unit/Nothing-typed expressions
2014-07-28 13:07:29 +04:00
Alexey Sedunov
4707f4a5e9
Pseudocode: Add debug information to magic instructions
2014-07-11 19:13:49 +04:00
Svetlana Isakova
9480907514
Mark some expressions after processing their components
...
when it's semantically correct
Expressions: calls, 'for' loops, elvis operators
It's significant for reporting 'unreachable code' correctly
2014-06-21 12:26:32 +04:00
Alexey Sedunov
d2c055e9da
Pseudocode: Introduce pseudo-value analysis
2014-06-03 18:17:05 +04:00
Svetlana Isakova
b7f7063bf4
improved postProcess
...
collect (and cache) reachable instructions for local declarations
after processing all parent instructions
2014-03-07 21:08:18 +04:00