]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Open block for try statements
authorLuca Bruno <lucabru@src.gnome.org>
Thu, 26 May 2011 14:53:50 +0000 (16:53 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Thu, 26 May 2011 15:00:45 +0000 (17:00 +0200)
Fixes bug 651145.

codegen/valaccodebasemodule.vala
tests/Makefile.am
tests/errors/bug651145.vala [new file with mode: 0644]

index b4efc50087a6706a84a32053743c24d1baffdacc..2445bc722c1cf872d59dffbfc984d75413dfa97c 100644 (file)
@@ -1669,7 +1669,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                var local_vars = b.get_local_variables ();
 
-               if (b.parent_node is Block || b.parent_node is SwitchStatement) {
+               if (b.parent_node is Block || b.parent_node is SwitchStatement || b.parent_node is TryStatement) {
                        ccode.open_block ();
                }
 
@@ -1954,7 +1954,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        ccode.add_assignment (get_variable_cexpression ("_data%d_".printf (block_id)), new CCodeConstant ("NULL"));
                }
 
-               if (b.parent_node is Block || b.parent_node is SwitchStatement) {
+               if (b.parent_node is Block || b.parent_node is SwitchStatement || b.parent_node is TryStatement) {
                        ccode.close ();
                }
 
index 422571e0d408e71a48eb6c1510f7765dd0dc5252..a990d9c9e90da4a418cacd2d37d301d37b533ecc 100644 (file)
@@ -88,6 +88,7 @@ TESTS = \
        errors/bug596228.vala \
        errors/bug623049.vala \
        errors/bug639589.vala \
+       errors/bug651145.vala \
        asynchronous/bug595735.vala \
        asynchronous/bug595755.vala \
        asynchronous/bug596177.vala \
diff --git a/tests/errors/bug651145.vala b/tests/errors/bug651145.vala
new file mode 100644 (file)
index 0000000..06fa14a
--- /dev/null
@@ -0,0 +1,8 @@
+void main () {
+       try {
+               string foo;
+       } finally {}
+       try {
+               string foo;
+       } finally {}
+}