Skip to content

Commit

Permalink
Remove DepRefInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
hlopko committed Jun 23, 2021
1 parent be8413c commit ea1b97e
Showing 1 changed file with 9 additions and 17 deletions.
26 changes: 9 additions & 17 deletions rust/private/rust_analyzer.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,6 @@ def _crate_id(crate_info):
"""
return "ID-" + crate_info.root.path

_DepRefInfo = provider(
doc = "RustAnalyzerInfo holds rust crate metadata for targets",
fields = {
"crate": "BuildInfo: build info for this crate if present",
"name": "List[String]: features or other compilation --cfg settings",
},
)

def _create_crate(ctx, infos, crate_mapping):
"""Creates a crate in the rust-project.json format.
Expand Down Expand Up @@ -177,16 +169,16 @@ def _create_crate(ctx, infos, crate_mapping):
}
crate["env"].update(canonical_info.env)

duplicated_deps = []
for info in infos:
for dep in info.deps:
if dep.crate.name == crate_name:
continue
duplicated_deps.append(_DepRefInfo(crate = crate_mapping[_crate_id(dep.crate)], name = dep.crate.name))

deps = [{"crate": d.crate, "name": d.name} for d in collections.uniq(duplicated_deps)]
# Collect deduplicated pairs of (crate idx from crate_mapping, crate name).
# Using dict because we don't have sets in Starlark.
deps = {
(crate_mapping[_crate_id(dep.crate)], dep.crate.name): None
for info in infos
for dep in info.deps
if dep.crate.name != crate_name
}.keys()

crate["deps"] = deps
crate["deps"] = [{"crate": d[0], "name": d[1]} for d in deps]
crate["cfg"] = canonical_info.cfgs
crate["target"] = find_toolchain(ctx).target_triple
if canonical_info.proc_macro_dylib_path != None:
Expand Down

0 comments on commit ea1b97e

Please sign in to comment.