www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 625] New: static import and renamed import of mixin don't work

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=625

           Summary: static import and renamed import of mixin don't work
           Product: D
           Version: 0.175
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: wbaxter gmail.com


[resubmission of issue http://d.puremagic.com/issues/show_bug.cgi?id=506 as an
enhancement.]

static import and renamed import of a mixin don't work if the mixin itself has
imports.

This is a continuation of 
http://d.puremagic.com/issues/show_bug.cgi?id=498
which covers the basic import case.  The fix for that however does not fix the
static import and renamed import cases (import sigs=std.signals) cases.

Here's examples:

------
import sigs=std.signals;
class SigObj
{
    mixin sigs.Signal!();
}
void main()
{
}

----

static import std.signals;
class SigObj
{
    mixin std.signals.Signal!();
}
void main()
{
}


-- 
Dec 01 2006
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=625


Andrei Alexandrescu <andrei metalanguage.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |andrei metalanguage.com
         AssignedTo|nobody puremagic.com        |bugzilla digitalmars.com


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 26 2010
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=625


dawg dawgfoto.de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
                 CC|                            |dawg dawgfoto.de
         Resolution|                            |WORKSFORME



cat > a.d << EOF
module a;
mixin template foo()
{
    import std.stream;
    Stream stream;
}
EOF

cat > b.d << EOF
module b;
static import impa=a;

class Klass
{
    mixin impa.foo!();
}
EOF

cat > c.d << EOF
module c;
static import a;

class Klass
{
    mixin a.foo!();
}
EOF

dmd -c b.d
dmd -c c.d

----------

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 14 2012
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=625


dawg dawgfoto.de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|WORKSFORME                  |WONTFIX



Got that bug report wrong the first time.

Mixin templates are evaluated at instantiation scope.
Libraries need to make sure that all their dependencies
are self-contained, i.e. by import needed modules within
the mixin or by combining templates and mixin templates.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Feb 16 2012