diff options
| author | Albert Larsan <74931857+albertlarsan68@users.noreply.github.com> | 2023-01-05 09:13:28 +0100 |
|---|---|---|
| committer | Albert Larsan <74931857+albertlarsan68@users.noreply.github.com> | 2023-01-11 09:32:08 +0000 |
| commit | cf2dff2b1e3fa55fa5415d524200070d0d7aacfe (patch) | |
| tree | 40a88d9a46aaf3e8870676eb2538378b75a263eb /tests/ui/deref-patterns | |
| parent | ca855e6e42787ecd062d81d53336fe6788ef51a9 (diff) | |
| download | rust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.tar.gz rust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.zip | |
Move /src/test to /tests
Diffstat (limited to 'tests/ui/deref-patterns')
| -rw-r--r-- | tests/ui/deref-patterns/basic.rs | 17 | ||||
| -rw-r--r-- | tests/ui/deref-patterns/basic.run.stdout | 3 | ||||
| -rw-r--r-- | tests/ui/deref-patterns/default-infer.rs | 9 | ||||
| -rw-r--r-- | tests/ui/deref-patterns/gate.rs | 7 | ||||
| -rw-r--r-- | tests/ui/deref-patterns/gate.stderr | 11 | ||||
| -rw-r--r-- | tests/ui/deref-patterns/refs.rs | 18 |
6 files changed, 65 insertions, 0 deletions
diff --git a/tests/ui/deref-patterns/basic.rs b/tests/ui/deref-patterns/basic.rs new file mode 100644 index 00000000000..249716040a1 --- /dev/null +++ b/tests/ui/deref-patterns/basic.rs @@ -0,0 +1,17 @@ +// run-pass +// check-run-results +#![feature(string_deref_patterns)] + +fn main() { + test(Some(String::from("42"))); + test(Some(String::new())); + test(None); +} + +fn test(o: Option<String>) { + match o { + Some("42") => println!("the answer"), + Some(_) => println!("something else?"), + None => println!("nil"), + } +} diff --git a/tests/ui/deref-patterns/basic.run.stdout b/tests/ui/deref-patterns/basic.run.stdout new file mode 100644 index 00000000000..e50df058281 --- /dev/null +++ b/tests/ui/deref-patterns/basic.run.stdout @@ -0,0 +1,3 @@ +the answer +something else? +nil diff --git a/tests/ui/deref-patterns/default-infer.rs b/tests/ui/deref-patterns/default-infer.rs new file mode 100644 index 00000000000..050b847305b --- /dev/null +++ b/tests/ui/deref-patterns/default-infer.rs @@ -0,0 +1,9 @@ +// check-pass +#![feature(string_deref_patterns)] + +fn main() { + match <_ as Default>::default() { + "" => (), + _ => unreachable!(), + } +} diff --git a/tests/ui/deref-patterns/gate.rs b/tests/ui/deref-patterns/gate.rs new file mode 100644 index 00000000000..ff50e30dea8 --- /dev/null +++ b/tests/ui/deref-patterns/gate.rs @@ -0,0 +1,7 @@ +// gate-test-string_deref_patterns +fn main() { + match String::new() { + "" | _ => {} + //~^ mismatched types + } +} diff --git a/tests/ui/deref-patterns/gate.stderr b/tests/ui/deref-patterns/gate.stderr new file mode 100644 index 00000000000..993468b5e82 --- /dev/null +++ b/tests/ui/deref-patterns/gate.stderr @@ -0,0 +1,11 @@ +error[E0308]: mismatched types + --> $DIR/gate.rs:4:9 + | +LL | match String::new() { + | ------------- this expression has type `String` +LL | "" | _ => {} + | ^^ expected struct `String`, found `&str` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. diff --git a/tests/ui/deref-patterns/refs.rs b/tests/ui/deref-patterns/refs.rs new file mode 100644 index 00000000000..97e260d2752 --- /dev/null +++ b/tests/ui/deref-patterns/refs.rs @@ -0,0 +1,18 @@ +// check-pass +#![feature(string_deref_patterns)] + +fn foo(s: &String) -> i32 { + match *s { + "a" => 42, + _ => -1, + } +} + +fn bar(s: Option<&&&&String>) -> i32 { + match s { + Some(&&&&"&&&&") => 1, + _ => -1, + } +} + +fn main() {} |
