February 02, 2014 [Issue 12064] New: std.typecons.wrap doesn't handle NVI | ||||
---|---|---|---|---|
| ||||
https://d.puremagic.com/issues/show_bug.cgi?id=12064 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 { public: void foo(); void bar(); final void both() // NVI { foo(); bar(); } } class Baz { public: 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: ------- |
Copyright © 1999-2021 by the D Language Foundation