error: parenthesized type parameters may only be used with a `Fn` trait
  --> $DIR/issue-32995.rs:4:17
   |
LL |     let x: usize() = 1;
   |                 ^^
   |
   = note: #[deny(parenthesized_params_in_types_and_modules)] on by default
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>

error: parenthesized type parameters may only be used with a `Fn` trait
  --> $DIR/issue-32995.rs:8:24
   |
LL |     let b: ::std::boxed()::Box<_> = Box::new(1);
   |                        ^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>

error: parenthesized type parameters may only be used with a `Fn` trait
  --> $DIR/issue-32995.rs:12:25
   |
LL |     let p = ::std::str::()::from_utf8(b"foo").unwrap();
   |                         ^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>

error: parenthesized type parameters may only be used with a `Fn` trait
  --> $DIR/issue-32995.rs:16:36
   |
LL |     let p = ::std::str::from_utf8::()(b"foo").unwrap();
   |                                    ^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>

error: parenthesized type parameters may only be used with a `Fn` trait
  --> $DIR/issue-32995.rs:20:30
   |
LL |     let o : Box<::std::marker()::Send> = Box::new(1);
   |                              ^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>

error: parenthesized type parameters may only be used with a `Fn` trait
  --> $DIR/issue-32995.rs:24:37
   |
LL |     let o : Box<Send + ::std::marker()::Sync> = Box::new(1);
   |                                     ^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>

error: parenthesized type parameters may only be used with a `Fn` trait
  --> $DIR/issue-32995.rs:30:14
   |
LL |     let d : X() = Default::default();
   |              ^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #42238 <https://github.com/rust-lang/rust/issues/42238>

error: aborting due to 7 previous errors

