Some of core methods using `fail!` macros. Like `expect` and `unwrap` of `core::option::Option` and `core::result::Result`. I found two primary things about this: - [RFC: rename fail! to panic!](https://github.com/aturon/rfcs/blob/panic/active/0000-panic.md) ([issue](https://github.com/rust-lang/rfcs/pull/221)) - [Common container/wrapper methods [RFC]](http://aturon.github.io/style/naming/containers.html) ([issue](https://github.com/rust-lang/rust/issues/9784), [issue](https://github.com/rust-lang/rust/issues/13159)) Seems like some of fail (panic) methods will be preserved (like `expect` for a `Option<V>`). But using of such methods is highly error-prone. To prevent mass usage of them I suggest to mark such methods as `unsafe`. For example: ``` unsafe fn expect(self, msg: &str) -> T ``` Or maybe generate some special type of warning on compile.