rust/src/libsyntax
bors d877e65404 Auto merge of #27134 - fhartwig:derive, r=huonw
Fixes #25022

This adapts the deriving mechanism to not repeat bounds for the same type parameter. To give an example: for the following code:

```rust
#[derive(Clone)]
pub struct FlatMap<I, U: IntoIterator, F> {
    iter: I,
    f: F,
    frontiter: Option<U::IntoIter>,
    backiter: Option<U::IntoIter>,
}
```
the latest nightly generates the following impl signature:

```rust
impl <I: ::std::clone::Clone,
      U: ::std::clone::Clone + IntoIterator,
      F: ::std::clone::Clone>
::std::clone::Clone for FlatMap<I, U, F> where
    I: ::std::clone::Clone,
    F: ::std::clone::Clone,
    U::IntoIter: ::std::clone::Clone,
    U::IntoIter: ::std::clone::Clone
```

With these changes, the signature changes to this:
```rust
impl <I, U: IntoIterator, F> ::std::clone::Clone for FlatMap<I, U, F> where
    I: ::std::clone::Clone,
    F: ::std::clone::Clone,
    U::IntoIter: ::std::clone::Clone
```
(Nothing in the body of the impl changes)
Note that the second impl is more permissive, as it doesn't have a `Clone` bound on `U` at all. There was a compile-fail test that failed due to this. I don't understand why we would want the old behaviour (and nobody on IRC could tell me either), so please tell me if there is a good reason that I missed.
2015-08-03 20:29:21 +00:00
..
diagnostics remove get_ident and get_name, make as_str sound 2015-07-28 18:07:20 +02:00
ext Auto merge of #27134 - fhartwig:derive, r=huonw 2015-08-03 20:29:21 +00:00
parse Auto merge of #27447 - eefriedman:parser-cleanup, r=alexcrichton 2015-08-01 04:49:02 +00:00
print remove get_ident and get_name, make as_str sound 2015-07-28 18:07:20 +02:00
util syntax: replace sess.span_diagnostic.cm with sess.codemap(). 2015-05-14 01:47:56 +03:00
abi.rs Add netbsd amd64 support 2015-07-01 19:09:14 -07:00
ast.rs remove get_ident and get_name, make as_str sound 2015-07-28 18:07:20 +02:00
ast_util.rs remove get_ident and get_name, make as_str sound 2015-07-28 18:07:20 +02:00
attr.rs Auto merge of #26747 - huonw:stability-issue, r=alexcrichton 2015-07-07 17:41:43 +00:00
codemap.rs Instrumentation in effort to understand treatment of allow_internal_unstable. 2015-07-22 15:34:00 +02:00
config.rs syntax: Remove uses of #[feature(slice_patterns)] 2015-04-21 10:08:26 -07:00
diagnostic.rs Auto merge of #26846 - P1start:print-maybe-styled-macro, r=pnkfelix 2015-07-29 00:28:55 +00:00
feature_gate.rs Feature gate associated type defaults 2015-07-29 15:11:07 -07:00
fold.rs Remove ast::LocalSource with only one used variant 2015-07-26 08:56:29 +02:00
lib.rs Hack for "unsafety hygiene" -- push_unsafe! and pop_unsafe!. 2015-07-22 15:33:59 +02:00
owned_slice.rs Switched to Box::new in many places. 2015-03-03 21:05:55 +01:00
ptr.rs syntax: remove #![feature(box_syntax, box_patterns)] 2015-04-21 10:07:48 -07:00
show_span.rs std: Stabilize FromStr and parse 2015-01-30 08:52:44 -08:00
std_inject.rs remove get_ident and get_name, make as_str sound 2015-07-28 18:07:20 +02:00
str.rs syntax: Copy unstable str::char_at into libsyntax 2015-04-21 10:23:53 -07:00
test.rs Removed many pointless calls to *iter() and iter_mut() 2015-06-10 21:14:03 +01:00
visit.rs Fix issue #23302, ICE on recursively defined enum variant discriminant. 2015-06-22 20:55:57 -06:00