add new tests and coercion files for null fix #1124

This commit is contained in:
Joseph C Wang 2017-11-26 03:43:39 +08:00
commit 4e8c515d36
2 changed files with 14 additions and 6 deletions

View file

@ -20,7 +20,8 @@ CPP_TEST_CASES += \
r_double_delete \
r_overload_array \
r_sexp \
r_overload_comma
r_overload_comma \
r_use_isnull
# These tests are failing because enums currently cannot handle
# arithmetic expressions

View file

@ -152,19 +152,26 @@ string &, std::string &
%typemap(scoerceout) SEXP %{ %}
%typemap(scoerceout) SWIGTYPE
%{ $result <- new("$&R_class", ref=$result); %}
%{ $result <- if (is.null($result)) $result
else new("$&R_class", ref=$result); %}
%typemap(scoerceout) SWIGTYPE &
%{ $result <- new("$R_class", ref=$result) ; %}
%{ $result <- if (is.null($result)) $result
else new("$R_class", ref=$result); %}
%typemap(scoerceout) SWIGTYPE &&
%{ $result <- new("$R_class", ref=$result) ; %}
%{ $result <- if (is.null($result)) $result
else new("$R_class", ref=$result); %}
%typemap(scoerceout) SWIGTYPE *
%{ $result <- new("$R_class", ref=$result) ; %}
%{ $result <- if (is.null($result)) $result
else new("$R_class", ref=$result); %}
%typemap(scoerceout) SWIGTYPE *const
%{ $result <- new("$R_class", ref=$result) ; %}
%{ $result <- if (is.null($result)) $result
else new("$R_class", ref=$result); %}
/* Override the SWIGTYPE * above. */