`incompatible pointer type` from `=sink` + inheritance
### Nim Version

2.0.14

### Description

```nim
type A* {.inheritable.} = object
  v: string
  v2: pointer

proc `=sink`*(a: var A, x: A) =
  echo "sink A"

type
  B* = object of A

var xxxx: B

proc ffff(v: sink B) =
  xxxx = move(v)

proc g() =
  ffff(B())

g()
```


similar to https://github.com/nim-lang/Nim/issues/24147 - if fixed, would need backport cc @narimiran 

### Current Output

```text
testit.nim:5:87: note: expected ‘tyObject_A__Z5McSAEQikNHpoE2atzkvw *’ but argument is of type ‘tyObject_B__iA8ZAlblDV9cCM689a4vyhzQ *’
    5 | proc `=sink`*(a: var A, x: A) =
      |                                                                                       ^   
system.nim:155:219: error: passing argument 2 of ‘eqsink___testit_u6’ from incompatible pointer type [-Wincompatible-pointer-types]
  155 |   result = x
      |                                                                                                                                                                                                                           ^     
      |                                                                                                                                                                                                                           |
      |                                                                                                                                                                                                                           tyObject_B__iA8ZAlblDV9cCM689a4vyhzQ *
testit.nim:5:129: note: expected ‘tyObject_A__Z5McSAEQikNHpoE2atzkvw *’ but argument is of type ‘tyObject_B__iA8ZAlblDV9cCM689a4vyhzQ *’
    5 | proc `=sink`*(a: var A, x: A) =
      |                                                                                                                                 ^
```

### Expected Output

```text

```

### Known Workarounds

_No response_

### Additional Information

_No response_