Array field that has array-element type with copy-protector and default value set on a field will yield error
### Description

Sorry for the bad title, I am not sure how describe this better. However, I have a rather short piece of code that reproduces the code.

The following code will give a compiler error.

```nim
type
  Bar = object
    b: int = 1

  Foo = object
    f*: array[1, Bar]

proc `=copy`(dest: var Bar, source: Bar) {.error.}

discard Foo()
```

### Nim Version

Nim Compiler Version 2.2.0 [Linux: amd64]
Compiled at 2024-10-02
Copyright (c) 2006-2024 by Andreas Rumpf

git hash: 78983f1876726a49c69d65629ab433ea1310ece1
active boot switches: -d:release


### Current Output

```text
....../nim-2.2.0/lib/system.nim(2955, 19) Error: '=copy' is not available for type <Bar>; requires a copy because it's not the last read of 'y'; try to make y a 'sink' parameter; routine: arrayWith
```


### Expected Output

```text
<no compilation error>
```


### Known Workarounds

- Removing the default value for `Bar.b` will get rid of the error.
- Removing the copy-prevention will get rid of the error.
- Using `=dup` will get rid of the error (see comment below)
- Not using the object-initialiser will get rid of the error (i.g. not using `Foo()` and setting fields manually).

### Additional Information

I noticed that there is a comment ```# TODO: fixme it should be `=dup` ``` just at the line where the error is reported. When changing that according line to ```result[i] = `=dup`(y)``` the compiler error is gone. Not sure if that has any further impact in other places though...