File tree Expand file tree Collapse file tree 3 files changed +36
-4
lines changed
compiler/rustc_errors/src Expand file tree Collapse file tree 3 files changed +36
-4
lines changed Original file line number Diff line number Diff line change @@ -591,17 +591,18 @@ impl Diagnostic {
591
591
pub fn multipart_suggestion_with_style(
592
592
&mut self,
593
593
msg: impl Into<SubdiagnosticMessage>,
594
- suggestion: Vec<(Span, String)>,
594
+ mut suggestion: Vec<(Span, String)>,
595
595
applicability: Applicability,
596
596
style: SuggestionStyle,
597
597
) -> &mut Self {
598
- let mut parts = suggestion
598
+ suggestion.sort_unstable();
599
+ suggestion.dedup();
600
+
601
+ let parts = suggestion
599
602
.into_iter()
600
603
.map(|(span, snippet)| SubstitutionPart { snippet, span })
601
604
.collect::<Vec<_>>();
602
605
603
- parts.sort_unstable_by_key(|part| part.span);
604
-
605
606
assert!(!parts.is_empty());
606
607
debug_assert_eq!(
607
608
parts.iter().find(|part| part.span.is_empty() && part.snippet.is_empty()),
Original file line number Diff line number Diff line change
1
+ macro_rules! foo {
2
+ ($ty:ty) => {
3
+ fn foo(_: $ty, _: $ty) {}
4
+ }
5
+ }
6
+
7
+ foo!(_);
8
+ //~^ ERROR the placeholder `_` is not allowed within types on item signatures for functions
9
+
10
+ fn main() {}
Original file line number Diff line number Diff line change
1
+ error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions
2
+ --> $DIR/issue-118048.rs:7:6
3
+ |
4
+ LL | foo!(_);
5
+ | ^
6
+ | |
7
+ | not allowed in type signatures
8
+ | not allowed in type signatures
9
+ |
10
+ help: use type parameters instead
11
+ |
12
+ LL ~ fn foo<T>(_: $ty, _: $ty) {}
13
+ LL | }
14
+ LL | }
15
+ LL |
16
+ LL ~ foo!(T);
17
+ |
18
+
19
+ error: aborting due to 1 previous error
20
+
21
+ For more information about this error, try `rustc --explain E0121`.
You can’t perform that action at this time.
0 commit comments