toString doesn't compile with -dip1000 switch

wjoe invalid at example.com
Mon Aug 1 17:13:36 UTC 2022


On Monday, 1 August 2022 at 17:07:43 UTC, wjoe wrote:
> On Monday, 1 August 2022 at 13:09:01 UTC, Kagamin wrote:
>> Bar.toString is typed `@system`.
>
> Even if I'd declare everything @safe: at module scope?

I wrote that on my phone and it got a bit messy...

``` D
module x;
@safe:

struct Foo()
{
   import std.format: FormatSpec;
   const void toString(scope void delegate(const(char)[]) @safe 
sink, FormatSpec!char fmt) {}
}

struct Bar
{
   import std.format: FormatSpec;
   const void toString(scope void delegate(const(char)[]) @safe 
sink, FormatSpec!char fmt) {}
}

unittest {
   import std.conv:to;

   Foo!() foo; foo.to!string;
   Bar bar; bar.to!string; // 25
}
```


More information about the Digitalmars-d-learn mailing list