Well `move` can be a dangerous operation so you should use it when you're 100%
sure that your code won't use the variable you `move`'d afterwards. This code
will output an empty string because there was a `move` on `fldX.name` and it's
now empty:
type
Vtest = ref object
name : string
let fldx = new(Vtest)
fldx.name = "test"
proc setT(val: string): string = val
var x = setT(move(fldX.name))
echo fldX.name
RunYou should understand that hints are hints - you shouldn't always blindly follow them.
