[Issue 14784] New: Variant and Proxy don't get along

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Tue Jul 7 10:43:30 PDT 2015


https://issues.dlang.org/show_bug.cgi?id=14784

          Issue ID: 14784
           Summary: Variant and Proxy don't get along
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: ryan at rcorre.net

Created attachment 1530
  --> https://issues.dlang.org/attachment.cgi?id=1530&action=edit
Test case for using Variant and Proxy

If a struct forwards access to a member via Proxy, assignment to a Variant
fails:

-----

import std.typecons, std.variant;

struct Foo { int f; }

struct Bar {
  private Foo foo;
  mixin Proxy!foo;

  int b;
}

unittest {
  Bar b;
  Variant v = b;
}

-----
/usr/include/dlang/dmd/std/typecons.d(4432): Error: e2ir: cannot cast this.foo
of type Foo to type string

Using `alias this` instead of Proxy alleviates the issue (but I must make foo
non-private for alias this, hence my desire to use Proxy).

--


More information about the Digitalmars-d-bugs mailing list