<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/librustc_metadata/decoder.rs, branch 1.30.1</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.30.1</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.30.1'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-10-02T12:17:47+00:00</updated>
<entry>
<title>Use full name to identify a macro in a `FileName`.</title>
<updated>2018-10-02T12:17:47+00:00</updated>
<author>
<name>Diogo Sousa</name>
<email>diogogsousa@gmail.com</email>
</author>
<published>2018-09-19T00:09:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=334c2e44e4095bf56f666b353a546a16f33b38e1'/>
<id>urn:sha1:334c2e44e4095bf56f666b353a546a16f33b38e1</id>
<content type='text'>
Before this two macros with same name would be indistinguishable inside a
`FileName`.  This caused a bug in incremental compilation (see #53097) since
two different macros would map out to the same `StableFilemapId`.

Fixes #53097.
</content>
</entry>
<entry>
<title>avoid leaking host details in proc macro metadata decoding</title>
<updated>2018-09-22T17:13:45+00:00</updated>
<author>
<name>Ariel Ben-Yehuda</name>
<email>ariel.byd@gmail.com</email>
</author>
<published>2018-09-15T20:26:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=002581f6278957d3d0f35483749488ff3b6a9558'/>
<id>urn:sha1:002581f6278957d3d0f35483749488ff3b6a9558</id>
<content type='text'>
proc macro crates are essentially implemented as dynamic libraries using
a dlopen-based ABI. They are also Rust crates, so they have 2 worlds -
the "host" world in which they are defined, and the "target" world in
which they are used.

For all the "target" world knows, the proc macro crate might not even
be implemented in Rust, so leaks of details from the host to the target
must be avoided for correctness.

Because the "host" DefId space is different from the "target" DefId
space, any leak involving a DefId will have a nonsensical or
out-of-bounds DefKey, and will cause all sorts of crashes.

This PR fixes all leaks I have found in `decoder`. In particular, #54059
was caused by host native libraries leaking into the target, which feels
like it might even be a correctness issue if it doesn't cause an ICE.

Fixes #54059
</content>
</entry>
<entry>
<title>Auto merge of #53721 - arielb1:exhaustively-unpun, r=nikomatsakis</title>
<updated>2018-09-06T06:42:19+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2018-09-06T06:42:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=20ca02569ae3e1dc29962e92739fbab632abf241'/>
<id>urn:sha1:20ca02569ae3e1dc29962e92739fbab632abf241</id>
<content type='text'>
fix `is_non_exhaustive` confusion between structs and enums

Structs and enums can both be non-exhaustive, with a very different
meaning. This PR splits `is_non_exhaustive` to 2 separate functions - 1
for structs, and another for enums, and fixes the places that got the
usage confused.

Fixes #53549.

r? @eddyb
</content>
</entry>
<entry>
<title>move the is_field_list_non_exhaustive flag to VariantDef</title>
<updated>2018-09-01T16:10:26+00:00</updated>
<author>
<name>Ariel Ben-Yehuda</name>
<email>ariel.byd@gmail.com</email>
</author>
<published>2018-09-01T16:10:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ae2ad30bf1f3f924ed9ef977b3d2782f85fe2593'/>
<id>urn:sha1:ae2ad30bf1f3f924ed9ef977b3d2782f85fe2593</id>
<content type='text'>
This completely splits the IS_NON_EXHAUSTIVE flag. No functional
changes intended.
</content>
</entry>
<entry>
<title>create a valid DefIdTable for proc macro crates</title>
<updated>2018-08-26T15:48:41+00:00</updated>
<author>
<name>Ariel Ben-Yehuda</name>
<email>ariel.byd@gmail.com</email>
</author>
<published>2018-08-25T22:53:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5415bb6e8f689393b2f87dc0875bb4048f5f3067'/>
<id>urn:sha1:5415bb6e8f689393b2f87dc0875bb4048f5f3067</id>
<content type='text'>
At least the incremental compilation code, and a few other places in the
compiler, require the CrateMetadata for a loaded target crate to contain a
valid DefIdTable for the DefIds in the target.

Previously, the CrateMetadata for a proc macro contained the crate's
"host" DefIdTable, which is of course incompatible with the "target"
DefIdTable, causing ICEs. This creates a DefIdTable that properly refers
to the "proc macro" DefIds.

Fixes #49482.
</content>
</entry>
<entry>
<title>Replace TyForeign with ForeignTy</title>
<updated>2018-08-22T15:08:49+00:00</updated>
<author>
<name>varkor</name>
<email>github@varkor.com</email>
</author>
<published>2018-08-22T10:47:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d0209c44a620fa63d2e95d0752ef24f8f0d73ceb'/>
<id>urn:sha1:d0209c44a620fa63d2e95d0752ef24f8f0d73ceb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename Def::{Param, Foreign} to Def::{TyParam, TyForeign}</title>
<updated>2018-08-22T15:08:49+00:00</updated>
<author>
<name>varkor</name>
<email>github@varkor.com</email>
</author>
<published>2018-08-22T01:13:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=05cfb3f5b553f96f299919e19be10bccb240a6a7'/>
<id>urn:sha1:05cfb3f5b553f96f299919e19be10bccb240a6a7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove Ty prefix from Ty{Foreign|Param}</title>
<updated>2018-08-22T15:07:55+00:00</updated>
<author>
<name>varkor</name>
<email>github@varkor.com</email>
</author>
<published>2018-08-22T00:35:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=04fa5d3adbb8212f5b4e87e3bbd7b74bb7c9ec65'/>
<id>urn:sha1:04fa5d3adbb8212f5b4e87e3bbd7b74bb7c9ec65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix tidy errors</title>
<updated>2018-08-19T21:01:01+00:00</updated>
<author>
<name>Donato Sciarra</name>
<email>sciarp@gmail.com</email>
</author>
<published>2018-08-18T10:14:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6138c82803a77a44e0a56cd8999299fa7f214afe'/>
<id>urn:sha1:6138c82803a77a44e0a56cd8999299fa7f214afe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mv codemap source_map</title>
<updated>2018-08-19T21:01:01+00:00</updated>
<author>
<name>Donato Sciarra</name>
<email>sciarp@gmail.com</email>
</author>
<published>2018-08-18T10:14:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=062bfbf39bef9360e1553f293f4f1015c5680dec'/>
<id>urn:sha1:062bfbf39bef9360e1553f293f4f1015c5680dec</id>
<content type='text'>
</content>
</entry>
</feed>
