]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Support constant unary expressions in field initializers
authorLuca Bruno <lucabru@src.gnome.org>
Fri, 12 Dec 2014 15:06:38 +0000 (16:06 +0100)
committerLuca Bruno <lucabru@src.gnome.org>
Fri, 12 Dec 2014 15:06:38 +0000 (16:06 +0100)
codegen/valaccodebasemodule.vala

index 1bee9e52cd6ddc549f5d09a0f60ecd54abbda9d8..8d6ebddf9d6a956fd87eae60422bd62cf0413767 100644 (file)
@@ -1342,6 +1342,16 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                } else if (cexpr is CCodeCastExpression) {
                        var ccast = (CCodeCastExpression) cexpr;
                        return is_constant_ccode_expression (ccast.inner);
+               } else if (cexpr is CCodeUnaryExpression) {
+                       var cunary = (CCodeUnaryExpression) cexpr;
+                       switch (cunary.operator) {
+                               case CCodeUnaryOperator.PREFIX_INCREMENT:
+                               case CCodeUnaryOperator.PREFIX_DECREMENT:
+                               case CCodeUnaryOperator.POSTFIX_INCREMENT:
+                               case CCodeUnaryOperator.POSTFIX_DECREMENT:
+                                       return false;
+                       }
+                       return is_constant_ccode_expression (cunary.inner);
                } else if (cexpr is CCodeBinaryExpression) {
                        var cbinary = (CCodeBinaryExpression) cexpr;
                        return is_constant_ccode_expression (cbinary.left) && is_constant_ccode_expression (cbinary.right);