Thread overview
final forbidden with value template parameters?
Jan 03, 2009
Nicolas Sicard
Jan 03, 2009
Denis Koroskin
January 03, 2009
Hi

module main;
class Foo(string s) {}
final class Bar(string s) {} // Error

The compiler says:
variable main.s final cannot be applied to variable

Why is this forbidden?

Nicolas
(DMD 2.022 - Linux)
January 03, 2009
On Sat, Jan 3, 2009 at 1:26 PM, Nicolas Sicard <dransic@free.fr> wrote:
> Hi
>
> module main;
> class Foo(string s) {}
> final class Bar(string s) {} // Error
>
> The compiler says:
> variable main.s final cannot be applied to variable
>
> Why is this forbidden?
>
> Nicolas
> (DMD 2.022 - Linux)
>

It might be related to this:

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

But without a full example - where you're instantiating the template - I can't say for sure.
January 03, 2009
On Sat, 03 Jan 2009 21:39:35 +0300, Jarrett Billingsley <jarrett.billingsley@gmail.com> wrote:

> On Sat, Jan 3, 2009 at 1:26 PM, Nicolas Sicard <dransic@free.fr> wrote:
>> Hi
>>
>> module main;
>> class Foo(string s) {}
>> final class Bar(string s) {} // Error
>>
>> The compiler says:
>> variable main.s final cannot be applied to variable
>>
>> Why is this forbidden?
>>
>> Nicolas
>> (DMD 2.022 - Linux)
>>
>
> It might be related to this:
>
> http://d.puremagic.com/issues/show_bug.cgi?id=1481
>
> But without a full example - where you're instantiating the template -
> I can't say for sure.

That's full example. No need to instantiate this template to get an error.
It is a bug and I was hit by this multiple times already :(