vala r2138 - in trunk: . gobject vala vapigen



Author: juergbi
Date: Sat Dec 13 10:55:08 2008
New Revision: 2138
URL: http://svn.gnome.org/viewvc/vala?rev=2138&view=rev

Log:
2008-12-13  JÃrg Billeter  <j bitron ch>

	* vala/valablock.vala:

	Detect conflicting local variables in parent scopes

	* vala/valaarraycreationexpression.vala:
	* vala/valacodewriter.vala:
	* vala/valaforeachstatement.vala:
	* vala/valagenieparser.vala:
	* vala/valaparser.vala:
	* gobject/valaccodebasemodule.vala:
	* gobject/valaccodecontrolflowmodule.vala:
	* gobject/valaccodemethodcallmodule.vala:
	* gobject/valagobjectmodule.vala:
	* vapigen/valagidlparser.vala:

	Fix conflicting local variables


Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodebasemodule.vala
   trunk/gobject/valaccodecontrolflowmodule.vala
   trunk/gobject/valaccodemethodcallmodule.vala
   trunk/gobject/valagobjectmodule.vala
   trunk/vala/valaarraycreationexpression.vala
   trunk/vala/valablock.vala
   trunk/vala/valacodewriter.vala
   trunk/vala/valaforeachstatement.vala
   trunk/vala/valagenieparser.vala
   trunk/vala/valaparser.vala
   trunk/vapigen/valagidlparser.vala

Modified: trunk/gobject/valaccodebasemodule.vala
==============================================================================
--- trunk/gobject/valaccodebasemodule.vala	(original)
+++ trunk/gobject/valaccodebasemodule.vala	Sat Dec 13 10:55:08 2008
@@ -857,8 +857,8 @@
 				var this_access = new MemberAccess.simple ("this");
 				this_access.value_type = get_data_type_for_symbol ((TypeSymbol) f.parent_symbol);
 
-				var st = f.parent_symbol as Struct;
-				if (st != null && !st.is_simple_type ()) {
+				var field_st = f.parent_symbol as Struct;
+				if (field_st != null && !field_st.is_simple_type ()) {
 					this_access.ccodenode = new CCodeIdentifier ("(*self)");
 				} else {
 					this_access.ccodenode = new CCodeIdentifier ("self");

Modified: trunk/gobject/valaccodecontrolflowmodule.vala
==============================================================================
--- trunk/gobject/valaccodecontrolflowmodule.vala	(original)
+++ trunk/gobject/valaccodecontrolflowmodule.vala	Sat Dec 13 10:55:08 2008
@@ -111,13 +111,13 @@
 
 				if (is_constant_ccode_expression (cexpr)) {
 					var cname = new CCodeIdentifier ("%s_label%d".printf (temp_var.name, label_count++));
-					var ccond = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, czero, cname);
+					var ccondition = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, czero, cname);
 					var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_quark_from_static_string"));
-					var cinit = new CCodeAssignment (cname, ccall);
+					cinit = new CCodeAssignment (cname, ccall);
 
 					ccall.add_argument (cexpr);
 
-					cexpr = new CCodeConditionalExpression (ccond, cname, cinit);
+					cexpr = new CCodeConditionalExpression (ccondition, cname, cinit);
 				} else {
 					var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_quark_from_string"));
 					ccall.add_argument (cexpr);
@@ -287,7 +287,7 @@
 		
 		if (stmt.tree_can_fail && stmt.collection.tree_can_fail) {
 			// exception handling
-			var cfrag = new CCodeFragment ();
+			cfrag = new CCodeFragment ();
 			head.add_simple_check (stmt.collection, cfrag);
 			cblock.add_statement (cfrag);
 		}
@@ -319,7 +319,7 @@
 				element_type.value_owned = false;
 				element_expr = transform_expression (element_expr, element_type, stmt.type_reference);
 
-				var cfrag = new CCodeFragment ();
+				cfrag = new CCodeFragment ();
 				append_temp_decl (cfrag, temp_vars);
 				cbody.add_statement (cfrag);
 				temp_vars.clear ();
@@ -365,7 +365,7 @@
 				element_type.value_owned = false;
 				element_expr = transform_expression (element_expr, element_type, stmt.type_reference);
 
-				var cfrag = new CCodeFragment ();
+				cfrag = new CCodeFragment ();
 				append_temp_decl (cfrag, temp_vars);
 				cbody.add_statement (cfrag);
 				temp_vars.clear ();
@@ -438,7 +438,7 @@
 			element_expr = convert_from_generic_pointer (element_expr, element_data_type);
 			element_expr = transform_expression (element_expr, element_data_type, stmt.type_reference);
 
-			var cfrag = new CCodeFragment ();
+			cfrag = new CCodeFragment ();
 			append_temp_decl (cfrag, temp_vars);
 			cbody.add_statement (cfrag);
 			temp_vars.clear ();

Modified: trunk/gobject/valaccodemethodcallmodule.vala
==============================================================================
--- trunk/gobject/valaccodemethodcallmodule.vala	(original)
+++ trunk/gobject/valaccodemethodcallmodule.vala	Sat Dec 13 10:55:08 2008
@@ -106,7 +106,6 @@
 			var cast = new CCodeFunctionCall (new CCodeIdentifier (cl.get_upper_case_cname (null) + "_CLASS"));
 			
 			CCodeExpression klass;
-			var ma = expr.call as MemberAccess;
 			if (ma.inner == null) {
 				if (in_static_or_class_ctor) {
 					// Accessing the method from a static or class constructor
@@ -194,14 +193,14 @@
 							if (deleg_type.value_owned) {
 								CCodeExpression delegate_target_destroy_notify;
 								var delegate_method = arg.symbol_reference as Method;
-								var ma = arg as MemberAccess;
+								var arg_ma = arg as MemberAccess;
 								if (delegate_method != null && delegate_method.binding == MemberBinding.INSTANCE
-								    && ma.inner != null && ma.inner.value_type.data_type != null
-								    && ma.inner.value_type.data_type.is_reference_counting ()) {
-									var ref_call = new CCodeFunctionCall (get_dup_func_expression (ma.inner.value_type, arg.source_reference));
+								    && arg_ma.inner != null && arg_ma.inner.value_type.data_type != null
+								    && arg_ma.inner.value_type.data_type.is_reference_counting ()) {
+									var ref_call = new CCodeFunctionCall (get_dup_func_expression (arg_ma.inner.value_type, arg.source_reference));
 									ref_call.add_argument (delegate_target);
 									delegate_target = ref_call;
-									delegate_target_destroy_notify = get_destroy_func_expression (ma.inner.value_type);
+									delegate_target_destroy_notify = get_destroy_func_expression (arg_ma.inner.value_type);
 								} else {
 									delegate_target_destroy_notify = new CCodeConstant ("NULL");
 								}

Modified: trunk/gobject/valagobjectmodule.vala
==============================================================================
--- trunk/gobject/valagobjectmodule.vala	(original)
+++ trunk/gobject/valagobjectmodule.vala	Sat Dec 13 10:55:08 2008
@@ -1145,7 +1145,7 @@
 		
 		var block = new CCodeBlock ();
 		
-		var ccall = new InstanceCast (new CCodeIdentifier ("object"), cl);
+		CCodeFunctionCall ccall = new InstanceCast (new CCodeIdentifier ("object"), cl);
 		var cdecl = new CCodeDeclaration ("%s *".printf (cl.get_cname ()));
 		cdecl.add_declarator (new CCodeVariableDeclarator.with_initializer ("self", ccall));
 		block.add_statement (cdecl);
@@ -1175,7 +1175,7 @@
 			}
 
 			cswitch.add_statement (new CCodeCaseStatement (new CCodeIdentifier (prop.get_upper_case_cname ())));
-			var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_get_%s".printf (prefix, prop.name)));
+			ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_get_%s".printf (prefix, prop.name)));
 			ccall.add_argument (cself);
 			var csetcall = new CCodeFunctionCall ();
 			csetcall.call = head.get_value_setter_function (prop.property_type);
@@ -1205,7 +1205,7 @@
 		
 		var block = new CCodeBlock ();
 		
-		var ccall = new InstanceCast (new CCodeIdentifier ("object"), cl);
+		CCodeFunctionCall ccall = new InstanceCast (new CCodeIdentifier ("object"), cl);
 		var cdecl = new CCodeDeclaration ("%s *".printf (cl.get_cname ()));
 		cdecl.add_declarator (new CCodeVariableDeclarator.with_initializer ("self", ccall));
 		block.add_statement (cdecl);
@@ -1235,7 +1235,7 @@
 			}
 
 			cswitch.add_statement (new CCodeCaseStatement (new CCodeIdentifier (prop.get_upper_case_cname ())));
-			var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_set_%s".printf (prefix, prop.name)));
+			ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_set_%s".printf (prefix, prop.name)));
 			ccall.add_argument (cself);
 			var cgetcall = new CCodeFunctionCall ();
 			if (prop.property_type.data_type != null) {
@@ -1571,14 +1571,13 @@
 
 			cdecl = new CCodeDeclaration ("%s *".printf (cl.get_cname ()));
 			cdecl.add_declarator (new CCodeVariableDeclarator.with_initializer ("self", ccall));
-		
 			cblock.add_statement (cdecl);
 
 			if (current_method_inner_error) {
 				/* always separate error parameter and inner_error local variable
 				 * as error may be set to NULL but we're always interested in inner errors
 				 */
-				var cdecl = new CCodeDeclaration ("GError *");
+				cdecl = new CCodeDeclaration ("GError *");
 				cdecl.add_declarator (new CCodeVariableDeclarator.with_initializer ("inner_error", new CCodeConstant ("NULL")));
 				cblock.add_statement (cdecl);
 			}

Modified: trunk/vala/valaarraycreationexpression.vala
==============================================================================
--- trunk/vala/valaarraycreationexpression.vala	(original)
+++ trunk/vala/valaarraycreationexpression.vala	Sat Dec 13 10:55:08 2008
@@ -151,14 +151,14 @@
 
 		checked = true;
 
-		Gee.List<Expression> size = get_sizes ();
+		Gee.List<Expression> sizes = get_sizes ();
 		var initlist = initializer_list;
 
 		if (element_type != null) {
 			element_type.check (analyzer);
 		}
 
-		foreach (Expression e in size) {
+		foreach (Expression e in sizes) {
 			e.check (analyzer);
 		}
 
@@ -174,9 +174,9 @@
 			}
 		}
 
-		if (size.size > 0) {
+		if (sizes.size > 0) {
 			/* check for errors in the size list */
-			foreach (Expression e in size) {
+			foreach (Expression e in sizes) {
 				if (e.value_type == null) {
 					/* return on previous error */
 					return false;

Modified: trunk/vala/valablock.vala
==============================================================================
--- trunk/vala/valablock.vala	(original)
+++ trunk/vala/valablock.vala	Sat Dec 13 10:55:08 2008
@@ -84,6 +84,14 @@
 	 * @param decl a variable declarator
 	 */
 	public void add_local_variable (LocalVariable local) {
+		var parent_block = parent_symbol as Block;
+		while (parent_block != null) {
+			if (parent_block.scope.lookup (local.name) != null) {
+				Report.error (local.source_reference, "Local variable `%s' conflicts with another local variable declared in a parent scope".printf (local.name));
+				break;
+			}
+			parent_block = parent_block.parent_symbol as Block;
+		}
 		local_variables.add (local);
 	}
 

Modified: trunk/vala/valacodewriter.vala
==============================================================================
--- trunk/vala/valacodewriter.vala	(original)
+++ trunk/vala/valacodewriter.vala	Sat Dec 13 10:55:08 2008
@@ -184,7 +184,7 @@
 		var type_params = cl.get_type_parameters ();
 		if (type_params.size > 0) {
 			write_string ("<");
-			bool first = true;
+			first = true;
 			foreach (TypeParameter type_param in type_params) {
 				if (first) {
 					first = false;
@@ -200,7 +200,7 @@
 		if (base_types.size > 0) {
 			write_string (" : ");
 		
-			bool first = true;
+			first = true;
 			foreach (DataType base_type in base_types) {
 				if (!first) {
 					write_string (", ");
@@ -277,7 +277,7 @@
 			write_string ("type_id = \"%s\", ".printf (st.get_type_id ()));
 		}
 
-		var first = true;
+		bool first = true;
 		string cheaders = "";
 		foreach (string cheader in st.get_cheader_filenames ()) {
 			if (first) {
@@ -317,7 +317,7 @@
 		if (base_types.size > 0) {
 			write_string (" : ");
 		
-			bool first = true;
+			first = true;
 			foreach (DataType base_type in base_types) {
 				if (!first) {
 					write_string (", ");
@@ -355,7 +355,7 @@
 
 		write_indent ();
 
-		var first = true;
+		bool first = true;
 		string cheaders = "";
 		foreach (string cheader in iface.get_cheader_filenames ()) {
 			if (first) {
@@ -380,7 +380,7 @@
 		var type_params = iface.get_type_parameters ();
 		if (type_params.size > 0) {
 			write_string ("<");
-			bool first = true;
+			first = true;
 			foreach (TypeParameter type_param in type_params) {
 				if (first) {
 					first = false;
@@ -396,7 +396,7 @@
 		if (prerequisites.size > 0) {
 			write_string (" : ");
 		
-			bool first = true;
+			first = true;
 			foreach (DataType prerequisite in prerequisites) {
 				if (!first) {
 					write_string (", ");

Modified: trunk/vala/valaforeachstatement.vala
==============================================================================
--- trunk/vala/valaforeachstatement.vala	(original)
+++ trunk/vala/valaforeachstatement.vala	Sat Dec 13 10:55:08 2008
@@ -254,13 +254,13 @@
 		}
 
 		var iterator_call = new MethodCall (new MemberAccess (collection, "iterator"));
-		add_statement (new DeclarationStatement (new LocalVariable (iterator_type, "%s_it".printf (variable_name), iterator_call, source_reference), source_reference));
+		add_statement (new DeclarationStatement (new LocalVariable (iterator_type, "_%s_it".printf (variable_name), iterator_call, source_reference), source_reference));
 
-		var next_call = new MethodCall (new MemberAccess (new MemberAccess.simple ("%s_it".printf (variable_name), source_reference), "next", source_reference), source_reference);
+		var next_call = new MethodCall (new MemberAccess (new MemberAccess.simple ("_%s_it".printf (variable_name), source_reference), "next", source_reference), source_reference);
 		var loop = new WhileStatement (next_call, body, source_reference);
 		add_statement (loop);
 
-		var get_call = new MethodCall (new MemberAccess (new MemberAccess.simple ("%s_it".printf (variable_name), source_reference), "get", source_reference), source_reference);
+		var get_call = new MethodCall (new MemberAccess (new MemberAccess.simple ("_%s_it".printf (variable_name), source_reference), "get", source_reference), source_reference);
 		body.insert_statement (0, new DeclarationStatement (new LocalVariable (type_reference, variable_name, get_call, source_reference), source_reference));
 
 		checked = false;

Modified: trunk/vala/valagenieparser.vala
==============================================================================
--- trunk/vala/valagenieparser.vala	(original)
+++ trunk/vala/valagenieparser.vala	Sat Dec 13 10:55:08 2008
@@ -699,7 +699,6 @@
 								s_exp.value = st;
 							}
 						} else {
-							string s = "\"\\n\"";
 							var rhs = new StringLiteral (s, get_src (begin));
 							p_expr = new BinaryExpression (BinaryOperator.PLUS, p_expr, rhs, get_src (begin));
 						}
@@ -2110,7 +2109,7 @@
 				if (accept (TokenType.OPEN_PARENS)) {
 					if (current () != TokenType.CLOSE_PARENS) {
 						do {
-							string id = parse_identifier ();
+							id = parse_identifier ();
 							expect (TokenType.ASSIGN);
 							var expr = parse_expression ();
 							attr.add_argument (id, expr);

Modified: trunk/vala/valaparser.vala
==============================================================================
--- trunk/vala/valaparser.vala	(original)
+++ trunk/vala/valaparser.vala	Sat Dec 13 10:55:08 2008
@@ -1687,7 +1687,7 @@
 				if (accept (TokenType.OPEN_PARENS)) {
 					if (current () != TokenType.CLOSE_PARENS) {
 						do {
-							string id = parse_identifier ();
+							id = parse_identifier ();
 							expect (TokenType.ASSIGN);
 							var expr = parse_expression ();
 							attr.add_argument (id, expr);
@@ -2524,14 +2524,14 @@
 		if (accept (TokenType.SEMICOLON)) {
 			// enum methods
 			while (current () != TokenType.CLOSE_BRACE) {
-				var sym = parse_declaration ();
-				if (sym is Method) {
-					en.add_method ((Method) sym);
-				} else if (sym == null) {
+				var member_sym = parse_declaration ();
+				if (member_sym is Method) {
+					en.add_method ((Method) member_sym);
+				} else if (member_sym == null) {
 					// workaround for current limitation of exception handling
 					throw new ParseError.SYNTAX ("syntax error in declaration");
 				} else {
-					Report.error (sym.source_reference, "unexpected declaration in enum");
+					Report.error (member_sym.source_reference, "unexpected declaration in enum");
 				}
 			}
 		}
@@ -2584,14 +2584,14 @@
 		if (accept (TokenType.SEMICOLON)) {
 			// errordomain methods
 			while (current () != TokenType.CLOSE_BRACE) {
-				var sym = parse_declaration ();
-				if (sym is Method) {
-					ed.add_method ((Method) sym);
-				} else if (sym == null) {
+				var member_sym = parse_declaration ();
+				if (member_sym is Method) {
+					ed.add_method ((Method) member_sym);
+				} else if (member_sym == null) {
 					// workaround for current limitation of exception handling
 					throw new ParseError.SYNTAX ("syntax error in declaration");
 				} else {
-					Report.error (sym.source_reference, "unexpected declaration in errordomain");
+					Report.error (member_sym.source_reference, "unexpected declaration in errordomain");
 				}
 			}
 		}

Modified: trunk/vapigen/valagidlparser.vala
==============================================================================
--- trunk/vapigen/valagidlparser.vala	(original)
+++ trunk/vapigen/valagidlparser.vala	Sat Dec 13 10:55:08 2008
@@ -1435,7 +1435,7 @@
 			bool set_delegate_target_pos = false;
 			double delegate_target_pos = 0;
 			bool array_requested = false;
-			var attributes = get_attributes ("%s.%s".printf (symbol, param_node.name));
+			attributes = get_attributes ("%s.%s".printf (symbol, param_node.name));
 			if (attributes != null) {
 				foreach (string attr in attributes) {
 					var nv = attr.split ("=", 2);
@@ -1862,7 +1862,7 @@
 			p.direction = direction;
 			sig.add_parameter (p);
 
-			var attributes = get_attributes ("%s::%s.%s".printf (current_data_type.get_cname (), sig.name, param_node.name));
+			attributes = get_attributes ("%s::%s.%s".printf (current_data_type.get_cname (), sig.name, param_node.name));
 			if (attributes != null) {
 				string ns_name = null;
 				foreach (string attr in attributes) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]