<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/test/ui/proc-macro/nested-macro-rules.stdout, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-01-11T09:32:08+00:00</updated>
<entry>
<title>Move /src/test to /tests</title>
<updated>2023-01-11T09:32:08+00:00</updated>
<author>
<name>Albert Larsan</name>
<email>74931857+albertlarsan68@users.noreply.github.com</email>
</author>
<published>2023-01-05T08:13:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cf2dff2b1e3fa55fa5415d524200070d0d7aacfe'/>
<id>urn:sha1:cf2dff2b1e3fa55fa5415d524200070d0d7aacfe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ast_lowering: Stop wrapping `ident` matchers into groups</title>
<updated>2022-04-01T21:09:34+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2022-04-01T20:54:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a150fc2990bb89d804761f64d2ce3cf497b7fc81'/>
<id>urn:sha1:a150fc2990bb89d804761f64d2ce3cf497b7fc81</id>
<content type='text'>
The lowered forms goes to metadata, for example during encoding of macro definitions
</content>
</entry>
<entry>
<title>proc-macro: Stop wrapping `ident` matchers into groups</title>
<updated>2022-03-26T09:38:46+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2022-01-01T09:15:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=baa3ad4dc846981902926ec230a89f452f5bc370'/>
<id>urn:sha1:baa3ad4dc846981902926ec230a89f452f5bc370</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Pretty print empty blocks as {}</title>
<updated>2021-12-01T21:50:13+00:00</updated>
<author>
<name>David Tolnay</name>
<email>dtolnay@gmail.com</email>
</author>
<published>2021-12-01T19:45:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b516a8c5cbcde670e509182592547072a723875a'/>
<id>urn:sha1:b516a8c5cbcde670e509182592547072a723875a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Always preserve `None`-delimited groups in a captured `TokenStream`</title>
<updated>2021-03-27T03:32:18+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2021-03-27T03:23:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f94360fd83b49554b6c26999a0030e9cfe800f32'/>
<id>urn:sha1:f94360fd83b49554b6c26999a0030e9cfe800f32</id>
<content type='text'>
Previously, we would silently remove any `None`-delimiters when
capturing a `TokenStream`, 'flattenting' them to their inner tokens.
This was not normally visible, since we usually have
`TokenKind::Interpolated` (which gets converted to a `None`-delimited
group during macro invocation) instead of an actual `None`-delimited
group.

However, there are a couple of cases where this becomes visible to
proc-macros:
1. A cross-crate `macro_rules!` macro has a `None`-delimited group
   stored in its body (as a result of being produced by another
   `macro_rules!` macro). The cross-crate `macro_rules!` invocation
   can then expand to an attribute macro invocation, which needs
   to be able to see the `None`-delimited group.
2. A proc-macro can invoke an attribute proc-macro with its re-collected
   input. If there are any nonterminals present in the input, they will
   get re-collected to `None`-delimited groups, which will then get
   captured as part of the attribute macro invocation.

Both of these cases are incredibly obscure, so there hopefully won't be
any breakage. This change will allow more agressive 'flattenting' of
nonterminals in #82608 without losing `None`-delimited groups.
</content>
</entry>
<entry>
<title>Properly encode spans with a dummy location and non-root `SyntaxContext`</title>
<updated>2020-09-13T03:26:17+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2020-09-13T03:26:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a67d248b13e8ac6f83df8994f59e7b89f064339e'/>
<id>urn:sha1:a67d248b13e8ac6f83df8994f59e7b89f064339e</id>
<content type='text'>
Previously, we would throw away the `SyntaxContext` of any span with a
dummy location during metadata encoding. This commit makes metadata Span
encoding consistent with incr-cache Span encoding - an 'invalid span'
tag is only used when it doesn't lose any information.
</content>
</entry>
<entry>
<title>Remove normalization of `Span` debug output in proc-macro tests</title>
<updated>2020-08-09T18:41:51+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2020-08-09T17:36:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=db6b3c1ce4004b7834cbeb6d6b5feac74f7cd4c0'/>
<id>urn:sha1:db6b3c1ce4004b7834cbeb6d6b5feac74f7cd4c0</id>
<content type='text'>
Fixes #74800

The definition of `is_x86_feature_detected!` (and similar macros)
depends on the platform - it is produced by a `cfg_if!` invocation on
x86, and a plain `#[cfg]` on other platforms. Since it is part of the
prelude, we will end up importing different hygiene information
depending on the platform. This previously required us to avoid printing raw
`SyntaxContext` ids in any tests that uses the standard library, since
the captured output will be platform-dependent.

Previously, we replaced all `SyntaxContext` ids with "#CTXT", and the
raw `Span` lo/hi bytes with "LO..HI".

This commit adds `#![no_std]` and `extern crate std` to all proc-macro
tests that print spans. This suppresses the prelude import, while
still using lang items from `std` (which gives us a buildable binary).
With this apporach, we will only load hygiene information for things
which we explicitly import. This lets us re-add
`-Z unpretty=expanded,hygiene`, since its output can now be made stable
across all platforms.

Additionally, we use `-Z span-debug` in more places, which lets us avoid
the "LO..HI" normalization hack.
</content>
</entry>
<entry>
<title>Normalize the test output of hygiene-related tests</title>
<updated>2020-07-27T00:05:02+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2020-07-27T00:00:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f7235a898a150ce77a214f51c30f9ac8bd8864a5'/>
<id>urn:sha1:f7235a898a150ce77a214f51c30f9ac8bd8864a5</id>
<content type='text'>
A raw SyntaxContext id is implicitly dependent on the target platform,
since libstd and libcore have platform-dependent #[cfg]s which affect
which macros are invoked. As a result, we must strip out any
SyntaxContext ids from test output to ensure that the captured stdout is
not platform-dependent.
</content>
</entry>
<entry>
<title>Hygiene serialization implementation</title>
<updated>2020-07-26T22:37:02+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2020-03-17T15:45:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0caebfabe6f3506355581b2fbfcfa0ca05a768fc'/>
<id>urn:sha1:0caebfabe6f3506355581b2fbfcfa0ca05a768fc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't print additional spaces when pretty-printing NoDelim groups</title>
<updated>2020-07-01T16:42:31+00:00</updated>
<author>
<name>Aaron Hill</name>
<email>aa1ronham@gmail.com</email>
</author>
<published>2020-06-21T20:56:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c84402872ec9ced6f5ba16b48c4f45fef96ad591'/>
<id>urn:sha1:c84402872ec9ced6f5ba16b48c4f45fef96ad591</id>
<content type='text'>
</content>
</entry>
</feed>
