diff options
| author | varkor <github@varkor.com> | 2019-09-10 22:35:10 +0100 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2019-09-11 00:29:35 +0100 |
| commit | ef62e050624fabc57f17dd6744ff29f79b39e8cd (patch) | |
| tree | 7c4efc6426d29462432be5512aed6d250997e7e2 /src | |
| parent | 14e6947fa4b9a144802869286a937c987d6a3c54 (diff) | |
| download | rust-ef62e050624fabc57f17dd6744ff29f79b39e8cd.tar.gz rust-ef62e050624fabc57f17dd6744ff29f79b39e8cd.zip | |
Make wording less confusing
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_typeck/check/mod.rs | 30 | ||||
| -rw-r--r-- | src/test/ui/const-generics/foreign-item-const-parameter.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/error-codes/E0044.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/error-codes/E0044.stderr | 2 | ||||
| -rw-r--r-- | src/test/ui/generic/generic-extern.stderr | 2 |
5 files changed, 17 insertions, 23 deletions
diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index e76ef14f06c..02e7d97ccdf 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -1520,31 +1520,25 @@ pub fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, it: &'tcx hir::Item) { (0, _) => ("const", "consts", None), _ => ("type or const", "types or consts", None), }; - let mut err = struct_span_err!( + struct_span_err!( tcx.sess, item.span, E0044, "foreign items may not have {} parameters", kinds, - ); - err.span_label( + ).span_label( item.span, &format!("can't have {} parameters", kinds), - ); - // FIXME: once we start storing spans for type arguments, turn this into a - // suggestion. - err.help(&format!( - "use specialization instead of {} parameters by replacing \ - them with concrete {}{}", - kinds, - kinds_pl, - if let Some(egs) = egs { - format!(" like `{}`", egs) - } else { - "".to_string() - }, - )); - err.emit(); + ).help( + // FIXME: once we start storing spans for type arguments, turn this + // into a suggestion. + &format!( + "replace the {} parameters with concrete {}{}", + kinds, + kinds_pl, + egs.map(|egs| format!(" like `{}`", egs)).unwrap_or_default(), + ), + ).emit(); } if let hir::ForeignItemKind::Fn(ref fn_decl, _, _) = item.node { diff --git a/src/test/ui/const-generics/foreign-item-const-parameter.stderr b/src/test/ui/const-generics/foreign-item-const-parameter.stderr index 0a74537dfef..999feed2d3b 100644 --- a/src/test/ui/const-generics/foreign-item-const-parameter.stderr +++ b/src/test/ui/const-generics/foreign-item-const-parameter.stderr @@ -12,7 +12,7 @@ error[E0044]: foreign items may not have const parameters LL | fn foo<const X: usize>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't have const parameters | - = help: use specialization instead of const parameters by replacing them with concrete consts + = help: replace the const parameters with concrete consts error[E0044]: foreign items may not have type or const parameters --> $DIR/foreign-item-const-parameter.rs:7:5 @@ -20,7 +20,7 @@ error[E0044]: foreign items may not have type or const parameters LL | fn bar<T, const X: usize>(_: T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't have type or const parameters | - = help: use specialization instead of type or const parameters by replacing them with concrete types or consts + = help: replace the type or const parameters with concrete types or consts error: aborting due to 2 previous errors diff --git a/src/test/ui/error-codes/E0044.rs b/src/test/ui/error-codes/E0044.rs index a5265e7dc17..9eee9c31d3c 100644 --- a/src/test/ui/error-codes/E0044.rs +++ b/src/test/ui/error-codes/E0044.rs @@ -1,7 +1,7 @@ extern { fn sqrt<T>(f: T) -> T; //~^ ERROR foreign items may not have type parameters [E0044] - //~| HELP use specialization instead of type parameters by replacing them with concrete types + //~| HELP replace the type parameters with concrete types //~| NOTE can't have type parameters } diff --git a/src/test/ui/error-codes/E0044.stderr b/src/test/ui/error-codes/E0044.stderr index 57c21116b28..e889c167b98 100644 --- a/src/test/ui/error-codes/E0044.stderr +++ b/src/test/ui/error-codes/E0044.stderr @@ -4,7 +4,7 @@ error[E0044]: foreign items may not have type parameters LL | fn sqrt<T>(f: T) -> T; | ^^^^^^^^^^^^^^^^^^^^^^ can't have type parameters | - = help: use specialization instead of type parameters by replacing them with concrete types like `u32` + = help: replace the type parameters with concrete types like `u32` error: aborting due to previous error diff --git a/src/test/ui/generic/generic-extern.stderr b/src/test/ui/generic/generic-extern.stderr index e7625abb1c8..c90215b612d 100644 --- a/src/test/ui/generic/generic-extern.stderr +++ b/src/test/ui/generic/generic-extern.stderr @@ -4,7 +4,7 @@ error[E0044]: foreign items may not have type parameters LL | fn foo<T>(); | ^^^^^^^^^^^^ can't have type parameters | - = help: use specialization instead of type parameters by replacing them with concrete types like `u32` + = help: replace the type parameters with concrete types like `u32` error: aborting due to previous error |
