Thread overview | |||||
---|---|---|---|---|---|
|
August 16, 2017 Compiler bug? | ||||
---|---|---|---|---|
| ||||
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 () |
August 16, 2017 Re: Compiler bug? | ||||
---|---|---|---|---|
| ||||
Posted in reply to apz28 Attachments:
| 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@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 () > |
August 16, 2017 Re: Compiler bug? | ||||
---|---|---|---|---|
| ||||
Attachments:
| and some doc: http://dlang.org/spec/function.html#function-inheritance On Wed, Aug 16, 2017 at 7:45 AM, Daniel Kozak <kozzi11@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@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 () >> > > |
Copyright © 1999-2021 by the D Language Foundation