Distinguish between an "abstract" attribute on a class containing a list of abstract members and an "abstract" flag on pure virtual methods - renamed former to "abstracts"

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13935 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2012-11-24 14:13:58 +00:00
commit d93dc0f8e2
10 changed files with 32 additions and 32 deletions

View file

@ -740,7 +740,7 @@ static List *pure_abstract(Node *n) {
abs = NewList();
}
Append(abs,n);
Setattr(n,"abstract","1");
SetFlag(n,"abstract");
}
}
} else if (Cmp(nodeType(n),"destructor") == 0) {
@ -749,7 +749,7 @@ static List *pure_abstract(Node *n) {
abs = NewList();
}
Append(abs,n);
Setattr(n,"abstract","1");
SetFlag(n,"abstract");
}
}
n = nextSibling(n);
@ -3002,7 +3002,7 @@ template_directive: SWIGTEMPLATE LPAREN idstringopt RPAREN idcolonnt LESSTHAN va
if (Strcmp(nodeType(templnode),"class") == 0) {
/* Identify pure abstract methods */
Setattr(templnode,"abstract", pure_abstract(firstChild(templnode)));
Setattr(templnode,"abstracts", pure_abstract(firstChild(templnode)));
/* Set up inheritance in symbol table */
{
@ -3574,7 +3574,7 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
inclass = 0;
/* Check for pure-abstract class */
Setattr($$,"abstract", pure_abstract($7));
Setattr($$,"abstracts", pure_abstract($7));
/* This bit of code merges in a previously defined %extend directive (if any) */
@ -3737,7 +3737,7 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
unnamed = Getattr($$,"unnamed");
/* Check for pure-abstract class */
Setattr($$,"abstract", pure_abstract($5));
Setattr($$,"abstracts", pure_abstract($5));
n = new_node("cdecl");
Setattr(n,"name",$7.id);