Refactoring script to use super:: instead of crate:: in win_sys_util

Had to add some exceptions here because of some mismatches between
the structrure of files vs modules.

BUG=b:22320646
TEST=python tools/contrib/refactor_use_references

Change-Id: Ia9da533bd8c89871893adfa461e47e4e2fe600d9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3530119
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Dennis Kempin 2022-03-16 16:50:09 -07:00
parent ce0d8c51e9
commit 99e336b688

View file

@ -116,6 +116,25 @@ def use_super_instead_of_crate(root: Path):
that directory to be the module crate:: refers to."""
def replace(module: list[str], use: str):
# Patch up weird module structure...
if len(module) > 1 and module[0] == "win":
# Only the listed modules are actually in win::.
# The rest is in the top level.
if module[1] not in (
"file_traits",
"syslog",
"platform_timer_utils",
"file_util",
"shm",
"wait",
"mmap",
"stream_channel",
"timer",
):
del module[0]
if len(module) > 0 and module[0] in ("punch_hole", "write_zeros"):
module = ["write_zeroes", module[0]]
if use.startswith("crate::"):
new_use = use.replace("crate::", "super::" * len(module))
print("::".join(module), use, "->", new_use)
@ -128,18 +147,17 @@ def use_super_instead_of_crate(root: Path):
def main():
for crate in ("sys_util", "win_sys_util", "sys_util_core", "cros_async"):
path = Path("common") / crate / "src"
subprocess.check_call(["git", "checkout", "-f", str(path)])
path = Path("common") / "win_sys_util/src"
subprocess.check_call(["git", "checkout", "-f", str(path)])
# Use rustfmt to re-format use statements to be one per line.
subprocess.check_call(
["rustfmt", "+nightly", "--config=imports_granularity=item", f"{path}/lib.rs"]
)
use_super_instead_of_crate(path)
subprocess.check_call(
["rustfmt", "+nightly", "--config=imports_granularity=crate", f"{path}/lib.rs"]
)
# Use rustfmt to re-format use statements to be one per line.
subprocess.check_call(
["rustfmt", "+nightly", "--config=imports_granularity=item", f"{path}/lib.rs"]
)
use_super_instead_of_crate(path)
subprocess.check_call(
["rustfmt", "+nightly", "--config=imports_granularity=crate", f"{path}/lib.rs"]
)
main()