On 2011-08-08 13:55:32 +0000, Andrei Alexandrescu <seewebsiteforem...@erdani.org> said:

On 8/8/11 1:56 AM, Jacob Carlborg wrote:
On 2011-08-08 00:29, Robert Clipsham wrote:
On 07/08/2011 22:18, Jonathan M Davis wrote:
Personally, I don't see much point in using the package specifier when
you're
not actually using a package hierarchy (you're just making it so that
everything but stuff which actually uses a hierarchy can use the
function - it
would be a really weird distinction to make). So, it wouldn't entirely
surprise me if this is completely by design. It might be a bug though.

Except package is ~100% useless if you use an *actual* package
hierarchy[1][2][3] (not like phobos which just drops everything in a
top-level package).


- Jonathan M Davis

[1] http://d.puremagic.com/issues/show_bug.cgi?id=143
[2] http://d.puremagic.com/issues/show_bug.cgi?id=2529
[3] http://d.puremagic.com/issues/buglist.cgi?quicksearch=package



In addition to that a method declared as "package" won't be virtual.

Ouch. Why is that? Seems like a bug.

Seems by design. See dmd/src/func.c :

        int FuncDeclaration::isVirtual()
        {
        #if 0
            …
        #endif
            Dsymbol *p = toParent();
            return isMember() &&
!(isStatic() || protection == PROTprivate || protection == PROTpackage) &&
                p->isClassDeclaration() &&
                !(p->isInterfaceDeclaration() && isFinal());
        }

At least now you know where to fix this.

--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to