## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Error code E0569

If an impl has a generic parameter with the `#[may_dangle]` attribute, then that impl must be declared as an `unsafe impl`.

Erroneous code example:

    #![allow(unused)]
    #![feature(dropck_eyepatch)]

    fn main() {
    struct Foo<X>(X);
    impl<#[may_dangle] X> Drop for Foo<X> {
        fn drop(&mut self) { }
    }
    }

In this example, we are asserting that the destructor for `Foo` will not access any data of type `X`, and require this assertion to be true for overall safety in our program. The compiler does not currently attempt to verify this assertion; therefore we must tag this `impl` as unsafe.