diff --git a/examples/experimental_cc_shared_library.bzl b/examples/experimental_cc_shared_library.bzl
index 4b41fd7..49b9b8e 100644
--- a/examples/experimental_cc_shared_library.bzl
+++ b/examples/experimental_cc_shared_library.bzl
@@ -9,18 +9,10 @@
 
 # TODO(#5200): Add export_define to library_to_link and cc_library
 
-# TODO(plf): Even though at the begining the idea was to completely forbid
-# anyone to link a library statically without permission from the library owner,
-# there have been complaints about this. linked_statically_by is hard to use
-# and too restrictive. static_deps will completely replace linked_statically_by.
-# Library authors will still have control of who exports them by using exported_by.
-
 GraphNodeInfo = provider(
     fields = {
         "children": "Other GraphNodeInfo from dependencies of this target",
         "label": "Label of the target visited",
-        # TODO(plf): Completely remove linked_statically_by.
-        "linked_statically_by": "The value of this attribute if the target has it",
     },
 )
 CcSharedLibraryInfo = provider(
@@ -52,9 +44,9 @@
 
         node_label = str(node.label)
         if node_label in can_be_linked_dynamically:
-            link_dynamically_labels[node_label] = None
+            link_dynamically_labels[node_label] = True
         elif node_label not in preloaded_deps_direct_labels:
-            link_statically_labels[node_label] = node.linked_statically_by
+            link_statically_labels[node_label] = True
             all_children.extend(node.children)
     return (link_statically_labels, link_dynamically_labels)
 
@@ -211,21 +203,13 @@
             else:
                 can_be_linked_statically = False
 
-                # TODO(plf): This loop will go away when linked_statically_by is
-                # replaced completely by static_deps.
-                for linked_statically_by in link_statically_labels[owner]:
-                    if linked_statically_by == str(ctx.label):
+                for static_dep_path in ctx.attr.static_deps:
+                    target_specified = _is_target_specified(static_dep_path)
+                    static_dep_path_label = ctx.label.relative(static_dep_path)
+                    owner_label = linker_input.owner
+                    if _check_if_target_under_path(linker_input.owner, static_dep_path_label, target_specified):
                         can_be_linked_statically = True
                         break
-
-                if not can_be_linked_statically:
-                    for static_dep_path in ctx.attr.static_deps:
-                        target_specified = _is_target_specified(static_dep_path)
-                        static_dep_path_label = ctx.label.relative(static_dep_path)
-                        owner_label = linker_input.owner
-                        if _check_if_target_under_path(linker_input.owner, static_dep_path_label, target_specified):
-                            can_be_linked_statically = True
-                            break
                 if can_be_linked_statically:
                     static_linker_inputs.append(linker_input)
                 else:
@@ -364,13 +348,8 @@
             if GraphNodeInfo in dep:
                 children.append(dep[GraphNodeInfo])
 
-    linked_statically_by = []
-    if hasattr(ctx.rule.attr, "linked_statically_by"):
-        linked_statically_by = [str(label) for label in ctx.rule.attr.linked_statically_by]
-
     return [GraphNodeInfo(
         label = ctx.label,
-        linked_statically_by = linked_statically_by,
         children = children,
     )]
 
@@ -385,9 +364,6 @@
         "dynamic_deps": attr.label_list(providers = [CcSharedLibraryInfo]),
         "exports": attr.label_list(providers = [CcInfo], aspects = [graph_structure_aspect]),
         "preloaded_deps": attr.label_list(providers = [CcInfo]),
-        # TODO(plf): Replaces linked_statically_by attribute. Instead of
-        # linked_statically_by attribute in each cc_library we will have the
-        # attribute exported_by which will restrict exportability.
         "static_deps": attr.string_list(),
         "user_link_flags": attr.string_list(),
         "visibility_file": attr.label(allow_single_file = True),
