about summary refs log tree commit diff
path: root/src/rt/rust_stack.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-15 02:56:08 -0700
committerbors <bors@rust-lang.org>2013-08-15 02:56:08 -0700
commit790e6bb3972c3b167a8e0314305740a20f62d2f0 (patch)
tree71defcf608360426b3d209b843465be37e46675f /src/rt/rust_stack.cpp
parent7f58552ccec3c0254d333642306a833ff790461d (diff)
parent53487a02467ebe8816a3bdf03f16c3db958958a2 (diff)
downloadrust-790e6bb3972c3b167a8e0314305740a20f62d2f0.tar.gz
rust-790e6bb3972c3b167a8e0314305740a20f62d2f0.zip
auto merge of #8490 : huonw/rust/fromiterator-extendable, r=catamorphism

If they are on the trait then it is extremely annoying to use them as
generic parameters to a function, e.g. with the iterator param on the trait
itself, if one was to pass an Extendable<int> to a function that filled it
either from a Range or a Map<VecIterator>, one needs to write something
like:

    fn foo<E: Extendable<int, Range<int>> +
              Extendable<int, Map<&'self int, int, VecIterator<int>>>
          (e: &mut E, ...) { ... }

since using a generic, i.e. `foo<E: Extendable<int, I>, I: Iterator<int>>`
means that `foo` takes 2 type parameters, and the caller has to specify them
(which doesn't work anyway, as they'll mismatch with the iterators used in
`foo` itself).

This patch changes it to:

    fn foo<E: Extendable<int>>(e: &mut E, ...) { ... }
Diffstat (limited to 'src/rt/rust_stack.cpp')
0 files changed, 0 insertions, 0 deletions