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)
  {}
}

@safe unittest {
  import std.conv:to;

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

# dmd d.d -dip1000 -unittest -main

d.d(25) Error: @safe function d.__unittest_121_C7 cannot call @system function std.conv.to!string.to!(Bar).to /usr/lib/dmd/2.099/import/std/conv.d(221): std.conv.to!string.to! (Bar).to is declared here


why is that?

Reply via email to