//! Originally, inner statics in generic functions were generated only once, causing the same //! static to be shared across all generic instantiations. This created a soundness hole where //! different types could be coerced through thread-local storage in safe code. //! //! This test checks that generic parameters from outer scopes cannot be used in inner statics, //! preventing this soundness issue. //! //! See https://github.com/rust-lang/rust/issues/9186 enum Bar { //~^ ERROR parameter `T` is never used What, } fn foo() { static a: Bar = Bar::What; //~^ ERROR can't use generic parameters from outer item } fn main() {}