Clearer warning message for badly constructed typecheck typemaps
This commit is contained in:
parent
4010d25b91
commit
55e7264d43
7 changed files with 24 additions and 12 deletions
|
|
@ -5,6 +5,17 @@ See the RELEASENOTES file for a summary of changes in each release.
|
||||||
Version 3.0.6 (in progress)
|
Version 3.0.6 (in progress)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
2015-04-14: wsfulton
|
||||||
|
Clearer warning message for badly constructed typecheck typemaps. For example, was:
|
||||||
|
|
||||||
|
example.i:3: Warning 467: Overloaded foo(int) not supported (no type checking
|
||||||
|
rule for 'int').
|
||||||
|
|
||||||
|
Now:
|
||||||
|
|
||||||
|
example.i:3: Warning 467: Overloaded foo(int) not supported (incomplete type checking
|
||||||
|
rule - no precedence level in typecheck typemap for 'int').
|
||||||
|
|
||||||
2015-04-11: wsfulton
|
2015-04-11: wsfulton
|
||||||
[Java] Fix #353 - Linker multiple definition of 'ExceptionMatches' when
|
[Java] Fix #353 - Linker multiple definition of 'ExceptionMatches' when
|
||||||
using directors and multiple modules.
|
using directors and multiple modules.
|
||||||
|
|
|
||||||
|
|
@ -2101,13 +2101,13 @@ Therefore, earlier methods will shadow methods that appear later.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When wrapping an overloaded function, there is a chance that you will get an error message like this:
|
When wrapping an overloaded function, there is a chance that you will get a warning message like this:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="shell">
|
<div class="shell">
|
||||||
<pre>
|
<pre>
|
||||||
example.i:3: Warning 467: Overloaded foo(int) not supported (no type checking
|
example.i:3: Warning 467: Overloaded foo(int) not supported (incomplete type checking rule -
|
||||||
rule for 'int').
|
no precedence level in typecheck typemap for 'int').
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -2116,7 +2116,8 @@ This error means that the target language module supports overloading,
|
||||||
but for some reason there is no type-checking rule that can be used to
|
but for some reason there is no type-checking rule that can be used to
|
||||||
generate a working dispatch function. The resulting behavior is then
|
generate a working dispatch function. The resulting behavior is then
|
||||||
undefined. You should report this as a bug to the
|
undefined. You should report this as a bug to the
|
||||||
<a href="http://www.swig.org/bugs.html">SWIG bug tracking database</a>.
|
<a href="http://www.swig.org/bugs.html">SWIG bug tracking database</a>
|
||||||
|
if this is due to one of the typemaps supplied with SWIG.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
|
||||||
|
|
@ -4563,7 +4563,7 @@ then the type is given a precedence higher than any other known precedence level
|
||||||
|
|
||||||
<div class="shell">
|
<div class="shell">
|
||||||
<pre>
|
<pre>
|
||||||
example.i:18: Warning 467: Overloaded method foo(int) not supported (no type checking rule for 'int').
|
example.i:18: Warning 467: Overloaded method foo(int) not supported (incomplete type checking rule - no precedence level in typecheck typemap for 'int').
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -492,7 +492,7 @@ example.i(4) : Syntax error in input(1).
|
||||||
<li>464. Unsupported constant value.
|
<li>464. Unsupported constant value.
|
||||||
<li>465. Unable to handle type <em>type</em>.
|
<li>465. Unable to handle type <em>type</em>.
|
||||||
<li>466. Unsupported variable type <em>type</em>.
|
<li>466. Unsupported variable type <em>type</em>.
|
||||||
<li>467. Overloaded <em>declaration</em> not supported (no type checking rule for '<em>type</em>')
|
<li>467. Overloaded <em>declaration</em> not supported (incomplete type checking rule - no precedence level in typecheck typemap for '<em>type</em>')
|
||||||
<li>468. No 'throw' typemap defined for exception type <em>type</em>
|
<li>468. No 'throw' typemap defined for exception type <em>type</em>
|
||||||
<li>469. No or improper directorin typemap defined for <em>type</em>
|
<li>469. No or improper directorin typemap defined for <em>type</em>
|
||||||
<li>470. Thread/reentrant unsafe wrapping, consider returning by value instead.
|
<li>470. Thread/reentrant unsafe wrapping, consider returning by value instead.
|
||||||
|
|
|
||||||
|
|
@ -1794,12 +1794,12 @@ static List *Swig_overload_rank(Node *n, bool script_lang_wrapping) {
|
||||||
String *t2 = Getattr(p2, "tmap:typecheck:precedence");
|
String *t2 = Getattr(p2, "tmap:typecheck:precedence");
|
||||||
if ((!t1) && (!nodes[i].error)) {
|
if ((!t1) && (!nodes[i].error)) {
|
||||||
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[i].n), Getline(nodes[i].n),
|
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[i].n), Getline(nodes[i].n),
|
||||||
"Overloaded method %s not supported (no type checking rule for '%s').\n",
|
"Overloaded method %s not supported (incomplete type checking rule - no precedence level in typecheck typemap for '%s').\n",
|
||||||
Swig_name_decl(nodes[i].n), SwigType_str(Getattr(p1, "type"), 0));
|
Swig_name_decl(nodes[i].n), SwigType_str(Getattr(p1, "type"), 0));
|
||||||
nodes[i].error = 1;
|
nodes[i].error = 1;
|
||||||
} else if ((!t2) && (!nodes[j].error)) {
|
} else if ((!t2) && (!nodes[j].error)) {
|
||||||
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[j].n), Getline(nodes[j].n),
|
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[j].n), Getline(nodes[j].n),
|
||||||
"Overloaded method %s not supported (no type checking rule for '%s').\n",
|
"Overloaded method %s not supported (incomplete type checking rule - no precedence level in typecheck typemap for '%s').\n",
|
||||||
Swig_name_decl(nodes[j].n), SwigType_str(Getattr(p2, "type"), 0));
|
Swig_name_decl(nodes[j].n), SwigType_str(Getattr(p2, "type"), 0));
|
||||||
nodes[j].error = 1;
|
nodes[j].error = 1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -158,12 +158,12 @@ List *Swig_overload_rank(Node *n, bool script_lang_wrapping) {
|
||||||
String *t2 = Getattr(p2, "tmap:typecheck:precedence");
|
String *t2 = Getattr(p2, "tmap:typecheck:precedence");
|
||||||
if ((!t1) && (!nodes[i].error)) {
|
if ((!t1) && (!nodes[i].error)) {
|
||||||
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[i].n), Getline(nodes[i].n),
|
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[i].n), Getline(nodes[i].n),
|
||||||
"Overloaded method %s not supported (no type checking rule for '%s').\n",
|
"Overloaded method %s not supported (incomplete type checking rule - no precedence level in typecheck typemap for '%s').\n",
|
||||||
Swig_name_decl(nodes[i].n), SwigType_str(Getattr(p1, "type"), 0));
|
Swig_name_decl(nodes[i].n), SwigType_str(Getattr(p1, "type"), 0));
|
||||||
nodes[i].error = 1;
|
nodes[i].error = 1;
|
||||||
} else if ((!t2) && (!nodes[j].error)) {
|
} else if ((!t2) && (!nodes[j].error)) {
|
||||||
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[j].n), Getline(nodes[j].n),
|
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[j].n), Getline(nodes[j].n),
|
||||||
"Overloaded method %s not supported (no type checking rule for '%s').\n",
|
"Overloaded method %s not supported (incomplete type checking rule - no precedence level in typecheck typemap for '%s').\n",
|
||||||
Swig_name_decl(nodes[j].n), SwigType_str(Getattr(p2, "type"), 0));
|
Swig_name_decl(nodes[j].n), SwigType_str(Getattr(p2, "type"), 0));
|
||||||
nodes[j].error = 1;
|
nodes[j].error = 1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1381,12 +1381,12 @@ List * R::Swig_overload_rank(Node *n,
|
||||||
}
|
}
|
||||||
if ((!t1) && (!nodes[i].error)) {
|
if ((!t1) && (!nodes[i].error)) {
|
||||||
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[i].n), Getline(nodes[i].n),
|
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[i].n), Getline(nodes[i].n),
|
||||||
"Overloaded method %s not supported (no type checking rule for '%s').\n",
|
"Overloaded method %s not supported (incomplete type checking rule - no precedence level in typecheck typemap for '%s').\n",
|
||||||
Swig_name_decl(nodes[i].n), SwigType_str(Getattr(p1, "type"), 0));
|
Swig_name_decl(nodes[i].n), SwigType_str(Getattr(p1, "type"), 0));
|
||||||
nodes[i].error = 1;
|
nodes[i].error = 1;
|
||||||
} else if ((!t2) && (!nodes[j].error)) {
|
} else if ((!t2) && (!nodes[j].error)) {
|
||||||
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[j].n), Getline(nodes[j].n),
|
Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[j].n), Getline(nodes[j].n),
|
||||||
"xx Overloaded method %s not supported (no type checking rule for '%s').\n",
|
"Overloaded method %s not supported (incomplete type checking rule - no precedence level in typecheck typemap for '%s').\n",
|
||||||
Swig_name_decl(nodes[j].n), SwigType_str(Getattr(p2, "type"), 0));
|
Swig_name_decl(nodes[j].n), SwigType_str(Getattr(p2, "type"), 0));
|
||||||
nodes[j].error = 1;
|
nodes[j].error = 1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue