Thread overview
null and IFTI
Oct 04, 2008
Max Samukha
Oct 04, 2008
Denis Koroskin
Oct 05, 2008
Max Samukha
October 04, 2008
It is unclear from the specs if null should be exact matched against nullable types during IFTI. Now it works only for void*.

class C
{
}

void foo(T)(T x, C c) // C - a nullable type
{
}

void main()
{
    foo(1, null); // fails
    foo(1, cast(C)null); // ok
}

Is it by design?
October 04, 2008
On Sat, 04 Oct 2008 10:50:33 +0400, Max Samukha <samukha@voliacable.com.removethis> wrote:

> It is unclear from the specs if null should be exact matched against
> nullable types during IFTI. Now it works only for void*.
>
> class C
> {
> }
>
> void foo(T)(T x, C c) // C - a nullable type
> {
> }
>
> void main()
> {
>     foo(1, null); // fails
>     foo(1, cast(C)null); // ok
> }
>
> Is it by design?

I think it is a bug. This might be relevant: http://d.puremagic.com/issues/show_bug.cgi?id=2389
October 05, 2008
On Sat, 04 Oct 2008 12:01:24 +0400, "Denis Koroskin" <2korden@gmail.com> wrote:

>On Sat, 04 Oct 2008 10:50:33 +0400, Max Samukha <samukha@voliacable.com.removethis> wrote:
>
>> It is unclear from the specs if null should be exact matched against nullable types during IFTI. Now it works only for void*.
>>
>> class C
>> {
>> }
>>
>> void foo(T)(T x, C c) // C - a nullable type
>> {
>> }
>>
>> void main()
>> {
>>     foo(1, null); // fails
>>     foo(1, cast(C)null); // ok
>> }
>>
>> Is it by design?
>
>I think it is a bug. This might be relevant: http://d.puremagic.com/issues/show_bug.cgi?id=2389

Not a big issue, but I felt like filing it anyway http://d.puremagic.com/issues/show_bug.cgi?id=2394