IIRC it's because not all pointer types can legally exist as list elements,
since struct lists are supposed to be flattened. I was worried that someone
might assume that List(AnyPointer) (where each pointer is set to an
instance of MyStruct) would be compatible with List(MyStruct).

These days we also have AnyStruct, AnyList, and Capability. I think
List(AnyList) and List(Capability) ought to be made legal if they aren't
already (can't remember). Or in some use cases, it makes sense to replace
List(AnyPointer) with AnyList -- thus supporting lists of any type, as long
as all the elements are the same type.

-Kenton

On Sat, Aug 26, 2017 at 8:31 PM, Ross Light <[email protected]> wrote:

> Hopefully a straightforward question: why does `capnp compile` have a
> special case to error out
> <https://github.com/capnproto/capnproto/blob/cc74158d90de65349b191dd93392003179823ae3/c%2B%2B/src/capnp/compiler/node-translator.c%2B%2B#L972>
> on List(AnyPointer) and variants thereof?  I don't have a burning need to
> use it in a real schema — I came across this while I was trying to unit
> test edge cases in some new go-capnproto2 code — but it surprised me.  I
> dug around in git history and it seems like it's been around since 2013
> <https://github.com/capnproto/capnproto/commit/34e70d5acdceba9494025f9097feae599053b30a>,
> and I don't see anything that helps me with rationale.  I would expect it
> to act as a non-composite pointer list.
>
> Thanks for any pointers!
> -Ross
>
> --
> You received this message because you are subscribed to the Google Groups
> "Cap'n Proto" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> Visit this group at https://groups.google.com/group/capnproto.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/capnproto.

Reply via email to