Bug 12799 – Forward reference to nested enum with struct.sizeof

Status
RESOLVED
Resolution
FIXED
Severity
minor
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2014-05-25T07:24:00Z
Last change time
2015-06-17T21:01:42Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
dfj1esp02
Blocks
340

Comments

Comment #0 by dfj1esp02 — 2014-05-25T07:24:25Z
struct A { enum C=A.sizeof; enum D=C; //Error: forward reference of variable C int a; }
Comment #1 by dfj1esp02 — 2014-05-25T07:51:23Z
I first wanted to implement a variable-sized struct this way. struct Region { enum fullSize=128, head=Region.sizeof/size_t.sizeof; enum capacity=fullSize-head; Region* prev; int count; void*[] allocations() { return all[0..count]; } void put(void* data) { assert(count<capacity); all[count]=data; count++; } void*[] all(void* data) { void* b=cast(void**)&this+head; return b[0..capacity]; } } Well, it's not really variable-sized, so I just declared a fixed-sized array in it.
Comment #2 by dfj1esp02 — 2014-05-30T17:31:25Z
Though a big fixed-sized array in a struct creates a big init value.
Comment #3 by k.hara.pg — 2015-03-09T15:31:35Z
Comment #4 by github-bugzilla — 2015-03-25T08:09:37Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/945b754bd1084b77f09da55f5cc9c1f2ea5e89ca fix Issue 12799 - Forward reference to nested enum with struct.sizeof https://github.com/D-Programming-Language/dmd/commit/0358a7d216fd75eabea5782b682f6807ce1dde0b Merge pull request #4467 from 9rnsr/fix12799 Issue 12799 - Forward reference to nested enum with struct.sizeof
Comment #5 by github-bugzilla — 2015-06-17T21:01:42Z