While working on #122661, some of these started triggering our "unnecessary parens" lints due to a change in the `assert!` desugaring. A cursory search identified a few more. Some of these have been carried from before 1.0, were a bulk rename from the previous name of `assert!` left them in that state. I went and removed as many of these unnecessary parens as possible in order to have fewer annoyances in the future if we make the lint smarter.
156 lines
2.4 KiB
Rust
156 lines
2.4 KiB
Rust
//@ run-pass
|
|
#![allow(dead_code)]
|
|
#![allow(non_upper_case_globals)]
|
|
#![allow(non_camel_case_types)]
|
|
#![allow(improper_ctypes)]
|
|
|
|
// Crate use statements
|
|
|
|
#[cfg(FALSE)]
|
|
use flippity;
|
|
|
|
#[cfg(FALSE)]
|
|
static b: bool = false;
|
|
|
|
static b: bool = true;
|
|
|
|
mod rustrt {
|
|
#[cfg(FALSE)]
|
|
extern "C" {
|
|
// This symbol doesn't exist and would be a link error if this
|
|
// module was codegened
|
|
pub fn FALSE();
|
|
}
|
|
|
|
extern "C" {}
|
|
}
|
|
|
|
#[cfg(FALSE)]
|
|
type t = isize;
|
|
|
|
type t = bool;
|
|
|
|
#[cfg(FALSE)]
|
|
enum tg {
|
|
foo,
|
|
}
|
|
|
|
enum tg {
|
|
bar,
|
|
}
|
|
|
|
#[cfg(FALSE)]
|
|
struct r {
|
|
i: isize,
|
|
}
|
|
|
|
#[cfg(FALSE)]
|
|
fn r(i: isize) -> r {
|
|
r { i: i }
|
|
}
|
|
|
|
struct r {
|
|
i: isize,
|
|
}
|
|
|
|
fn r(i: isize) -> r {
|
|
r { i: i }
|
|
}
|
|
|
|
#[cfg(FALSE)]
|
|
mod m {
|
|
// This needs to parse but would fail in typeck. Since it's not in
|
|
// the current config it should not be typechecked.
|
|
pub fn FALSE() {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
mod m {
|
|
// Submodules have slightly different code paths than the top-level
|
|
// module, so let's make sure this jazz works here as well
|
|
#[cfg(FALSE)]
|
|
pub fn f() {}
|
|
|
|
pub fn f() {}
|
|
}
|
|
|
|
// Since the FALSE configuration isn't defined main will just be
|
|
// parsed, but nothing further will be done with it
|
|
#[cfg(FALSE)]
|
|
pub fn main() {
|
|
panic!()
|
|
}
|
|
|
|
pub fn main() {
|
|
// Exercise some of the configured items in ways that wouldn't be possible
|
|
// if they had the FALSE definition
|
|
assert!(b);
|
|
let _x: t = true;
|
|
let _y: tg = tg::bar;
|
|
|
|
test_in_fn_ctxt();
|
|
}
|
|
|
|
fn test_in_fn_ctxt() {
|
|
#[cfg(FALSE)]
|
|
fn f() {
|
|
panic!()
|
|
}
|
|
fn f() {}
|
|
f();
|
|
|
|
#[cfg(FALSE)]
|
|
static i: isize = 0;
|
|
static i: isize = 1;
|
|
assert_eq!(i, 1);
|
|
}
|
|
|
|
mod test_foreign_items {
|
|
pub mod rustrt {
|
|
extern "C" {
|
|
#[cfg(FALSE)]
|
|
pub fn write() -> String;
|
|
pub fn write() -> String;
|
|
}
|
|
}
|
|
}
|
|
|
|
mod test_use_statements {
|
|
#[cfg(FALSE)]
|
|
use flippity_foo;
|
|
}
|
|
|
|
mod test_methods {
|
|
struct Foo {
|
|
bar: usize,
|
|
}
|
|
|
|
impl Fooable for Foo {
|
|
#[cfg(FALSE)]
|
|
fn what(&self) {}
|
|
|
|
fn what(&self) {}
|
|
|
|
#[cfg(FALSE)]
|
|
fn the(&self) {}
|
|
|
|
fn the(&self) {}
|
|
}
|
|
|
|
trait Fooable {
|
|
#[cfg(FALSE)]
|
|
fn what(&self);
|
|
|
|
fn what(&self);
|
|
|
|
#[cfg(FALSE)]
|
|
fn the(&self);
|
|
|
|
fn the(&self);
|
|
}
|
|
}
|
|
|
|
#[cfg(any())]
|
|
mod nonexistent_file; // Check that unconfigured non-inline modules are not loaded or parsed.
|