<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libsyntax_ext/deriving/cmp, branch perf-tmp</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2019-12-30T16:18:16+00:00</updated>
<entry>
<title>Rename directories for some crates from `syntax_x` to `rustc_x`</title>
<updated>2019-12-30T16:18:16+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2019-12-29T13:39:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b683de4ad79242fdeebcae2afefb72c1530babe9'/>
<id>urn:sha1:b683de4ad79242fdeebcae2afefb72c1530babe9</id>
<content type='text'>
`syntax_expand` -&gt; `rustc_expand`
`syntax_pos` -&gt; `rustc_span`
`syntax_ext` -&gt; `rustc_builtin_macros`
</content>
</entry>
<entry>
<title>Format the world</title>
<updated>2019-12-22T22:42:47+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2019-12-22T22:42:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a06baa56b95674fc626b3c3fd680d6a65357fe60'/>
<id>urn:sha1:a06baa56b95674fc626b3c3fd680d6a65357fe60</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove `PartialEq` and `Eq` from the `SpecialDerives`.</title>
<updated>2019-11-05T13:58:10+00:00</updated>
<author>
<name>Felix S. Klock II</name>
<email>pnkfelix@pnkfx.org</email>
</author>
<published>2019-10-28T11:40:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7d7fbcb3015521412ab17a814680cd1d9bb6cde9'/>
<id>urn:sha1:7d7fbcb3015521412ab17a814680cd1d9bb6cde9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc, rustc_passes: don't depend on syntax_expand.</title>
<updated>2019-10-27T16:05:57+00:00</updated>
<author>
<name>Mazdak Farrokhzad</name>
<email>twingoow@gmail.com</email>
</author>
<published>2019-10-09T14:47:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fb12c708521d66b1f727ad4c1ec752a78799980d'/>
<id>urn:sha1:fb12c708521d66b1f727ad4c1ec752a78799980d</id>
<content type='text'>
This is done by moving some data definitions to syntax::expand.
</content>
</entry>
<entry>
<title>Migrate from `#[structural_match]` attribute a lang-item trait.</title>
<updated>2019-10-25T12:52:07+00:00</updated>
<author>
<name>Felix S. Klock II</name>
<email>pnkfelix@pnkfx.org</email>
</author>
<published>2019-10-17T08:54:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=98f5b11b6b7a1e2a424165aa629752862a5924b0'/>
<id>urn:sha1:98f5b11b6b7a1e2a424165aa629752862a5924b0</id>
<content type='text'>
(Or more precisely, a pair of such traits: one for `derive(PartialEq)` and one
for `derive(Eq)`.)

((The addition of the second marker trait, `StructuralEq`, is largely a hack to
work-around `fn (&amp;T)` not implementing `PartialEq` and `Eq`; see also issue
rust-lang/rust#46989; otherwise I would just check if `Eq` is implemented.))

Note: this does not use trait fulfillment error-reporting machinery; it just
uses the trait system to determine if the ADT was tagged or not. (Nonetheless, I
have kept an `on_unimplemented` message on the new trait for structural_match
check, even though it is currently not used.)

Note also: this does *not* resolve the ICE from rust-lang/rust#65466, as noted
in a comment added in this commit. Further work is necessary to resolve that and
other problems with the structural match checking, especially to do so without
breaking stable code (adapted from test fn-ptr-is-structurally-matchable.rs):

```rust
fn r_sm_to(_: &amp;SM) {}

fn main() {
    const CFN6: Wrap&lt;fn(&amp;SM)&gt; = Wrap(r_sm_to);
    let input: Wrap&lt;fn(&amp;SM)&gt; = Wrap(r_sm_to);
    match Wrap(input) {
        Wrap(CFN6) =&gt; {}
        Wrap(_) =&gt; {}
    };
}
```

where we would hit a problem with the strategy of unconditionally checking for
`PartialEq` because the type `for &lt;'a&gt; fn(&amp;'a SM)` does not currently even
*implement* `PartialEq`.

----

added review feedback:
* use an or-pattern
* eschew `return` when tail position will do.
* don't need fresh_expansion; just add `structural_match` to appropriate `allow_internal_unstable` attributes.

also fixed example in doc comment so that it actually compiles.
</content>
</entry>
<entry>
<title>move syntax::ext to new crate syntax_expand</title>
<updated>2019-10-16T08:59:53+00:00</updated>
<author>
<name>Mazdak Farrokhzad</name>
<email>twingoow@gmail.com</email>
</author>
<published>2019-10-16T08:59:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d420d719c4c44c3c6d02b5fafba4f2cf5e837dba'/>
<id>urn:sha1:d420d719c4c44c3c6d02b5fafba4f2cf5e837dba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Inline attribute constructors</title>
<updated>2019-09-21T20:14:10+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2019-09-21T19:26:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8417ac67c3fe979098facad586438ea5244617b3'/>
<id>urn:sha1:8417ac67c3fe979098facad586438ea5244617b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove constraints argument from path_all</title>
<updated>2019-09-21T19:01:39+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2019-09-21T19:01:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=67d88f607ed831cf692387703c34441019b8db96'/>
<id>urn:sha1:67d88f607ed831cf692387703c34441019b8db96</id>
<content type='text'>
It was never used
</content>
</entry>
<entry>
<title>Give more `Idents` spans</title>
<updated>2019-09-15T08:15:38+00:00</updated>
<author>
<name>Matthew Jasper</name>
<email>mjjasper1@gmail.com</email>
</author>
<published>2019-09-14T20:16:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5ae3830d589ec75494ff26bd9c92e9f77e49173f'/>
<id>urn:sha1:5ae3830d589ec75494ff26bd9c92e9f77e49173f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>or-patterns: syntax: adjust derive, format, and building.</title>
<updated>2019-09-05T06:33:09+00:00</updated>
<author>
<name>Mazdak Farrokhzad</name>
<email>twingoow@gmail.com</email>
</author>
<published>2019-08-27T23:16:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=76625eb0cc1491520348220c180a6dd3def83bb9'/>
<id>urn:sha1:76625eb0cc1491520348220c180a6dd3def83bb9</id>
<content type='text'>
</content>
</entry>
</feed>
