The kwargs feature no longer turns on compactdefaultargs for languages that don't support kwargs.

Affects all languages except Python and Ruby.

Closes #242
This commit is contained in:
William S Fulton 2014-10-21 07:32:45 +01:00
commit bfde148887
14 changed files with 72 additions and 21 deletions

View file

@ -3525,6 +3525,14 @@ Language::NestedClassSupport Language::nestedClassesSupport() const {
return NCS_Unknown;
}
/* -----------------------------------------------------------------------------
* Language::kwargsSupport()
* ----------------------------------------------------------------------------- */
bool Language::kwargsSupport() const {
return false;
}
/* -----------------------------------------------------------------------------
* Language::is_wrapping_class()
* ----------------------------------------------------------------------------- */

View file

@ -50,6 +50,7 @@ int SwigRuntime = 0; // 0 = no option, 1 = -runtime, 2 = -noruntime
extern "C" {
extern String *ModuleName;
extern int ignore_nested_classes;
extern int kwargs_supported;
}
/* usage string split into multiple parts otherwise string is too big for some compilers */
@ -904,6 +905,8 @@ int SWIG_main(int argc, char *argv[], Language *l) {
// Inform the parser if the nested classes should be ignored unless explicitly told otherwise via feature:flatnested
ignore_nested_classes = l->nestedClassesSupport() == Language::NCS_Unknown ? 1 : 0;
kwargs_supported = l->kwargsSupport() ? 1 : 0;
// Create Library search directories
// Check for SWIG_LIB environment variable

View file

@ -4785,6 +4785,13 @@ public:
return NewString("swigpyrun.h");
}
/*----------------------------------------------------------------------
* kwargsSupport()
*--------------------------------------------------------------------*/
bool kwargsSupport() const {
return true;
}
};
/* ---------------------------------------------------------------

View file

@ -3426,6 +3426,14 @@ public:
String *defaultExternalRuntimeFilename() {
return NewString("swigrubyrun.h");
}
/*----------------------------------------------------------------------
* kwargsSupport()
*--------------------------------------------------------------------*/
bool kwargsSupport() const {
return true;
}
}; /* class RUBY */
/* -----------------------------------------------------------------------------

View file

@ -315,6 +315,9 @@ public:
*/
virtual NestedClassSupport nestedClassesSupport() const;
/* Returns true if the target language supports key word arguments (kwargs) */
virtual bool kwargsSupport() const;
protected:
/* Identifies if a protected members that are generated when the allprotected option is used.
This does not include protected virtual methods as they are turned on with the dirprot option. */