--- /dev/null
+/* methods_local_functions_to_delegate.c generated by valac, the Vala compiler
+ * generated from methods_local_functions_to_delegate.vala, do not modify */
+
+#include <glib.h>
+
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+#if !defined(VALA_EXTERN)
+#if defined(_MSC_VER)
+#define VALA_EXTERN __declspec(dllexport) extern
+#elif __GNUC__ >= 4
+#define VALA_EXTERN __attribute__((visibility("default"))) extern
+#else
+#define VALA_EXTERN extern
+#endif
+#endif
+
+typedef gint (*Foo) (gint i, gpointer user_data);
+typedef gint (*Bar) (gint i);
+typedef gint (*_LocalFunc0_) (gint i, gpointer user_data);
+typedef gint (*_LocalFunc1_) (gint i);
+typedef struct _Block1Data Block1Data;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Block1Data {
+ int _ref_count_;
+ gint j;
+};
+
+VALA_EXTERN void foo (Foo f,
+ gpointer f_target);
+VALA_EXTERN void bar (Bar b);
+static void _vala_main (void);
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (void * _userdata_);
+static gint ___lambda4_ (Block1Data* _data1_,
+ gint i);
+static gint ____lambda4___localfunc0_ (gint i,
+ gpointer self);
+static gint ___lambda5_ (gint i);
+static gint ____lambda5___localfunc1_ (gint i);
+
+void
+foo (Foo f,
+ gpointer f_target)
+{
+ _vala_assert (f (13, f_target) == 39, "f (13) == 39");
+}
+
+void
+bar (Bar b)
+{
+ _vala_assert (b (42) == 84, "b (42) == 84");
+}
+
+static Block1Data*
+block1_data_ref (Block1Data* _data1_)
+{
+ g_atomic_int_inc (&_data1_->_ref_count_);
+ return _data1_;
+}
+
+static void
+block1_data_unref (void * _userdata_)
+{
+ Block1Data* _data1_;
+ _data1_ = (Block1Data*) _userdata_;
+ if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+ g_slice_free (Block1Data, _data1_);
+ }
+}
+
+static gint
+___lambda4_ (Block1Data* _data1_,
+ gint i)
+{
+ gint result;
+ result = i * _data1_->j;
+ return result;
+}
+
+static gint
+____lambda4___localfunc0_ (gint i,
+ gpointer self)
+{
+ gint result;
+ result = ___lambda4_ (self, i);
+ return result;
+}
+
+static gint
+___lambda5_ (gint i)
+{
+ gint result;
+ result = 2 * i;
+ return result;
+}
+
+static gint
+____lambda5___localfunc1_ (gint i)
+{
+ gint result;
+ result = ___lambda5_ (i);
+ return result;
+}
+
+static void
+_vala_main (void)
+{
+ {
+ Block1Data* _data1_;
+ _LocalFunc0_ func = NULL;
+ gpointer func_target;
+ Foo f = NULL;
+ gpointer f_target;
+ GDestroyNotify f_target_destroy_notify;
+ _data1_ = g_slice_new0 (Block1Data);
+ _data1_->_ref_count_ = 1;
+ _data1_->j = 3;
+ func = ____lambda4___localfunc0_;
+ func_target = _data1_;
+ foo (func, func_target);
+ f = func;
+ f_target = func_target;
+ f_target_destroy_notify = NULL;
+ _vala_assert (f (23, f_target) == 69, "f (23) == 69");
+ (f_target_destroy_notify == NULL) ? NULL : (f_target_destroy_notify (f_target), NULL);
+ f = NULL;
+ f_target = NULL;
+ f_target_destroy_notify = NULL;
+ block1_data_unref (_data1_);
+ _data1_ = NULL;
+ }
+ {
+ _LocalFunc1_ func = NULL;
+ Bar b = NULL;
+ func = ____lambda5___localfunc1_;
+ bar (func);
+ b = func;
+ _vala_assert (b (23) == 46, "b (23) == 46");
+ }
+}
+
+int
+main (int argc,
+ char ** argv)
+{
+ _vala_main ();
+ return 0;
+}
+