summaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2023-05-06 11:36:30 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2023-05-06 11:36:30 +0100
commite0c7f81ba58489f25764e7b52884c81758c4a41c (patch)
treec41961e19486668ada1db23c5e94ad40fd8e6357 /Examples
parent87690113cd3883e25a8d7040054d008fccf9b5c2 (diff)
parent65be8812959aa0d2e9805e31549bbeac0cc89691 (diff)
downloadswig-e0c7f81ba58489f25764e7b52884c81758c4a41c.tar.gz
Merge branch 'typedef-namespace'
* typedef-namespace: Partial revert of previous commit for typedefs add an unit test tentative fix for typedef/using declaration to struct typedef Conflicts: CHANGES.current
Diffstat (limited to 'Examples')
-rw-r--r--Examples/test-suite/common.mk1
-rw-r--r--Examples/test-suite/cpp11_using_typedef_struct.i21
-rw-r--r--Examples/test-suite/javascript/cpp11_using_typedef_struct_runme.js13
3 files changed, 35 insertions, 0 deletions
diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk
index eb80977f7..c781bd930 100644
--- a/Examples/test-suite/common.mk
+++ b/Examples/test-suite/common.mk
@@ -636,6 +636,7 @@ CPP11_TEST_CASES += \
cpp11_uniform_initialization \
cpp11_unrestricted_unions \
cpp11_userdefined_literals \
+ cpp11_using_typedef_struct \
cpp11_variadic_function_templates \
cpp11_variadic_templates \
diff --git a/Examples/test-suite/cpp11_using_typedef_struct.i b/Examples/test-suite/cpp11_using_typedef_struct.i
new file mode 100644
index 000000000..81efdc310
--- /dev/null
+++ b/Examples/test-suite/cpp11_using_typedef_struct.i
@@ -0,0 +1,21 @@
+%module cpp11_using_typedef_struct
+
+%inline
+%{
+namespace nspace1 {
+ typedef struct _xAffineMatrix {
+ int x, y, z;
+ } AffineMatrix;
+
+ struct _xCacheView {
+ int x;
+ };
+ typedef struct _xCacheView CacheView;
+}
+
+using nspace1::AffineMatrix;
+using nspace1::CacheView;
+
+int fn1(AffineMatrix a) { return a.x; };
+int fn2(CacheView a) { return a.x; };
+%}
diff --git a/Examples/test-suite/javascript/cpp11_using_typedef_struct_runme.js b/Examples/test-suite/javascript/cpp11_using_typedef_struct_runme.js
new file mode 100644
index 000000000..43a26ddcd
--- /dev/null
+++ b/Examples/test-suite/javascript/cpp11_using_typedef_struct_runme.js
@@ -0,0 +1,13 @@
+var cpp11_using_typedef_struct = require("cpp11_using_typedef_struct");
+
+var b = new cpp11_using_typedef_struct.AffineMatrix();
+b.x = b.y = b.z = 1;
+
+if (cpp11_using_typedef_struct.fn1(b) != b.x)
+ throw new Error('failed');
+
+var bb = new cpp11_using_typedef_struct._xCacheView();
+bb.x = 123;
+
+if (cpp11_using_typedef_struct.fn2(bb) != 123)
+ throw new Error('failed');