summaryrefslogtreecommitdiff
path: root/tests/nullability
diff options
context:
space:
mode:
Diffstat (limited to 'tests/nullability')
-rw-r--r--tests/nullability/generics-invalid.test16
-rw-r--r--tests/nullability/generics.c-expected58
-rw-r--r--tests/nullability/generics.vala8
3 files changed, 82 insertions, 0 deletions
diff --git a/tests/nullability/generics-invalid.test b/tests/nullability/generics-invalid.test
new file mode 100644
index 000000000..e82fd74d5
--- /dev/null
+++ b/tests/nullability/generics-invalid.test
@@ -0,0 +1,16 @@
+Invalid Code
+
+G? foo<G> () {
+ return null;
+}
+
+void manam<K> (K k) {
+}
+
+void bar<T> () {
+ T t = foo<T> ();
+ manam (t);
+}
+
+void main () {
+}
diff --git a/tests/nullability/generics.c-expected b/tests/nullability/generics.c-expected
new file mode 100644
index 000000000..ca4783adb
--- /dev/null
+++ b/tests/nullability/generics.c-expected
@@ -0,0 +1,58 @@
+/* nullability_generics.c generated by valac, the Vala compiler
+ * generated from nullability_generics.vala, do not modify */
+
+#include <glib-object.h>
+#include <glib.h>
+#include <stdlib.h>
+#include <string.h>
+
+#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 _g_free0(var) (var = (g_free (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);
+
+VALA_EXTERN gpointer foo (GType g_type,
+ GBoxedCopyFunc g_dup_func,
+ GDestroyNotify g_destroy_func);
+static void _vala_main (void);
+
+gpointer
+foo (GType g_type,
+ GBoxedCopyFunc g_dup_func,
+ GDestroyNotify g_destroy_func)
+{
+ gpointer result;
+ result = NULL;
+ return result;
+}
+
+static void
+_vala_main (void)
+{
+ gchar* s = NULL;
+ gpointer _tmp0_;
+ _tmp0_ = foo (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free);
+ s = (gchar*) _tmp0_;
+ _vala_assert (s == NULL, "s == null");
+ _g_free0 (s);
+}
+
+int
+main (int argc,
+ char ** argv)
+{
+ _vala_main ();
+ return 0;
+}
+
diff --git a/tests/nullability/generics.vala b/tests/nullability/generics.vala
new file mode 100644
index 000000000..8568f8baa
--- /dev/null
+++ b/tests/nullability/generics.vala
@@ -0,0 +1,8 @@
+G? foo<G> () {
+ return null;
+}
+
+void main () {
+ var s = foo<string> ();
+ assert (s == null);
+}