File vala-bgo638902-shotwell-fix.patch of Package vala

commit 2390d7519a482e442f6b98308f1b720381828b43
Author: Jürg Billeter <j@bitron.ch>
Date:   Sat Jan 8 14:25:59 2011 +0100

    Fix formal_target_type in conditional expressions
    
    Fixes bug 638902.

# Comment out the .vala part to avoid regenerating the .c, which requires vala
#Index: vala-0.10.2/vala/valaconditionalexpression.vala
#===================================================================
#--- vala-0.10.2.orig/vala/valaconditionalexpression.vala
#+++ vala-0.10.2/vala/valaconditionalexpression.vala
#@@ -1,6 +1,6 @@
# /* valaconditionalexpression.vala
#  *
#- * Copyright (C) 2006-2009  Jürg Billeter
#+ * Copyright (C) 2006-2011  Jürg Billeter
#  *
#  * This library is free software; you can redistribute it and/or
#  * modify it under the terms of the GNU Lesser General Public
#@@ -176,6 +176,7 @@ public class Vala.ConditionalExpression
# 		false_block.replace_statement (false_decl, false_stmt);
# 
# 		var ma = new MemberAccess.simple (local.name, source_reference);
#+		ma.formal_target_type = formal_target_type;
# 		ma.target_type = target_type;
# 		ma.check (analyzer);
# 
Index: vala-0.10.2/vala/valaconditionalexpression.c
===================================================================
--- vala-0.10.2.orig/vala/valaconditionalexpression.c
+++ vala-0.10.2/vala/valaconditionalexpression.c
@@ -1382,6 +1382,8 @@ ValaAssignment* vala_assignment_construc
 ValaExpressionStatement* vala_expression_statement_new (ValaExpression* expression, ValaSourceReference* source_reference);
 ValaExpressionStatement* vala_expression_statement_construct (GType object_type, ValaExpression* expression, ValaSourceReference* source_reference);
 void vala_block_replace_statement (ValaBlock* self, ValaStatement* old_stmt, ValaStatement* new_stmt);
+ValaDataType* vala_expression_get_formal_target_type (ValaExpression* self);
+void vala_expression_set_formal_target_type (ValaExpression* self, ValaDataType* value);
 ValaCodeNode* vala_code_node_get_parent_node (ValaCodeNode* self);
 void vala_code_node_replace_expression (ValaCodeNode* self, ValaExpression* old_node, ValaExpression* new_node);
 void vala_code_node_set_parent_node (ValaCodeNode* self, ValaCodeNode* value);
@@ -1576,6 +1578,7 @@ static gboolean vala_conditional_express
 	vala_block_replace_statement (true_block, (ValaStatement*) true_decl, (ValaStatement*) true_stmt);
 	vala_block_replace_statement (false_block, (ValaStatement*) false_decl, (ValaStatement*) false_stmt);
 	ma = vala_member_access_new_simple (vala_symbol_get_name ((ValaSymbol*) local), vala_code_node_get_source_reference ((ValaCodeNode*) self));
+	vala_expression_set_formal_target_type ((ValaExpression*) ma, vala_expression_get_formal_target_type ((ValaExpression*) self));
 	vala_expression_set_target_type ((ValaExpression*) ma, vala_expression_get_target_type ((ValaExpression*) self));
 	vala_code_node_check ((ValaCodeNode*) ma, analyzer);
 	vala_code_node_replace_expression (vala_code_node_get_parent_node ((ValaCodeNode*) self), (ValaExpression*) self, (ValaExpression*) ma);
openSUSE Build Service is sponsored by