rust/src/libsyntax
bors ef8cb40c9c Auto merge of #51519 - ExpHP:issue-51331-b, r=petrochenkov
Fix for $crate var normalization in proc macro for externally defined macros

Fixes #51331, a bug that has existed in at least *some* form for a year and a half.

The PR includes the addition of a `fold_qpath` method to `syntax::fold::Folder`.  Overriding this method is useful for folds that modify paths in a way that invalidates indices (insertion or removal of a component), as it provides the opportunity to update `qself.position` in `<A as B>::C` paths.  I added it because the bugfix is messy without it.

(unfortunately, grepping around the codebase, I did not see anything else that could use it.)
2018-06-12 15:23:28 +00:00
..
diagnostics Add Ident::as_str helper 2018-05-26 15:20:23 +03:00
ext Enable fall through past $:lifetime matcher 2018-06-10 14:39:16 -07:00
parse Auto merge of #51508 - PSeitz:master, r=Mark-Simulacrum 2018-06-12 11:06:09 +00:00
print Auto merge of #51072 - petrochenkov:ifield, r=eddyb 2018-05-26 16:56:22 +00:00
util restore emplacement syntax (obsolete) 2018-05-24 18:49:58 -04:00
ast.rs Auto merge of #51052 - nikomatsakis:obsolete-arrow, r=petrochenkov 2018-05-26 14:30:30 +00:00
attr.rs Deny #[cfg] and #[cfg_attr] on generic parameters. 2018-06-02 05:11:33 +08: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 Satisfy tidy 2018-05-21 18:43:11 +02:00
config.rs Deny #[cfg] and #[cfg_attr] on generic parameters. 2018-06-02 05:11:33 +08:00
diagnostic_list.rs More E0541 long diagnostic wording tweaks 2018-06-11 03:51:04 -07:00
entry.rs Cleanup InternedString. 2016-11-21 09:00:56 +00:00
feature_gate.rs Stabilize the #[global_allocator] attribute 2018-06-11 13:48:56 -07:00
fold.rs add fold::Folder::fold_qpath 2018-06-12 08:06:22 -04:00
json.rs Stabilize suggestion applicability field in json output 2018-05-21 10:48:12 -07:00
lib.rs Crate-ify and delete unused code in syntax::parse 2018-06-09 16:57:19 -06: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 append unused variables with _ 2018-06-06 12:22:38 +05:30
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: don't visit lifetime parameters through visit_lifetime. 2018-05-30 20:29:38 +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: