From eb1aaf985aec01f48d86b5ef8fbfd8c3d68fff47 Mon Sep 17 00:00:00 2001 From: Charles Brunet Date: Fri, 14 Feb 2025 08:21:20 -0500 Subject: [PATCH] Remove indirection for OptionKey.as_root() et al. Removes one function call and a few comparisons. --- mesonbuild/options.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mesonbuild/options.py b/mesonbuild/options.py index e35d55850bb9..3a45fbe9059b 100644 --- a/mesonbuild/options.py +++ b/mesonbuild/options.py @@ -252,19 +252,19 @@ def evolve(self, subproject if subproject != _BAD_VALUE else self.subproject, # None is a valid value so it can'the default value in method declaration. machine if machine is not None else self.machine) - def as_root(self) -> 'OptionKey': + def as_root(self) -> OptionKey: """Convenience method for key.as_root().""" - if self.subproject is None or self.subproject == '': + if not self.subproject: return self - return self.evolve(subproject='') + return OptionKey(self.name, subproject='', machine=self.machine) - def as_build(self) -> 'OptionKey': + def as_build(self) -> OptionKey: """Convenience method for key.as_build().""" - return self.evolve(machine=MachineChoice.BUILD) + return OptionKey(self.name, self.subproject, machine=MachineChoice.BUILD) - def as_host(self) -> 'OptionKey': + def as_host(self) -> OptionKey: """Convenience method for key.as_host().""" - return self.evolve(machine=MachineChoice.HOST) + return OptionKey(self.name, self.subproject, machine=MachineChoice.HOST) def has_module_prefix(self) -> bool: return '.' in self.name @@ -833,7 +833,7 @@ def get_value_object_for(self, key: 'T.Union[OptionKey, str]') -> AnyOptionType: return potential else: if potential is None: - parent_key = key.evolve(subproject=None) + parent_key = OptionKey(key.name, subproject=None, machine=key.machine) if parent_key not in self.options: raise KeyError(f'Tried to access nonexistant project parent option {parent_key}.') return self.options[parent_key]