about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2024-07-11 22:03:08 +0000
committerEsteban Küber <esteban@kuber.com.ar>2024-07-12 03:02:58 +0000
commitb5f94c61f72cc85151dbd9bb1081fde2ab78f806 (patch)
treede02a6c64db5a42539228ceba8a051f3b9eda361
parentdd40e0b4eeef38d62e7053733ac7c2a327b135de (diff)
downloadrust-b5f94c61f72cc85151dbd9bb1081fde2ab78f806.tar.gz
rust-b5f94c61f72cc85151dbd9bb1081fde2ab78f806.zip
Use more accurate span for `:` to `::` suggestion
-rw-r--r--compiler/rustc_parse/src/errors.rs4
-rw-r--r--compiler/rustc_parse/src/parser/path.rs2
-rw-r--r--tests/ui/generics/single-colon-path-not-const-generics.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-method.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-path.stderr2
-rw-r--r--tests/ui/suggestions/type-ascription-instead-of-variant.stderr2
-rw-r--r--tests/ui/type/ascription/issue-47666.stderr2
-rw-r--r--tests/ui/type/ascription/issue-54516.stderr2
-rw-r--r--tests/ui/type/ascription/issue-60933.stderr2
9 files changed, 12 insertions, 8 deletions
diff --git a/compiler/rustc_parse/src/errors.rs b/compiler/rustc_parse/src/errors.rs
index d2a765247ad..18a3153bcd4 100644
--- a/compiler/rustc_parse/src/errors.rs
+++ b/compiler/rustc_parse/src/errors.rs
@@ -1562,9 +1562,11 @@ pub(crate) struct ExpectedFnPathFoundFnKeyword {
 #[diag(parse_path_single_colon)]
 pub(crate) struct PathSingleColon {
     #[primary_span]
-    #[suggestion(applicability = "machine-applicable", code = "::", style = "verbose")]
     pub span: Span,
 
+    #[suggestion(applicability = "machine-applicable", code = ":", style = "verbose")]
+    pub suggestion: Span,
+
     #[note(parse_type_ascription_removed)]
     pub type_ascription: Option<()>,
 }
diff --git a/compiler/rustc_parse/src/parser/path.rs b/compiler/rustc_parse/src/parser/path.rs
index 03c647dd527..b9014dea726 100644
--- a/compiler/rustc_parse/src/parser/path.rs
+++ b/compiler/rustc_parse/src/parser/path.rs
@@ -258,6 +258,7 @@ impl<'a> Parser<'a> {
                         self.bump(); // bump past the colon
                         self.dcx().emit_err(PathSingleColon {
                             span: self.prev_token.span,
+                            suggestion: self.prev_token.span.shrink_to_hi(),
                             type_ascription: self
                                 .psess
                                 .unstable_features
@@ -329,6 +330,7 @@ impl<'a> Parser<'a> {
                             err.cancel();
                             err = self.dcx().create_err(PathSingleColon {
                                 span: self.token.span,
+                                suggestion: self.prev_token.span.shrink_to_hi(),
                                 type_ascription: self
                                     .psess
                                     .unstable_features
diff --git a/tests/ui/generics/single-colon-path-not-const-generics.stderr b/tests/ui/generics/single-colon-path-not-const-generics.stderr
index 06203b5e6fe..4e695b2dcd6 100644
--- a/tests/ui/generics/single-colon-path-not-const-generics.stderr
+++ b/tests/ui/generics/single-colon-path-not-const-generics.stderr
@@ -10,7 +10,7 @@ LL |   a: Vec<foo::bar:A>,
 help: use a double colon instead
    |
 LL |   a: Vec<foo::bar::A>,
-   |                  ~~
+   |                  +
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/suggestions/type-ascription-instead-of-method.stderr b/tests/ui/suggestions/type-ascription-instead-of-method.stderr
index 06f806b9016..0bef1c185db 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-method.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-method.stderr
@@ -8,7 +8,7 @@ LL |     let _ = Box:new("foo".to_string());
 help: use a double colon instead
    |
 LL |     let _ = Box::new("foo".to_string());
-   |                ~~
+   |                 +
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/suggestions/type-ascription-instead-of-path.stderr b/tests/ui/suggestions/type-ascription-instead-of-path.stderr
index 9b09a60c161..8c16acff799 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-path.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-path.stderr
@@ -8,7 +8,7 @@ LL |     std:io::stdin();
 help: use a double colon instead
    |
 LL |     std::io::stdin();
-   |        ~~
+   |         +
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/suggestions/type-ascription-instead-of-variant.stderr b/tests/ui/suggestions/type-ascription-instead-of-variant.stderr
index 0ecdc82b541..f0b31722e40 100644
--- a/tests/ui/suggestions/type-ascription-instead-of-variant.stderr
+++ b/tests/ui/suggestions/type-ascription-instead-of-variant.stderr
@@ -8,7 +8,7 @@ LL |     let _ = Option:Some("");
 help: use a double colon instead
    |
 LL |     let _ = Option::Some("");
-   |                   ~~
+   |                    +
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/type/ascription/issue-47666.stderr b/tests/ui/type/ascription/issue-47666.stderr
index d76d591ec33..fd825e86675 100644
--- a/tests/ui/type/ascription/issue-47666.stderr
+++ b/tests/ui/type/ascription/issue-47666.stderr
@@ -8,7 +8,7 @@ LL |     let _ = Option:Some(vec![0, 1]);
 help: use a double colon instead
    |
 LL |     let _ = Option::Some(vec![0, 1]);
-   |                   ~~
+   |                    +
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/type/ascription/issue-54516.stderr b/tests/ui/type/ascription/issue-54516.stderr
index bea2c0d85b3..64fdc1fa24a 100644
--- a/tests/ui/type/ascription/issue-54516.stderr
+++ b/tests/ui/type/ascription/issue-54516.stderr
@@ -8,7 +8,7 @@ LL |     println!("{}", std::mem:size_of::<BTreeMap<u32, u32>>());
 help: use a double colon instead
    |
 LL |     println!("{}", std::mem::size_of::<BTreeMap<u32, u32>>());
-   |                            ~~
+   |                             +
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/type/ascription/issue-60933.stderr b/tests/ui/type/ascription/issue-60933.stderr
index a81238bd540..c68394d0504 100644
--- a/tests/ui/type/ascription/issue-60933.stderr
+++ b/tests/ui/type/ascription/issue-60933.stderr
@@ -8,7 +8,7 @@ LL |     let _: usize = std::mem:size_of::<u32>();
 help: use a double colon instead
    |
 LL |     let _: usize = std::mem::size_of::<u32>();
-   |                            ~~
+   |                             +
 
 error: aborting due to 1 previous error