Discussion Thread: DIP 1039--Static Arrays with Inferred Length--Community Review Round 1
Nick Treleaven
nick at geany.org
Mon Jan 11 12:32:42 UTC 2021
On Friday, 8 January 2021 at 14:07:29 UTC, Luhrel wrote:
>> Example a3 is straightforward the primary use case for
>> staticArray:
>> auto a3 = [1,2,3].staticArray;
>
> I really don't like the `.staticArray` because it's
> non-esthetic. I don't know if it's really argument, mainly
> because it's very personal.
The worst thing about it is you have to import std.array, so
probably people won't bother scrolling to the top to add the
import and losing/bookmarking their place, and will just count
the items themselves. When it was originally proposed, it was in
object.d.
I think if the DIP proposed a literal syntax instead of a new
variable declaration syntax, it would be much less of a burden to
the compiler. I think we don't have any partial (variable) type
inference syntax ATM.
> Correct. I'll rewrite this example.
> There should be a type conversion:
>
> ```
> int[2] bar() { return [1,2]; }
> long[$] a6 = bar(); // implicit conversion
> static assert(is(typeof(a6) == long[2]));
> ```
Error: cannot implicitly convert expression `bar()` of type
`int[2]` to `long[]`
More information about the Digitalmars-d-announce
mailing list