From b03cf3ff97f3edc0f153a5f069ef431ab642873e Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 22 Apr 2019 15:39:38 -0700 Subject: [PATCH] Add test --- tests/ui/methods.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/ui/methods.rs b/tests/ui/methods.rs index 3a8aedcd659..395271b37eb 100644 --- a/tests/ui/methods.rs +++ b/tests/ui/methods.rs @@ -268,3 +268,21 @@ fn main() { let opt = Some(0); let _ = opt.unwrap(); } + +struct Foo(u8); +#[rustfmt::skip] +fn test_or_with_ctors() { + let opt = Some(1); + let opt_opt = Some(Some(1)); + // we also test for const promotion, this makes sure we don't hit that + let two = 2; + + let _ = opt_opt.unwrap_or(Some(2)); + let _ = opt_opt.unwrap_or(Some(two)); + let _ = opt.ok_or(Some(2)); + let _ = opt.ok_or(Some(two)); + let _ = opt.ok_or(Foo(2)); + let _ = opt.ok_or(Foo(two)); + let _ = opt.or(Some(2)); + let _ = opt.or(Some(two)); +}