tools/fix: use ast.Predeclared to avoid shadowing in value alias conversion
When "cue fix --exp=aliasv2" converts old-style value aliases
(X={...}) to "let X = self", the generated code breaks if "self" is
already in scope as a field, let clause, or alias.
Mark the generated "self" identifier with ast.Predeclared so that
Sanitize automatically renames it to "__self" when shadowed.
Fixes #4151.
Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
Change-Id: I406445c8e7f477342576aa808727421531289a12
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1231145
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
Reviewed-by: Marcel van Lohuizen <mpvl@gmail.com>
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>