Compiler bug?

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


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/03b4133d/attachment.html>


More information about the Digitalmars-d-learn mailing list