digitalmars.D.bugs - [Issue 7017] New: Pure inference makes inconsistent result
- d-bugmail puremagic.com (42/42) Nov 25 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7017
- d-bugmail puremagic.com (10/10) Nov 25 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7017
- d-bugmail puremagic.com (11/11) Nov 19 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7017
- d-bugmail puremagic.com (10/10) Nov 19 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7017
http://d.puremagic.com/issues/show_bug.cgi?id=7017
Summary: Pure inference makes inconsistent result
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Keywords: accepts-invalid
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: k.hara.pg gmail.com
Pure/nothrow/ safe inference with template function is shallow.
It does not affect to nested non-template struct member functions.
But in following code, map template function inferred as pure in some cases.
This is pure inference bug.
template map(fun...) if (fun.length >= 1)
{
auto map()
{
struct Result {
this(int dummy){} // impure member function
}
return Result(0); // impure call
}
}
int foo(immutable int x) pure nothrow { return 1; }
void main() pure
{
int bar(immutable int x) pure nothrow { return 1; }
static assert(!__traits(compiles, map!((){})())); // should pass, but
fails
static assert(!__traits(compiles, map!q{ 1 }())); // pass, OK
static assert(!__traits(compiles, map!foo())); // pass, OK
static assert(!__traits(compiles, map!bar())); // should pass, but
fails
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 25 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7017
Kenji Hara <k.hara.pg gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
https://github.com/D-Programming-Language/dmd/pull/536
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 25 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7017 Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/cd2b0c924917ab75f3efeaf7eeaff3fa414844ed fix Issue 7017 - Pure inference makes inconsistent result https://github.com/D-Programming-Language/dmd/commit/e3daa5ed3e869d793e5c3a74be89842c248346f0 Issue 7017 - Pure inference makes inconsistent result -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 19 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7017
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 19 2012









d-bugmail puremagic.com 