Aren’t I losing the ability to enforce what is going into this enum’s associated value then?
Brandon > On Dec 28, 2016, at 7:05 PM, Nevin Brackett-Rozinsky > <[email protected]> wrote: > > It will work if you change the enum declaration to: > > enum ElementNode<T> > > In other words, let the enum hold arbitrary unconstrained associated types, > and then make your APIs utilize instances of the enum with the associated > type constrained to a protocol. > > The specific example you provide is essentially equivalent to: > > var childElements = [Element?]() > > Nevin > > > On Wed, Dec 28, 2016 at 6:41 PM, Brandon Knope via swift-users > <[email protected] <mailto:[email protected]>> wrote: > I don’t understand why this is a problem > > protocol Element { > > } > > enum ElementNode<T: Element> { > case element(T) > case empty > } > > var childElements = [ElementNode<Element>]() > > I need to represent an array of my nodes that could be multiple kinds of > elements > > Is there a workaround? > > Brandon > > _______________________________________________ > swift-users mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-users > <https://lists.swift.org/mailman/listinfo/swift-users> > >
_______________________________________________ swift-users mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-users
