From: Luca Bruno Date: Fri, 12 Dec 2014 15:06:38 +0000 (+0100) Subject: codegen: Support constant unary expressions in field initializers X-Git-Tag: 0.27.1~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50222da1622de0039fc812624253f85f474d80d4;p=thirdparty%2Fvala.git codegen: Support constant unary expressions in field initializers --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 1bee9e52c..8d6ebddf9 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -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);