Am 19.02.2024 um 00:48 schrieb aberba:
On Friday, 16 February 2024 at 17:17:35 UTC, Sönke Ludwig wrote:
Just a quick announcement for a new vibe.d release that, probably most
notably, gets rid of most DIP1000 related... as well as requiring REST
interfaces to be fully @safe.
How does this affect regular code? What are the implications?
Generally speaking, what has been a `pragma(msg)` based deprecation
warning during the build for a long time already, now has become a hard
error (`static assert(false)`). The error should come with the template
instantiation chain and thus should make it simple to pinpoint the piece
of code that is `@system`.
The concrete implications are that all interface methods passed to
`registerRestInterface` must be annotated with `@safe`, as well as all
functional attributes (`@before`/`@after`) and all serialized types that
are part of the interface (e.g. the `toJson`/`fromJson` methods of a
custom struct that gets returned from an interface function).