pw_span: Provide <span> through pw_polyfill

- Have pw_polyfill:overrides depend on pw_span.
- Remove explicit deps on pw_span.

Change-Id: Ibdd996d2764e737e487de5038cc84bd0f825c882
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/30043
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 2a0a688..e50f2d7 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -229,7 +229,6 @@
       "$dir_pw_preprocessor",
       "$dir_pw_protobuf",
       "$dir_pw_result",
-      "$dir_pw_span",
       "$dir_pw_status",
       "$dir_pw_stream",
       "$dir_pw_string",
diff --git a/docs/style_guide.rst b/docs/style_guide.rst
index b31a2eb..1087c51 100644
--- a/docs/style_guide.rst
+++ b/docs/style_guide.rst
@@ -577,10 +577,7 @@
 
   source_set("pw_sample_module") {
     public_configs = [ ":default_config" ]
-    public_deps = [
-      dir_pw_span,
-      dir_pw_status,
-    ]
+    public_deps = [ dir_pw_status ]
     public = [ "public/pw_sample_module/sample_module.h" ]
     sources = [
       "public/pw_sample_module/internal/sample_module.h",
diff --git a/pw_allocator/BUILD.gn b/pw_allocator/BUILD.gn
index 6e8ee54..c25bb4c 100644
--- a/pw_allocator/BUILD.gn
+++ b/pw_allocator/BUILD.gn
@@ -46,7 +46,6 @@
   public = [ "public/pw_allocator/block.h" ]
   public_deps = [
     "$dir_pw_assert",
-    "$dir_pw_span",
     "$dir_pw_status",
   ]
   sources = [ "block.cc" ]
@@ -58,7 +57,6 @@
   public = [ "public/pw_allocator/freelist.h" ]
   public_deps = [
     "$dir_pw_containers:vector",
-    "$dir_pw_span",
     "$dir_pw_status",
   ]
   sources = [ "freelist.cc" ]
@@ -71,7 +69,6 @@
   public_deps = [
     ":block",
     ":freelist",
-    "$dir_pw_span",
   ]
   deps = [
     "$dir_pw_assert",
diff --git a/pw_base64/BUILD.gn b/pw_base64/BUILD.gn
index 006b427..07d9674 100644
--- a/pw_base64/BUILD.gn
+++ b/pw_base64/BUILD.gn
@@ -26,12 +26,10 @@
   public_configs = [ ":default_config" ]
   public = [ "public/pw_base64/base64.h" ]
   sources = [ "base64.cc" ]
-  public_deps = [ "$dir_pw_span" ]
 }
 
 pw_test_group("tests") {
   tests = [ ":base64_test" ]
-  group_deps = [ "$dir_pw_span:tests" ]
 }
 
 pw_test("base64_test") {
diff --git a/pw_bytes/BUILD.gn b/pw_bytes/BUILD.gn
index d088fe4..1b98997 100644
--- a/pw_bytes/BUILD.gn
+++ b/pw_bytes/BUILD.gn
@@ -35,7 +35,6 @@
   sources = [ "byte_builder.cc" ]
   public_deps = [
     dir_pw_preprocessor,
-    dir_pw_span,
     dir_pw_status,
   ]
 }
@@ -48,7 +47,6 @@
   ]
   group_deps = [
     "$dir_pw_preprocessor:tests",
-    "$dir_pw_span:tests",
     "$dir_pw_status:tests",
   ]
 }
diff --git a/pw_checksum/BUILD.gn b/pw_checksum/BUILD.gn
index 048964c..d1209af 100644
--- a/pw_checksum/BUILD.gn
+++ b/pw_checksum/BUILD.gn
@@ -32,10 +32,7 @@
     "crc16_ccitt.cc",
     "crc32.cc",
   ]
-  public_deps = [
-    dir_pw_bytes,
-    dir_pw_span,
-  ]
+  public_deps = [ dir_pw_bytes ]
 }
 
 pw_test_group("tests") {
diff --git a/pw_cpu_exception/BUILD.gn b/pw_cpu_exception/BUILD.gn
index f2562e2..7c6f45d 100644
--- a/pw_cpu_exception/BUILD.gn
+++ b/pw_cpu_exception/BUILD.gn
@@ -61,10 +61,7 @@
 pw_facade("handler") {
   backend = pw_cpu_exception_HANDLER_BACKEND
   public_configs = [ ":default_config" ]
-  public_deps = [
-    "$dir_pw_preprocessor",
-    "$dir_pw_span",
-  ]
+  public_deps = [ "$dir_pw_preprocessor" ]
   sources = [ "start_exception_handler.cc" ]
   public = [ "public/pw_cpu_exception/handler.h" ]
 }
@@ -76,7 +73,6 @@
 pw_facade("support") {
   backend = pw_cpu_exception_SUPPORT_BACKEND
   public_configs = [ ":default_config" ]
-  public_deps = [ "$dir_pw_span" ]
   public = [ "public/pw_cpu_exception/support.h" ]
 }
 
diff --git a/pw_hdlc/BUILD.gn b/pw_hdlc/BUILD.gn
index 18a1946..ad53f54 100644
--- a/pw_hdlc/BUILD.gn
+++ b/pw_hdlc/BUILD.gn
@@ -94,7 +94,6 @@
   ]
   group_deps = [
     "$dir_pw_preprocessor:tests",
-    "$dir_pw_span:tests",
     "$dir_pw_status:tests",
     "$dir_pw_stream:tests",
   ]
diff --git a/pw_hex_dump/BUILD.gn b/pw_hex_dump/BUILD.gn
index 2ad280e..7f0bb44 100644
--- a/pw_hex_dump/BUILD.gn
+++ b/pw_hex_dump/BUILD.gn
@@ -26,7 +26,6 @@
   public_configs = [ ":default_config" ]
   public_deps = [
     dir_pw_bytes,
-    dir_pw_span,
     dir_pw_status,
   ]
   deps = [ dir_pw_string ]
diff --git a/pw_kvs/BUILD.gn b/pw_kvs/BUILD.gn
index 6015a8b..e81df41 100644
--- a/pw_kvs/BUILD.gn
+++ b/pw_kvs/BUILD.gn
@@ -63,7 +63,6 @@
     dir_pw_assert,
     dir_pw_bytes,
     dir_pw_containers,
-    dir_pw_span,
     dir_pw_status,
     dir_pw_string,
   ]
@@ -106,7 +105,6 @@
   public_deps = [
     dir_pw_containers,
     dir_pw_kvs,
-    dir_pw_span,
     dir_pw_status,
   ]
   deps = [
diff --git a/pw_malloc_freelist/BUILD b/pw_malloc_freelist/BUILD
index 1efbb30..c3ca117 100644
--- a/pw_malloc_freelist/BUILD
+++ b/pw_malloc_freelist/BUILD
@@ -44,7 +44,6 @@
         "//dir_pw_boot_armv7m",
         "//dir_pw_malloc:facade",
         "//dir_pw_preprocessor",
-        "//dir_pw_span",
     ],
 )
 
diff --git a/pw_malloc_freelist/BUILD.gn b/pw_malloc_freelist/BUILD.gn
index 027d23e..446a46f 100644
--- a/pw_malloc_freelist/BUILD.gn
+++ b/pw_malloc_freelist/BUILD.gn
@@ -32,7 +32,6 @@
     "$dir_pw_boot_armv7m",
     "$dir_pw_malloc:facade",
     "$dir_pw_preprocessor",
-    "$dir_pw_span",
   ]
   sources = [ "freelist_malloc.cc" ]
 }
diff --git a/pw_polyfill/BUILD.gn b/pw_polyfill/BUILD.gn
index 7774294..ff9f4db 100644
--- a/pw_polyfill/BUILD.gn
+++ b/pw_polyfill/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2020 The Pigweed Authors
+# Copyright 2021 The Pigweed Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
 # use this file except in compliance with the License. You may obtain a copy of
@@ -48,7 +48,10 @@
 pw_source_set("overrides") {
   public_configs = [ ":overrides_config" ]
   remove_public_deps = [ "*" ]
-  public_deps = [ ":standard_library" ]
+  public_deps = [
+    ":standard_library",
+    "$dir_pw_span",
+  ]
   inputs = [
     "public_overrides/array",
     "public_overrides/assert.h",
@@ -90,6 +93,7 @@
     ":cpp11_test",
     ":cpp14_test",
   ]
+  group_deps = [ "$dir_pw_span:tests" ]
 }
 
 pw_test("default_cpp_test") {
diff --git a/pw_random/BUILD.gn b/pw_random/BUILD.gn
index 1328a05..8a440f8 100644
--- a/pw_random/BUILD.gn
+++ b/pw_random/BUILD.gn
@@ -30,7 +30,6 @@
   ]
   public_deps = [
     dir_pw_bytes,
-    dir_pw_span,
     dir_pw_status,
   ]
 }
diff --git a/pw_result/size_report/BUILD.gn b/pw_result/size_report/BUILD.gn
index 6e1d6d5..441151f 100644
--- a/pw_result/size_report/BUILD.gn
+++ b/pw_result/size_report/BUILD.gn
@@ -57,7 +57,6 @@
     dir_pw_bytes,
     dir_pw_log,
     dir_pw_preprocessor,
-    dir_pw_span,
   ]
 }
 
@@ -68,6 +67,5 @@
     dir_pw_bytes,
     dir_pw_log,
     dir_pw_preprocessor,
-    dir_pw_span,
   ]
 }
diff --git a/pw_ring_buffer/BUILD.gn b/pw_ring_buffer/BUILD.gn
index 6c5a17b..2fd0f1e 100644
--- a/pw_ring_buffer/BUILD.gn
+++ b/pw_ring_buffer/BUILD.gn
@@ -26,7 +26,6 @@
   public_configs = [ ":default_config" ]
   public_deps = [
     "$dir_pw_containers",
-    "$dir_pw_span",
     "$dir_pw_status",
   ]
   sources = [ "prefixed_entry_ring_buffer.cc" ]
diff --git a/pw_rpc/BUILD.gn b/pw_rpc/BUILD.gn
index 80db934..3569aeb 100644
--- a/pw_rpc/BUILD.gn
+++ b/pw_rpc/BUILD.gn
@@ -88,7 +88,6 @@
     "$dir_pw_containers:intrusive_list",
     dir_pw_assert,
     dir_pw_bytes,
-    dir_pw_span,
     dir_pw_status,
   ]
   deps = [ dir_pw_log ]
@@ -122,7 +121,6 @@
   public_deps = [
     ":client",
     ":server",
-    dir_pw_span,
   ]
   visibility = [ "./*" ]
 }
diff --git a/pw_span/BUILD.gn b/pw_span/BUILD.gn
index 4a1f9ff..bead2ef 100644
--- a/pw_span/BUILD.gn
+++ b/pw_span/BUILD.gn
@@ -26,6 +26,7 @@
 }
 
 pw_source_set("pw_span") {
+  remove_public_deps = [ "*" ]
   public_configs = [ ":default_config" ]
   public_deps = [ "$dir_pw_polyfill" ]
   public = [ "public_overrides/span" ]
diff --git a/pw_stream/BUILD.gn b/pw_stream/BUILD.gn
index b3bf1c8..a1607a1 100644
--- a/pw_stream/BUILD.gn
+++ b/pw_stream/BUILD.gn
@@ -35,7 +35,6 @@
     dir_pw_assert,
     dir_pw_bytes,
     dir_pw_result,
-    dir_pw_span,
     dir_pw_status,
   ]
 }
diff --git a/pw_string/BUILD.gn b/pw_string/BUILD.gn
index 400fa48..bf59ff2 100644
--- a/pw_string/BUILD.gn
+++ b/pw_string/BUILD.gn
@@ -39,7 +39,6 @@
   ]
   public_deps = [
     "$dir_pw_preprocessor",
-    "$dir_pw_span",
     "$dir_pw_status",
   ]
 }
@@ -54,7 +53,6 @@
   ]
   group_deps = [
     "$dir_pw_preprocessor:tests",
-    "$dir_pw_span:tests",
     "$dir_pw_status:tests",
   ]
 }
diff --git a/pw_sys_io/BUILD.gn b/pw_sys_io/BUILD.gn
index 652bbc7..47feb43 100644
--- a/pw_sys_io/BUILD.gn
+++ b/pw_sys_io/BUILD.gn
@@ -26,10 +26,7 @@
 pw_facade("pw_sys_io") {
   backend = pw_sys_io_BACKEND
   public_configs = [ ":default_config" ]
-  public_deps = [
-    "$dir_pw_span",
-    "$dir_pw_status",
-  ]
+  public_deps = [ dir_pw_status ]
   public = [ "public/pw_sys_io/sys_io.h" ]
 }
 
diff --git a/pw_tokenizer/BUILD.gn b/pw_tokenizer/BUILD.gn
index 35c1757..d0df948 100644
--- a/pw_tokenizer/BUILD.gn
+++ b/pw_tokenizer/BUILD.gn
@@ -73,7 +73,6 @@
   public_deps = [
     ":config",
     dir_pw_preprocessor,
-    dir_pw_span,
   ]
   deps = [ dir_pw_varint ]
   public = [
@@ -141,13 +140,11 @@
     ":pw_tokenizer",
     dir_pw_base64,
     dir_pw_preprocessor,
-    dir_pw_span,
   ]
 }
 
 pw_source_set("decoder") {
   public_configs = [ ":public_include_path" ]
-  public_deps = [ dir_pw_span ]
   deps = [ dir_pw_varint ]
   public = [
     "public/pw_tokenizer/detokenize.h",
@@ -200,10 +197,7 @@
     ":token_database_test",
     ":tokenize_test",
   ]
-  group_deps = [
-    "$dir_pw_preprocessor:tests",
-    "$dir_pw_span:tests",
-  ]
+  group_deps = [ "$dir_pw_preprocessor:tests" ]
 }
 
 pw_test("argument_types_test") {
@@ -344,7 +338,6 @@
     ":decoder",
     "$dir_pw_fuzzer",
     "$dir_pw_preprocessor",
-    "$dir_pw_span",
   ]
 }
 
diff --git a/pw_varint/BUILD.gn b/pw_varint/BUILD.gn
index 2f06bac..c5c7980 100644
--- a/pw_varint/BUILD.gn
+++ b/pw_varint/BUILD.gn
@@ -24,10 +24,7 @@
 
 pw_source_set("pw_varint") {
   public_configs = [ ":default_config" ]
-  public_deps = [
-    "$dir_pw_preprocessor",
-    "$dir_pw_span",
-  ]
+  public_deps = [ dir_pw_preprocessor ]
   sources = [
     "public/pw_varint/varint.h",
     "varint.cc",