about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGauri <f2013002@goa.bits-pilani.ac.in>2018-01-13 17:13:18 +0530
committerGauri <f2013002@goa.bits-pilani.ac.in>2018-01-13 17:13:18 +0530
commit3c8c5051b18c604a4a1c0a01a6515ff3852341e1 (patch)
tree37b08a6d42b3946a75e0ff26bd7d2076f4b1f1af
parenteb1ada27816df80170f5d33753b9ea2049483e82 (diff)
downloadrust-3c8c5051b18c604a4a1c0a01a6515ff3852341e1.tar.gz
rust-3c8c5051b18c604a4a1c0a01a6515ff3852341e1.zip
add ui test
-rw-r--r--src/librustc_errors/emitter.rs2
-rw-r--r--src/test/ui/issue-47377-1.rs14
-rw-r--r--src/test/ui/issue-47377-1.stderr12
-rw-r--r--src/test/ui/issue-47377.rs14
-rw-r--r--src/test/ui/issue-47377.stderr12
5 files changed, 53 insertions, 1 deletions
diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs
index ae0766eeeef..84d5a8df4ad 100644
--- a/src/librustc_errors/emitter.rs
+++ b/src/librustc_errors/emitter.rs
@@ -1188,7 +1188,7 @@ impl EmitterWriter {
                         acc + unicode_width::UnicodeWidthChar::width(ch).unwrap_or(0)
                     });
                     let underline_start = span_start_pos.col_display + start;
-                    let underline_end = span_start_pos.col.0 + start + sub_len;
+                    let underline_end = span_start_pos.col_display + start + sub_len;
                     for p in underline_start..underline_end {
                         buffer.putc(row_num,
                                     max_line_num_len + 3 + p,
diff --git a/src/test/ui/issue-47377-1.rs b/src/test/ui/issue-47377-1.rs
new file mode 100644
index 00000000000..f173d009638
--- /dev/null
+++ b/src/test/ui/issue-47377-1.rs
@@ -0,0 +1,14 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn main(){
+    let b = "hello";
+        println!("🦀🦀🦀🦀🦀"); let _a = b + ", World!"; //~ERROR 13:37: 13:51: binary operation `+` cannot be applied to type `&str` [E0369]
+}
\ No newline at end of file
diff --git a/src/test/ui/issue-47377-1.stderr b/src/test/ui/issue-47377-1.stderr
new file mode 100644
index 00000000000..aad5373ae00
--- /dev/null
+++ b/src/test/ui/issue-47377-1.stderr
@@ -0,0 +1,12 @@
+error[E0369]: binary operation `+` cannot be applied to type `&str`
+  --> $DIR/issue-47377-1.rs:13:37
+   |
+13 |         println!("🦀🦀🦀🦀🦀"); let _a = b + ", World!"; //~ERROR 13:37: 13:51: binary operation `+` cannot be applied to type `&str` [E0369]
+   |                                          ^^^^^^^^^^^^^^ `+` can't be used to concatenate two `&str` strings
+help: `to_owned()` can be used to create an owned `String` from a string reference. String concatenation appends the string on the right to the string on the left and may require reallocation. This requires ownership of the string on the left
+   |
+13 |         println!("🦀🦀🦀🦀🦀"); let _a = b.to_owned() + ", World!"; //~ERROR 13:37: 13:51: binary operation `+` cannot be applied to type `&str` [E0369]
+   |                                          ^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/issue-47377.rs b/src/test/ui/issue-47377.rs
new file mode 100644
index 00000000000..2a8f2e30c0e
--- /dev/null
+++ b/src/test/ui/issue-47377.rs
@@ -0,0 +1,14 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn main(){
+    let b = "hello";
+    let _a = b + ", World!"; //~ERROR 13:14: 13:28: binary operation `+` cannot be applied to type `&str` [E0369]
+}
\ No newline at end of file
diff --git a/src/test/ui/issue-47377.stderr b/src/test/ui/issue-47377.stderr
new file mode 100644
index 00000000000..e9f285a19c3
--- /dev/null
+++ b/src/test/ui/issue-47377.stderr
@@ -0,0 +1,12 @@
+error[E0369]: binary operation `+` cannot be applied to type `&str`
+  --> $DIR/issue-47377.rs:13:14
+   |
+13 |     let _a = b + ", World!"; //~ERROR 13:14: 13:28: binary operation `+` cannot be applied to type `&str` [E0369]
+   |              ^^^^^^^^^^^^^^ `+` can't be used to concatenate two `&str` strings
+help: `to_owned()` can be used to create an owned `String` from a string reference. String concatenation appends the string on the right to the string on the left and may require reallocation. This requires ownership of the string on the left
+   |
+13 |     let _a = b.to_owned() + ", World!"; //~ERROR 13:14: 13:28: binary operation `+` cannot be applied to type `&str` [E0369]
+   |              ^^^^^^^^^^^^
+
+error: aborting due to previous error
+