Convert type names which match their containing module to "t"
Summary:
In OCaml we often define types with the name `t` when the type name would be the same as the module name (e.g., `Path.t`, `RelativePath.t`, `Pos.t`, `SSet.t`, `SMap.t`). In hh_oxidize, we used the module name to generate the Rust type name (e.g., `relative_path::RelativePath`, `pos::Pos`, `s_set::SSet`).
Perform the same conversion in reverse by keeping track of the current module name in the rewriting phase, and rewriting type names to `t` if they match the current module name. Also rewrite qualified names like `pos::Pos` to `Pos.t`.
Reviewed By: edwinsmith
Differential Revision:
D38442266
fbshipit-source-id:
6ac8b1c1f943d2aad0f2ca5016c3769c4ab4affa