#[test]
fn impl_in_other_mod() {
    struct Foo;

    mod lol {
        use super::Foo;

        impl Foo {
            fn lol(self) {
                2
            }
        }
    }

    assert_eq!(Foo.lol(), 2);
}

#[test]
fn impl_in_super() {
    struct Foo;

    mod lol {
        impl super::Foo {
            fn lol(self) {
                3
            }
        }
    }

    assert_eq!(Foo.lol(), 3);
}

#[test]
fn impl_in_block() {
    struct Foo;

    let value = {
        impl Foo {
            fn lol(self) {
                4
            }
        }
    };

    assert_eq!(Foo.lol(), 4);
}
