Dear Jean-Marc,
Am 29.12.2013 13:09, schrieb jean-marc Mercier:
@Leo, there might be a bug in the BaseX INLINER (I am currently profiling your module https://github.com/LeoWoerteler/xq-modules/).
thanks first for looking at my code!
With these settings, I am raising a [XPTY0004] Single item expected error.
The behavior *with* inlining is actually the correct one. There is a type error in your code that is not reported unless some functions are inlined.
You declare function parameters in your `idmap` module as `$idmap as function() as function(*)`, which means that `$idmap` must be bound to a function item with no arguments that returns a *single* function item with arbitrary arity. The functions you bind to those parameters however actually return *two* function items, namely the two elements of a pair. A correct type would thus be `$idmap as function() as function(*)+`.
The actual bug is that this type is not always checked if the function item is not inlined, this will be fixed soon.
Hope that helps, Leo