mod orange {
    mod green {
        fn bean<T>(value: T) -> T {
            value
        }
    }

    fn brown() {
        green::bean::<bool>(false);
        // { dg-error "definition is private in this context" "" { target *-*-* } .-1 }
        let a = green::bean::<i32>(15);
        // { dg-error "definition is private in this context" "" { target *-*-* } .-1 }

        struct S;

        let s = green::bean(S);
        // { dg-error "definition is private in this context" "" { target *-*-* } .-1 }
    }
}