Fix wrapping of some member function pointer parameters
Generated code did not compile if both cv-qualifiers and rvalue ref-qualifiers were present in the member function pointer.
This commit is contained in:
parent
eb68e4375d
commit
45c161dfce
2 changed files with 17 additions and 1 deletions
|
|
@ -114,6 +114,8 @@ public:
|
||||||
int aaa6(short (Funcs::* const)(bool) &) const;
|
int aaa6(short (Funcs::* const)(bool) &) const;
|
||||||
int aaa7(short (Funcs::* const&)(bool) &) const;
|
int aaa7(short (Funcs::* const&)(bool) &) const;
|
||||||
|
|
||||||
|
int aaa8(short (Funcs::* const&)(bool) &&) const;
|
||||||
|
|
||||||
// member cv-qualified and ref-qualified function pointers, unnamed parameters
|
// member cv-qualified and ref-qualified function pointers, unnamed parameters
|
||||||
int bbb1(short (Funcs::*)(bool) const &) const;
|
int bbb1(short (Funcs::*)(bool) const &) const;
|
||||||
int bbb2(short (Funcs::* const *&)(bool) const &) const;
|
int bbb2(short (Funcs::* const *&)(bool) const &) const;
|
||||||
|
|
@ -123,6 +125,8 @@ public:
|
||||||
int bbb6(short (Funcs::* const)(bool) const &) const;
|
int bbb6(short (Funcs::* const)(bool) const &) const;
|
||||||
int bbb7(short (Funcs::* const&)(bool) const &) const;
|
int bbb7(short (Funcs::* const&)(bool) const &) const;
|
||||||
|
|
||||||
|
int bbb8(short (Funcs::*)(bool) const &&) const;
|
||||||
|
|
||||||
// member ref-qualified function pointers, named parameters
|
// member ref-qualified function pointers, named parameters
|
||||||
int qqq1(short (Funcs::* qq1)(bool) &) const;
|
int qqq1(short (Funcs::* qq1)(bool) &) const;
|
||||||
int qqq2(short (Funcs::* const *& qq2)(bool) &) const;
|
int qqq2(short (Funcs::* const *& qq2)(bool) &) const;
|
||||||
|
|
@ -132,6 +136,8 @@ public:
|
||||||
int qqq6(short (Funcs::* const qq6)(bool) &) const;
|
int qqq6(short (Funcs::* const qq6)(bool) &) const;
|
||||||
int qqq7(short (Funcs::* const& qq7)(bool) &) const;
|
int qqq7(short (Funcs::* const& qq7)(bool) &) const;
|
||||||
|
|
||||||
|
int qqq8(short (Funcs::* const& qq8)(bool) &&) const;
|
||||||
|
|
||||||
// member cv-qualified and ref-qualified function pointers, named parameters
|
// member cv-qualified and ref-qualified function pointers, named parameters
|
||||||
int rrr1(short (Funcs::* rr1)(bool) const &) const;
|
int rrr1(short (Funcs::* rr1)(bool) const &) const;
|
||||||
int rrr2(short (Funcs::* const *& rr2)(bool) const &) const;
|
int rrr2(short (Funcs::* const *& rr2)(bool) const &) const;
|
||||||
|
|
@ -140,6 +146,8 @@ public:
|
||||||
int rrr5(short (Funcs::* & rr5)(bool) const &) const;
|
int rrr5(short (Funcs::* & rr5)(bool) const &) const;
|
||||||
int rrr6(short (Funcs::* const rr6)(bool) const &) const;
|
int rrr6(short (Funcs::* const rr6)(bool) const &) const;
|
||||||
int rrr7(short (Funcs::* const& rr7)(bool) const &) const;
|
int rrr7(short (Funcs::* const& rr7)(bool) const &) const;
|
||||||
|
|
||||||
|
int rrr8(short (Funcs::* rr1)(bool) const &&) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
// member ref-qualified function pointers, unnamed parameters
|
// member ref-qualified function pointers, unnamed parameters
|
||||||
|
|
@ -151,6 +159,8 @@ int MemberFuncPtrs::aaa5(short (Funcs::* &)(bool) &) const { return 0; }
|
||||||
int MemberFuncPtrs::aaa6(short (Funcs::* const)(bool) &) const { return 0; }
|
int MemberFuncPtrs::aaa6(short (Funcs::* const)(bool) &) const { return 0; }
|
||||||
int MemberFuncPtrs::aaa7(short (Funcs::* const&)(bool) &) const { return 0; }
|
int MemberFuncPtrs::aaa7(short (Funcs::* const&)(bool) &) const { return 0; }
|
||||||
|
|
||||||
|
int MemberFuncPtrs::aaa8(short (Funcs::* const&)(bool) &&) const { return 0; }
|
||||||
|
|
||||||
// member cv-qualified and ref-qualified function pointers, unnamed parameters
|
// member cv-qualified and ref-qualified function pointers, unnamed parameters
|
||||||
int MemberFuncPtrs::bbb1(short (Funcs::*)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::bbb1(short (Funcs::*)(bool) const &) const { return 0; }
|
||||||
int MemberFuncPtrs::bbb2(short (Funcs::* const *&)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::bbb2(short (Funcs::* const *&)(bool) const &) const { return 0; }
|
||||||
|
|
@ -160,6 +170,8 @@ int MemberFuncPtrs::bbb5(short (Funcs::* &)(bool) const &) const { return 0; }
|
||||||
int MemberFuncPtrs::bbb6(short (Funcs::* const)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::bbb6(short (Funcs::* const)(bool) const &) const { return 0; }
|
||||||
int MemberFuncPtrs::bbb7(short (Funcs::* const&)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::bbb7(short (Funcs::* const&)(bool) const &) const { return 0; }
|
||||||
|
|
||||||
|
int MemberFuncPtrs::bbb8(short (Funcs::*)(bool) const &&) const { return 0; }
|
||||||
|
|
||||||
// member ref-qualified function pointers, named parameters
|
// member ref-qualified function pointers, named parameters
|
||||||
int MemberFuncPtrs::qqq1(short (Funcs::* qq1)(bool) &) const { return 0; }
|
int MemberFuncPtrs::qqq1(short (Funcs::* qq1)(bool) &) const { return 0; }
|
||||||
int MemberFuncPtrs::qqq2(short (Funcs::* const *& qq2)(bool) &) const { return 0; }
|
int MemberFuncPtrs::qqq2(short (Funcs::* const *& qq2)(bool) &) const { return 0; }
|
||||||
|
|
@ -169,6 +181,8 @@ int MemberFuncPtrs::qqq5(short (Funcs::* & qq5)(bool) &) const { return 0; }
|
||||||
int MemberFuncPtrs::qqq6(short (Funcs::* const qq6)(bool) &) const { return 0; }
|
int MemberFuncPtrs::qqq6(short (Funcs::* const qq6)(bool) &) const { return 0; }
|
||||||
int MemberFuncPtrs::qqq7(short (Funcs::* const& qq7)(bool) &) const { return 0; }
|
int MemberFuncPtrs::qqq7(short (Funcs::* const& qq7)(bool) &) const { return 0; }
|
||||||
|
|
||||||
|
int MemberFuncPtrs::qqq8(short (Funcs::* const& qq8)(bool) &&) const { return 0; }
|
||||||
|
|
||||||
// member cv-qualified and ref-qualified function pointers, named parameters
|
// member cv-qualified and ref-qualified function pointers, named parameters
|
||||||
int MemberFuncPtrs::rrr1(short (Funcs::* rr1)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::rrr1(short (Funcs::* rr1)(bool) const &) const { return 0; }
|
||||||
int MemberFuncPtrs::rrr2(short (Funcs::* const *& rr2)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::rrr2(short (Funcs::* const *& rr2)(bool) const &) const { return 0; }
|
||||||
|
|
@ -178,6 +192,8 @@ int MemberFuncPtrs::rrr5(short (Funcs::* & rr5)(bool) const &) const { return 0;
|
||||||
int MemberFuncPtrs::rrr6(short (Funcs::* const rr6)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::rrr6(short (Funcs::* const rr6)(bool) const &) const { return 0; }
|
||||||
int MemberFuncPtrs::rrr7(short (Funcs::* const& rr7)(bool) const &) const { return 0; }
|
int MemberFuncPtrs::rrr7(short (Funcs::* const& rr7)(bool) const &) const { return 0; }
|
||||||
|
|
||||||
|
int MemberFuncPtrs::rrr8(short (Funcs::* rr1)(bool) const &&) const { return 0; }
|
||||||
|
|
||||||
// member cv-qualified and ref-qualified pointer variables
|
// member cv-qualified and ref-qualified pointer variables
|
||||||
short (Funcs::* cc1)(bool) const & = &Funcs::CC;
|
short (Funcs::* cc1)(bool) const & = &Funcs::CC;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -620,7 +620,7 @@ String *SwigType_str(const SwigType *s, const_String_or_char_ptr id) {
|
||||||
} else if (SwigType_isrvalue_reference(element)) {
|
} else if (SwigType_isrvalue_reference(element)) {
|
||||||
if (!member_function_qualifiers)
|
if (!member_function_qualifiers)
|
||||||
Insert(result, 0, "&&");
|
Insert(result, 0, "&&");
|
||||||
if ((nextelement) && ((SwigType_isfunction(nextelement) || (SwigType_isarray(nextelement))))) {
|
if ((forwardelement) && ((SwigType_isfunction(forwardelement) || (SwigType_isarray(forwardelement))))) {
|
||||||
Insert(result, 0, "(");
|
Insert(result, 0, "(");
|
||||||
Append(result, ")");
|
Append(result, ")");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue