]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Properly handle DelegateType in get_ccode_lower_case_name()
authorRico Tzschichholz <ricotz@ubuntu.com>
Fri, 5 Feb 2016 08:08:12 +0000 (09:08 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Fri, 5 Feb 2016 08:08:12 +0000 (09:08 +0100)
codegen/valaccodebasemodule.vala
tests/basic-types/arrays.vala

index 0f79235bd8d2ea1fe25c8febb957fadbe7d9a525..bd4ecbff20e29194deb5fbb83631503f920bdd6d 100644 (file)
@@ -6066,6 +6066,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        } else {
                                return get_ccode_lower_case_name (type.error_code, infix);
                        }
+               } else if (node is DelegateType) {
+                       var type = (DelegateType) node;
+                       return get_ccode_lower_case_name (type.delegate_symbol, infix);
                } else {
                        var type = (DataType) node;
                        return get_ccode_lower_case_name (type.data_type, infix);
index 00a7164e7ade2c70f70d2723cd892b8fcc3df5b9..e9143b4dbf4f53d9a09bde6752bd33d149458d2e 100644 (file)
@@ -120,6 +120,22 @@ void test_inline_array () {
        assert (1 in a);
 }
 
+[CCode (has_target = false)]
+delegate int SimpleFunc ();
+SimpleFunc[] simple_delegates;
+
+int simple_func () {
+       return 0;
+}
+
+void test_delegate_array () {
+       SimpleFunc[] a = {};
+       a = (owned) simple_delegates;
+       a += (SimpleFunc) simple_func;
+       assert (a.length == 1);
+       assert (simple_func in a);
+}
+
 void main () {
        test_integer_array ();
        test_string_array ();
@@ -128,4 +144,5 @@ void main () {
        test_reference_transfer ();
        test_length_assignment ();
        test_inline_array ();
+       test_delegate_array ();
 }