utils.toBulkString is not accesible from utils
Hi, for following coding there is an error during compilation: module utils; package string toBulkString(string s) { import std.string: format; return "$%s\r\n%s\r\n".format(s.length, s); } unittest { string actual = "foobar".toBulkString(); //... } source\utils.d(11,39): Error: function utils.toBulkString is not accessible from module utils The error disappears if I change the visibility attribute from package to private. This seems to be a bug, is it? Version: DMD v2.069.0-b2 Kind regards André
Re: utils.toBulkString is not accesible from utils
On Wednesday, 2 December 2015 at 06:33:36 UTC, Andre wrote: Hi, for following coding there is an error during compilation: module utils; package string toBulkString(string s) { import std.string: format; return "$%s\r\n%s\r\n".format(s.length, s); } unittest { string actual = "foobar".toBulkString(); //... } source\utils.d(11,39): Error: function utils.toBulkString is not accessible from module utils The error disappears if I change the visibility attribute from package to private. This seems to be a bug, is it? Version: DMD v2.069.0-b2 I think so, yes. But according to digger, the current behaviour goes back to at least DMD 2.052. Please file a bug report anyway.
Re: utils.toBulkString is not accesible from utils
On Wednesday, 2 December 2015 at 12:37:29 UTC, Marc Schütz wrote: I think so, yes. But according to digger, the current behaviour goes back to at least DMD 2.052. Please file a bug report anyway. Bug report filed https://issues.dlang.org/show_bug.cgi?id=15395
Re: utils.toBulkString is not accesible from utils
On Wednesday, December 02, 2015 06:33:32 Andre via Digitalmars-d-learn wrote: > Hi, > > for following coding there is an error during compilation: > >module utils; > >package string toBulkString(string s) >{ > import std.string: format; > return "$%s\r\n%s\r\n".format(s.length, s); >} > >unittest >{ > string actual = "foobar".toBulkString(); > //... >} > > >> source\utils.d(11,39): Error: function utils.toBulkString is > >> not accessible from module utils > > The error disappears if I change the visibility attribute from > package to private. > This seems to be a bug, is it? > > Version: DMD v2.069.0-b2 > > Kind regards > André I believe that the problem is that there is no package for toBulkString to be in. utils is a top-level module and is not in a package. Now, arguably it should be an error to use the package attribute in such a module rather than giving an error when you try and use it, but I'm pretty sure that that's the source of your problem. If utils were actually in a package, then it should work. - Jonathan M Davis