[Issue 10956] std.getopt error on wrongly position arguments should improve
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Tue Dec 1 05:25:24 PST 2015
https://issues.dlang.org/show_bug.cgi?id=10956
--- Comment #2 from bb.temp at gmx.com ---
(In reply to Andrej Mitrovic from comment #0)
> -----
> import std.getopt;
>
> void main(string[] args)
> {
> int i;
> getopt(args, &i, "");
> }
> -----
>
> This call is wrong, the text argument should come before the pointer, but
> the diagnostics are bad:
>
> std\getopt.d(499): Deprecation: using * on an array is deprecated; use
> *(receiver).ptr instead
> std\getopt.d(499): Error: cannot modify immutable expression
> *cast(immutable(char)*)receiver
> std\getopt.d(500): Deprecation: using * on an array is deprecated; use
> *(receiver).ptr instead
> std\getopt.d(500): Deprecation: using * on an array is deprecated; use
> *(receiver).ptr instead
> std\getopt.d(500): Error: cannot modify immutable expression
> *cast(immutable(char)*)receiver
> std\getopt.d(400): Error: template instance std.getopt.handleOption!string
> error instantiating
> std\getopt.d(351): instantiated from here: getoptImpl!(int*, string)
> test.d(8): instantiated from here: getopt!(int*, string)
> std\getopt.d(351): Error: template instance std.getopt.getoptImpl!(int*,
> string) error instantiating
> test.d(8): instantiated from here: getopt!(int*, string)
> test.d(8): Error: template instance std.getopt.getopt!(int*, string) error
> instantiating
I'll probably propose something in the next weeks. I've currently designed a
template that works in the constraint, however it misses a special case (option
passed for next param):
http://dpaste.dzfl.pl/b8d1fb991482
Anyway, quite faisable...
--
More information about the Digitalmars-d-bugs
mailing list