On Friday, 31 July 2026 at 13:52:12 UTC, Vindex9 wrote:
```d string fn() @trusted pure { char[] arr; // some manipulations... return cast(string) arr; } ```Where is the line between cases where the `@trusted` tag can be used and cases where the `@system` tag can be used?
`@trusted` must have a memory-safe interface. So if the elements of `arr` cannot be accessed as mutable after the cast, it is OK to use `@trusted` to cast them to immutable.
`@system` is used for a function which does not have a safe interface (e.g. one that accepts a `char*` parameter pointing to a C zero-terminated string).
