Tweak import macro bootstrap to trick rust analyzer aspect (#1179)

Co-authored-by: UebelAndre <github@uebelandre.com>
diff --git a/rust/private/transitions.bzl b/rust/private/transitions.bzl
index f502163..23336f4 100644
--- a/rust/private/transitions.bzl
+++ b/rust/private/transitions.bzl
@@ -46,18 +46,19 @@
     outputs = ["@rules_rust//rust/settings:use_real_import_macro"],
 )
 
-def _with_import_macro_bootstrapping_mode_impl(ctx):
-    target = ctx.attr.target[0]
-    return [target[rust_common.crate_info], target[rust_common.dep_info]]
+def _alias_with_import_macro_bootstrapping_mode_impl(ctx):
+    actual = ctx.attr.actual[0]
+    return [actual[rust_common.crate_info], actual[rust_common.dep_info]]
 
-with_import_macro_bootstrapping_mode = rule(
-    implementation = _with_import_macro_bootstrapping_mode_impl,
+alias_with_import_macro_bootstrapping_mode = rule(
+    implementation = _alias_with_import_macro_bootstrapping_mode_impl,
+    doc = "Alias-like rule to build the `actual` with `use_real_import_macro` setting disabled. Not to be used outside of the import macro bootstrap.",
     attrs = {
-        "target": attr.label(
+        # Using `actual` so tooling such as rust analyzer aspect traverses the target.
+        "actual": attr.label(
+            doc = "The target this alias refers to.",
             cfg = import_macro_dep_bootstrap_transition,
-            allow_single_file = True,
             mandatory = True,
-            executable = False,
         ),
         "_allowlist_function_transition": attr.label(
             default = Label("//tools/allowlists/function_transition_allowlist"),
diff --git a/util/import/BUILD.bazel b/util/import/BUILD.bazel
index 96580fb..f6c9d5f 100644
--- a/util/import/BUILD.bazel
+++ b/util/import/BUILD.bazel
@@ -1,11 +1,11 @@
 load("//rust:defs.bzl", "rust_library", "rust_proc_macro", "rust_test")
 
 # buildifier: disable=bzl-visibility
-load("//rust/private:transitions.bzl", "with_import_macro_bootstrapping_mode")
+load("//rust/private:transitions.bzl", "alias_with_import_macro_bootstrapping_mode")
 
-with_import_macro_bootstrapping_mode(
+alias_with_import_macro_bootstrapping_mode(
     name = "import_macro",
-    target = "import_macro_impl",
+    actual = ":import_macro_impl",
 )
 
 rust_proc_macro(