Commit Graph

113 Commits

Author SHA1 Message Date
William S Fulton 1e2b0b8079 Warning fix for redefined friend declarations that are also constexpr 2024-06-16 22:23:20 +01:00
William S Fulton e4795e9af0 Validate scopename in nspace feature 2024-06-01 08:04:14 +01:00
William S Fulton 791d0a5e17 Further using declarations fix for inheritance hierarchies
more than two deep and the using declarations are overloaded.
Using declarations from a base class' base were not available for use
in the target language when the using declaration was before a method
declaration.

Closes #2687
2023-10-16 20:05:34 +01:00
William S Fulton 40ed95c4f7 Swig_symbol_clookup_check bug fix
Don't drop the checkfunc when processing using nodes.
I can't find any use cases for this fix, but this
fix seems like the right thing to do.
2023-10-16 20:05:34 +01:00
William S Fulton 69d5373131 Fix missing constructor generation due to abstract class test failure
when a method is declared in the class along with a
using declaration and the using declaration is declared before
the method that implemented the pure virtual method, such as:

  struct ConcreteDerived : AbstractBase {
    ConcreteDerived() {} // was not wrapped
    using AbstractBase::f;
    virtual void f(int n) override {}
  };

SourceForge bug: https://sourceforge.net/p/swig/bugs/932/

check_implemented in allocate.cxx was correctly finding a
non-abstract method, however, Swig_symbol_clookup_local_check, was
using the using declaration node instead of using the node returned
by check_implemented. The checkfunc is now given more control by
returning the node to use rather than Swig_symbol_clookup_local_check
always using the head of the csym linked list.
2023-08-05 19:47:17 +01:00
William S Fulton 5e1a37c6c5 Fix duplicate sym:overname values using %copyctor
The sym:overname attribute was not being updated when templates were
included in the list of overloaded methods/constructors, leading to
duplicate target language symbols in some language like java/csharp.

Closes #2541
2023-07-29 00:28:28 +01:00
William S Fulton a3e8e1fe50 Warnings 302 and 322 code refactor 2023-07-28 07:16:49 +01:00
William S Fulton 526bc33376 More redefinition/redeclaration warning message improvements
Replicate redefinition/redeclaration warning message improvements
in previous commit to nested classes.

Adding the symtab to all nodes in Swig_symbol_add() has also fixed some
warning displays with %extend 302 warnings, which were completely
missing before (extend_placement.i testcase).
2023-07-28 07:15:41 +01:00
William S Fulton b7332ce8ca Fix using declarations and templates with explicitly declared constructors
Corner case problem fix for when the base template class was
instantiated with %template including the default arguments and
the base class had an explicitly declared constructor.

Swig_symbol_template_deftype() was sometimes incorrectly finding
a constructor instead of a template and thus failing to correctly
expand the template default args. Problem noticed since
9cf049186b where constructors are
stored simply by their name instead of name plus template args.

Probably fixes a few other subtle template problems when a template
class contains default args.
2023-07-12 18:44:42 +01:00
William S Fulton 65be881295 Partial revert of previous commit for typedefs
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
2023-05-06 11:13:23 +01:00
Momtchil Momtchev e92ffa84ef tentative fix for typedef/using declaration to struct typedef 2023-05-06 10:54:14 +01:00
William S Fulton b18b75369c Fix seg fault using %template
Fix seg fault when instantiating templates with parameters that are function
parameters containing templates, such as:

              %template(MyC) C<int(std::vector<int>)>;

Closes #983
2023-01-03 23:53:34 +00:00
William S Fulton 52edda64c1 Fix infinite loop handling non-type template parameters
Fixes infinite loop due to () brackets in a non-type template
parameter containing an expression

Fixes #2418

Non-trivial expressions are still not qualified properly though.
2022-11-05 08:41:10 +00:00
Olly Betts 631b41ae7b Use https for swig.org links 2022-10-06 13:16:39 +13:00
William S Fulton 9b131a03d5 Fix warning suppression for WARN_PARSE_USING_UNDEF
New warnings for unknown using declarations since fix in previous commit
2022-02-20 16:45:10 +00:00
William S Fulton cb963a1440 Using declarations fix in symbol tables
Implementation is very similar to typedef implementation.
Issue #655 and closes #1488.
Testcase using_member.i.
Better implementation to that reverted in previous commit 3f36157b.
Symbol tables shown with -debug-csymbols and -debug-symbols now correct
and are similar to when using a typedef.
2022-02-20 15:33:32 +00:00
William S Fulton 3f36157b39 Revert recent using-declarations code changes
Reverts code changes from 7b5a615e50
merge commit in preparation for better fix.
Issue #655 and issue #1488.
2022-02-20 11:12:16 +00:00
Olly Betts d9ced1e56d Coding style tweaks 2022-01-30 10:55:00 +13:00
Frank Schlimbach 4ce2964ab8 adding support for structs, docu 2022-01-30 10:55:00 +13:00
Frank Schlimbach 63452e9fc1 better handling of using directives 2022-01-30 10:55:00 +13:00
William S Fulton de861bea64 Memory leak fixes calling Swig_scopename_split 2019-02-16 13:06:43 +00:00
William S Fulton 8834047dcd Enhance -debug-csymbols and -debug-symbols to show siblings 2017-10-02 19:07:24 +01:00
William S Fulton e27a606335 Allow an instantiated template to have the same name as the C++ template name
For example, this is now possible:
  template<typename T> struct X { ... };
  %template(X) X<int>;
Closes #1100.
2017-09-29 23:28:04 +01:00
Olly Betts 90f9117e10 Fix various comment and documentation typos 2017-08-13 18:04:33 +12:00
Frank Schlimbach be92482e27 using 2-level caching as suggested by @wsfulton 2017-01-09 09:46:33 -06:00
Frank Schlimbach 4eb7fb8123 account for explicitly qualified scopes 2016-10-11 07:05:44 -05:00
Frank Schlimbach 49cd031f12 restricting chaching template default types 2016-10-10 10:42:23 -05:00
William S Fulton efa84dab7c Fix warning display of types associated with 'using' and templates. 2015-06-09 07:59:49 +01:00
William S Fulton ee35389d22 Fix abort using template default parameters
Closes #280
2014-12-28 10:39:53 +00:00
William S Fulton 7841a0d097 Remove cvs/svn Id strings 2013-01-12 01:21:16 +00:00
William S Fulton aeebd394f3 Fix incorrect implicit constructor and destructor names in the symbol tables. Fix some feature matching issues for implicit destructors and implicit constructors and impliciti copy constructors added with %copyctor. Also improves consistency in named typemap lookup rules.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13882 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-13 22:19:47 +00:00
William S Fulton 7aa339cb3f Swig_symbol_string_qualify for destructors - bug exposed after last commit when fully qualifying destructor names during typemap searches
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13879 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-13 22:17:10 +00:00
William S Fulton 0559f1f521 Fix Swig_symbol_clookup_no_inherit return value
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13505 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-08-04 20:24:47 +00:00
William S Fulton 3e33774c8c Show symbol type in symbol debug functions such as -debug-csymbols
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13503 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-08-04 20:23:31 +00:00
William S Fulton 6e6ce16e4e Fix using declarations combined with using directives with forward class
references.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13502 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-08-04 20:23:07 +00:00
William S Fulton 7b58300cbd Fix display of pointers on 64 bit systems, only 32 bit values were being shown.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13340 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-07-21 22:52:30 +00:00
William S Fulton b6c76bcd94 Cosmetic changes and some docs on some symbol functions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13192 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-06-25 18:22:17 +00:00
William S Fulton 1ce0058256 Fix symbol table bug with combinations of using directives and using declarations
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13190 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-06-25 06:36:29 +00:00
William S Fulton 0463a49df5 Fix named output typemaps not being used when the symbol uses a qualifier and contains a number
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12831 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-11-01 23:06:53 +00:00
William S Fulton 7d038d4bd7 Fix scoping of forward class declarations nested within a class (for C++). Also fix %template and resolution of template parameters that are typedefs.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12764 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-07-26 19:34:23 +00:00
Stefan Zager 5fbcb711eb Fix for bug 3286333: infinite recursion with mutual "using namespace" clauses.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12640 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-04-14 04:22:03 +00:00
William S Fulton a63d456f8a Remove redundant code highlighted by warnings in gcc-4.6
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12536 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-03-14 07:22:08 +00:00
William S Fulton 1adc50e730 constify SwigType * in many places
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12349 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-12-15 21:55:08 +00:00
William S Fulton 1253657bb4 Add improved namespace support - the nspace feature, working for Java only at the moment.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11896 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-03-04 21:27:23 +00:00
William S Fulton cb64f65bae SWIG license change - Source moves to GPLv3
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11876 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-27 23:53:33 +00:00
William S Fulton 6c275f00d9 Add in possibility to use scopes in target language module symbol table
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11855 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-12 23:20:58 +00:00
William S Fulton 83bd820285 Add typemaps used debugging option (-debug-tmused). Fix missing file/line numbers for typemap warnings and in the output from the -debug-tmsearch/-debug-tmused options
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11802 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-01-04 19:33:52 +00:00
William S Fulton ebed6508e4 Nested class improvements - Fixed inconsistency in handling C++ nested classes - sometimes they were treated as forward declarations, other times as if C nested struct was parsed. Added the nestedworkaround feature for C++ nested class handling. Document improved nested class handling. Numerous C and C++ nested struct/class/union test cases added.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11734 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-11-11 00:30:34 +00:00
William S Fulton deba0e9285 re-organise symbol debugging options - add in -debug-symbols and -debug-csymbols, and remove -debug-qsymtab
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11726 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-11-07 20:44:20 +00:00
William S Fulton 64d1b6f0c6 Add -debug-symtabs and -debug-qsymtabs options for debugging symbol tables
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11724 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-11-04 22:49:39 +00:00