<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/test/run-pass/out-pointer-aliasing.rs, branch 1.27.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.27.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.27.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2015-04-09T00:21:34+00:00</updated>
<entry>
<title>Remove pretty-expanded from failing tests</title>
<updated>2015-04-09T00:21:34+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-04-08T23:27:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ec7c800d2fc0dc5918d325ae68d88c9708d20259'/>
<id>urn:sha1:ec7c800d2fc0dc5918d325ae68d88c9708d20259</id>
<content type='text'>
This commit removes pretty-expanded from all tests that wind up calling panic!
one way or another now that its internals are unstable.
</content>
</entry>
<entry>
<title>Fallout in tests</title>
<updated>2015-04-01T15:22:39+00:00</updated>
<author>
<name>Niko Matsakis</name>
<email>niko@alum.mit.edu</email>
</author>
<published>2015-03-30T13:38:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=890ed5c46847fa544278c18fd46c1bdfe2809c09'/>
<id>urn:sha1:890ed5c46847fa544278c18fd46c1bdfe2809c09</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mass rename uint/int to usize/isize</title>
<updated>2015-03-26T19:10:22+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-03-26T00:06:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=43bfaa4a336095eb5697fb2df50909fd3c72ed14'/>
<id>urn:sha1:43bfaa4a336095eb5697fb2df50909fd3c72ed14</id>
<content type='text'>
Now that support has been removed, all lingering use cases are renamed.
</content>
</entry>
<entry>
<title>rustdoc: Replace no-pretty-expanded with pretty-expanded</title>
<updated>2015-03-23T21:40:26+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2015-03-22T20:13:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8c93a79e387f5197e8b8fe73b3d87d2b101b7c4a'/>
<id>urn:sha1:8c93a79e387f5197e8b8fe73b3d87d2b101b7c4a</id>
<content type='text'>
Now that features must be declared expanded source often does not compile.
This adds 'pretty-expanded' to a bunch of test cases that still work.
</content>
</entry>
<entry>
<title>cleanup: s/impl Copy/#[derive(Copy)]/g</title>
<updated>2015-01-25T16:20:38+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2015-01-24T21:36:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bff462302b3e0a8f68c14cad2806c7ff5005364e'/>
<id>urn:sha1:bff462302b3e0a8f68c14cad2806c7ff5005364e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>librustc: Make `Copy` opt-in.</title>
<updated>2014-12-08T18:47:44+00:00</updated>
<author>
<name>Niko Matsakis</name>
<email>niko@alum.mit.edu</email>
</author>
<published>2014-12-06T01:01:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=096a28607fb80c91e6e2ca64d9ef44c4e550e96c'/>
<id>urn:sha1:096a28607fb80c91e6e2ca64d9ef44c4e550e96c</id>
<content type='text'>
This change makes the compiler no longer infer whether types (structures
and enumerations) implement the `Copy` trait (and thus are implicitly
copyable). Rather, you must implement `Copy` yourself via `impl Copy for
MyType {}`.

A new warning has been added, `missing_copy_implementations`, to warn
you if a non-generic public type has been added that could have
implemented `Copy` but didn't.

For convenience, you may *temporarily* opt out of this behavior by using
`#![feature(opt_out_copy)]`. Note though that this feature gate will never be
accepted and will be removed by the time that 1.0 is released, so you should
transition your code away from using it.

This breaks code like:

    #[deriving(Show)]
    struct Point2D {
        x: int,
        y: int,
    }

    fn main() {
        let mypoint = Point2D {
            x: 1,
            y: 1,
        };
        let otherpoint = mypoint;
        println!("{}{}", mypoint, otherpoint);
    }

Change this code to:

    #[deriving(Show)]
    struct Point2D {
        x: int,
        y: int,
    }

    impl Copy for Point2D {}

    fn main() {
        let mypoint = Point2D {
            x: 1,
            y: 1,
        };
        let otherpoint = mypoint;
        println!("{}{}", mypoint, otherpoint);
    }

This is the backwards-incompatible part of #13231.

Part of RFC #3.

[breaking-change]
</content>
</entry>
<entry>
<title>Fix codegen breaking aliasing rules for functions with sret results</title>
<updated>2014-10-23T09:43:48+00:00</updated>
<author>
<name>Björn Steinbrink</name>
<email>bsteinbr@gmail.com</email>
</author>
<published>2014-10-22T19:23:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=70fe20a69827a2b1abfef338c83f9ec9be7c9376'/>
<id>urn:sha1:70fe20a69827a2b1abfef338c83f9ec9be7c9376</id>
<content type='text'>
This reverts commit a0ec902e239b2219edf1a18b036dd32c18d3be42 "Avoid
unnecessary temporary on assignments".

Leaving out the temporary for the functions return value can lead to a
situation that conflicts with rust's aliasing rules.

Given this:

````rust
fn func(f: &amp;mut Foo) -&gt; Foo { /* ... */ }

fn bar() {
    let mut foo = Foo { /* ... */ };

    foo = func(&amp;mut foo);
}
````

We effectively get two mutable references to the same variable `foo` at
the same time. One for the parameter `f`, and one for the hidden
out-pointer. So we can't just `trans_into` the destination directly, but
must use `trans` to get a new temporary slot from which the result can
be copied.
</content>
</entry>
</feed>
