It used `FromIterator`.

But more generally, decoding into a `~[T]` only makes sense if users are expected to define data structures using `~[T]`. But we've already decided that the appropriate data structure is `Vec<T>`. Trying to include support for `~[T]` both suggests that it's an appropriate type to use, and it also inherently needs to go through `Vec<T>` anyway (as it requires a growable vector). If someone really, truly wants to use a `~[T]`, they should just manually implement `Decodable` on their own type and decode into a `Vec<T>`.