in gazebo_derive/src/coerce.rs [113:128]
fn replace_type(ty: &mut Type, idents: &HashSet<Ident>, prefix: &str) -> Option<()> {
match ty {
Type::Path(x)
if x.qself.is_none()
&& x.path.segments.len() == 1
&& x.path.segments[0].arguments.is_empty() =>
{
let i = &mut x.path.segments[0].ident;
if idents.contains(i) {
*i = format_ident!("{}{}", prefix, i);
}
Some(())
}
_ => descend_type(ty, |ty| replace_type(ty, idents, prefix)),
}
}