[vala/0.52] codegen: Add type declaration for implicit temporary local variable



commit e2bb9209d132f408655805ec8b7d3a9db2a0fc44
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sat Sep 18 23:30:31 2021 +0200

    codegen: Add type declaration for implicit temporary local variable

 codegen/valaccodebasemodule.vala             | 2 ++
 tests/Makefile.am                            | 1 +
 tests/delegates/implicit-local-variable.vala | 6 ++++++
 3 files changed, 9 insertions(+)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 14aa846f9..c65fda753 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -3912,6 +3912,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
        }
 
        public void emit_temp_var (LocalVariable local, bool on_error = false) {
+               generate_type_declaration (local.variable_type, cfile);
+
                var init = (!local.name.has_prefix ("*") && local.init);
                if (is_in_coroutine ()) {
                        closure_struct.add_field (get_ccode_name (local.variable_type), local.name, 0, 
get_ccode_declarator_suffix (local.variable_type));
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3671f3312..fbc25c3bc 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -397,6 +397,7 @@ TESTS = \
        delegates/fields.vala \
        delegates/fields-no-target.vala \
        delegates/gclosure-conversion.vala \
+       delegates/implicit-local-variable.vala \
        delegates/incompatible.test \
        delegates/incompatible-assignment.test \
        delegates/incompatible-initializer.test \
diff --git a/tests/delegates/implicit-local-variable.vala b/tests/delegates/implicit-local-variable.vala
new file mode 100644
index 000000000..ffe1d3175
--- /dev/null
+++ b/tests/delegates/implicit-local-variable.vala
@@ -0,0 +1,6 @@
+void main () {
+       SourceFuncs foo = { null, null, () => { return false; }, null };
+       Source bar = null;
+
+       foo.dispatch (bar, null);
+}


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