Thread overview |
---|
July 31, 2008 [Issue 2256] New: cannot implicitly convert expression (__funcliteral1) to invariant | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=2256 Summary: cannot implicitly convert expression (__funcliteral1) to invariant Product: D Version: 2.017 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: someanon@yahoo.com $ dmd -c memberfunptr.d memberfunptr.d(9): Error: cannot implicitly convert expression (__funcliteral1) of type void function(A) to invariant(void function(A)) $ cat memberfunptr.d ========================================== import std.stdio; class A { void f() {writefln("f()");} void g() {writefln("g()");} } alias void function(A) FP; invariant FP mfp1 = function void(A obj) {obj.f();}; // why this doesn't work? // the following compiles, but ugly static invariant FP mfp2; static this() { mfp2 = cast(invariant FP)(function void(A obj) {obj.g();}); } ========================================== http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D&artnum=74330 Why a function literal is not a constant expression? Especially after I defining a global top level wrapper function in this case. Under the hood, it should just be a raw pointer to some memory address, why this cannot be a constant? -- |
June 10, 2011 [Issue 2256] cannot implicitly convert expression (__funcliteral1) to invariant | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2256 yebblies <yebblies@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |yebblies@gmail.com Depends on| |3797 --- Comment #1 from yebblies <yebblies@gmail.com> 2011-06-10 06:07:53 PDT --- The 'is not a constant expression' part is covered by bug 2634. https://github.com/D-Programming-Language/dmd/pull/96 fixes the implicit conversion to immutable. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
September 02, 2011 [Issue 2256] Function pointers do not implicitly convert to/from immutable | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2256 yebblies <yebblies@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #2 from yebblies <yebblies@gmail.com> 2011-09-02 23:09:35 EST --- (In reply to comment #1) > The 'is not a constant expression' part is covered by bug 2634. > > https://github.com/D-Programming-Language/dmd/pull/96 > fixes the implicit conversion to immutable. https://github.com/D-Programming-Language/dmd/commit/306df8eaa6f8a987f76f401a1e03d8edf1f1e2ae Now works as bug 3797 and bug 2634 have been fixed. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation