| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use parser error recovery to skip to the closing matching `)` and
issue a warning that we can't deduce the decltype for the expression
(like we already do for any expression which isn't a simple variable
or similar).
Fixes #1589
Helps #2335 (fixes the decltype-related examples)
|
| | |
|
|/
|
|
|
|
| |
We have some rules to allow parsing just a type, parameter or parameter
list. Instead of using a semicolon as an end marker for these, just use
the special END token which always marks the end of input.
|
|
|
|
| |
We stopped wrapping C++ static method A::bar as A_bar in SWIG 4.1.0.
|
|
|
|
| |
See #1567
|
|
|
|
| |
Easier to read code and probably a little more efficient.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This has been reported too many times (#2404 #2528 #2581 recently) so
explain that this may break dispatch and link to the relevant
documentation.
|
|
|
|
|
|
|
|
|
|
|
| |
This can be more efficient than using strstr/Strstr with a single
character search string.
GCC is able to optimise strstr() with a single character literal
search string to strchr(), but clang doesn't, and likely no compiler
can for Strstr() (unless some sort of inter-object optimisation such
as LTO is used) since the literal string is in a different source file
to the strstr() call.
|
|
|
|
|
|
|
|
|
|
| |
Without this you get two set_transform() functions defined in the
.py file, which can trigger warnings from linting tools.
Renaming the SWIG-generated wrapper is a reasonably clean solution
(though does leave an unused _set_transform() Python function).
See #2578
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
For: JavaScript, C#, go, Java, Lua, Perl, PHP, python, Ruby, TCL and Octave.
Signed-off-by: Erez Geva <ErezGeva2@gmail.com>
|
| | |
|
|/
|
|
|
| |
Add testing of the empty and null cases for all languages which
already have a runme.
|
|
|
|
|
|
|
|
|
| |
The "deprecation" warning has been changed to a "removal" warning
with newer JDK versions. This needs to be addressed, but meanwhile
it makes running the testsuite unusably noisy so suppressing it
seems more helpful than not.
Closes: #2556
|
|
|
|
| |
Introduced by previous commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we had a hard-coded list of allowed combinations in the
grammar, but this suffers from combinatorial explosion, and results
in a vague `Syntax error in input` error for invalid (and missing)
combinations.
This means we now support a number of cases which are valid C++
but weren't supported.
Fixes #302
Fixes #2079 (friend constexpr)
Fixes #2474 (virtual explicit)
|
| |
|
|
|
|
|
|
|
| |
So far C#, Java, Lua and PHP are supported.
Closes: #2540
See #1567
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We now wrap this as a non-static method in PHP, which means the static
form only callable via an object.
Previously this case could end up wrapped as static or non-static
in PHP. If it was wrapped as static, attempting to call non-static
overloaded forms would crash with a segmentation fault.
See #2544
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Setting current symbol table for a typedef seems wrong.
No difference to test-suite though.
Testcase rename for C++11 testing and minor adjustments.
Issue #2550
Closes #2551
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
We no longer need to now we've dropped D1 support.
|
| | |
|
| | |
|
| |
| |
| |
| | |
See #2538
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We aim to produce code that works with C90 or C++98 so we can't
assume snprintf() is available, but it almost always is (even
on systems from before it was standardised) so having a way to
use it is helpful.
Enable this automatically if the compiler claims conformance
with at least C90 or C++98 and check SWIG_HAVE_SNPRINTF to allow
turning on manually, but disable if SWIG_NO_SNPRINTF if defined.
The fallback is to call sprintf() without a buffer size check -
checking after the call is really shutting the stable door after
the horse has bolted, and most of our uses either have a fixed maximum
possible size or dynamically allocate a buffer that's large enough.
Fixes: #2502 (sprintf deprecation warnings on macos)
Fixes: #2548
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
SWIG_LUA_CONSTTAB_INT can be called with a constant expression
containing commas (e.g. `SizeOf< int,int >::size`). This was
addressed in b13f584258079dd88a4ca87412b87ac4464686df by making
its second argument variadic, but (a) this doesn't work with
our baseline of C90/C++98 and (b) the variadic syntax used is
a GCC extension which doesn't work with all compilers (e.g. MSVC).
We can solve this without needing variadic macros by simply wrapping
this argument in an extra pair of parentheses when calling.
|
| |
| |
| |
| | |
This reverts commit b13f584258079dd88a4ca87412b87ac4464686df.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* python-iterator-protocol:
Finish removal of SwigPySequence_Cont
Remove undocumented and non-existent STL std::carray
Remove assign method uses by the removed Python Sequence Protocol
Remove now redundant use of Python Sequence protocol in STL wrappers
Add support for all STL containers to be constructible from a Python set
Iterator Protocol support for std::array wrappers
STL support for copying Python objects supporting Iterator protocol
Closes #2515
Conflicts:
CHANGES.current
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Removes SwigPySequence_Cont and support classes:
SwigPySequence_ArrowProxy, SwigPySequence_Cont, SwigPySequence_Ref
The recently added Iterator Protocol support should cover the Sequence
Protocol usage for converting from Python containers to STL containers.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Introduce swig::IteratorProtocol class and assign which can be partially
specialized by different container types, such as std::array.
|