EnsureMove not compile
### Description

```nim
type
  User = object
    name : string    
  UserObj = ref User



var user1 : User = User(name: "user1")
var user2 : UserObj = UserObj(name: "user2")
var user3 = ensureMove(user1)
echo "program ends!"
```

As you can see, there is no access for user1 after  ensureMove user1, but the compiler reject to compile.
I tried nim version in playground with verison 2.0.8,  and it compiles.

### Nim Version

Nim Compiler Version 2.2.2 [Windows: amd64]
Compiled at 2025-02-06
Copyright (c) 2006-2025 by Andreas Rumpf

active boot switches: -d:release


### Current Output

```text
E:\code\nimsrc\test>nimble build
   Building test/test.exe using c backend
      Info: compiling nim package using E:\Tools\nim-2.2.2\bin\nim.exe
E:\code\nimsrc\test\src\test.nim(10, 24) Error: cannot move 'user1', which introduces an implicit copy
       Tip: 4 messages have been suppressed, use --verbose to show them.
nimble.nim(324)          buildFromDir
```

### Expected Output

```text
compiles ok and show "program ends!"
```

### Known Workarounds

_No response_

### Additional Information

_No response_