summaryrefslogtreecommitdiff
path: root/ccode/valaccodeunaryexpression.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2016-10-30 15:09:53 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2016-10-30 15:12:17 +0100
commit0f65d306f5a2eca7ea798e5c835cf66b6e327c8e (patch)
tree6bcb34fdbef0f86e55dd166f6983eca4be423f20 /ccode/valaccodeunaryexpression.vala
parent6fd1e861f6de40e51cb0a28f2f8119c49183c7f4 (diff)
downloadvala-0f65d306f5a2eca7ea798e5c835cf66b6e327c8e.tar.gz
ccode: Replace if-else-tree with switch
Diffstat (limited to 'ccode/valaccodeunaryexpression.vala')
-rw-r--r--ccode/valaccodeunaryexpression.vala38
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 ();
}
}