| ▲ | fc417fc802 an hour ago | |
Suppose I initialize something in an unsafe block. I promise the compiler that it's properly initialized, but in reality it isn't. Importantly I never make use of the garbage values in the unsafe block so no UB has occurred - yet. Later, the garage enters otherwise safe machinery and triggers UB. UB has now happened in safe rust as a result of my earlier contractual violation. You can extend this example to other scenarios where UB in unsafe begets further UB in safe later on. | ||