Skip to content

Commit 451a8e4

Browse files
gregschmitRalfJung
andauthored
Improve wording of unsafe proof obligations.
Co-authored-by: Ralf Jung <post@ralfj.de>
1 parent 3c3c084 commit 451a8e4

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/unsafe-keyword.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ By putting operations into an unsafe block, the programmer states that they have
2929
Unsafe blocks are the logical dual to unsafe functions:
3030
where unsafe functions define a proof obligation that callers must uphold, unsafe blocks state that all relevant proof obligations of functions or operations called inside the block have been discharged.
3131
There are many ways to discharge proof obligations;
32-
for example, there could be run-time checks or data structure invariants that guarantee that certain properties are definitely true, or the unsafe block could be inside an `unsafe fn`, in which case the block can use the proof obligations of that function to discharge the proof obligations of any unsafe functions called inside the block.
32+
for example, there could be run-time checks or data structure invariants that guarantee that certain properties are definitely true, or the unsafe block could be inside an `unsafe fn`, in which case the block can use the proof obligations of that function to discharge the proof obligations arising inside the block.
3333

3434
Unsafe blocks are used to wrap foreign libraries, make direct use of hardware or implement features not directly present in the language.
3535
For example, Rust provides the language features necessary to implement memory-safe concurrency in the language but the implementation of threads and message passing in the standard library uses unsafe blocks.

0 commit comments

Comments
 (0)