Merge pull request #13964 from jtattermusch/reintroduce_13700

Reintroduce check_sources_and_headers optimization
diff --git a/tools/run_tests/sanity/check_sources_and_headers.py b/tools/run_tests/sanity/check_sources_and_headers.py
index 6a704eb..57ae5c5 100755
--- a/tools/run_tests/sanity/check_sources_and_headers.py
+++ b/tools/run_tests/sanity/check_sources_and_headers.py
@@ -69,13 +69,10 @@
 
 
 def target_has_header(target, name):
-    if name.startswith('absl/'): return True
-    # print target['name'], name
-    if name in target['headers']:
+    if name in target_headers_transitive[target['name']]:
         return True
-    for dep in target['deps']:
-        if target_has_header(get_target(dep), name):
-            return True
+    if name.startswith('absl/'):
+        return True
     if name in [
             'src/core/lib/profiling/stap_probes.h',
             'src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h'