You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/03/30 18:41:21 UTC

[lucy-commits] [2/2] git commit: refs/heads/master - Make CFCParamList_to_c return "void" for empty param lists

Make CFCParamList_to_c return "void" for empty param lists

So we get a compiler error if a nullary function is called with
arguments.


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/22ea87d3
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/22ea87d3
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/22ea87d3

Branch: refs/heads/master
Commit: 22ea87d30464574c4359c9c37a2ac6e38a5569c3
Parents: 0147d90
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Mar 30 18:29:07 2013 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Mar 30 18:35:14 2013 +0100

----------------------------------------------------------------------
 clownfish/compiler/src/CFCParamList.c     |    6 ++++++
 clownfish/compiler/src/CFCTestParamList.c |   13 ++++++++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/22ea87d3/clownfish/compiler/src/CFCParamList.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCParamList.c b/clownfish/compiler/src/CFCParamList.c
index 279aecd..43e5408 100644
--- a/clownfish/compiler/src/CFCParamList.c
+++ b/clownfish/compiler/src/CFCParamList.c
@@ -105,6 +105,9 @@ S_generate_c_strings(CFCParamList *self) {
     if (self->variadic) {
         c_string_size += sizeof(", ...");
     }
+    if (self->num_vars == 0) {
+        c_string_size += sizeof("void");
+    }
     FREEMEM(self->c_string);
     FREEMEM(self->name_list);
     self->c_string  = (char*)MALLOCATE(c_string_size);
@@ -127,6 +130,9 @@ S_generate_c_strings(CFCParamList *self) {
             strcat(self->name_list, ", ");
         }
     }
+    if (self->num_vars == 0) {
+        strcat(self->c_string, "void");
+    }
 }
 
 CFCVariable**

http://git-wip-us.apache.org/repos/asf/lucy/blob/22ea87d3/clownfish/compiler/src/CFCTestParamList.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCTestParamList.c b/clownfish/compiler/src/CFCTestParamList.c
index dd43d5b..0fd552c 100644
--- a/clownfish/compiler/src/CFCTestParamList.c
+++ b/clownfish/compiler/src/CFCTestParamList.c
@@ -27,7 +27,7 @@ S_run_tests(CFCTest *test);
 
 const CFCTestBatch CFCTEST_BATCH_PARAM_LIST = {
     "Clownfish::CFC::Model::ParamList",
-    16,
+    21,
     S_run_tests
 };
 
@@ -69,6 +69,17 @@ S_run_tests(CFCTest *test) {
         CFCBase_decref((CFCBase*)param_list);
     }
 
+    {
+        CFCParamList *param_list
+            = CFCTest_parse_param_list(test, parser, "()");
+        STR_EQ(test, CFCParamList_to_c(param_list), "void", "to_c");
+        INT_EQ(test, CFCParamList_num_vars(param_list), 0, "num_vars");
+        CFCVariable **variables = CFCParamList_get_variables(param_list);
+        OK(test, variables[0] == NULL, "get_variables");
+
+        CFCBase_decref((CFCBase*)param_list);
+    }
+
     CFCBase_decref((CFCBase*)parser);
     CFCBase_decref((CFCBase*)neato_parcel);