aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2017-01-18 22:55:57 +0000
committerStephen Kelly <steveire@gmail.com>2017-01-18 22:55:57 +0000
commitc7940ff6b0c482b78d7a96db740e21488ce9587f (patch)
tree784ae1203dcc5da7e681b4620a519885503dcb8f
parent68611eca6d20a2f0f54de919e634222de39ed2e0 (diff)
downloadextra-cmake-modules-c7940ff6b0c482b78d7a96db740e21488ce9587f.tar.gz
extra-cmake-modules-c7940ff6b0c482b78d7a96db740e21488ce9587f.tar.bz2
Bindings: Handle const-ref parameters with {} initializer
-rw-r--r--find-modules/sip_generator.py3
-rw-r--r--tests/GenerateSipBindings/cpplib.cpp5
-rw-r--r--tests/GenerateSipBindings/cpplib.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/find-modules/sip_generator.py b/find-modules/sip_generator.py
index 4b81ca33..35f6667d 100644
--- a/find-modules/sip_generator.py
+++ b/find-modules/sip_generator.py
@@ -578,6 +578,9 @@ class SipGenerator(object):
def _get_param_type(parameter):
result = parameter.type.get_declaration().type
+ if parameter.type.kind == TypeKind.LVALUEREFERENCE:
+ return parameter.type.get_pointee().get_declaration().type
+
if parameter.type.get_declaration().type.kind == TypeKind.INVALID:
return parameter.type
diff --git a/tests/GenerateSipBindings/cpplib.cpp b/tests/GenerateSipBindings/cpplib.cpp
index af689966..863c456e 100644
--- a/tests/GenerateSipBindings/cpplib.cpp
+++ b/tests/GenerateSipBindings/cpplib.cpp
@@ -115,6 +115,11 @@ void MyObject::stringBraces(QString s)
}
+void MyObject::stringRefBraces(QString const& s)
+{
+
+}
+
void MyObject::intBraces(int i)
{
diff --git a/tests/GenerateSipBindings/cpplib.h b/tests/GenerateSipBindings/cpplib.h
index 60c5c66a..8333e7f0 100644
--- a/tests/GenerateSipBindings/cpplib.h
+++ b/tests/GenerateSipBindings/cpplib.h
@@ -55,6 +55,7 @@ public:
void enumBraces(Qt::WindowFlags f = {});
void stringBraces(QString s = {});
+ void stringRefBraces(QString const& s = {});
void intBraces(int i = {});
void pointerBraces(int* p = {});