namespace ns {
struct M;
using MPtr = std::shared_ptr<M>;
}
static public void f(ns::MPtr x) {}
In this example, f is parsed correctly as:
public static native @ByVal public f(@SharedPtr M x);
But if we add an info, for instance new Info("ns::M").purify(), then f becomes:
public static native @ByVal public f(@SharedPtr ns::M x);
Not something blocking, since we can force an additional info: new Info("ns::M").purify().pointerTypes("M"), but there may be something to fix here.
Note that:
without the type aliasing, it works as expected.
the bug seems to show up for other indirections like M* instead of shared pointer.
I'm not sure how to fix that, maybe it's related to this line where valueTypes is given the value of typeName, which is a CPP name and not a Java name.
In this example,
f
is parsed correctly as:But if we add an info, for instance
new Info("ns::M").purify()
, thenf
becomes:Not something blocking, since we can force an additional info:
new Info("ns::M").purify().pointerTypes("M")
, but there may be something to fix here. Note that:M*
instead of shared pointer.I'm not sure how to fix that, maybe it's related to this line where
valueTypes
is given the value oftypeName
, which is a CPP name and not a Java name.