Open imzhaodong opened 4 years ago
Unfortunately, this is a pyd limitation. It's true that autowrap isn't doing the right thing, but it's also true that it's impossible to do the right thing with pyd's current API.
If I can add extra code into this being wrapped class, will that help? Say add a length() function into it?
Or is there a way I can let autowrap ignore generate len for this class?
Daniel Zhao 10:57 AM If I can add extra code into this being wrapped class, will that help? Say add a length() function into it? Or is there a way I can let autowrap ignore generate len for this class?
atilaneves 6:48 PM Yes, that would do it Adding length
When I wrap a simple class like this:
wrapAggregate!(ProductType);
The compiler report error: ../../.dub/packages/autowrap-0.6.2/autowrap/pyd/source/autowrap/python/wrap.d(266,25): Error: no property length for type symmetry.carbon.client.CarbonClient.ProductType ../../.dub/packages/autowrap-0.6.2/autowrap/pyd/source/autowrap/python/wrap.d(98,9): Error: template instance autowrap.python.wrap.Lengths!(ProductType) error instantiating source/symmetry/carbon/pyd_manual.d(47,5): instantiated from here: wrapAggregate!(ProductType)
Here is the relevant code at file pyd/source/autowrap/python/wrap.d line 266
So we can see the compiler complain for line 266 that it cannot find length method for T. I think this is because the alias this confused compiler. And there should be a simple solution I think, in this case we do not even need len() python method in the worst case.