Skip to content

Commit f68ce8a

Browse files
committed
Changes needed for override warn
1 parent f61065e commit f68ce8a

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

conan/cli/printers/graph.py

+2
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ def _format_resolved(title, reqs_to_print):
7878
output.info("Overrides", Color.BRIGHT_YELLOW)
7979
for req, override_info in overrides.serialize().items():
8080
output.info(" {}: {}".format(req, override_info), Color.BRIGHT_CYAN)
81+
if override_info == [None]:
82+
output.warning("Unused override")
8183

8284
if deprecated:
8385
output.info("Deprecated", Color.BRIGHT_YELLOW)

conans/client/graph/graph.py

+6-8
Original file line numberDiff line numberDiff line change
@@ -313,19 +313,17 @@ def create(nodes):
313313
overrides = {}
314314
for n in nodes:
315315
for r in n.conanfile.requires.values():
316-
if r.override and not r.overriden_ref: # overrides are not real graph edges
317-
continue
318-
if r.overriden_ref:
319-
overrides.setdefault(r.overriden_ref, set()).add(r.override_ref)
320-
else:
321-
overrides.setdefault(r.ref, set()).add(None)
316+
if r.override:
317+
if r.overriden_ref:
318+
overrides.setdefault(r.overriden_ref, set()).add(r.override_ref)
319+
else:
320+
overrides.setdefault(r.ref, set()).add(None)
322321

323322
# reduce, eliminate those overrides definitions that only override to None, that is, not
324323
# really an override
325324
result = Overrides()
326325
for require, override_info in overrides.items():
327-
if len(override_info) != 1 or None not in override_info:
328-
result._overrides[require] = override_info
326+
result._overrides[require] = override_info
329327
return result
330328

331329
def get(self, require):

test/integration/graph/require_override_test.py

+5
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,8 @@ def test_can_override_even_versions_with_build_metadata(self):
4040
c.assert_listed_require({"lib/1.0+xyz": "Cache",
4141
"pkg/1.0": "Cache"})
4242

43+
def test_discarded_override(self):
44+
tc = TestClient(light=True)
45+
tc.save({"conanfile.py": GenConanfile("lib").with_requirement("pkg/1.0", override=True)})
46+
tc.run("graph info .")
47+
assert "Unused override" in tc.out

0 commit comments

Comments
 (0)