summaryrefslogtreecommitdiff
path: root/tests/generics/parameter-in-cast.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/generics/parameter-in-cast.vala')
-rw-r--r--tests/generics/parameter-in-cast.vala42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/generics/parameter-in-cast.vala b/tests/generics/parameter-in-cast.vala
new file mode 100644
index 000000000..270b7440f
--- /dev/null
+++ b/tests/generics/parameter-in-cast.vala
@@ -0,0 +1,42 @@
+T manam<T> (T foo) {
+ return foo;
+}
+
+bool get_bool () {
+ return true;
+}
+
+T minim_b<T> () {
+ return manam<T> (get_bool ());
+}
+
+uint32 get_uint32 () {
+ return 23U;
+}
+
+T minim_u<T> () {
+ return manam<T> (get_uint32 ());
+}
+
+string get_string () {
+ return "bar";
+}
+
+T minim_s<T> () {
+ return manam<T> (get_string ());
+}
+
+void main () {
+ {
+ assert (manam<bool> (get_bool ()) == true);
+ assert (minim_b<bool> () == true);
+ }
+ {
+ assert (manam<uint32> (get_uint32 ()) == 23U);
+ assert (minim_u<uint32> () == 23U);
+ }
+ {
+ assert (manam<string> (get_string ()) == "bar");
+ assert (minim_s<string> () == "bar");
+ }
+}