diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2016-10-30 15:09:53 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2016-10-30 15:12:17 +0100 |
commit | 0f65d306f5a2eca7ea798e5c835cf66b6e327c8e (patch) | |
tree | 6bcb34fdbef0f86e55dd166f6983eca4be423f20 /ccode/valaccodeunaryexpression.vala | |
parent | 6fd1e861f6de40e51cb0a28f2f8119c49183c7f4 (diff) | |
download | vala-0f65d306f5a2eca7ea798e5c835cf66b6e327c8e.tar.gz |
ccode: Replace if-else-tree with switch
Diffstat (limited to 'ccode/valaccodeunaryexpression.vala')
-rw-r--r-- | ccode/valaccodeunaryexpression.vala | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/ccode/valaccodeunaryexpression.vala b/ccode/valaccodeunaryexpression.vala index 7f2b89b23..afcb8c494 100644 --- a/ccode/valaccodeunaryexpression.vala +++ b/ccode/valaccodeunaryexpression.vala @@ -42,15 +42,12 @@ public class Vala.CCodeUnaryExpression : CCodeExpression { } public override void write (CCodeWriter writer) { - if (operator == CCodeUnaryOperator.PLUS) { - writer.write_string ("+"); - } else if (operator == CCodeUnaryOperator.MINUS) { - writer.write_string ("-"); - } else if (operator == CCodeUnaryOperator.LOGICAL_NEGATION) { - writer.write_string ("!"); - } else if (operator == CCodeUnaryOperator.BITWISE_COMPLEMENT) { - writer.write_string ("~"); - } else if (operator == CCodeUnaryOperator.POINTER_INDIRECTION) { + switch (operator) { + case CCodeUnaryOperator.PLUS: writer.write_string ("+"); inner.write_inner (writer); break; + case CCodeUnaryOperator.MINUS: writer.write_string ("-"); inner.write_inner (writer); break; + case CCodeUnaryOperator.LOGICAL_NEGATION: writer.write_string ("!"); inner.write_inner (writer); break; + case CCodeUnaryOperator.BITWISE_COMPLEMENT: writer.write_string ("~"); inner.write_inner (writer); break; + case CCodeUnaryOperator.POINTER_INDIRECTION: var inner_unary = inner as CCodeUnaryExpression; if (inner_unary != null && inner_unary.operator == CCodeUnaryOperator.ADDRESS_OF) { // simplify expression @@ -58,7 +55,9 @@ public class Vala.CCodeUnaryExpression : CCodeExpression { return; } writer.write_string ("*"); - } else if (operator == CCodeUnaryOperator.ADDRESS_OF) { + inner.write_inner (writer); + break; + case CCodeUnaryOperator.ADDRESS_OF: var inner_unary = inner as CCodeUnaryExpression; if (inner_unary != null && inner_unary.operator == CCodeUnaryOperator.POINTER_INDIRECTION) { // simplify expression @@ -66,18 +65,13 @@ public class Vala.CCodeUnaryExpression : CCodeExpression { return; } writer.write_string ("&"); - } else if (operator == CCodeUnaryOperator.PREFIX_INCREMENT) { - writer.write_string ("++"); - } else if (operator == CCodeUnaryOperator.PREFIX_DECREMENT) { - writer.write_string ("--"); - } - - inner.write_inner (writer); - - if (operator == CCodeUnaryOperator.POSTFIX_INCREMENT) { - writer.write_string ("++"); - } else if (operator == CCodeUnaryOperator.POSTFIX_DECREMENT) { - writer.write_string ("--"); + inner.write_inner (writer); + break; + case CCodeUnaryOperator.PREFIX_INCREMENT: writer.write_string ("++"); break; + case CCodeUnaryOperator.PREFIX_DECREMENT: writer.write_string ("--"); break; + case CCodeUnaryOperator.POSTFIX_INCREMENT: inner.write_inner (writer); writer.write_string ("++"); break; + case CCodeUnaryOperator.POSTFIX_DECREMENT: inner.write_inner (writer); writer.write_string ("--"); break; + default: assert_not_reached (); } } |