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 > <nevin.brackettrozin...@gmail.com> 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 > <swift-users@swift.org <mailto:swift-users@swift.org>> 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 > swift-users@swift.org <mailto:swift-users@swift.org> > https://lists.swift.org/mailman/listinfo/swift-users > <https://lists.swift.org/mailman/listinfo/swift-users> > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users