@@ -280,7 +280,7 @@ def collect_imports(ctx, semantics):
280280 dep [BuiltinPyInfo ].imports
281281 for dep in ctx .attr .deps
282282 if BuiltinPyInfo in dep
283- ])
283+ ] if BuiltinPyInfo != None else [] )
284284
285285def collect_runfiles (ctx , files = depset ()):
286286 """Collects the necessary files from the rule's context.
@@ -374,7 +374,7 @@ def create_py_info(ctx, *, direct_sources, direct_pyc_files, imports):
374374
375375 for target in ctx .attr .deps :
376376 # PyInfo may not be present e.g. cc_library rules.
377- if PyInfo in target or BuiltinPyInfo in target :
377+ if PyInfo in target or ( BuiltinPyInfo != None and BuiltinPyInfo in target ) :
378378 py_info .merge (_get_py_info (target ))
379379 else :
380380 # TODO(b/228692666): Remove this once non-PyInfo targets are no
@@ -395,7 +395,7 @@ def create_py_info(ctx, *, direct_sources, direct_pyc_files, imports):
395395 for target in ctx .attr .data :
396396 # TODO(b/234730058): Remove checking for PyInfo in data once depot
397397 # cleaned up.
398- if PyInfo in target or BuiltinPyInfo in target :
398+ if PyInfo in target or ( BuiltinPyInfo != None and BuiltinPyInfo in target ) :
399399 info = _get_py_info (target )
400400 py_info .merge_uses_shared_libraries (info .uses_shared_libraries )
401401 else :
@@ -410,7 +410,7 @@ def create_py_info(ctx, *, direct_sources, direct_pyc_files, imports):
410410 return py_info .build (), deps_transitive_sources , py_info .build_builtin_py_info ()
411411
412412def _get_py_info (target ):
413- return target [PyInfo ] if PyInfo in target else target [BuiltinPyInfo ]
413+ return target [PyInfo ] if PyInfo in target or BuiltinPyInfo == None else target [BuiltinPyInfo ]
414414
415415def create_instrumented_files_info (ctx ):
416416 return _coverage_common .instrumented_files_info (
0 commit comments