diff options
Diffstat (limited to 'mesonbuild/mesonlib.py')
-rw-r--r-- | mesonbuild/mesonlib.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index f73778e..805e679 100644 --- a/mesonbuild/mesonlib.py +++ b/mesonbuild/mesonlib.py @@ -1738,8 +1738,9 @@ def run_once(func: T.Callable[..., _T]) -> T.Callable[..., _T]: class OptionProxy(T.Generic[_T]): - def __init__(self, value: _T): + def __init__(self, value: _T, choices: T.Optional[T.List[str]] = None): self.value = value + self.choices = choices class OptionOverrideProxy(collections.abc.MutableMapping): @@ -1761,7 +1762,7 @@ class OptionOverrideProxy(collections.abc.MutableMapping): if key in self.options: opt = self.options[key] if key in self.overrides: - return OptionProxy(opt.validate_value(self.overrides[key])) + return OptionProxy(opt.validate_value(self.overrides[key]), getattr(opt, 'choices', None)) return opt raise KeyError('Option not found', key) |