Method dispatch doesn't respect privacy
**Code**
```nim
==> Foo.nim <==
type Foo* = ref object of RootObj
type Bar* = ref object of Foo
method test*(this: Foo) = echo "Foo"
==> BarA.nim <==
import Foo
method test(this: Bar) = echo "Bar A"
==> BarB.nim <==
import Foo
method test(this: Bar) = echo "Bar B"
==> Main.nim <==
import Foo, BarA, BarB
test(Bar())
```

**Expected**
`Foo`

**Got**
`Bar B`

I'm more concerned about the fact that it resolves to BarB.test and I think the compiler should complain.

***
```bash
>nim -v
Nim Compiler Version 2.1.9 [Linux: amd64]
Compiled at 2024-07-31
Copyright (c) 2006-2024 by Andreas Rumpf

git hash: cb156648d69fd0c21ee5d041a98ddc69294eaa96
active boot switches: -d:release
```