]> git.lizzy.rs Git - rust.git/commit
syntax: Rewrite parsing of impls
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>
Sat, 2 Dec 2017 19:15:03 +0000 (22:15 +0300)
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>
Sun, 14 Jan 2018 15:10:05 +0000 (18:10 +0300)
commitd19e4c4a8507da7e35d0de2b196c48e6621de1f9
treedf1852ce3a472b0d835c02f9686bbde9e21cb9e9
parent48ab4cde5460f9f7c57249e4e62ad569dc843dd8
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
Change wording in more diagnostics to use "auto traits"
Some minor code cleanups in the parser
24 files changed:
src/librustc/hir/lowering.rs
src/librustc_passes/ast_validation.rs
src/librustc_passes/diagnostics.rs
src/librustc_typeck/check/wfcheck.rs
src/librustc_typeck/coherence/inherent_impls.rs
src/librustc_typeck/coherence/orphan.rs
src/librustc_typeck/coherence/unsafety.rs
src/librustc_typeck/diagnostics.rs
src/libsyntax/parse/parser.rs
src/test/compile-fail/E0198.rs
src/test/compile-fail/coherence-negative-impls-safe.rs
src/test/compile-fail/issue-46438.rs [new file with mode: 0644]
src/test/compile-fail/phantom-oibit.rs
src/test/compile-fail/specialization/defaultimpl/validation.rs [new file with mode: 0644]
src/test/compile-fail/syntax-trait-polarity-feature-gate.rs
src/test/compile-fail/syntax-trait-polarity.rs [new file with mode: 0644]
src/test/compile-fail/trait-safety-inherent-impl.rs
src/test/compile-fail/typeck-negative-impls-builtin.rs
src/test/parse-fail/syntax-trait-polarity.rs [deleted file]
src/test/parse-fail/trait-bounds-not-on-impl.rs
src/test/run-pass/issue-25693.rs
src/test/ui/span/impl-parsing.rs [new file with mode: 0644]
src/test/ui/span/impl-parsing.stderr [new file with mode: 0644]
src/test/ui/typeck-default-trait-impl-outside-crate.stderr [deleted file]