about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/crashes/125081.rs7
-rw-r--r--tests/ui/inference/str-as-char-butchered.rs7
-rw-r--r--tests/ui/inference/str-as-char-butchered.stderr22
-rw-r--r--tests/ui/inference/str-as-char-non-lit.rs9
-rw-r--r--tests/ui/inference/str-as-char-non-lit.stderr19
5 files changed, 57 insertions, 7 deletions
diff --git a/tests/crashes/125081.rs b/tests/crashes/125081.rs
deleted file mode 100644
index 7139caaa00d..00000000000
--- a/tests/crashes/125081.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-//@ known-bug: rust-lang/rust#125081
-
-use std::cell::Cell;
-
-fn main() {
-    let _: Cell<&str, "a"> = Cell::new('β);
-}
diff --git a/tests/ui/inference/str-as-char-butchered.rs b/tests/ui/inference/str-as-char-butchered.rs
new file mode 100644
index 00000000000..6020cd3422f
--- /dev/null
+++ b/tests/ui/inference/str-as-char-butchered.rs
@@ -0,0 +1,7 @@
+// issue: rust-lang/rust#125081
+
+fn main() {
+    let _: &str = 'β;
+    //~^ ERROR expected `while`, `for`, `loop` or `{` after a label
+    //~| ERROR mismatched types
+}
diff --git a/tests/ui/inference/str-as-char-butchered.stderr b/tests/ui/inference/str-as-char-butchered.stderr
new file mode 100644
index 00000000000..ad465f979d4
--- /dev/null
+++ b/tests/ui/inference/str-as-char-butchered.stderr
@@ -0,0 +1,22 @@
+error: expected `while`, `for`, `loop` or `{` after a label
+  --> $DIR/str-as-char-butchered.rs:4:21
+   |
+LL |     let _: &str = 'β;
+   |                     ^ expected `while`, `for`, `loop` or `{` after a label
+   |
+help: add `'` to close the char literal
+   |
+LL |     let _: &str = 'β';
+   |                     +
+
+error[E0308]: mismatched types
+  --> $DIR/str-as-char-butchered.rs:4:19
+   |
+LL |     let _: &str = 'β;
+   |            ----   ^^ expected `&str`, found `char`
+   |            |
+   |            expected due to this
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/inference/str-as-char-non-lit.rs b/tests/ui/inference/str-as-char-non-lit.rs
new file mode 100644
index 00000000000..d38b46630dc
--- /dev/null
+++ b/tests/ui/inference/str-as-char-non-lit.rs
@@ -0,0 +1,9 @@
+// Don't suggest double quotes when encountering an expr of type `char` where a `&str`
+// is expected if the expr is not a char literal.
+// issue: rust-lang/rust#125595
+
+fn main() {
+    let _: &str = ('a'); //~ ERROR mismatched types
+    let token = || 'a';
+    let _: &str = token(); //~ ERROR mismatched types
+}
diff --git a/tests/ui/inference/str-as-char-non-lit.stderr b/tests/ui/inference/str-as-char-non-lit.stderr
new file mode 100644
index 00000000000..7675fe01330
--- /dev/null
+++ b/tests/ui/inference/str-as-char-non-lit.stderr
@@ -0,0 +1,19 @@
+error[E0308]: mismatched types
+  --> $DIR/str-as-char-non-lit.rs:6:19
+   |
+LL |     let _: &str = ('a');
+   |            ----   ^^^^^ expected `&str`, found `char`
+   |            |
+   |            expected due to this
+
+error[E0308]: mismatched types
+  --> $DIR/str-as-char-non-lit.rs:8:19
+   |
+LL |     let _: &str = token();
+   |            ----   ^^^^^^^ expected `&str`, found `char`
+   |            |
+   |            expected due to this
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.