<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/tests/ui/transmutability/references, branch beta</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=beta</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=beta'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-08-14T15:43:39+00:00</updated>
<entry>
<title>it's not a borrow checker limitation :&lt;</title>
<updated>2025-08-14T15:43:39+00:00</updated>
<author>
<name>lcnr</name>
<email>rust@lcnr.de</email>
</author>
<published>2025-08-13T12:08:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3ebf611005370734ddf7ce22e41ac502e4fff59a'/>
<id>urn:sha1:3ebf611005370734ddf7ce22e41ac502e4fff59a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rework `add_placeholder_from_predicate_note`</title>
<updated>2025-08-13T12:03:26+00:00</updated>
<author>
<name>lcnr</name>
<email>rust@lcnr.de</email>
</author>
<published>2025-08-07T09:30:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a95a2ac476ef04ccf8cfabd35e6fcdb9569f053d'/>
<id>urn:sha1:a95a2ac476ef04ccf8cfabd35e6fcdb9569f053d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>transmutability: shift abstraction boundary</title>
<updated>2025-06-09T14:08:12+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2025-06-04T15:58:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e9eae28eee0a99c64e81f4fdf87d3c76241e56bd'/>
<id>urn:sha1:e9eae28eee0a99c64e81f4fdf87d3c76241e56bd</id>
<content type='text'>
Previously, `rustc_transmute`'s layout representations were genericized
over `R`, a reference. Now, it's instead genericized over
representations of type and region. This allows us to move reference
transmutability logic from `rustc_trait_selection` to
`rustc_transmutability` (and thus unit test it independently of the
compiler), and — in a follow-up PR — will make it possible to support
analyzing function pointer transmutability with minimal surgery.
</content>
</entry>
<entry>
<title>Filter empty lines, comments and delimiters from previous to last multiline span rendering</title>
<updated>2024-12-12T23:36:27+00:00</updated>
<author>
<name>Esteban Küber</name>
<email>esteban@kuber.com.ar</email>
</author>
<published>2024-12-11T21:48:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=49a22a4245bd6dfd3646a6658e0f90a2ab0657ad'/>
<id>urn:sha1:49a22a4245bd6dfd3646a6658e0f90a2ab0657ad</id>
<content type='text'>
</content>
</entry>
<entry>
<title>safe transmute: Rename `BikeshedIntrinsicFrom` to `TransmuteFrom`</title>
<updated>2024-08-27T14:05:54+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2024-08-27T14:05:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1ad218f3af806c1f0c14e8b44656318b913a3906'/>
<id>urn:sha1:1ad218f3af806c1f0c14e8b44656318b913a3906</id>
<content type='text'>
As our implementation of MCP411 nears completion and we begin to
solicit testing, it's no longer reasonable to expect testers to
type or remember `BikeshedIntrinsicFrom`. The name degrades the
ease-of-reading of documentation, and the overall experience of
using compiler safe transmute.

Tentatively, we'll instead adopt `TransmuteFrom`.

This name seems to be the one most likely to be stabilized, after
discussion on Zulip [1]. We may want to revisit the ordering of
`Src` and `Dst` before stabilization, at which point we'd likely
consider `TransmuteInto` or `Transmute`.

[1] https://rust-lang.zulipchat.com/#narrow/stream/216762-project-safe-transmute/topic/What.20should.20.60BikeshedIntrinsicFrom.60.20be.20named.3F
</content>
</entry>
<entry>
<title>safe transmute: forbid reference lifetime extension</title>
<updated>2024-08-18T18:31:06+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2024-08-14T20:10:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=17995d5cc2e75b65b8bd6b77ad30b0c764500c0c'/>
<id>urn:sha1:17995d5cc2e75b65b8bd6b77ad30b0c764500c0c</id>
<content type='text'>
Modifies `BikeshedIntrinsicFrom` to forbid lifetime extensions on
references. This static check can be opted out of with the
`Assume::lifetimes` flag.

Fixes #129097
</content>
</entry>
<entry>
<title>Harmonize use of leaf and root obligation in trait error reporting</title>
<updated>2024-06-13T00:57:23+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2024-06-08T18:02:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c453c82de4868aee46563ec908dab218153d46eb'/>
<id>urn:sha1:c453c82de4868aee46563ec908dab218153d46eb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Compute transmutability from `rustc_target::abi::Layout`</title>
<updated>2024-04-08T15:36:52+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2024-03-19T14:49:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3aa14e3b2e61739e8d0ec7883f9c185821ca5da2'/>
<id>urn:sha1:3aa14e3b2e61739e8d0ec7883f9c185821ca5da2</id>
<content type='text'>
In its first step of computing transmutability, `rustc_transmutability`
constructs a byte-level representation of type layout (`Tree`). Previously, this
representation was computed for ADTs by inspecting the ADT definition and
performing our own layout computations. This process was error-prone, verbose,
and limited our ability to analyze many types (particularly default-repr types).

In this PR, we instead construct `Tree`s from `rustc_target::abi::Layout`s. This
helps ensure that layout optimizations are reflected our analyses, and increases
the kinds of types we can now analyze, including:
- default repr ADTs
- transparent unions
- `UnsafeCell`-containing types

Overall, this PR expands the expressvity of `rustc_transmutability` to be much
closer to the transmutability analysis performed by miri. Future PRs will work
to close the remaining gaps (e.g., support for `Box`, raw pointers, `NonZero*`,
coroutines, etc.).
</content>
</entry>
<entry>
<title>Safe Transmute: lowercase diagnostics</title>
<updated>2024-03-15T17:55:49+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2024-03-15T17:55:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=107807d3932c2765580725604802f76935239723'/>
<id>urn:sha1:107807d3932c2765580725604802f76935239723</id>
<content type='text'>
</content>
</entry>
<entry>
<title>safe transmute: require that src referent is smaller than dst</title>
<updated>2024-03-13T15:53:48+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2024-03-13T00:11:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=216df4a8e6358a515ba95fb1a92864d1b94c37f3'/>
<id>urn:sha1:216df4a8e6358a515ba95fb1a92864d1b94c37f3</id>
<content type='text'>
The source referent absolutely must be smaller than the destination
referent of a ref-to-ref transmute; the excess bytes referenced
cannot arise from thin air, even if those bytes are uninitialized.
</content>
</entry>
</feed>
