lib/modules: Short-circuit unmatchedDefns when configs is empty

This commit is contained in:
Robert Hensing 2021-10-31 19:10:13 +01:00
parent e544ee88fa
commit d6ebd537e5

View File

@ -430,6 +430,12 @@ rec {
# an attrset 'name' => list of unmatched definitions for 'name' # an attrset 'name' => list of unmatched definitions for 'name'
unmatchedDefnsByName = unmatchedDefnsByName =
if configs == []
then
# When no config values exist, there can be no unmatched config, so
# we short circuit and avoid evaluating more _options_ than necessary.
{}
else
# Propagate all unmatched definitions from nested option sets # Propagate all unmatched definitions from nested option sets
mapAttrs (n: v: v.unmatchedDefns) resultsByName mapAttrs (n: v: v.unmatchedDefns) resultsByName
# Plus the definitions for the current prefix that don't have a matching option # Plus the definitions for the current prefix that don't have a matching option