Posts

Post not yet marked as solved
9 Replies
7.7k Views
I'm implementing a simple linked-list stack.I can get the following Int-only implementaion to work just fine:class LinkedListIntStack { class Node { let item: Int var next: Node? init(item: Int) { self.item = item } } /* ... implementation omitted for brevity ... */ }Unfortunately, I can't get the same nested construct to work with a generic type:class LinkedListStack<T> { class Node<T> { let item: T var next: Node? init(item: T) { self.item = item } } /* ... omitted for brevity ... */ }The above fails to compile with the error message:error: generic type 'Node' nested in type 'LinkedListStack' is not allowedI can work around this by moving Node<T> outside of LinkedListStack<T>.However, I find the nested type solution more elegant.My questions:Is it wrong for me to expect this to work? Is there a mistake I'm making and not realizing?Is this a design decision or just a current limitation of Swift? If it's the former, what is the motivation behind it?Are there alternative solutions you can recommend?Thanks!
Posted
by czak.
Last updated
.