### What it does
Checks for items declared after some statement in a block.

### Why is this bad?
Items live for the entire scope they are declared
in. But statements are processed in order. This might cause confusion as
it's hard to figure out which item is meant in a statement.

### Example
```
fn foo() {
    println!("cake");
}

fn main() {
    foo(); // prints "foo"
    fn foo() {
        println!("foo");
    }
    foo(); // prints "foo"
}
```

Use instead:
```
fn foo() {
    println!("cake");
}

fn main() {
    fn foo() {
        println!("foo");
    }
    foo(); // prints "foo"
    foo(); // prints "foo"
}
```