about summary refs log tree commit diff
path: root/src/test/ui/errors
diff options
context:
space:
mode:
authorDavid Wood <david.wood@huawei.com>2021-10-15 14:48:57 +0000
committerDavid Wood <david.wood@huawei.com>2021-10-15 15:30:43 +0000
commitd2dc0f3b0f0267941b47bde7bd48d26b2c22ca6a (patch)
tree643d5a06e80f34854c30ed7d0f2a6aa199ea1a1b /src/test/ui/errors
parent72d66064e77281536588189a916af28a1819b313 (diff)
downloadrust-d2dc0f3b0f0267941b47bde7bd48d26b2c22ca6a.tar.gz
rust-d2dc0f3b0f0267941b47bde7bd48d26b2c22ca6a.zip
emitter: current substitution can be multi-line
In `splice_lines`, there is some arithmetic to compute the required
alignment such that future substitutions in a suggestion are aligned
correctly. However, this assumed that the current substitution's span
was only on a single line. In circumstances where this was not true, it
could result in a arithmetic overflow when the substitution's end
column was less than the substitution's start column.

Signed-off-by: David Wood <david.wood@huawei.com>
Diffstat (limited to 'src/test/ui/errors')
-rw-r--r--src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.rs10
-rw-r--r--src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.stderr23
2 files changed, 33 insertions, 0 deletions
diff --git a/src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.rs b/src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.rs
new file mode 100644
index 00000000000..a1c7af128d2
--- /dev/null
+++ b/src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.rs
@@ -0,0 +1,10 @@
+// check-pass
+
+trait X {
+    fn test(x: u32, (
+//~^ WARN anonymous parameters are deprecated and will be removed in the next edition
+//~^^ WARN this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
+    )) {}
+}
+
+fn main() {}
diff --git a/src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.stderr b/src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.stderr
new file mode 100644
index 00000000000..4ec78a298fe
--- /dev/null
+++ b/src/test/ui/errors/issue-89280-emitter-overflow-splice-lines.stderr
@@ -0,0 +1,23 @@
+warning: anonymous parameters are deprecated and will be removed in the next edition
+  --> $DIR/issue-89280-emitter-overflow-splice-lines.rs:4:21
+   |
+LL |       fn test(x: u32, (
+   |  _____________________^
+LL | |
+LL | |
+LL | |     )) {}
+   | |_____^
+   |
+   = note: `#[warn(anonymous_parameters)]` on by default
+   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
+   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
+help: try naming the parameter or explicitly ignoring it
+   |
+LL ~     fn test(x: u32, _: (
+LL +
+LL +
+LL ~     )) {}
+   |
+
+warning: 1 warning emitted
+