// compile-flags:--test

/// ```rust,edition2018
/// #![feature(try_blocks)]
///
/// use std::num::ParseIntError;
///
/// let result: Result<i32, ParseIntError> = try {
///     "1".parse::<i32>()?
///         + "2".parse::<i32>()?
///         + "3".parse::<i32>()?
/// };
/// assert_eq!(result, Ok(6));
///
/// let result: Result<i32, ParseIntError> = try {
///     "1".parse::<i32>()?
///         + "foo".parse::<i32>()?
///         + "3".parse::<i32>()?
/// };
/// assert!(result.is_err());
/// ```


/// ```rust,edition2015,compile_fail,E0574
/// #![feature(try_blocks)]
///
/// use std::num::ParseIntError;
///
/// let result: Result<i32, ParseIntError> = try {
///     "1".parse::<i32>()?
///         + "2".parse::<i32>()?
///         + "3".parse::<i32>()?
/// };
/// assert_eq!(result, Ok(6));
///
/// let result: Result<i32, ParseIntError> = try {
///     "1".parse::<i32>()?
///         + "foo".parse::<i32>()?
///         + "3".parse::<i32>()?
/// };
/// assert!(result.is_err());
/// ```

pub fn foo() {}
