Compiler bug?

Daniel Kozak via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Aug 15 22:47:22 PDT 2017


and some doc:
http://dlang.org/spec/function.html#function-inheritance

On Wed, Aug 16, 2017 at 7:45 AM, Daniel Kozak <kozzi11 at gmail.com> wrote:

> No it is not a bug, there is no s() in B, you can fix this by adding:
>
> alias s = A.s;
>
> to class B
>
> On Wed, Aug 16, 2017 at 7:21 AM, apz28 via Digitalmars-d-learn <
> digitalmars-d-learn at puremagic.com> wrote:
>
>> abstract class A
>> {
>>         string _s;
>>
>> @property:
>>         final string s()
>>         {
>>                 return _s;
>>         }
>>
>>         A s(string x)
>>         {
>>                 _s = x;
>>                 return this;
>>         }
>> }
>>
>> class B : A
>> {
>> @property:
>>         final override A s(string x)
>>         {
>>                 _s = x;
>>                 return this;
>>         }
>> }
>>
>> void main()
>> {
>>         B b = new B();
>>         b.s = "abc";
>>         assert(b.s == "abc");
>> }
>>
>> Compilation output
>> /d536/f408.d(32): Error: function f408.B.s (string x) is not callable
>> using argument types ()
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20170816/dfbd7560/attachment-0001.html>


More information about the Digitalmars-d-learn mailing list