Pseudocode: Generate magics for cast expressions

This commit is contained in:
Alexey Sedunov
2014-07-18 21:02:45 +04:00
parent 00dd1dbb0b
commit c32d112e67
7 changed files with 64 additions and 1 deletions
@@ -1203,7 +1203,9 @@ public class JetControlFlowProcessor {
JetExpression left = expression.getLeft();
if (operationType == JetTokens.COLON || operationType == JetTokens.AS_KEYWORD || operationType == JetTokens.AS_SAFE) {
generateInstructions(left);
copyValue(left, expression);
if (builder.getBoundValue(left) != null) {
createNonSyntheticValue(expression, MagicKind.CAST, left);
}
}
else {
visitJetElement(expression);
@@ -139,6 +139,7 @@ public enum class MagicKind {
NOT_NULL_ASSERTION
EQUALS_IN_WHEN_CONDITION
IS
CAST
CALLABLE_REFERENCE
// implicit operations
LOOP_RANGE_ITERATION