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);