From: Lorenz Wildberg Date: Fri, 28 Jul 2023 15:47:52 +0000 (+0300) Subject: fixup! methodcallmodule: Very small fix X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b2862d984c4f788d63cf0723a56e88a40b2658f;p=thirdparty%2Fvala.git fixup! methodcallmodule: Very small fix --- diff --git a/tests/generics/no-generic-args-function.c-expected b/tests/generics/no-generic-args-function.c-expected new file mode 100644 index 000000000..96f2d845d --- /dev/null +++ b/tests/generics/no-generic-args-function.c-expected @@ -0,0 +1,132 @@ +/* generics_no_generic_args_function.c generated by valac, the Vala compiler + * generated from generics_no_generic_args_function.vala, do not modify */ + +#include +#include + +#if !defined(VALA_EXTERN) +#if defined(_WIN32) || defined(__CYGWIN__) +#define VALA_EXTERN __declspec(dllexport) extern +#elif __GNUC__ >= 4 +#define VALA_EXTERN __attribute__((visibility("default"))) extern +#else +#define VALA_EXTERN extern +#endif +#endif + +#define TYPE_TEST (test_get_type ()) +#define TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEST, Test)) +#define TEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEST, TestClass)) +#define IS_TEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEST)) +#define IS_TEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEST)) +#define TEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEST, TestClass)) + +typedef struct _Test Test; +typedef struct _TestClass TestClass; +typedef struct _TestPrivate TestPrivate; +enum { + TEST_0_PROPERTY, + TEST_NUM_PROPERTIES +}; +static GParamSpec* test_properties[TEST_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#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 _Test { + GObject parent_instance; + TestPrivate * priv; +}; + +struct _TestClass { + GObjectClass parent_class; +}; + +static gpointer test_parent_class = NULL; + +VALA_EXTERN GType test_get_type (void) G_GNUC_CONST ; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (Test, g_object_unref) +VALA_EXTERN gint test_foo (Test* self); +VALA_EXTERN Test* test_new (void); +VALA_EXTERN Test* test_construct (GType object_type); +static GType test_get_type_once (void); +static void _vala_main (void); + +gint +test_foo (Test* self) +{ + gint result; + g_return_val_if_fail (IS_TEST (self), 0); + result = 10; + return result; +} + +Test* +test_construct (GType object_type) +{ + Test * self = NULL; + self = (Test*) g_object_new (object_type, NULL); + return self; +} + +Test* +test_new (void) +{ + return test_construct (TYPE_TEST); +} + +static void +test_class_init (TestClass * klass, + gpointer klass_data) +{ + test_parent_class = g_type_class_peek_parent (klass); +} + +static void +test_instance_init (Test * self, + gpointer klass) +{ +} + +static GType +test_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (TestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) test_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Test), 0, (GInstanceInitFunc) test_instance_init, NULL }; + GType test_type_id; + test_type_id = g_type_register_static (G_TYPE_OBJECT, "Test", &g_define_type_info, 0); + return test_type_id; +} + +GType +test_get_type (void) +{ + static volatile gsize test_type_id__once = 0; + if (g_once_init_enter (&test_type_id__once)) { + GType test_type_id; + test_type_id = test_get_type_once (); + g_once_init_leave (&test_type_id__once, test_type_id); + } + return test_type_id__once; +} + +static void +_vala_main (void) +{ + Test* t = NULL; + Test* _tmp0_; + _tmp0_ = test_new (); + t = _tmp0_; + _vala_assert (test_foo (t) == 10, "t.foo () == 10"); + _g_object_unref0 (t); +} + +int +main (int argc, + char ** argv) +{ + _vala_main (); + return 0; +} + diff --git a/tests/generics/no-generic-args-function.vala b/tests/generics/no-generic-args-function.vala new file mode 100644 index 000000000..6a167a104 --- /dev/null +++ b/tests/generics/no-generic-args-function.vala @@ -0,0 +1,12 @@ +class Test : Object { + [CCode (no_generic_args=true)] + public int foo () where G : Object { + return 10; + } +} + + +void main () { + Test t = new Test (); + assert (t.foo () == 10); +}