digitalmars.D.bugs - [Issue 16608] New: 'static foreach', local function template,
- via Digitalmars-d-bugs (40/40) Oct 11 2016 https://issues.dlang.org/show_bug.cgi?id=16608
https://issues.dlang.org/show_bug.cgi?id=16608 Issue ID: 16608 Summary: 'static foreach', local function template, 'static if', anySatisfy: Only the first iteration seems to work Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: acehreli yahoo.com import std.meta; void main() { foreach (s; AliasSeq!("a", "b")) { // The problem is that this function is called only for the "a" iteration bool condition(string x)() { pragma(msg, "comparing ", x, " and ", s); return x == s; } // This condition is expected to be true for the "b" iteration static if (anySatisfy!(condition, AliasSeq!("b"))) { pragma(msg, "yes for ", s); } else { pragma(msg, "NO for ", s); } } } However, the condition() is called only for "a" and we get "NO" for the "b" iteration as well: comparing b and a NO for a NO for b <-- Why didn't we get "comparing b and b" before this? Ali --
Oct 11 2016