diff --git a/compiler/rustc_ast_passes/src/ast_validation.rs b/compiler/rustc_ast_passes/src/ast_validation.rs index 8c9ad83608761..9bd2416b3bcfe 100644 --- a/compiler/rustc_ast_passes/src/ast_validation.rs +++ b/compiler/rustc_ast_passes/src/ast_validation.rs @@ -881,11 +881,6 @@ impl<'a> Visitor<'a> for AstValidator<'a> { &item.vis, errors::VisibilityNotPermittedNote::TraitImpl, ); - if let TyKind::Dummy = self_ty.kind { - // Abort immediately otherwise the `TyKind::Dummy` will reach HIR lowering, - // which isn't allowed. Not a problem for this obscure, obsolete syntax. - this.dcx().emit_fatal(errors::ObsoleteAuto { span: item.span }); - } if let (&Unsafe::Yes(span), &ImplPolarity::Negative(sp)) = (unsafety, polarity) { this.dcx().emit_err(errors::UnsafeNegativeImpl { diff --git a/compiler/rustc_parse/src/parser/item.rs b/compiler/rustc_parse/src/parser/item.rs index 77381ef46262f..f9a4afda5d0c8 100644 --- a/compiler/rustc_parse/src/parser/item.rs +++ b/compiler/rustc_parse/src/parser/item.rs @@ -597,19 +597,8 @@ impl<'a> Parser<'a> { let has_for = self.eat_keyword(kw::For); let missing_for_span = self.prev_token.span.between(self.token.span); - let ty_second = if self.token == token::DotDot { - // We need to report this error after `cfg` expansion for compatibility reasons - self.bump(); // `..`, do not add it to expected tokens - - // AST validation later detects this `TyKind::Dummy` and emits an - // error. (#121072 will hopefully remove all this special handling - // of the obsolete `impl Trait for ..` and then this can go away.) - Some(self.mk_ty(self.prev_token.span, TyKind::Dummy)) - } else if has_for || self.token.can_begin_type() { - Some(self.parse_ty()?) - } else { - None - }; + let ty_second = + if has_for || self.token.can_begin_type() { Some(self.parse_ty()?) } else { None }; generics.where_clause = self.parse_where_clause()?; diff --git a/src/tools/tidy/src/issues.txt b/src/tools/tidy/src/issues.txt index 81437473b2d25..4c95bd71d00c8 100644 --- a/src/tools/tidy/src/issues.txt +++ b/src/tools/tidy/src/issues.txt @@ -3325,7 +3325,6 @@ "ui/parser/issues/issue-24197.rs", "ui/parser/issues/issue-24375.rs", "ui/parser/issues/issue-24780.rs", -"ui/parser/issues/issue-27255.rs", "ui/parser/issues/issue-30318.rs", "ui/parser/issues/issue-3036.rs", "ui/parser/issues/issue-31804.rs", diff --git a/tests/ui/parser/impl-parsing.rs b/tests/ui/parser/impl-parsing.rs index 80ce888557078..2b2746fe94915 100644 --- a/tests/ui/parser/impl-parsing.rs +++ b/tests/ui/parser/impl-parsing.rs @@ -2,9 +2,7 @@ impl ! {} // OK impl ! where u8: Copy {} // OK impl Trait Type {} //~ ERROR missing `for` in a trait impl -impl Trait .. {} //~ ERROR missing `for` in a trait impl impl ?Sized for Type {} //~ ERROR expected a trait, found type -impl ?Sized for .. {} //~ ERROR expected a trait, found type default unsafe FAIL //~ ERROR expected item, found keyword `unsafe` //~^ ERROR `default` is not followed by an item diff --git a/tests/ui/parser/impl-parsing.stderr b/tests/ui/parser/impl-parsing.stderr index a57cc075ccc90..f4a6937720ac7 100644 --- a/tests/ui/parser/impl-parsing.stderr +++ b/tests/ui/parser/impl-parsing.stderr @@ -4,26 +4,14 @@ error: missing `for` in a trait impl LL | impl Trait Type {} | ^ help: add `for` here -error: missing `for` in a trait impl - --> $DIR/impl-parsing.rs:5:11 - | -LL | impl Trait .. {} - | ^ help: add `for` here - error: expected a trait, found type - --> $DIR/impl-parsing.rs:6:6 + --> $DIR/impl-parsing.rs:5:6 | LL | impl ?Sized for Type {} | ^^^^^^ -error: expected a trait, found type - --> $DIR/impl-parsing.rs:7:6 - | -LL | impl ?Sized for .. {} - | ^^^^^^ - error: `default` is not followed by an item - --> $DIR/impl-parsing.rs:9:1 + --> $DIR/impl-parsing.rs:7:1 | LL | default unsafe FAIL | ^^^^^^^ the `default` qualifier @@ -31,12 +19,12 @@ LL | default unsafe FAIL = note: only `fn`, `const`, `type`, or `impl` items may be prefixed by `default` error: expected item, found keyword `unsafe` - --> $DIR/impl-parsing.rs:9:9 + --> $DIR/impl-parsing.rs:7:9 | LL | default unsafe FAIL | ^^^^^^ expected item | = note: for a full list of items that can appear in modules, see -error: aborting due to 6 previous errors +error: aborting due to 4 previous errors diff --git a/tests/ui/parser/issues/issue-27255.rs b/tests/ui/parser/issues/issue-27255.rs deleted file mode 100644 index d619688e10183..0000000000000 --- a/tests/ui/parser/issues/issue-27255.rs +++ /dev/null @@ -1,10 +0,0 @@ -trait A {} - -impl A .. {} -//~^ ERROR missing `for` in a trait impl -//~| ERROR `impl Trait for .. {}` is an obsolete syntax - -impl A usize {} -//~^ ERROR missing `for` in a trait impl - -fn main() {} diff --git a/tests/ui/parser/issues/issue-27255.stderr b/tests/ui/parser/issues/issue-27255.stderr deleted file mode 100644 index 391a23556c4e0..0000000000000 --- a/tests/ui/parser/issues/issue-27255.stderr +++ /dev/null @@ -1,22 +0,0 @@ -error: missing `for` in a trait impl - --> $DIR/issue-27255.rs:3:7 - | -LL | impl A .. {} - | ^ help: add `for` here - -error: missing `for` in a trait impl - --> $DIR/issue-27255.rs:7:7 - | -LL | impl A usize {} - | ^^^^^^ help: add `for` here - -error: `impl Trait for .. {}` is an obsolete syntax - --> $DIR/issue-27255.rs:3:1 - | -LL | impl A .. {} - | ^^^^^^^^^^^^ - | - = help: use `auto trait Trait {}` instead - -error: aborting due to 3 previous errors - diff --git a/tests/ui/parser/obsolete-syntax-impl-for-dotdot.rs b/tests/ui/parser/obsolete-syntax-impl-for-dotdot.rs deleted file mode 100644 index e928f09aa6d37..0000000000000 --- a/tests/ui/parser/obsolete-syntax-impl-for-dotdot.rs +++ /dev/null @@ -1,9 +0,0 @@ -trait Trait1 {} -trait Trait2 {} - -#[cfg(not_enabled)] -impl Trait1 for .. {} - -impl Trait2 for .. {} //~ ERROR `impl Trait for .. {}` is an obsolete syntax - -fn main() {} diff --git a/tests/ui/parser/obsolete-syntax-impl-for-dotdot.stderr b/tests/ui/parser/obsolete-syntax-impl-for-dotdot.stderr deleted file mode 100644 index d5f404bed3108..0000000000000 --- a/tests/ui/parser/obsolete-syntax-impl-for-dotdot.stderr +++ /dev/null @@ -1,10 +0,0 @@ -error: `impl Trait for .. {}` is an obsolete syntax - --> $DIR/obsolete-syntax-impl-for-dotdot.rs:7:1 - | -LL | impl Trait2 for .. {} - | ^^^^^^^^^^^^^^^^^^^^^ - | - = help: use `auto trait Trait {}` instead - -error: aborting due to 1 previous error -