Skip to content

Commit 51c11fc

Browse files
committed
checks: don't rely on set methods of pkg.inherit and pkg.inherited
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
1 parent 65e3aac commit 51c11fc

2 files changed

Lines changed: 11 additions & 9 deletions

File tree

‎src/pkgcheck/checks/codingstyle.py‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,9 +1006,7 @@ def get_eclass(self, export, pkg):
10061006

10071007
# last exporting eclass takes precedence for multiple inheritance
10081008
if len(eclass) > 1:
1009-
if inherited := pkg.inherited.intersection(eclass):
1010-
eclass = (x for x in reversed(pkg.inherited) if x in inherited)
1011-
else:
1009+
if not (eclass := [x for x in reversed(pkg.inherited) if x in eclass]):
10121010
return
10131011

10141012
return next(iter(eclass))
@@ -1039,7 +1037,7 @@ def feed(self, pkg):
10391037
if name == "inherit":
10401038
# register conditional eclasses
10411039
eclasses = call.split()[1:]
1042-
if not pkg.inherited.intersection(eclasses):
1040+
if not any(x in pkg.inherited for x in eclasses):
10431041
conditional.update(eclasses)
10441042
continue
10451043
# Also ignore vars since any used in arithmetic expansions, i.e.
@@ -1104,7 +1102,7 @@ def feed(self, pkg):
11041102
# SRC_URI, S, ...) and no functions
11051103
unused.discard(eclass)
11061104

1107-
for eclass in pkg.inherited.intersection(used):
1105+
for eclass in (x for x in pkg.inherited if x in used):
11081106
for lineno, name, usage in used[eclass]:
11091107
if name in self.internals[eclass]:
11101108
yield InternalEclassUsage(eclass, lineno, usage, pkg=pkg)

‎src/pkgcheck/checks/eclass.py‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,8 @@ def check_provided_eclasses(self, pkg, inherits: list[tuple[list[str], int]]):
274274
provided: (eclass, lineno + 1)
275275
for eclasses, lineno in inherits
276276
for eclass in eclasses
277-
for provided in pkg.inherit.intersection(self.eclass_cache[eclass].provides)
277+
for provided in pkg.inherit
278+
if provided in self.eclass_cache[eclass].provides
278279
}
279280
for provided, (eclass, lineno) in provided_eclasses.items():
280281
yield ProvidedEclassInherit(eclass, pkg=pkg, line=provided, lineno=lineno)
@@ -308,10 +309,13 @@ def feed(self, pkg):
308309
yield from self.check_deprecated_variables(pkg, inherits)
309310
yield from self.check_deprecated_functions(pkg, inherits)
310311

311-
for eclass in pkg.inherit.intersection(self.dead_eclasses):
312-
yield DeadEclass(eclass, pkg=pkg)
312+
for eclass in pkg.inherit:
313+
if eclass in self.dead_eclasses:
314+
yield DeadEclass(eclass, pkg=pkg)
313315

314-
for eclass in pkg.inherit.intersection(self.deprecated_eclasses):
316+
for eclass in pkg.inherit:
317+
if eclass not in self.deprecated_eclasses:
318+
continue
315319
replacement = self.deprecated_eclasses[eclass]
316320
if not isinstance(replacement, str):
317321
replacement = None

0 commit comments

Comments
 (0)