www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 6356] New: Pure/nothrow/ safe-inference failed for a template function if it is instantiated without evaluating at the global scope

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

           Summary: Pure/nothrow/ safe-inference failed for a template
                    function if it is instantiated without evaluating at
                    the global scope
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Mac OS X
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: kennytm gmail.com



Test case:

------------------------------
int f6356()(int a) {
    return a*a;
}
alias f6356!() g6356;     // comment this out to eliminate the errors
pure nothrow  safe int i6356() {
    return f6356(1);
}
------------------------------
x.d(6): Error: pure function 'i6356' cannot call impure function 'f6356'
x.d(6): Error: safe function 'i6356' cannot call system function 'f6356'
x.d(6): Error: f6356 is not nothrow
x.d(5): Error: function x.i6356 'i6356' is nothrow yet may throw
------------------------------

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 20 2011
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6356


kennytm gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Platform|Other                       |All
         OS/Version|Mac OS X                    |All
           Severity|normal                      |major



Raising severity because unaryFun and binaryFun are used in template
constraints or return types. This bug makes std.algorithm.equal not able to be
pure/nothrow/ safe, for example.

2nd test case:
-----------------------------
bool f6356b()() {
    return true;
}
void g6356b()() if (is(typeof(f6356b()))) {
    f6356b();
}
void h6356b() pure nothrow  safe {
    //f6356b();    // <-- uncomment to make it compile.
    g6356b();
}
-----------------------------
x.d(9): Error: pure function 'h6356b' cannot call impure function 'g6356b'
x.d(9): Error: safe function 'h6356b' cannot call system function 'g6356b'
x.d(9): Error: g6356b is not nothrow
x.d(7): Error: function x.h6356b 'h6356b' is nothrow yet may throw
-----------------------------

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 20 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6356


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch



https://github.com/D-Programming-Language/dmd/pull/544

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 21 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6356




Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/0c074ce1b6ff104da1fbcc857be37773ac2fca8b
fix Issue 6356 - Pure/nothrow/ safe-inference failed for a template function if
it is instantiated without evaluating at the global scope

https://github.com/D-Programming-Language/dmd/commit/f6a212814630113441a567777a307a197400b922


Issue 6332 & 6356 & 6963 - Ignite pure/nothrow inference for template function

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


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


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