[Issue 9286] New: std.conv fails to compile with Nullable

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jan 9 02:48:33 PST 2013


http://d.puremagic.com/issues/show_bug.cgi?id=9286

           Summary: std.conv fails to compile with Nullable
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: Phobos
        AssignedTo: nobody at puremagic.com
        ReportedBy: jens.k.mueller at gmx.de


--- Comment #0 from jens.k.mueller at gmx.de 2013-01-09 02:47:57 PST ---
dmd 2.061 introduced the following regression.
The code

unittest                                                                        
{                                                                               
    import std.typecons;                                                        
    import std.conv;                                                            
    auto f = to!(Nullable!(uint))("12");                                        
    assert(f == 12);                                                            
}

used to compile and work with dmd 2.060. Now it fails with

/usr/local/bin/../src/phobos/std/conv.d(274): Error: template std.conv.toImpl
does not match any function template declaration. Candidates are:
/usr/local/bin/../src/phobos/std/conv.d(330):        std.conv.toImpl(T, S)(S
value) if (isImplicitlyConvertible!(S, T) && !isEnumStrToStr!(S, T) &&
!isNullToStr!(S, T))
/usr/local/bin/../src/phobos/std/conv.d(436):        std.conv.toImpl(T, S)(ref
S s) if (isRawStaticArray!(S))
/usr/local/bin/../src/phobos/std/conv.d(450):        std.conv.toImpl(T, S)(S
value) if (is(S : Object) && !is(T : Object) && !isSomeString!(T) &&
hasMember!(S, "to") && is(typeof(S.init.to!(T)()) : T))
/usr/local/bin/../src/phobos/std/conv.d(471):        std.conv.toImpl(T, S)(S
value) if (is(typeof(S.init.opCast!(T)()) : T) && !isExactSomeString!(T))
/usr/local/bin/../src/phobos/std/conv.d(502):        std.conv.toImpl(T, S)(S
value) if (!isImplicitlyConvertible!(S, T) && is(T == struct) &&
is(typeof(T(value))))
/usr/local/bin/../src/phobos/std/conv.d(274):        ... (16 more, -v to show)
...
/usr/local/bin/../src/phobos/std/conv.d(330): Error: template std.conv.toImpl
cannot deduce template function from argument types !(Nullable!(uint))(string)
/usr/local/bin/../src/phobos/std/conv.d(274): Error: template instance
toImpl!(Nullable!(uint)) errors instantiating template
test.d(9): Error: template instance std.conv.to!(Nullable!(uint)).to!(string)
error instantiating

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


More information about the Digitalmars-d-bugs mailing list