<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libcore/ops/mod.rs, branch 1.37.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.37.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.37.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2019-04-18T05:47:35+00:00</updated>
<entry>
<title>libcore =&gt; 2018</title>
<updated>2019-04-18T05:47:35+00:00</updated>
<author>
<name>Taiki Endo</name>
<email>te316e89@gmail.com</email>
</author>
<published>2019-04-15T02:23:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=360432f1e8794de58cd94f34c9c17ad65871e5b5'/>
<id>urn:sha1:360432f1e8794de58cd94f34c9c17ad65871e5b5</id>
<content type='text'>
</content>
</entry>
<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>Stabilize `Rc`, `Arc` and `Pin` as method receivers</title>
<updated>2018-12-20T06:14:01+00:00</updated>
<author>
<name>Michael Hewson</name>
<email>michael@michaelhewson.ca</email>
</author>
<published>2018-11-20T16:50:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=153f5a7892274764256862692fa7e2c51474e5d0'/>
<id>urn:sha1:153f5a7892274764256862692fa7e2c51474e5d0</id>
<content type='text'>
This lets you write methods using `self: Rc&lt;Self&gt;`, `self: Arc&lt;Self&gt;`, `self: Pin&lt;&amp;mut Self&gt;`, `self: Pin&lt;Box&lt;Self&gt;`, and other combinations involving `Pin` and another stdlib receiver type, without needing the `arbitrary_self_types`. Other user-created receiver types can be used, but they still require the feature flag to use.

This is implemented by introducing a new trait, `Receiver`, which the method receiver's type must implement if the `arbitrary_self_types` feature is not enabled. To keep composed receiver types such as `&amp;Arc&lt;Self&gt;` unstable, the receiver type is also required to implement `Deref&lt;Target=Self&gt;` when the feature flag is not enabled.

This lets you use `self: Rc&lt;Self&gt;` and `self: Arc&lt;Self&gt;` in stable Rust, which was not allowed previously. It was agreed that they would be stabilized in #55786. `self: Pin&lt;&amp;Self&gt;` and other pinned receiver types do not require the `arbitrary_self_types` feature, but they cannot be used on stable because `Pin` still requires the `pin` feature.
</content>
</entry>
<entry>
<title>Various minor/cosmetic improvements to code</title>
<updated>2018-12-07T23:53:34+00:00</updated>
<author>
<name>Alexander Regueiro</name>
<email>alexreg@me.com</email>
</author>
<published>2018-11-27T02:59:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ee89c088b057affb5bdb96195e107a218b64b1c5'/>
<id>urn:sha1:ee89c088b057affb5bdb96195e107a218b64b1c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace CoerceSized trait with DispatchFromDyn</title>
<updated>2018-11-01T22:16:59+00:00</updated>
<author>
<name>Michael Hewson</name>
<email>michael@michaelhewson.ca</email>
</author>
<published>2018-10-04T03:40:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f12c250e40650e6103161f986f02a84b7357bdc9'/>
<id>urn:sha1:f12c250e40650e6103161f986f02a84b7357bdc9</id>
<content type='text'>
Rename `CoerceSized` to `DispatchFromDyn`, and reverse the direction so that, for example, you write

```
impl&lt;T: Unsize&lt;U&gt;, U&gt; DispatchFromDyn&lt;*const U&gt; for *const T {}
```

instead of

```
impl&lt;T: Unsize&lt;U&gt;, U&gt; DispatchFromDyn&lt;*const T&gt; for *const U {}
```

this way the trait is really just a subset of `CoerceUnsized`.

The checks in object_safety.rs are updated for the new trait, and some documentation and method names in there are updated for the new trait name — e.g. `receiver_is_coercible` is now called `receiver_is_dispatchable`. Since the trait now works in the opposite direction, some code had to updated here for that too.

I did not update the error messages for invalid `CoerceSized` (now `DispatchFromDyn`) implementations, except to find/replace `CoerceSized` with `DispatchFromDyn`. Will ask for suggestions in the PR thread.
</content>
</entry>
<entry>
<title>Add CoerceSized trait and lang item</title>
<updated>2018-11-01T22:15:19+00:00</updated>
<author>
<name>Michael Hewson</name>
<email>michael@michaelhewson.ca</email>
</author>
<published>2018-09-20T07:04:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=be80a79a1ea247a71e5ffa408356b9b72cddb644'/>
<id>urn:sha1:be80a79a1ea247a71e5ffa408356b9b72cddb644</id>
<content type='text'>
This trait is more-or-less the reverse of CoerceUnsized, and will be
used for object-safety checks. Receiver types like `Rc` will have to
implement `CoerceSized` so that methods that use `Rc&lt;Self&gt;` as the
receiver will be considered object-safe.
</content>
</entry>
<entry>
<title>Remove all unstable placement features</title>
<updated>2018-04-03T09:02:34+00:00</updated>
<author>
<name>Aidan Hobson Sayers</name>
<email>aidanhs@cantab.net</email>
</author>
<published>2018-02-18T17:39:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9b5859aea199d5f34a4d4b5ae7112c5c41f3b242'/>
<id>urn:sha1:9b5859aea199d5f34a4d4b5ae7112c5c41f3b242</id>
<content type='text'>
Closes #22181, #27779
</content>
</entry>
<entry>
<title>Move RangeArguments to {core::std}::ops and rename to RangeBounds</title>
<updated>2018-03-29T11:12:49+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-03-19T08:26:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=16d3ba1b23195da2d53e058c58c2a41def914dec'/>
<id>urn:sha1:16d3ba1b23195da2d53e058c58c2a41def914dec</id>
<content type='text'>
These unstable items are deprecated:

* The `std::collections::range::RangeArgument` reexport
* The `std::collections::range` module.
</content>
</entry>
<entry>
<title>Move alloc::Bound to {core,std}::ops</title>
<updated>2018-03-29T11:12:49+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-03-19T08:01:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c3a63970dee2422e2fcc79d8b99303b4b046f444'/>
<id>urn:sha1:c3a63970dee2422e2fcc79d8b99303b4b046f444</id>
<content type='text'>
The stable reexport `std::collections::Bound` is now deprecated.

Another deprecated reexport could be added in `alloc`,
but that crate is unstable.
</content>
</entry>
<entry>
<title>Stabilize `inclusive_range` library feature.</title>
<updated>2018-03-15T08:58:01+00:00</updated>
<author>
<name>kennytm</name>
<email>kennytm@gmail.com</email>
</author>
<published>2018-01-27T19:09:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b5913f2e7695ad247078619bf4c6a6d3dc4dece5'/>
<id>urn:sha1:b5913f2e7695ad247078619bf4c6a6d3dc4dece5</id>
<content type='text'>
Stabilize std::ops::RangeInclusive and std::ops::RangeInclusiveTo.
</content>
</entry>
</feed>
