Commit graph

19,063 commits

Author SHA1 Message Date
William S Fulton
e1dfad1a3b Change the name of the interface in %feature to be more portable
Use SwigInterface as a suffix to the class name when naming the
interface class instead of using a simple I as a prefix.
%feature_custom can be used to use I as a prefix if so desired.
2016-03-08 08:42:16 +00:00
William S Fulton
5117c77d4a Interface feature fix for typedef types 2016-03-07 21:42:27 +00:00
William S Fulton
2dec8c5514 Add limited support for %interface_impl and %shared_ptr 2016-03-06 21:20:23 +00:00
William S Fulton
21ee09fc19 Multiple inheritance warning wording tweak 2016-03-06 10:45:39 +00:00
Vladimir Kalinin
7e0b5ccf44 C# "override" fix for "extend" case 2016-03-05 19:34:38 +03:00
William S Fulton
7d76617dc3 Add checks for interface name symbol clashes 2016-03-03 22:48:35 +00:00
William S Fulton
5d58de60d6 interface feature test changes for the tests to pass for all languages 2016-03-03 19:45:00 +00:00
William S Fulton
5cf20086a4 Rename feature_interface.i to swiginterface.i 2016-03-03 08:55:20 +00:00
William S Fulton
a1245ef398 Re-organization of the interface feature common code
Move code to new feature.cxx file.
Activate it in the allocate phase rather than in individual languages.
2016-03-03 08:55:20 +00:00
William S Fulton
fa9d2687cb Port Java interface tests to C# 2016-03-03 08:55:20 +00:00
William S Fulton
4fb364744d Test %interface 2016-03-03 08:55:20 +00:00
William S Fulton
0bf4e965a6 Test %interface_impl 2016-03-03 08:55:20 +00:00
William S Fulton
7f3f8fd76a Use rstrip instead of regex encoder in %feature_rename
The regex encoder is not always available in SWIG builds.
2016-03-03 08:55:10 +00:00
William S Fulton
4a3e1fd44c Add rstrip encoder for use in %rename.
This is like the strip encoder but strips the symbol's suffix instead
of the prefix.
2016-03-02 07:11:09 +00:00
William S Fulton
3000824c94 Interface macros: %interface %interface_impl %interface_custom 2016-03-02 07:10:58 +00:00
William S Fulton
14d2341512 Add $interfacename family of special variable expansions
This is a simple expansion expanding to the name of the interface and is
not qualified like $javainterfacename and $csinterfacename.
Expansion within typemaps is much like $javainterfacename otherwise.
Note that expansion within the pure java code typemap,
'javainterfacecode' and similarly pure C# code typemap,
'csinterfacecode' works like $javaclassname/$csclassname and
$&interfacename should not be used, just $interfacename.
2016-02-29 21:18:42 +00:00
William S Fulton
8df8c8a97a Add multiple_inheritance_nspace testcase 2016-02-29 21:14:38 +00:00
William S Fulton
c71dba5021 Interface name handling improvements and special variable changes
Support expansion of name attribute in: %feature("interface", name="%s")
%s expands to the proxy class name and all the usual %rename functions
can be used (regex, strip, camelcase etc) to derive the interface name
from the proxy class name.
Rename $interfacename family of special variables to $javainterfacename for Java
Rename $interfacename family of special variables to $csinterfacename for C#
This is to free up $interfacename for simple interface name expansion in forthcoming commit
2016-02-29 20:18:01 +00:00
William S Fulton
f112a0b610 Correct regex example comment 2016-02-29 07:55:01 +00:00
William S Fulton
9f0e7885ce Properly hide unexposed naming functions in naming.c 2016-02-29 07:11:05 +00:00
William S Fulton
64bd1c5d39 C++ namespace testing for interface feature 2016-02-26 18:17:20 +00:00
William S Fulton
3b8f00f774 interface feature - SWIG_JAVABODY_PROXY does not need to be overridden 2016-02-26 18:17:20 +00:00
William S Fulton
2f1c34be58 Support namespaces and nspace with the interface feature for C# 2016-02-26 18:17:20 +00:00
William S Fulton
50fec04759 Support namespaces and nspace with the interface feature for Java 2016-02-26 18:17:14 +00:00
William S Fulton
31b22ff6ac Cosmetic test case changes 2016-02-26 07:35:18 +00:00
William S Fulton
1737fc9b9b Add Java premature garbage collection prevention parameter (pgcpp) to interface feature
pgcpp was turned off but it is still needed for the interface feature
to prevent premature garbage collection of the proxy class being passed
into the C++ layer.
2016-02-24 08:30:10 +00:00
William S Fulton
e7bb3afa0c Create javainterfacecode and csinterfacecode typemaps
The interface feature is no longer hard coded and can
be controlled by a user via these new typemaps.
2016-02-23 07:30:00 +00:00
William S Fulton
66344adf9e Merge branch 'interfaces' of github.com:/swig/swig into interfaces
* 'interfaces' of github.com:/swig/swig:
  IntPtr & HandleRef absolute names used
  virtual/override fix
2016-02-23 07:10:15 +00:00
Vladimir Kalinin
1ba81241d7 IntPtr & HandleRef absolute names used 2016-02-14 03:09:12 +03:00
Vladimir Kalinin
682991762c virtual/override fix 2016-02-14 03:07:53 +03:00
William S Fulton
c33b4dc34e Improve interface feature checks
Use common code for missing feature:interface:name attribute checks
Check that all base classes are also marked as interfaces
2016-02-13 13:03:40 +00:00
William S Fulton
67f38e8124 Add another interface test selecting just one base as an interface 2016-02-12 22:38:58 +00:00
William S Fulton
645147a5b2 Comments added to interface feature implementation and cosmetic code changes 2016-02-12 20:23:35 +00:00
William S Fulton
d0fb0ae801 Add overloading tests for interface feature 2016-02-12 20:22:37 +00:00
William S Fulton
fc4be01106 Refactor multiple inheritance warnings
Slightly simplify choosing single base class when handling
multiple inheritance and make consistent across more languages.
Modula3 multiple inheritance warnings now warn for all bases
2016-02-12 08:45:22 +00:00
Vladimir Kalinin
5768d87deb director generation fixes
Conflicts:
	Lib/java/feature_interface.i
	Source/Modules/csharp.cxx
	Source/Modules/java.cxx
2016-02-12 07:09:17 +00:00
William S Fulton
ccd46ec560 interface feature updates for C# latest on master
Updates for C# fully qualified names in C# layer
More Corrections for C# single output file option (-outfile)
2016-02-11 20:56:33 +00:00
William S Fulton
212300c62b interfaces branch merge fixes 2016-02-11 20:21:25 +00:00
William S Fulton
abccc13a4a Merge branch 'interfaces' into interfaces2
* interfaces:
  Remove unnecessary interfaces for concrete classes
  cosmetic code formatting changes
  Correct interface name attributes that are internal
  interface macro changes to support templates
  Test non-virtual method in Derived classes
  interface tests for a most derived class inheriting the interfaces further up the chain
  Rename GetCPtr/getCPtr to SWIGInterfaceUpcast
  interface feature support for const ref pointers (used by the STL)
  Interface feature support for arrays
  More interface feature testing for return values
  interface feature support for passing by value
  interface feature support for references
  Multiple inheritance parameters as pointers testing
  Simplify multiple_inheritance_abstract Java runtime test
  Warning fixes
  Rename test functions in multiple_inheritance_abstract testcase
  Formatting fixes in generated code for interface feature
  Cosmetic spacing changes in test case
  interface feature typemap corrections to handle NULL pointers
  interface test added
  javadirectorin fix
  interface implementation visibility
  interface inheritance (2)
  interface inheritance (1)
  feature:interface ported to Java
  propagate non-abstract "interface" base methods (3)
  propagate non-abstract "interface" base methods (2)
  propagate non-abstract "interface" base methods (1)
  namespace support added GetCPtr now returns HandleRef "feature:interface:name" is now mandatory attribute
  interfaces (1)
  interfaces (1)

Conflicts:
	Source/Modules/csharp.cxx
	Source/Modules/java.cxx
2016-02-11 19:37:31 +00:00
William S Fulton
3931b5800c Remove unnecessary interfaces for concrete classes
Add Java test for checking expected base and interfaces are generated (to be expanded further)
In the example, E was previously implementing IA, IB, IC. Now it doesn't implement any.
C# virtual/override still to be fixed for this test case
2016-02-10 20:54:39 +00:00
William S Fulton
993214872f cosmetic code formatting changes 2016-02-09 07:39:46 +00:00
William S Fulton
dd6af222f4 Correct interface name attributes that are internal
Attributes with 'feature:' prefix are reserved for %feature, not internal usage.
2016-02-09 07:22:07 +00:00
William S Fulton
f82efac231 interface macro changes to support templates
The C++ type must be last in the argument list to support templates with
multiple arguments which are separated by commas.
Affects DECLARE_INTERFACE and DECLARE_INTERFACE_RENAME.
2016-02-09 07:02:42 +00:00
William S Fulton
b0fd270e54 Test non-virtual method in Derived classes 2016-02-08 20:56:28 +00:00
William S Fulton
8c49741eb2 interface tests for a most derived class inheriting the interfaces further up the chain 2016-02-08 20:49:57 +00:00
William S Fulton
72e5c221b6 Rename GetCPtr/getCPtr to SWIGInterfaceUpcast
This is then similarly named to other similar functions:
SWIGUpcast and SWIGSmartPtrUpcast
2016-02-08 20:49:46 +00:00
Karl Wette
290e2d3a5c octave: update manual and CHANGES.current 2016-02-07 20:22:39 +01:00
Karl Wette
125329466d octave: map unary functions to __...___ Python-style unary members
- Only available in Octave 3.8.0 and higher
2016-02-07 20:22:39 +01:00
Karl Wette
000ab753df octave: recognize Python __float__ numeric conversion operator 2016-02-07 20:22:39 +01:00
Karl Wette
697a1b7c9d octrun.swg: simplify unary operator calls in dims() and string_value() 2016-02-07 20:22:39 +01:00