www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 12064] New: std.typecons.wrap doesn't handle NVI


           Summary: std.typecons.wrap doesn't handle NVI
           Product: D
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: Phobos
        AssignedTo: nobody puremagic.com
        ReportedBy: pontifechs gmail.com

--- Comment #0 from Matthew Dudley <pontifechs gmail.com> 2014-02-02 09:26:38
PST ---
Here's an example:

import std.typecons; //wrap

import std.stdio;

interface FooBar
    void foo();
    void bar();

    final void both() // NVI

class Baz
    void foo() { writeln("foo"); }
    void bar() { writeln("bar"); }

void main()
    auto baz = new Baz();
    auto foobar = baz.wrap!(FooBar)();
    // causes this wall-o-text error -- http://pastebin.com/Pa5dHQtN
    // Which at the end says:

    // /usr/local/Cellar/dmd/2.064.2/import/std/typecons.d(2779): 
Error: static assert  "Source Baz does not have structural 
conformance to (FooBar)"

It looks like wrap is trying to override the NVI method, but since it's final,
it doesn't work.

Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 02 2014