aboutsummaryrefslogtreecommitdiffstats
path: root/src/flatten.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-12-15 21:48:21 +0000
committerDavid Robillard <d@drobilla.net>2012-12-15 21:48:21 +0000
commitd3708205163f784343733661d9fa01ff14f8b751 (patch)
treea771a4956753c66cd2c8b7c5eb9f1e4a0b30834a /src/flatten.cpp
parent10174ffc7ea08b7845dbe409a11811e820536468 (diff)
downloadresp-d3708205163f784343733661d9fa01ff14f8b751.tar.gz
resp-d3708205163f784343733661d9fa01ff14f8b751.tar.bz2
resp-d3708205163f784343733661d9fa01ff14f8b751.zip
Write forward declarations for all types and functions for mutual and/or nested recursion.
git-svn-id: http://svn.drobilla.net/resp/trunk@440 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/flatten.cpp')
-rw-r--r--src/flatten.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/flatten.cpp b/src/flatten.cpp
index 8d92ff9..424e5a6 100644
--- a/src/flatten.cpp
+++ b/src/flatten.cpp
@@ -65,6 +65,10 @@ static const AST*
flatten_def_type(CEnv& cenv, Code& code, const ATuple* def) throw()
{
const ASymbol* name = def->frst()->to_symbol();
+ if (!def->rrst()) { // Forward declaration
+ code.push_back(def);
+ return NULL;
+ }
if (name) {
cenv.tenv.def(name, def->frrst());
} else {