TypeMapVisitor
To convert short names to their FQN alternatives, you can use TypeMapVisitor.
use TypeLang\Parser\Traverser;
// Replace all "User" ocurrences to "App\Example\User"
$replacement = static function (Name $name): ?Name {
if ($name->toLowerString() === 'user') {
return new Name('App\\Example\\User');
}
return null;
};
Traverser::new([new Traverser\TypeMapVisitor($replacement)])
->traverse([$result]);
03 February 2025