rust/src/libsyntax
Nicholas Nethercote 67f8fb5960 Use Lrc<Vec<TokenStream>> instead of RcVec<TokenStream>.
This shrinks:
- ThinTokenStream: 16 to 8 bytes
- TokenTree: 32 to 24 bytes
- TokenStream: 40 to 32 bytes

The only downside is that in a couple of places this requires using
`to_vec()` (which allocates) instead of `sub_slice()`. But those places
are rarely executed, so it doesn't hurt perf.

Overall, this reduces instruction counts on numerous benchmarks by up to
3%.
2018-12-12 20:36:00 +11:00
..
attr Remove tokenstream::Delimited. 2018-12-10 12:10:10 +11:00
diagnostics Remove OneVector 2018-09-26 10:43:37 +02:00
ext Remove tokenstream::Delimited. 2018-12-10 12:10:10 +11:00
parse XXX: SymbolIndex 2018-12-12 09:06:43 +11:00
print Remove tokenstream::Delimited. 2018-12-10 12:10:10 +11:00
util Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
ast.rs Remove tokenstream::Delimited. 2018-12-10 12:10:10 +11:00
build.rs rustc: Add some build scripts for librustc crates 2017-07-22 22:04:13 -07:00
Cargo.toml Upgrade smallvec to 0.6.7 and use the new may_dangle feature. 2018-12-10 09:31:27 +11:00
config.rs Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
diagnostic_list.rs Add a stub feature so we can still test E0705 2018-10-19 22:26:02 -07: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 Fixed incorrect reference to issue #23121. 2018-12-07 23:53:34 +00:00
fold.rs Remove tokenstream::Delimited. 2018-12-10 12:10:10 +11:00
json.rs Rename other occs of (Code/File)Map to Source(Map/File) #51574 2018-10-29 21:26:13 +01:00
lib.rs Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
ptr.rs Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
README.md rustc-guide has moved 2018-11-26 15:03:13 -06:00
show_span.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
source_map.rs use top level fs functions where appropriate 2018-12-07 12:54:11 -05:00
std_inject.rs syntax: Rename some keywords 2018-12-04 00:30:27 +03:00
test.rs Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
test_snippet.rs Rename other occs of (Code/File)Map to Source(Map/File) #51574 2018-10-29 21:26:13 +01:00
tokenstream.rs Use Lrc<Vec<TokenStream>> instead of RcVec<TokenStream>. 2018-12-12 20:36:00 +11:00
visit.rs Remove tokenstream::Delimited. 2018-12-10 12:10:10 +11: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: