Bug 14850 – Concatenation of static arrays should have compile-time length

Status
NEW
Severity
enhancement
Priority
P4
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2015-07-30T17:26:31Z
Last change time
2024-12-13T18:43:53Z
Assigned to
No Owner
Creator
John Colvin
Moved to GitHub: dmd#19019 →

Comments

Comment #0 by john.loughran.colvin — 2015-07-30T17:26:31Z
int[8] a,b,c; int[16] d; 1) c = a[]; //Ok 2) d = a[]; //Error, as expected 3) d = a[] ~ b[]; //OK, as expected 4) c = a[] ~ b[]; //No error until runtime 5) c = a[] + b[]; //OK 6) c = a[] & b[]; //OK 7) c = a[] | b[]; //Error 8) c = a[] ^ b[]; //Error 4 should statically be caught and 7 & 8 should be allowed.
Comment #1 by john.loughran.colvin — 2015-07-30T19:05:26Z
7 and 8 work OK in 2.067.1 but fail in 2.068.0
Comment #2 by k.hara.pg — 2015-07-31T06:29:54Z
(In reply to John Colvin from comment #1) > 7 and 8 work OK in 2.067.1 but fail in 2.068.0 I separated the regression part to issue 14851. Then we can change back this issue to an enhancement.
Comment #3 by nick — 2023-07-05T12:36:43Z
This is the only remaining case, renamed issue: > 4) c = a[] ~ b[]; //No error until runtime Same goes for `c = a ~ b;`.
Comment #4 by nick — 2023-07-05T12:38:21Z
Also, concatenation of static arrays could be allowed with @nogc iff assigned to a static array. Currently that errors.
Comment #5 by robert.schadek — 2024-12-13T18:43:53Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/19019 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB