Thread overview
Intended to be able to RefCount an interface?
Feb 10, 2015
weaselcat
Feb 10, 2015
Jakob Ovrum
Feb 10, 2015
weaselcat
Feb 11, 2015
Jakob Ovrum
February 10, 2015
Thread title.


interface Itest{

}

class testclass : Itest{
}

void main()
{
    import std.typecons;
    auto test = RefCounted!Itest(new testclass());
}

If you change the refcounted to type testclass it doesn't compile because refcounted doesn't support classes.

Is this a bug, or intended?
February 10, 2015
On Tuesday, 10 February 2015 at 04:44:55 UTC, weaselcat wrote:
> Thread title.
>
>
> interface Itest{
>
> }
>
> class testclass : Itest{
> }
>
> void main()
> {
>     import std.typecons;
>     auto test = RefCounted!Itest(new testclass());
> }
>
> If you change the refcounted to type testclass it doesn't compile because refcounted doesn't support classes.
>
> Is this a bug, or intended?

I think this is a bug, and that the current RefCounted needs to reject interfaces. AFAIK, it is intended that RefCounted!SomeClass is supposed to reference-count the actual class instance, not its reference, which is what RefCounted!SomeInterface currently does.
February 10, 2015
On Tuesday, 10 February 2015 at 05:09:00 UTC, Jakob Ovrum wrote:
> On Tuesday, 10 February 2015 at 04:44:55 UTC, weaselcat wrote:
>> Thread title.
>>
>>
>> interface Itest{
>>
>> }
>>
>> class testclass : Itest{
>> }
>>
>> void main()
>> {
>>    import std.typecons;
>>    auto test = RefCounted!Itest(new testclass());
>> }
>>
>> If you change the refcounted to type testclass it doesn't compile because refcounted doesn't support classes.
>>
>> Is this a bug, or intended?
>
> I think this is a bug, and that the current RefCounted needs to reject interfaces.

I assumed as much, thanks.

> AFAIK, it is intended that RefCounted!SomeClass is supposed to reference-count the actual class instance, not its reference, which is what RefCounted!SomeInterface currently does.

Is there currently an enhancement request open for this on the bug tracker? I cannot find anything.
February 11, 2015
On Tuesday, 10 February 2015 at 06:26:39 UTC, weaselcat wrote:
> Is there currently an enhancement request open for this on the bug tracker? I cannot find anything.

I couldn't find it either, so I filed it:

    https://issues.dlang.org/show_bug.cgi?id=14168