Bug 8942 – `alias <qualifier> <type>` ignores <qualifier> in foreach over tuple

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-11-02T08:39:00Z
Last change time
2012-11-08T02:31:24Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
verylonglogin.reg

Comments

Comment #0 by verylonglogin.reg — 2012-11-02T08:39:32Z
Qualifier is ignored in foreach over tuple if there is no parantheses: --- alias const int A0; static assert(is(A0 == const int)); // passes void main() { alias const int A1; static assert(is(A1 == const int)); // passes static struct S { int i; } foreach(Unused; typeof(S.tupleof)) { alias const(int) A2_; static assert(is(A2_ == const int)); // also passes alias const int A2; static assert(is(A2 == const int)); // fails // Error: static assert (is(int == const(int))) is false } } --- As always, such (unexpected) template bugs are hard to figure out.
Comment #1 by k.hara.pg — 2012-11-03T00:17:42Z
Comment #2 by github-bugzilla — 2012-11-07T19:16:59Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/4b2423e4da9146bf2e59a93f6b23ef4c629fcbab fix Issue 8942 - `alias <qualifier> <type>` ignores <qualifier> in foreach over tuple AliasDeclaration::syntaxCopy should copy its storage_class field for the later semantic. https://github.com/D-Programming-Language/dmd/commit/f75f4c136133d0d0bf5d87bd5141be6066fc91b7 Merge pull request #1253 from 9rnsr/fix8942 Issue 8942 - `alias <qualifier> <type>` ignores <qualifier> in foreach over tuple