On 08.05.2015 18:48, Ulrike Fischer wrote:
> Is this a bug? Or simply something one must remember when using
> c-type arguments?
interesting question. On the whole we have not burdened expl3 with a lot
of checking to avoid it getting too slow, i.e., in case with very well
defined rules it is up to the programmer not to violate them
finite recursion (especially those that end up in quarks executing are
something we made usually an exception as they are pretty nasty.
as for the rule: "c" should not be misused to do an implicit "new" even
though that obviously works for some data types (if you know the
underlying coding). For the "prop" type that doesn't work as
\c_empty_prop" is quite different from \relax
so perhaps it is worth thinking of adding to functions for types like
that always a quick initial check to see that the variable is a prop or
rather at least not simply generated as a name from "c"
of course it would be a test happening each and every time