Bug 6999 – parsing error for inout method/ wrong headergen

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
Other
OS
All
Creation time
2011-11-23T18:14:00Z
Last change time
2012-07-14T07:18:37Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
code

Comments

Comment #0 by code — 2011-11-23T18:14:40Z
struct S { inout(int) foo() inout { return a; } int a; } --- // D import file generated from 'bug3.d' struct S { inout inout(int) foo() { return a; } int a; } --- Compiling a method with 'inout inout(int) ident()' will cause the following error. Error: inout on return means inout must be on a parameter as well for inout(int)() It seems that the language requires the method attribute to follow the parameter list. http://www.d-programming-language.org/declaration.html#DeclaratorSuffix But the header gen will output the inout in front of the return type. The error message should be better in any case. Probably related bug: http://d.puremagic.com/issues/show_bug.cgi?id=6872
Comment #1 by code — 2011-11-24T11:44:51Z
Comment #2 by github-bugzilla — 2012-07-14T06:13:44Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/87704232d2328bca1994e57528a6b5a082072241 test case for Bug6999 https://github.com/D-Programming-Language/dmd/commit/847e4995e37ae7b8fa13a234b437822c09ed8945 apply scope storage class before function type semantic - fix issue 6999 - this is needed if a storage class would affect type inference https://github.com/D-Programming-Language/dmd/commit/98d9a4d97dacb18e5ac7d71643ccbc7f690b52ec Merge pull request #531 from dawgfoto/Bug6999 fix Issue 6999 - parsing error for inout method/ wrong headergen