On Friday, 27 February 2015 at 23:37:42 UTC, deadalnix wrote:
On Friday, 27 February 2015 at 23:18:24 UTC, Marc Schütz wrote:
* When a scoped value is stored somewhere, it is then reachable through the destination. Therefore, assuming the source's scope is fixed, the destination's scope must be widened to accommodate the source's scope.

So, when you are referring to scope here; you are referring to the scope of the indirection, right ?


Yes. Terminology is a problem here, I guess. When I talk about "the scope" of a variable, it means that only references to values can be stored there whose lifetimes are at least as large as the scope.

You don't cover the lifetime of the address of operation, and I'm not how this is supposed to work in your proposal.


It was in the examples, but it was wrong. I've corrected it: A dereference results in static lifetime.

I will also add examples how return and static annotations are handled.

static annotation ? Seems like a bad idea and I'm sure we can do without.

It's only necessary if parameters of `@safe` functions are automatically scoped; then we need a way to opt-out. This is actually optional and does not affect the consistency, but I thought it is a good idea, because it reduces the overall amount of annotations. And I assume that most @safe functions are already written in a way that conforms to this. We'd need to analyze some code bases to find out whether this is actually true.

Reply via email to