Ignored nested class/struct warnings now display the name of the ignored class/struct.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11728 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ec6bf1ec96
commit
9d65c100b9
6 changed files with 59 additions and 6 deletions
|
|
@ -1,6 +1,9 @@
|
||||||
Version 1.3.41 (in progress)
|
Version 1.3.41 (in progress)
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
2009-11-08: wsfulton
|
||||||
|
Ignored nested class/struct warnings now display the name of the ignored class/struct.
|
||||||
|
|
||||||
2009-11-07: wsfulton
|
2009-11-07: wsfulton
|
||||||
Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
|
Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
|
||||||
code and introduced strange side effects to other wrapper code especially code
|
code and introduced strange side effects to other wrapper code especially code
|
||||||
|
|
|
||||||
|
|
@ -399,8 +399,7 @@ example.i(4): Syntax error in input.
|
||||||
<li>308. Namespace alias '<em>name</em>' not allowed here. Assuming '<em>name</em>'
|
<li>308. Namespace alias '<em>name</em>' not allowed here. Assuming '<em>name</em>'
|
||||||
<li>309. [private | protected] inheritance ignored.
|
<li>309. [private | protected] inheritance ignored.
|
||||||
<li>310. Template '<em>name</em>' was already wrapped as '<em>name</em>' (ignored)
|
<li>310. Template '<em>name</em>' was already wrapped as '<em>name</em>' (ignored)
|
||||||
<li>311. Template partial specialization not supported.
|
<li>312. Nested class not currently supported (<em>name</em> ignored).
|
||||||
<li>312. Nested classes not currently supported (ignored).
|
|
||||||
<li>313. Unrecognized extern type "<em>name</em>" (ignored).
|
<li>313. Unrecognized extern type "<em>name</em>" (ignored).
|
||||||
<li>314. '<em>identifier</em>' is a <em>lang</em> keyword.
|
<li>314. '<em>identifier</em>' is a <em>lang</em> keyword.
|
||||||
<li>315. Nothing known about '<em>identifier</em>'.
|
<li>315. Nothing known about '<em>identifier</em>'.
|
||||||
|
|
|
||||||
|
|
@ -242,6 +242,7 @@ CPP_TEST_CASES += \
|
||||||
namespace_typemap \
|
namespace_typemap \
|
||||||
namespace_virtual_method \
|
namespace_virtual_method \
|
||||||
naturalvar \
|
naturalvar \
|
||||||
|
nested_class \
|
||||||
nested_comment \
|
nested_comment \
|
||||||
newobject1 \
|
newobject1 \
|
||||||
null_pointer \
|
null_pointer \
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ This was reported in bug #909389 */
|
||||||
|
|
||||||
%module derived_nested
|
%module derived_nested
|
||||||
|
|
||||||
|
#pragma SWIG nowarn=SWIGWARN_PARSE_NESTED_CLASS
|
||||||
|
|
||||||
%inline %{
|
%inline %{
|
||||||
|
|
||||||
class A { int x; };
|
class A { int x; };
|
||||||
|
|
@ -11,5 +13,10 @@ class B {
|
||||||
class D : public A { int z; }; //ok
|
class D : public A { int z; }; //ok
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct BB {
|
||||||
|
class CC { int y; };
|
||||||
|
class DD : public A { int z; };
|
||||||
|
struct EE : public A { int z; };
|
||||||
|
};
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
|
|
||||||
40
Examples/test-suite/nested_class.i
Normal file
40
Examples/test-suite/nested_class.i
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
%module nested_class
|
||||||
|
|
||||||
|
#pragma SWIG nowarn=SWIGWARN_PARSE_NESTED_CLASS
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
struct Outer {
|
||||||
|
struct Inner1 {
|
||||||
|
int x;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Inner2 {
|
||||||
|
public:
|
||||||
|
int x;
|
||||||
|
};
|
||||||
|
|
||||||
|
class {
|
||||||
|
public:
|
||||||
|
int a;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct {
|
||||||
|
int b;
|
||||||
|
};
|
||||||
|
|
||||||
|
union {
|
||||||
|
int c;
|
||||||
|
double d;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Inner3 {
|
||||||
|
public:
|
||||||
|
int x;
|
||||||
|
} Inner3Name;
|
||||||
|
|
||||||
|
struct Inner4 {
|
||||||
|
int x;
|
||||||
|
} Inner4Name;
|
||||||
|
};
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
@ -4395,7 +4395,7 @@ cpp_nested : storage_class cpptype ID LBRACE { cparse_start_line = cparse_line
|
||||||
n->next = 0;
|
n->next = 0;
|
||||||
add_nested(n);
|
add_nested(n);
|
||||||
} else {
|
} else {
|
||||||
Swig_warning(WARN_PARSE_NESTED_CLASS, cparse_file, cparse_line, "Nested %s not currently supported (ignored).\n", $2);
|
Swig_warning(WARN_PARSE_NESTED_CLASS, cparse_file, cparse_line, "Nested %s not currently supported (%s ignored).\n", $2, $3);
|
||||||
if (strcmp($2, "class") == 0) {
|
if (strcmp($2, "class") == 0) {
|
||||||
/* For now, just treat the nested class as a forward
|
/* For now, just treat the nested class as a forward
|
||||||
* declaration (SF bug #909387). */
|
* declaration (SF bug #909387). */
|
||||||
|
|
@ -4416,7 +4416,10 @@ cpp_nested : storage_class cpptype ID LBRACE { cparse_start_line = cparse_line
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
if (cplus_mode == CPLUS_PUBLIC) {
|
if (cplus_mode == CPLUS_PUBLIC) {
|
||||||
if (strcmp($2,"class") == 0) {
|
if (strcmp($2,"class") == 0) {
|
||||||
Swig_warning(WARN_PARSE_NESTED_CLASS,cparse_file, cparse_line,"Nested class not currently supported (ignored)\n");
|
if ($5.id)
|
||||||
|
Swig_warning(WARN_PARSE_NESTED_CLASS, cparse_file, cparse_line,"Nested class not currently supported (%s ignored)\n", $5.id);
|
||||||
|
else
|
||||||
|
Swig_warning(WARN_PARSE_NESTED_CLASS, cparse_file, cparse_line,"Nested class not currently supported (ignored)\n");
|
||||||
} else if ($5.id) {
|
} else if ($5.id) {
|
||||||
/* Generate some code for a new class */
|
/* Generate some code for a new class */
|
||||||
Nested *n = (Nested *) malloc(sizeof(Nested));
|
Nested *n = (Nested *) malloc(sizeof(Nested));
|
||||||
|
|
@ -4445,7 +4448,7 @@ cpp_nested : storage_class cpptype ID LBRACE { cparse_start_line = cparse_line
|
||||||
} SEMI {
|
} SEMI {
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
if (cplus_mode == CPLUS_PUBLIC) {
|
if (cplus_mode == CPLUS_PUBLIC) {
|
||||||
Swig_warning(WARN_PARSE_NESTED_CLASS,cparse_file, cparse_line,"Nested class not currently supported (ignored)\n");
|
Swig_warning(WARN_PARSE_NESTED_CLASS, cparse_file, cparse_line,"Nested %s not currently supported (%s ignored)\n", $2, $3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* This unfortunately introduces 4 shift/reduce conflicts, so instead the somewhat hacky nested_template is used for ignore nested template classes. */
|
/* This unfortunately introduces 4 shift/reduce conflicts, so instead the somewhat hacky nested_template is used for ignore nested template classes. */
|
||||||
|
|
@ -4454,7 +4457,7 @@ cpp_nested : storage_class cpptype ID LBRACE { cparse_start_line = cparse_line
|
||||||
} SEMI {
|
} SEMI {
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
if (cplus_mode == CPLUS_PUBLIC) {
|
if (cplus_mode == CPLUS_PUBLIC) {
|
||||||
Swig_warning(WARN_PARSE_NESTED_CLASS,cparse_file, cparse_line,"Nested class not currently supported (ignored)\n");
|
Swig_warning(WARN_PARSE_NESTED_CLASS, cparse_file, cparse_line,"Nested %s not currently supported (%s ignored)\n", $5, $6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue