Support special variable expansion in %extend.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13871 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
2598a1daf2
commit
b17a77c6ea
9 changed files with 117 additions and 40 deletions
|
|
@ -204,6 +204,7 @@ CPP_TEST_CASES += \
|
|||
extend_constructor_destructor \
|
||||
extend_default \
|
||||
extend_placement \
|
||||
extend_special_variables \
|
||||
extend_template \
|
||||
extend_template_ns \
|
||||
extend_typedef_class \
|
||||
|
|
|
|||
21
Examples/test-suite/extend_special_variables.i
Normal file
21
Examples/test-suite/extend_special_variables.i
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
%module extend_special_variables
|
||||
|
||||
%rename(ForExtensionNewName) ForExtension;
|
||||
%rename(extended_renamed) ForExtension::extended;
|
||||
|
||||
%extend ForExtension {
|
||||
ForExtension() {
|
||||
return new ForExtension();
|
||||
}
|
||||
const char* extended() {
|
||||
return "name:$name symname:$symname wrapname:$wrapname overname:$overname decl:$decl fulldecl:$fulldecl parentclasssymname:$parentclasssymname parentclassname:$parentclassname";
|
||||
}
|
||||
const char* extended(int) {
|
||||
return "name:$name symname:$symname wrapname:$wrapname overname:$overname decl:$decl fulldecl:$fulldecl parentclasssymname:$parentclasssymname parentclassname:$parentclassname";
|
||||
}
|
||||
}
|
||||
|
||||
%inline %{
|
||||
struct ForExtension {
|
||||
};
|
||||
%}
|
||||
25
Examples/test-suite/java/extend_special_variables_runme.java
Normal file
25
Examples/test-suite/java/extend_special_variables_runme.java
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
import extend_special_variables.*;
|
||||
|
||||
public class extend_special_variables_runme {
|
||||
|
||||
static {
|
||||
try {
|
||||
System.loadLibrary("extend_special_variables");
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String argv[])
|
||||
{
|
||||
ForExtensionNewName f = new ForExtensionNewName();
|
||||
verify(f.extended_renamed(), "name:extended symname:extended_renamed wrapname: overname:__SWIG_0 decl:ForExtension::extended() fulldecl:char const * ForExtension::extended() parentclasssymname:ForExtensionNewName parentclassname:ForExtension");
|
||||
verify(f.extended_renamed(10), "name:extended symname:extended_renamed wrapname: overname:__SWIG_1 decl:ForExtension::extended(int) fulldecl:char const * ForExtension::extended(int) parentclasssymname:ForExtensionNewName parentclassname:ForExtension");
|
||||
}
|
||||
static void verify(String received, String expected) {
|
||||
if (!received.equals(expected))
|
||||
throw new RuntimeException("Incorrect, received: " + received);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue