[Issue 18840] New: static foreach over an object's tupleof gives wrong information for const variables
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon May 7 13:22:45 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=18840
Issue ID: 18840
Summary: static foreach over an object's tupleof gives wrong
information for const variables
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: major
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: gooberman at gmail.com
Created attachment 1691
--> https://issues.dlang.org/attachment.cgi?id=1691&action=edit
Simple test struct with a foreach and a static foreach outputting details at
compile time
I have only tested this with two traits so far, but it does make generating
automated bindings/equivalent objects inaccurate. At a minimum, the wrong
__traits information gets returned from:
* identifier - returns the name of the static foreach iteration variable
* parent - returns the parent of said variable rather than the object type
Accessing the variables directly from object.tupleof[ index ] works just fine.
The attached test.d shows the issue.
Current output when compiling that file:
foreach pass:
foo has parent SomeStruct
bar has parent SomeStruct
anotherConst has parent SomeStruct
notAConst has parent SomeStruct
static foreach pass:
var has parent main()
bar has parent SomeStruct
var has parent main()
notAConst has parent SomeStruct
Expected output when compiling that file:
foreach pass:
foo has parent SomeStruct
bar has parent SomeStruct
anotherConst has parent SomeStruct
notAConst has parent SomeStruct
static foreach pass:
foo has parent SomeStruct
bar has parent SomeStruct
anotherConst has parent SomeStruct
notAConst has parent SomeStruct
--
More information about the Digitalmars-d-bugs
mailing list