Bug 6810 – Strange `tuple used as a type` error

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-10-13T02:01:00Z
Last change time
2017-07-19T17:39:01Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
verylonglogin.reg

Comments

Comment #0 by verylonglogin.reg — 2011-10-13T02:01:46Z
Strange `tuple used as a type` error if using: template tuple parameter + named argument of its type + an constraint. --- void f(int n)(int) { } void f(U...)(U) { } // ok void f(U...)(U a) { } // ok void f(U...)(U) if(true) { } // ok void f(U...)(U a) if(true) { } // Error: tuple U is used as a type void main() { f!0(0); } ---
Comment #1 by k.hanazuki — 2011-10-26T12:47:11Z
Isn't this the correct behavior? -- U = 0 is not an type. By the precedence of overload resolution, DMD does not instantiate some of the template function overloads and semantic errors are not reported for them. If you define each template function alone, DMD(v2.056head) reports a "used as a type" error for it.
Comment #2 by verylonglogin.reg — 2011-10-27T02:38:23Z
dmd 2.056 now prints same error for both tuple templates with an constraint (so this bug is at least more consistent now). P.S. This is the full test code, I don't propose to define any function alone.
Comment #3 by k.hara.pg — 2015-02-23T14:48:05Z
Comment #4 by github-bugzilla — 2015-02-27T06:34:02Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/5e897777c763b5f7e854f1a06c50aaa43340b1cb fix Issue 6810 - Strange `tuple used as a type` error https://github.com/D-Programming-Language/dmd/commit/6c5e3c378e5c8c23bf51ca94b967ff3e029f2f4f Merge pull request #4439 from 9rnsr/fix6810 Issue 6810 - Strange `tuple used as a type` error
Comment #5 by github-bugzilla — 2015-06-17T21:01:18Z
Comment #6 by github-bugzilla — 2017-07-19T17:39:01Z
Commits pushed to dmd-cxx at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/5e897777c763b5f7e854f1a06c50aaa43340b1cb fix Issue 6810 - Strange `tuple used as a type` error https://github.com/dlang/dmd/commit/6c5e3c378e5c8c23bf51ca94b967ff3e029f2f4f Merge pull request #4439 from 9rnsr/fix6810