Avoid deprecations warnings using c++17 and later compiler.
Keep testing using c++11 and c++14 compilers.
Provide simple alternative to keep run time tests working with
c++17 and later compilers.
The compiler calls setWindowGrab(bool) instead of setWindowsGrab(NativeWindowType*)
and gives a warning with Visual C++ when calling setWindowGrab(true)
with a pointer to ApplicationContextSDL.
Looks like function function hiding of the non-virtual method.
I can't see this changing testing of the original bug.
- Mingw/MSYS2 now running on VS2022 image updating to python-3.10 and jdk-17.
- Added Visual 2022 C++ compiler, version 19.3 to build (python-3.10) on VS2022 image.
- Update cygwin to use VS2022 image.
Set it so it should be visible where the CI log shows the environment,
as `make` is run with `-s` so the compile command lines are unhelpfully
not shown.
* Change the builder filename to match the loader filename
* Mark extern functions with SWIGEXPORT
* Fix bug: builder.sce not generated if with '-scilab -builder' option
Fixes#1853
It seems too brittle to enable by default as we'd have to avoid
including any system headers after doh.h, which is hard to enforce,
but just having it enabled for one CI job should avoid uses of the
poisoned symbols from being accidentally introduced.
See #2223
When C++ methods are not able to be overloaded in a derived class,
such as when they differ by just const, or the target language
parameters types are identical even when the C++ parameter types
are different, SWIG will ignore one of the overloaded methods with
a warning. A %ignore is required to explicitly ignore one of the
overloaded methods to avoid the warning message. Methods added
in the derived classes due to one of the %interface macros are now
similarly ignored/not added to the derived class.
The adding of additional methods into the parse tree is now more
robust and complete resulting in support for %feature and %rename
for the added methods.
Closes#1277
Language::unrollVirtualMethods was assuming that the using
declaration would only introduce one method. Fix this by adding
in all the overloaded methods from a base class.
Affects code generation in C# and Java, but I was not able
to construct a test that failed before this commit.
Move code in main loop into new function to handle one method at a time.
In preparation for next commit for using declaration fix.
Remove unused default_director variable.
Fixes fully qualified names for functions added by using declarations:
- Error messages show fully qualified names in Lua
- Overload warning messages show fully qualified names
- Error messages calling dispatch functions for handling overloaded methods in OCaml, Python and Tcl
Segfault was actually avoided in previous commit ab23cb29.
This commit makes handling more robust in the event of
using %ignore just on the derived method, not tested as it is not
what one should do with directors, and possibly other cases.
Go still segfaults with the new testcase director_using_member_scopes.i.
Issue #1441.
Fix using declaration in derived class incorrectly introducing a method
from a base class when the using declaration is declared before the method
declaration. Problem occurred when within a namespace and the parameter types
in the method signatures were not fully qualified.
Issue #1441
The initial prototype shown in these examples has a `len` parameter
but that the rest of the example is as if that parameter isn't there
so remove it from the initial prototype.
Fixes https://sourceforge.net/p/swig/bugs/1289/
SWIG now handles an interface filename specified on the command line
which contains a closing parenthesis `)`, and more generally with
attributes to `%include` and `%import` which are quoted and contain
parentheses.
Fixes#1006
Fix SWIG_AsWCharPtrAndSize() to actually assign to result variable. It
looks like SWIG/Tcl wide character handling is currently fundamentally
broken except on systems which use wide characters as the system
encoding, but this should fix wrapping functions which take a wide
string as a parameter on Microsoft Windows.
Patch from Omar Medina.
Fixes https://sourceforge.net/p/swig/bugs/1290/
SWIG python objects were being freed after the corresponding SWIG
module information was destroyed in Python 3, causing leaks when as
a result the object destructor could not be invoked. To prevent this
misordering, SWIG python objects now obtain a reference to the
Python capsule wrapping the module information, so that the module
information is correctly destroyed after all SWIG python objects
have been freed (and corresponding destructors invoked).
Fixes#2154Fixes#2208
Calling assert() on a condition that's always false is not an
appropriate way to exit after emitting "Fatal error [...]" because
if NDEBUG is defined the assert() becomes a no-op and the error
stops actually being fatal.
The regex pattern to upper-case things containing an `i` had incorrect
escaping (`\\(`...`\\)` instead of `(`...`)`) so `import` didn't get
renamed.
This wasn't detected because there were no `_runme` files for this
testcase, so add rename_camel_runme.php which uses reflection to check
the wrapped PHP classes, functions and constants are all named as
expected.
Also expand coverage of converting to underscore case and add coverage
for converting to lower-camel-case.
Related to #1041.