diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-12-02 22:15:03 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-01-14 18:10:05 +0300 |
| commit | d19e4c4a8507da7e35d0de2b196c48e6621de1f9 (patch) | |
| tree | df1852ce3a472b0d835c02f9686bbde9e21cb9e9 /src/test/parse-fail | |
| parent | 48ab4cde5460f9f7c57249e4e62ad569dc843dd8 (diff) | |
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
Diffstat (limited to 'src/test/parse-fail')
| -rw-r--r-- | src/test/parse-fail/syntax-trait-polarity.rs | 35 | ||||
| -rw-r--r-- | src/test/parse-fail/trait-bounds-not-on-impl.rs | 4 |
2 files changed, 1 insertions, 38 deletions
diff --git a/src/test/parse-fail/syntax-trait-polarity.rs b/src/test/parse-fail/syntax-trait-polarity.rs deleted file mode 100644 index 1971ffeaf26..00000000000 --- a/src/test/parse-fail/syntax-trait-polarity.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2014 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// compile-flags: -Z parse-only -Z continue-parse-after-error - -#![feature(optin_builtin_traits)] - -use std::marker::Send; - -struct TestType; - -impl !TestType {} -//~^ ERROR inherent implementation can't be negated - -trait TestTrait {} - -unsafe impl !Send for TestType {} -impl !TestTrait for TestType {} - -struct TestType2<T>; - -impl<T> !TestType2<T> {} -//~^ ERROR inherent implementation can't be negated - -unsafe impl<T> !Send for TestType2<T> {} -impl<T> !TestTrait for TestType2<T> {} - -fn main() {} diff --git a/src/test/parse-fail/trait-bounds-not-on-impl.rs b/src/test/parse-fail/trait-bounds-not-on-impl.rs index b7dcc8a8b3b..7cd2774fe39 100644 --- a/src/test/parse-fail/trait-bounds-not-on-impl.rs +++ b/src/test/parse-fail/trait-bounds-not-on-impl.rs @@ -15,9 +15,7 @@ trait Foo { struct Bar; -impl Foo + Owned for Bar { -//~^ ERROR not a trait -//~^^ ERROR expected one of `where` or `{`, found `Bar` +impl Foo + Owned for Bar { //~ ERROR expected a trait, found type } fn main() { } |
