Bug 11110 – Variant.convertsTo doesn't work like isImplicitlyConvertible

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-09-23T12:09:00Z
Last change time
2014-02-15T14:36:28Z
Assigned to
nobody
Creator
simendsjo

Comments

Comment #0 by simendsjo — 2013-09-23T12:09:23Z
void main() { import std.variant; import std.stdio; import std.traits; immutable ii = 1; const ci = ii; // implicitly convertible assert(isImplicitlyConvertible!(immutable(int), const(int))); // yup Variant v = ii; assert(v.convertsTo!(const(int))); // why not? }
Comment #1 by blm768 — 2013-10-03T22:59:26Z
This also applies to arrays: import std.traits; import std.variant; void main() { assert(isImplicitlyConvertible!(string, const(char)[])); //passes Variant var = "some_string"; assert(var.convertsTo!(const(char)[])); //fails }
Comment #2 by opantm2+dbugs — 2014-02-15T14:36:28Z
Works in git master. I think https://github.com/D-Programming-Language/phobos/commit/6e7eabbd42a7f2e3e555081e1b17893c3c18b6f8 fixed this as well while fixing 7069.