rust/src/libsyntax
Alex Crichton 3b8f791bf6 rustc: Fix procedural macros generating lifetime tokens
This commit fixes an accidental regression from #50473 where lifetime tokens
produced by procedural macros ended up getting lost in translation in the
compiler and not actually producing parseable code. The issue lies in the fact
that a lifetime's `Ident` is prefixed with `'`. The `glue` implementation for
gluing joint tokens together forgot to take this into account so the lifetime
inside of `Ident` was missing the leading tick!

The `glue` implementation here is updated to create a new `Symbol` in these
situations to manufacture a new `Ident` with a leading tick to ensure it parses
correctly.

Closes #50942
2018-05-21 09:35:15 -07:00
..
diagnostics rustc: introduce {ast,hir}::AnonConst to consolidate so-called "embedded constants". 2018-05-19 20:34:42 +03:00
ext Auto merge of #50855 - nnethercote:fewer-macro_parser-allocs, r=petrochenkov 2018-05-20 08:55:50 +00:00
parse rustc: Fix procedural macros generating lifetime tokens 2018-05-21 09:35:15 -07:00
print rustc: introduce {ast,hir}::AnonConst to consolidate so-called "embedded constants". 2018-05-19 20:34:42 +03:00
util AST/HIR: Merge field access expressions for named and numeric fields 2018-04-12 23:02:09 +03:00
ast.rs rustc: introduce {ast,hir}::AnonConst to consolidate so-called "embedded constants". 2018-05-19 20:34:42 +03:00
attr.rs Macros: Add a 'literal' fragment specifier 2018-05-13 19:17:02 +03:00
build.rs rustc: Add some build scripts for librustc crates 2017-07-22 22:04:13 -07:00
Cargo.toml rustc_target: move in syntax::abi and flip dependency. 2018-04-26 17:49:16 +03:00
codemap.rs CodeMap functions refactored. 2018-03-18 20:46:29 -03:00
config.rs Rename ast::Variant_::name into ident + Fix rebase 2018-04-06 11:48:19 +03:00
diagnostic_list.rs Auto merge of #50030 - flip1995:rfc2103, r=petrochenkov 2018-05-03 11:52:03 +00:00
entry.rs Cleanup InternedString. 2016-11-21 09:00:56 +00:00
feature_gate.rs Auto merge of #50820 - alexcrichton:no-modules, r=petrochenkov 2018-05-20 05:57:41 +00:00
fold.rs rustc: introduce {ast,hir}::AnonConst to consolidate so-called "embedded constants". 2018-05-19 20:34:42 +03:00
json.rs Approximate -> Applicability 2018-04-25 14:55:25 -07:00
lib.rs Move definition of Edition from libsyntax to libsyntax_pos 2018-05-17 23:13:08 +03:00
ptr.rs syntax: Rename P::unwrap into P::into_inner 2017-12-17 02:21:29 +03:00
README.md Replace many of the last references to readmes 2018-03-16 12:43:22 -05:00
show_span.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
std_inject.rs Add edition to expansion info 2018-05-17 23:13:08 +03:00
str.rs Inline char_at() and record_width. 2018-05-13 17:16:02 +10:00
test.rs Add edition to expansion info 2018-05-17 23:13:08 +03:00
test_snippet.rs Remove syntax and syntax_pos thread locals 2018-03-14 11:56:01 +01:00
tokenstream.rs Make Directory::path a Cow. 2018-05-18 22:20:33 +10:00
visit.rs rustc: introduce {ast,hir}::AnonConst to consolidate so-called "embedded constants". 2018-05-19 20:34:42 +03:00

The syntax crate contains those things concerned purely with syntax that is, the AST ("abstract syntax tree"), parser, pretty-printer, lexer, macro expander, and utilities for traversing ASTs.

For more information about how these things work in rustc, see the rustc guide: