Mercurial > projects > dstress
changeset 256:ee9d62b2a74f
inner function in struct member functions
Nick <Nick_member@pathlink.com>
2005-01-28
news:ctdtgj$30r$1@digitaldaemon.com
nntp://news.digitalmars.com/digitalmars.D.bugs/2784
author | thomask |
---|---|
date | Sat, 29 Jan 2005 09:28:45 +0000 |
parents | 51e4d92ab66e |
children | 1c790407bfd8 |
files | run/bug_20050128_A.d run/bug_20050128_B.d |
diffstat | 2 files changed, 76 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/bug_20050128_A.d Sat Jan 29 09:28:45 2005 +0000 @@ -0,0 +1,38 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @date@ Nick <Nick_member@pathlink.com> +// @date@ 2005-01-28 +// @uri@ news:ctdtgj$30r$1@digitaldaemon.com +// @url@ nntp://news.digitalmars.com/digitalmars.D.bugs/2784 + +module dstress.run.bug_20050128_A; + +struct MyStruct{ + int i; + + void display(){ + assert(i==10); + } + + void someFunc(){ + // We never call this function + void bug(MyStruct[] array){ + array[0].i = i+1; // Comment out this line and the bug goes away + } + + assert(i==10); + display(); + assert(i==10); + } +} + +int main(){ + MyStruct m; + m.i = 10; + assert(m.i==10); + m.someFunc(); + assert(m.i==10); + return 0; +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/bug_20050128_B.d Sat Jan 29 09:28:45 2005 +0000 @@ -0,0 +1,38 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @date@ Nick <Nick_member@pathlink.com> +// @date@ 2005-01-28 +// @uri@ news:ctdtgj$30r$1@digitaldaemon.com +// @url@ nntp://news.digitalmars.com/digitalmars.D.bugs/2784 + +module dstress.run.bug_20050128_B; + +struct MyStruct{ + int i; + + void display(){ + assert(i==10); + } + + void someFunc(){ + // We never call this function + void bug(MyStruct[] array){ + // array[0].i = i+1; // Comment out this line and the bug goes away + } + + assert(i==10); + display(); + assert(i==10); + } +} + +int main(){ + MyStruct m; + m.i = 10; + assert(m.i==10); + m.someFunc(); + assert(m.i==10); + return 0; +} \ No newline at end of file