On 18.05.2013 21:51, Walter Bright wrote:I think the new behaviour is consistent with symbol lookup rules, but I'm not so sure about import rules. The actual case that triggered the issue was with the base class in a different file. Usually non-public imports in a module don't have an effect on another module that imports the module. In this case it has.I agree that it is changing behavior, and should be properly documented.
However, I also believe it is correct behavior and fixed a bug.
It's *always* true that when you change a base class, you affect the
derived classes.
Actually, I can live with it, but I cannot see a reasonable use case for the new behaviour. My rule of thumb would be to not use local import in classes. Otherwise all imported symbols are treated as static members with respect to lookup, hiding global functions or variables in derived classes.