<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/test/rustdoc/duplicate_impls/issue-33054.rs, branch 1.35.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.35.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.35.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-12-26T04:08:33+00:00</updated>
<entry>
<title>Remove licenses</title>
<updated>2018-12-26T04:08:33+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2018-12-25T15:56:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2a663555ddf36f6b041445894a8c175cd1bc718c'/>
<id>urn:sha1:2a663555ddf36f6b041445894a8c175cd1bc718c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Generate documentation for auto-trait impls</title>
<updated>2018-02-18T21:29:24+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2017-11-22T21:16:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6728f21d85d347bcd5e7ca919b4e9f0c2677572b'/>
<id>urn:sha1:6728f21d85d347bcd5e7ca919b4e9f0c2677572b</id>
<content type='text'>
A new section is added to both both struct and trait doc pages.

On struct/enum pages, a new 'Auto Trait Implementations' section displays any
synthetic implementations for auto traits. Currently, this is only done
for Send and Sync.

On trait pages, a new 'Auto Implementors' section displays all types
which automatically implement the trait. Effectively, this is a list of
all public types in the standard library.

Synthesized impls for a particular auto trait ('synthetic impls') take
into account generic bounds. For example, a type 'struct Foo&lt;T&gt;(T)' will
have 'impl&lt;T&gt; Send for Foo&lt;T&gt; where T: Send' generated for it.

Manual implementations of auto traits are also taken into account. If we have
the following types:

'struct Foo&lt;T&gt;(T)'
'struct Wrapper&lt;T&gt;(Foo&lt;T&gt;)'
'unsafe impl&lt;T&gt; Send for Wrapper&lt;T&gt;' // pretend that Wrapper&lt;T&gt; makes
this sound somehow

Then Wrapper will have the following impl generated:
'impl&lt;T&gt; Send for Wrapper&lt;T&gt;'
reflecting the fact that 'T: Send' need not hold for 'Wrapper&lt;T&gt;: Send'
to hold

Lifetimes, HRTBS, and projections (e.g. '&lt;T as Iterator&gt;::Item') are
taken into account by synthetic impls

However, if a type can *never* implement a particular auto trait
(e.g. 'struct MyStruct&lt;T&gt;(*const T)'), then a negative impl will be
generated (in this case, 'impl&lt;T&gt; !Send for MyStruct&lt;T&gt;')

All of this means that a user should be able to copy-paste a synthetic
impl into their code, without any observable changes in behavior
(assuming the rest of the program remains unchanged).
</content>
</entry>
<entry>
<title>Only record the same impl once</title>
<updated>2016-04-22T17:10:30+00:00</updated>
<author>
<name>mitaa</name>
<email>mitaa.ceb@gmail.com</email>
</author>
<published>2016-04-22T15:53:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8ab2c20d8c018c310a0c286aeb2622c41ef357a1'/>
<id>urn:sha1:8ab2c20d8c018c310a0c286aeb2622c41ef357a1</id>
<content type='text'>
Due to inlining it is possible to visit the same module multiple times
during `&lt;Cache as DocFolder&gt;::fold_crate`, so we keep track of the
modules we've already visited.
</content>
</entry>
</feed>
