On 2/6/15 4:36 PM, "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= <ola.fosheim.grostad+dl...@gmail.com>" wrote:
On Friday, 6 February 2015 at 20:13:18 UTC, Steven Schveighoffer wrote:
In the proposal, @trusted code is actually considered the same as
@safe, but allows @system escapes.

But that can't work:

@trusted_is_safe {

   auto tmp = get_hardware_config();

   @system{
     mess_up_hardware_config();
   }

   // now this unsafe call is called in a @safe context, but is unsafe...
   // DMD does not catch this, so "@trusted_is_safe" is broken

   call_safe_code_that_now_is_messed_up();

   @system{
      restore_hardware_config(tmp);
   }
}

The idea is that @trusted code still has to be reviewed for memory issues, but is mechanically checked for most of the function for obvious @safe violations. It limits to a degree the scrutiny one must apply to the @trusted function.

Remember, the whole point of a @trusted function is that it's manually verified.

-Steve

Reply via email to