http://d.puremagic.com/issues/show_bug.cgi?id=10506
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #5 from [email protected] 2013-07-01 06:00:47 PDT --- (In reply to comment #4) > (In reply to comment #3) > > This is issue 6169, which was fixed a while ago. I don't know what compiler > > version you were using but I double-checked the source and it calls > > ctfeSemantic like it should. > > > > *** This issue has been marked as a duplicate of issue 6169 *** > > Let's try this: > > ----- > import std.string; > > void test() pure > { > mixin(["int ", "x;"].join()); > } > > void main() {} > ----- > > 2.061: ok > 2.062: Error: pure function 'test' cannot call impure function 'join' > 2.063: Error: pure function 'test' cannot call impure function 'join' > 2.064: ok (but I think this is because join has become pure?) > > Note that the test-case in Issue 6169 works in all of these compilers, but not > the sample I gave. I have reopened 6169 with this usecase: -------- string bar(string op = "+") @property { return "a" ~ op ~ "b"; } void foo()() { int a, b; int c = mixin(bar); } @safe void main() { foo!()(); } -------- main.d(14): Error: safe function 'D main' cannot call system function 'main.foo!().foo' -------- Observations: 1) The problem is only with @safe, not pure. 2) Calling "min(bar("+"))" also makes the problem go away. -------- Not sure if this is strictly 6169 or if I should have posted here and un-resolved as duplicate. But in any case, this is (I think) a simpler use case. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
