diff --git a/compiler/rustc_error_messages/locales/en-US/typeck.ftl b/compiler/rustc_error_messages/locales/en-US/typeck.ftl index 9195d7a2b8f9..be1a45fd8722 100644 --- a/compiler/rustc_error_messages/locales/en-US/typeck.ftl +++ b/compiler/rustc_error_messages/locales/en-US/typeck.ftl @@ -99,6 +99,4 @@ typeck-explicit-generic-args-with-impl-trait = cannot provide explicit generic arguments when `impl Trait` is used in argument position .label = explicit generic argument not allowed .note = see issue #83701 for more information - -typeck-explicit-generic-args-with-impl-trait-feature = - add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable + .help = add `#![feature(explicit_generic_args_with_impl_trait)]` to the crate attributes to enable diff --git a/compiler/rustc_typeck/src/astconv/generics.rs b/compiler/rustc_typeck/src/astconv/generics.rs index 38c29d3874c9..dc4bc8fb55a1 100644 --- a/compiler/rustc_typeck/src/astconv/generics.rs +++ b/compiler/rustc_typeck/src/astconv/generics.rs @@ -3,10 +3,7 @@ use crate::astconv::{ AstConv, CreateSubstsForGenericArgsCtxt, ExplicitLateBound, GenericArgCountMismatch, GenericArgCountResult, GenericArgPosition, }; -use crate::errors::{ - AssocTypeBindingNotAllowed, ExplicitGenericArgsWithImplTrait, - ExplicitGenericArgsWithImplTraitFeature, -}; +use crate::errors::{AssocTypeBindingNotAllowed, ExplicitGenericArgsWithImplTrait}; use crate::structured_errors::{GenericArgsInfo, StructuredDiagnostic, WrongNumberOfGenericArgs}; use rustc_ast::ast::ParamKindOrd; use rustc_errors::{struct_span_err, Applicability, Diagnostic, MultiSpan}; @@ -639,11 +636,10 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o { }) .collect::>(); - let mut err = tcx.sess.create_err(ExplicitGenericArgsWithImplTrait { spans }); - if tcx.sess.is_nightly_build() { - err.subdiagnostic(ExplicitGenericArgsWithImplTraitFeature); - } - err.emit(); + tcx.sess.emit_err(ExplicitGenericArgsWithImplTrait { + spans, + is_nightly_build: tcx.sess.is_nightly_build().then_some(()), + }); } impl_trait diff --git a/compiler/rustc_typeck/src/errors.rs b/compiler/rustc_typeck/src/errors.rs index 81d4c9135ef2..540fd63e137c 100644 --- a/compiler/rustc_typeck/src/errors.rs +++ b/compiler/rustc_typeck/src/errors.rs @@ -247,8 +247,6 @@ pub struct ExplicitGenericArgsWithImplTrait { #[primary_span] #[label] pub spans: Vec, + #[help] + pub is_nightly_build: Option<()>, } - -#[derive(SessionSubdiagnostic)] -#[help(slug = "typeck-explicit-generic-args-with-impl-trait-feature")] -pub struct ExplicitGenericArgsWithImplTraitFeature;