vala r2359 - in trunk: . vala



Author: juergbi
Date: Fri Jan 16 16:44:57 2009
New Revision: 2359
URL: http://svn.gnome.org/viewvc/vala?rev=2359&view=rev

Log:
2009-01-16  JÃrg Billeter  <j bitron ch>

	* vala/valablock.vala:

	Detect local variables conflicting with parameters,
	patch by Andreas Brauchli, fixes bug 523189

	* vala/valaflowanalyzer.vala:
	* vala/valaparser.vala:

	Fix conflicts


Modified:
   trunk/ChangeLog
   trunk/vala/valablock.vala
   trunk/vala/valaflowanalyzer.vala
   trunk/vala/valaparser.vala

Modified: trunk/vala/valablock.vala
==============================================================================
--- trunk/vala/valablock.vala	(original)
+++ trunk/vala/valablock.vala	Fri Jan 16 16:44:57 2009
@@ -84,13 +84,13 @@
 	 * @param decl a variable declarator
 	 */
 	public void add_local_variable (LocalVariable local) {
-		var parent_block = parent_symbol as Block;
-		while (parent_block != null) {
+		var parent_block = parent_symbol;
+		while (parent_block is Block || parent_block is Method) {
 			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;
+			parent_block = parent_block.parent_symbol;
 		}
 		local_variables.add (local);
 	}

Modified: trunk/vala/valaflowanalyzer.vala
==============================================================================
--- trunk/vala/valaflowanalyzer.vala	(original)
+++ trunk/vala/valaflowanalyzer.vala	Fri Jan 16 16:44:57 2009
@@ -622,8 +622,8 @@
 		foreach (SwitchSection section in stmt.get_sections ()) {
 			current_block = new BasicBlock ();
 			condition_block.connect (current_block);
-			foreach (Statement stmt in section.get_statements ()) {
-				stmt.accept (this);
+			foreach (Statement section_stmt in section.get_statements ()) {
+				section_stmt.accept (this);
 			}
 
 			if (section.has_default_label ()) {

Modified: trunk/vala/valaparser.vala
==============================================================================
--- trunk/vala/valaparser.vala	(original)
+++ trunk/vala/valaparser.vala	Fri Jan 16 16:44:57 2009
@@ -2261,7 +2261,7 @@
 				expect (TokenType.SEMICOLON);
 			} else {
 				var accessor_begin = get_location ();
-				var attrs = parse_attributes ();
+				var accessor_attrs = parse_attributes ();
 				var accessor_access = parse_access_modifier (SymbolAccessibility.PUBLIC);
 
 				var value_type = type.copy ();
@@ -2282,7 +2282,7 @@
 						prop.external = false;
 					}
 					prop.get_accessor = new PropertyAccessor (true, false, false, value_type, block, get_src (accessor_begin));
-					set_attributes (prop.get_accessor, attrs);
+					set_attributes (prop.get_accessor, accessor_attrs);
 					prop.get_accessor.access = accessor_access;
 				} else {
 					bool writable, _construct;
@@ -2304,7 +2304,7 @@
 						prop.external = false;
 					}
 					prop.set_accessor = new PropertyAccessor (false, writable, _construct, value_type, block, get_src (accessor_begin));
-					set_attributes (prop.set_accessor, attrs);
+					set_attributes (prop.set_accessor, accessor_attrs);
 					prop.set_accessor.access = accessor_access;
 				}
 			}



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