Skip to content

Commit

Permalink
Add some basic tests for try{} expressions
Browse files Browse the repository at this point in the history
They failed to parse in rustfmt on me in rust-lang/rust#77877, which looks like it's since been fixed, but I figured I'd send in some tests anyway.
  • Loading branch information
scottmcm committed Oct 13, 2020
1 parent f352f38 commit 8bbadfb
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
30 changes: 30 additions & 0 deletions tests/source/try_block.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// rustfmt-edition: 2018

fn main() -> Result<(), !> {
let _x: Option<_> = try {
4
};

try {}
}

fn baz() -> Option<i32> {
if (1 == 1) {
return try {
5
};
}

// test
let x: Option<()> = try {
// try blocks are great
};

let y: Option<i32> = try {
6
}; // comment

let x: Option<i32> = try { baz()?; baz()?; baz()?; 7 };

return None;
}
29 changes: 29 additions & 0 deletions tests/target/try_block.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// rustfmt-edition: 2018

fn main() -> Result<(), !> {
let _x: Option<_> = try { 4 };

try {}
}

fn baz() -> Option<i32> {
if (1 == 1) {
return try { 5 };
}

// test
let x: Option<()> = try {
// try blocks are great
};

let y: Option<i32> = try { 6 }; // comment

let x: Option<i32> = try {
baz()?;
baz()?;
baz()?;
7
};

return None;
}

0 comments on commit 8bbadfb

Please sign in to comment.