Bug 15163 – Parser bug on double function call

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2015-10-05T20:15:00Z
Last change time
2016-01-03T14:01:56Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
Hexagonalstar64

Comments

Comment #0 by Hexagonalstar64 — 2015-10-05T20:15:08Z
--- void function() func(int[] arr) { return () { }; } void caller() { auto arr = [0]; func(arr[0])(); } --- $ rdmd test test.d(13): Error: function declaration without return type. (Note that constructors are always named 'this') test.d(13): Error: identifier expected for template value parameter test.d(13): Error: no identifier for declarator func(iter) Failed: ["dmd", "-v", "-o-", "test.d", "-I."]
Comment #1 by k.hara.pg — 2015-10-06T04:17:37Z
Comment #2 by github-bugzilla — 2015-10-11T08:58:16Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/0047b4130cf368c077deb1a9997e404bb6b0416d fix Issue 15163 - Parser bug on double function call Add `allowAltSyntax` parameter to `isDeclarator`, and disable it from `parseStatement`. https://github.com/D-Programming-Language/dmd/commit/d2c607f2105912d27a63b04e4d7e618665937d61 Merge pull request #5165 from 9rnsr/fix15163 Issue 15163 - Parser bug on double function call
Comment #3 by github-bugzilla — 2016-01-03T14:01:56Z