Denis Zharkov
2286027bed
Fix verify error with 'return when/if/try' in suspend function
...
The problem appears for tail-optimized suspend functions,
we erroneously assumed that when/if/try expressions in tail-call
position have simple types like `I` while actually, they can return SUSPENDED
object, i.e. must have `java/lang/Object` as return type.
But this only concerns branching operations in tail-call position,
so we have to make an additional analysis for remembering whether
a given expression is in a tail-call position.
Also, it's important here that we now assume
the return type of the current function as `java/lang/Object`
that is necessary to avoid wrong checkcasts.
#KT-15364 Fixed
2017-01-14 13:24:53 +03:00
..
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2017-01-11 11:50:33 +01:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-29 16:15:49 +03:00
2017-01-10 14:09:42 +01:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2017-01-13 10:31:07 +03:00
2017-01-14 13:24:53 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2017-01-12 18:12:36 +03:00
2016-12-28 22:28:30 +03:00
2017-01-13 18:01:05 +01:00
2016-12-28 22:28:30 +03:00
2017-01-10 11:44:51 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2017-01-13 10:31:07 +03:00
2017-01-10 11:44:51 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2017-01-12 18:12:38 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-29 16:15:49 +03:00
2016-12-28 22:28:30 +03:00
2017-01-10 12:23:26 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00
2016-12-28 22:28:30 +03:00