Fix C enum forward declarations in some target languages (notably Java)

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13030 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2012-05-01 18:44:22 +00:00
commit 73b0431fbc
8 changed files with 119 additions and 2 deletions

View file

@ -1664,6 +1664,8 @@ int Language::enumvalueDeclaration(Node *n) {
int Language::enumforwardDeclaration(Node *n) {
(void) n;
if (GetFlag(n, "enumMissing"))
enumDeclaration(n); // Generate an empty enum in target language
return SWIG_OK;
}
@ -3156,7 +3158,9 @@ Node *Language::enumLookup(SwigType *s) {
n = Swig_symbol_clookup(base, stab);
if (!n)
break;
if (Strcmp(nodeType(n), "enum") == 0)
if (Equal(nodeType(n), "enum"))
break;
if (Equal(nodeType(n), "enumforward") && GetFlag(n, "enumMissing"))
break;
n = parentNode(n);
if (!n)