rust/src/libsyntax
bors 3f92e8d898 Auto merge of #46455 - petrochenkov:pimpl, r=nikomatsakis
syntax: Rewrite parsing of impls

Properly parse impls for the never type `!`
Recover from missing `for` in `impl Trait for Type`
Prohibit inherent default impls and default impls of auto traits (https://github.com/rust-lang/rust/issues/37653#issuecomment-348687794, https://github.com/rust-lang/rust/issues/37653#issuecomment-348688785)
Change wording in more diagnostics to use "auto traits"
Fix some spans in diagnostics
Some other minor code cleanups in the parser
Disambiguate generics and qualified paths in impls (parse `impl <Type as Trait>::AssocTy { ... }`)
Replace the future-compatibility hack from https://github.com/rust-lang/rust/pull/38268 with actually parsing generic parameters
Add a test for https://github.com/rust-lang/rust/issues/46438
2018-01-14 16:56:15 +00:00
..
diagnostics rustc: Don't use relative paths for extended errors 2018-01-04 07:21:22 -08:00
ext rustc: use {U,I}size instead of {U,I}s shorthands. 2018-01-04 03:12:04 +02:00
parse syntax: Disambiguate generics and qualified paths 2018-01-14 18:10:19 +03:00
print Remove impl Foo for .. in favor of auto trait Foo 2018-01-13 18:48:00 +03:00
util Add GenericParam, refactor Generics in ast, hir, rustdoc 2017-12-21 13:38:10 +01:00
abi.rs add thiscall calling convention support 2017-05-24 16:40:03 -04:00
ast.rs Remove impl Foo for .. in favor of auto trait Foo 2018-01-13 18:48:00 +03:00
attr.rs Rename ReprExtern to ReprC, and similarily rename a few other fields and locals that mentioned "extern repr" 2018-01-07 22:05:32 +01:00
build.rs rustc: Add some build scripts for librustc crates 2017-07-22 22:04:13 -07:00
Cargo.toml Try to fix a perf regression by updating log 2018-01-07 16:54:05 +01:00
codemap.rs Use correct line offsets for doctests (fixes #45868) 2018-01-10 10:10:34 +05:30
config.rs syntax: Rename P::unwrap into P::into_inner 2017-12-17 02:21:29 +03:00
diagnostic_list.rs Add support for ..= syntax 2017-09-22 22:05:18 +02:00
entry.rs Cleanup InternedString. 2016-11-21 09:00:56 +00:00
feature_gate.rs Auto merge of #47416 - petrochenkov:remove-impl-for-dot-dot, r=petrochenkov 2018-01-13 21:48:12 +00:00
fold.rs Remove impl Foo for .. in favor of auto trait Foo 2018-01-13 18:48:00 +03:00
json.rs Use PathBuf instead of String where applicable 2017-12-14 11:22:08 +01:00
lib.rs rustc: Don't use relative paths for extended errors 2018-01-04 07:21:22 -08:00
ptr.rs syntax: Rename P::unwrap into P::into_inner 2017-12-17 02:21:29 +03:00
README.md rework the README.md for rustc and add other readmes 2017-09-19 09:00:59 -04:00
show_span.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
std_inject.rs Improve pretty printing $crate:: paths. 2017-12-12 22:32:19 -08:00
str.rs syntax: Copy unstable str::char_at into libsyntax 2015-04-21 10:23:53 -07:00
test.rs Prefer to use attr::contains_name() and attr::find_by_name() 2017-12-28 12:32:24 +09:00
test_snippet.rs Use PathBuf instead of String where applicable 2017-12-14 11:22:08 +01:00
tokenstream.rs Glued tokens can themselves be joint. 2018-01-10 17:20:04 -08:00
visit.rs Remove impl Foo for .. in favor of auto trait Foo 2018-01-13 18:48:00 +03:00

NB: This crate is part of the Rust compiler. For an overview of the compiler as a whole, see the README.md file found in librustc.

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.