Remove link_action_subject.

rules_testing's action_subject has all the required functionality - this
layer of abstraction does not give us anything.

The convenience function to retrieve the linking action is left in place.
It cannot always be used since it assumes a specific binary output but it is
heavily used already by the tests.

PiperOrigin-RevId: 965819893
Change-Id: Ie717eb2543e0bb2f704381dee211c46a545e8868
diff --git a/tests/cc/common/link_build_variables_test.bzl b/tests/cc/common/link_build_variables_test.bzl
index ba33b46..8b37460 100644
--- a/tests/cc/common/link_build_variables_test.bzl
+++ b/tests/cc/common/link_build_variables_test.bzl
@@ -24,12 +24,10 @@
     )
 
 def _cc_library_nodeps_dynamic_library_action(env, target):
-    action_subject = env.expect.that_target(target).action_generating("{package}/lib{name}.so")
-    return link_action_subject.new(action_subject.actual, action_subject.meta)
+    return env.expect.that_target(target).action_generating("{package}/lib{name}.so")
 
 def _cc_library_static_library_action(env, target):
-    action_subject = env.expect.that_target(target).action_generating("{package}/lib{name}.a")
-    return link_action_subject.new(action_subject.actual, action_subject.meta)
+    return env.expect.that_target(target).action_generating("{package}/lib{name}.a")
 
 def _test_force_pic_build_variable(name):
     _cc_binary_setup(name)
@@ -217,10 +215,9 @@
     )
 
 def _test_no_ifso_building_when_thin_lto_indexing_impl(env, target):
-    action_subject = env.expect.that_target(target).action_generating(
+    action = env.expect.that_target(target).action_generating(
         "{package}/lib{name}.so-lto-final.params",
     )
-    action = link_action_subject.new(action_subject.actual, action_subject.meta)
     action.argv().contains("--generate-interface-library=no")
     action.argv().contains("--interface-library-input=ignored")
     action.argv().contains("--interface-library-output=ignored")
@@ -268,10 +265,9 @@
 
 def _test_output_execpath_is_not_exposed_when_thin_lto_indexing_impl(env, target):
     # TODO(b/525692821): Consider using build graph traversal once available to find the LTO backend action.
-    action_subject = env.expect.that_target(target).action_generating(
+    action = env.expect.that_target(target).action_generating(
         "{package}/lib{name}.so-lto-final.params",
     )
-    action = link_action_subject.new(action_subject.actual, action_subject.meta)
     action.argv().not_contains_predicate(
         matching.custom(
             "starts with --output-execpath=",
@@ -468,8 +464,7 @@
     package = target.label.package
     name = target.label.name
     output_path = "{}/lib{}.so".format(package, name)
-    action_subject = env.expect.that_target(target).action_generating(output_path)
-    action = link_action_subject.new(action_subject.actual, action_subject.meta)
+    action = env.expect.that_target(target).action_generating(output_path)
 
     is_macos = env.ctx.target_platform_has_constraint(env.ctx.attr._is_macos[platform_common.ConstraintValueInfo])
     if is_macos:
diff --git a/tests/cc/testutil/link_action_subject.bzl b/tests/cc/testutil/link_action_subject.bzl
index 0d1248f..2d0fae4 100644
--- a/tests/cc/testutil/link_action_subject.bzl
+++ b/tests/cc/testutil/link_action_subject.bzl
@@ -1,26 +1,12 @@
 """Subject for asserting on Link Actions."""
 
-load("@rules_testing//lib:truth.bzl", "subjects")
 load("//tests/cc/testutil:cc_binary_target_subject.bzl", "cc_binary_target_subject")
 
-def _link_action_subject_new(actual, meta):
-    return struct(
-        actual = actual,
-        meta = meta,
-        inputs = lambda: subjects.depset_file(actual.inputs, meta = meta.derive("inputs")),
-        outputs = lambda: subjects.depset_file(actual.outputs, meta = meta.derive("outputs")),
-        argv = lambda: subjects.collection(actual.argv, sortable = False, meta = meta.derive("argv"), format = True),
-        env = lambda: subjects.dict(actual.env, meta = meta.derive("env")),
-        execution_info = lambda: subjects.dict(actual.execution_info, meta = meta.derive("execution_info")),
-    )
-
 def _link_action_subject_from_target(env, target):
-    action_subject = cc_binary_target_subject.from_target(env, target).action_generating(
+    return cc_binary_target_subject.from_target(env, target).action_generating(
         "{package}/{name}{binary_extension}",
     )
-    return _link_action_subject_new(action_subject.actual, action_subject.meta)
 
 link_action_subject = struct(
-    new = _link_action_subject_new,
     from_target = _link_action_subject_from_target,
 )