Open
Description
In tool attributes demo:
tag-std/demo/rustc_driver/tests/basic/src/lib.rs
Lines 19 to 24 in 3e72745
the syntax is #[tag_std::contract( a bunch of properities )]
.
But a possibly nicer syntax is #[safety::requires::property( ... )]
:
#![register_tool(safety)]
#[safety::requires::NotNull(self.ptr)]
#[safety::requires::Align(self.ptr, u8)]
#[safety::requires::Allocated(self.ptr, u8, self.len, *)]
#[safety::requires::Init(self.ptr, u8, self.len, *)]
#[safety::requires::ValidInt(self.len*sizeof(u8), 0..=isize::MAX)]
#[safety::hazard::Alias(self.ptr, *)]
unsafe fn foo(&self) { ... }
cc #1
Metadata
Metadata
Assignees
Labels
No labels