out-of-scope template definitions fixed
nested_private test disabled again
This commit is contained in:
parent
e1a4e11bea
commit
053c605df0
2 changed files with 14 additions and 4 deletions
|
|
@ -84,6 +84,7 @@ CPP_TEST_BROKEN += \
|
||||||
extend_variable \
|
extend_variable \
|
||||||
li_std_vector_ptr \
|
li_std_vector_ptr \
|
||||||
li_boost_shared_ptr_template \
|
li_boost_shared_ptr_template \
|
||||||
|
nested_private \
|
||||||
overload_complicated \
|
overload_complicated \
|
||||||
template_default_pointer \
|
template_default_pointer \
|
||||||
template_expr \
|
template_expr \
|
||||||
|
|
@ -278,7 +279,6 @@ CPP_TEST_CASES += \
|
||||||
naturalvar_more \
|
naturalvar_more \
|
||||||
nested_class \
|
nested_class \
|
||||||
nested_comment \
|
nested_comment \
|
||||||
nested_private \
|
|
||||||
nested_scope \
|
nested_scope \
|
||||||
nested_workaround \
|
nested_workaround \
|
||||||
newobject1 \
|
newobject1 \
|
||||||
|
|
|
||||||
|
|
@ -3389,6 +3389,7 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
|
||||||
scope = resolve_create_node_scope($3);
|
scope = resolve_create_node_scope($3);
|
||||||
/* save nscope_inner to the class - it may be overwritten in nested classes*/
|
/* save nscope_inner to the class - it may be overwritten in nested classes*/
|
||||||
Setattr($<node>$, "nested:innerscope", nscope_inner);
|
Setattr($<node>$, "nested:innerscope", nscope_inner);
|
||||||
|
Setattr($<node>$, "nested:nscope", nscope);
|
||||||
Setfile(scope,cparse_file);
|
Setfile(scope,cparse_file);
|
||||||
Setline(scope,cparse_line);
|
Setline(scope,cparse_line);
|
||||||
$3 = scope;
|
$3 = scope;
|
||||||
|
|
@ -3465,8 +3466,10 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
|
||||||
$$ = currentOuterClass;
|
$$ = currentOuterClass;
|
||||||
currentOuterClass = Getattr($$, "nested:outer");
|
currentOuterClass = Getattr($$, "nested:outer");
|
||||||
nscope_inner = Getattr($<node>$, "nested:innerscope");
|
nscope_inner = Getattr($<node>$, "nested:innerscope");
|
||||||
|
nscope = Getattr($<node>$, "nested:nscope");
|
||||||
Delattr($<node>$, "nested:innerscope");
|
Delattr($<node>$, "nested:innerscope");
|
||||||
if (nscope_inner) /*actual parent class for this class*/
|
Delattr($<node>$, "nested:nscope");
|
||||||
|
if (nscope_inner && Strcmp(nodeType(nscope_inner), "class") == 0) /* actual parent class for this class */
|
||||||
Setattr($$, "nested:outer", nscope_inner);
|
Setattr($$, "nested:outer", nscope_inner);
|
||||||
if (!currentOuterClass)
|
if (!currentOuterClass)
|
||||||
inclass = 0;
|
inclass = 0;
|
||||||
|
|
@ -3546,14 +3549,21 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
|
||||||
Swig_symbol_setscope(Getattr(nscope_inner,"symtab"));
|
Swig_symbol_setscope(Getattr(nscope_inner,"symtab"));
|
||||||
Delete(Namespaceprefix);
|
Delete(Namespaceprefix);
|
||||||
Namespaceprefix = Swig_symbol_qualifiedscopename(0);
|
Namespaceprefix = Swig_symbol_qualifiedscopename(0);
|
||||||
|
yyrename = Copy(Getattr($<node>$, "class_rename"));
|
||||||
add_symbols($$);
|
add_symbols($$);
|
||||||
|
Delattr($$, "class_rename");
|
||||||
/* but the variable definition in the current scope */
|
/* but the variable definition in the current scope */
|
||||||
Swig_symbol_setscope(cscope);
|
Swig_symbol_setscope(cscope);
|
||||||
Delete(Namespaceprefix);
|
Delete(Namespaceprefix);
|
||||||
Namespaceprefix = Swig_symbol_qualifiedscopename(0);
|
Namespaceprefix = Swig_symbol_qualifiedscopename(0);
|
||||||
add_symbols($9);
|
add_symbols($9);
|
||||||
nscope_inner = 0;
|
if (nscope) {
|
||||||
$$ = $9;
|
$$ = nscope;
|
||||||
|
if ($9)
|
||||||
|
appendSibling($$, $9);
|
||||||
|
}
|
||||||
|
else if (!SwigType_istemplate(ty) && template_parameters == 0)
|
||||||
|
$$ = $9;
|
||||||
} else {
|
} else {
|
||||||
Delete(yyrename);
|
Delete(yyrename);
|
||||||
yyrename = 0;
|
yyrename = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue