diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2021-09-01 23:46:56 +0200 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2021-09-25 12:44:11 +0200 |
commit | 6b00c7dc810131da65029598b97abbcf3584067c (patch) | |
tree | b5837f7f8fee220c9212e49af411e08285a8d1ae /mesonbuild/interpreter/interpreterobjects.py | |
parent | d93d01b6c5c98a77e057b914e8d66b01d2a10771 (diff) | |
download | meson-6b00c7dc810131da65029598b97abbcf3584067c.zip meson-6b00c7dc810131da65029598b97abbcf3584067c.tar.gz meson-6b00c7dc810131da65029598b97abbcf3584067c.tar.bz2 |
Remove helpers.check_stringlist()
Diffstat (limited to 'mesonbuild/interpreter/interpreterobjects.py')
-rw-r--r-- | mesonbuild/interpreter/interpreterobjects.py | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py index 78c7fb9..fca371c 100644 --- a/mesonbuild/interpreter/interpreterobjects.py +++ b/mesonbuild/interpreter/interpreterobjects.py @@ -14,10 +14,10 @@ from .. import mlog from ..modules import ModuleReturnValue, ModuleObject, ModuleState, ExtensionModule from ..backend.backends import TestProtocol from ..interpreterbase import ( - ContainerTypeInfo, KwargInfo, + ContainerTypeInfo, KwargInfo, MesonOperator, InterpreterObject, MesonInterpreterObject, ObjectHolder, MutableInterpreterObject, FeatureCheckBase, FeatureNewKwargs, FeatureNew, FeatureDeprecated, - typed_pos_args, typed_kwargs, permittedKwargs, + typed_pos_args, typed_kwargs, typed_operator, permittedKwargs, noArgsFlattening, noPosargs, noKwargs, unholder_return, TYPE_var, TYPE_kwargs, TYPE_nvar, TYPE_nkwargs, flatten, resolve_second_level_holders, InterpreterException, InvalidArguments, InvalidCode) from ..interpreter.type_checking import NoneType @@ -912,6 +912,10 @@ class CustomTargetHolder(ObjectHolder[build.CustomTarget]): 'to_list': self.to_list_method, }) + self.operators.update({ + MesonOperator.INDEX: self.op_index, + }) + def __repr__(self) -> str: r = '<{} {}: {}>' h = self.held_object @@ -931,14 +935,13 @@ class CustomTargetHolder(ObjectHolder[build.CustomTarget]): result.append(i) return result - def __getitem__(self, index: int) -> build.CustomTargetIndex: - return self.held_object[index] - - def __setitem__(self, index: int, value: T.Any) -> None: # lgtm[py/unexpected-raise-in-special-method] - raise InterpreterException('Cannot set a member of a CustomTarget') - - def __delitem__(self, index: int) -> None: # lgtm[py/unexpected-raise-in-special-method] - raise InterpreterException('Cannot delete a member of a CustomTarget') + @noKwargs + @typed_operator(MesonOperator.INDEX, int) + def op_index(self, other: int) -> build.CustomTargetIndex: + try: + return self.held_object[other] + except IndexError: + raise InvalidArguments(f'Index {other} out of bounds of custom target {self.held_object.name} output of size {len(self.held_object)}.') class RunTargetHolder(ObjectHolder[build.RunTarget]): pass |