digitalmars.D.bugs - [Issue 15897] New: private base functions not callable from base
- via Digitalmars-d-bugs (45/45) Apr 08 2016 https://issues.dlang.org/show_bug.cgi?id=15897
https://issues.dlang.org/show_bug.cgi?id=15897 Issue ID: 15897 Summary: private base functions not callable from base class module without type change Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: rejects-valid Severity: regression Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: schveiguy yahoo.com Example (from https://forum.dlang.org/post/jebqwhmasrtzrfhmlzeq forum.dlang.org) module a; import b; class Animal { private void create() {} } void foo(Cat cat) { cat.create(); // >> no property create for type 'b.cat' } void main() {} -------------- module b; import a; class Cat: Animal {} Compiles with 2.070 Fails in 2.071.0: Error: no property 'create' for type 'b.Cat' If I do this: void foo(Cat cat) { Animal a = cat; a.create(); } It now compiles. The user shouldn't have to jump through this hoop, the compiler is aware of the access of create via the base class. If you move Cat into the same module, it also compiles. --
Apr 08 2016