Thread overview | ||||||
---|---|---|---|---|---|---|
|
December 02, 2015 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é |
December 02, 2015 Re: utils.toBulkString is not accesible from utils | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andre | 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.
|
December 02, 2015 Re: utils.toBulkString is not accesible from utils | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marc Schütz | 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 |
December 03, 2015 Re: utils.toBulkString is not accesible from utils | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andre | 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
|
Copyright © 1999-2021 by the D Language Foundation