rust/src/libsyntax
kennytm 8188f12aaa
Rollup merge of #53183 - estebank:println-comma, r=oli-obk
Suggest comma when missing in macro call

When missing a comma in a macro call, suggest it, regardless of
position. When a macro call doesn't match any of the patterns, check
if the call's token stream could be missing a comma between two idents,
and if so, create a new token stream containing the comma and try to
match against the macro patterns. If successful, emit the suggestion.

This works on arbitrary macros, with no need of special support from
the macro writers.

```
error: no rules expected the token `d`
  --> $DIR/missing-comma.rs:26:18
   |
LL |     foo!(a, b, c d, e);
   |                 -^
   |                 |
   |                 help: missing comma here
```
Follow up to #52397.
2018-08-10 01:01:22 +08:00
..
attr Auto merge of #52841 - petrochenkov:premacro, r=alexcrichton 2018-08-02 21:39:14 +00:00
diagnostics Deny bare trait objects in in src/libsyntax 2018-07-10 21:06:26 +02:00
ext Rollup merge of #53183 - estebank:println-comma, r=oli-obk 2018-08-10 01:01:22 +08:00
parse Enable macros to pass $:literal to another macro 2018-08-05 11:02:59 -05:00
print Auto merge of #52767 - ljedrz:avoid_format, r=petrochenkov 2018-07-29 09:33:37 +00:00
util Remove some tests using AST comparisons, fix other tests 2018-07-14 14:57:14 +03:00
ast.rs Switch syntax attribute tracking to BitVector 2018-08-01 06:48:42 -06: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 Rollup merge of #52224 - ljedrz:dyn_libsyntax, r=oli-obk 2018-07-11 12:38:39 -06:00
config.rs Deny #[cfg] and #[cfg_attr] on generic parameters. 2018-06-02 05:11:33 +08:00
diagnostic_list.rs Fix diagnostic_list error 2018-08-05 22:26:06 +01:00
early_buffered_lints.rs make it a migration lint 2018-07-23 21:55:51 -05:00
entry.rs Cleanup InternedString. 2016-11-21 09:00:56 +00:00
feature_gate.rs Rollup merge of #53179 - gnzlbg:patch-3, r=alexcrichton 2018-08-10 01:01:20 +08:00
fold.rs Implement existential types 2018-07-18 10:53:08 +02:00
json.rs Deny bare trait objects in in src/libsyntax 2018-07-10 21:06:26 +02:00
lib.rs Remove unnecessary or invalid feature attributes 2018-08-05 15:54:48 +01:00
ptr.rs Remove most of PartialEq impls from AST and HIR structures 2018-07-14 14:56:57 +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 Implement #[macro_export(local_inner_macros)] 2018-06-27 13:10:16 +03:00
str.rs Inline char_at() and record_width. 2018-05-13 17:16:02 +10:00
test.rs Avoid unnecessary pattern matching against Option and Result 2018-08-07 10:24:27 +02:00
test_snippet.rs Remove the now redundant CodeMap::new_filemap_with_lines() method. 2018-06-27 14:00:34 +02:00
tokenstream.rs Suggest comma when missing in macro call 2018-08-07 22:31:57 -07:00
visit.rs Implement existential types 2018-07-18 10:53:08 +02: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: