aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreterobjects.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2021-09-01 23:46:56 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2021-09-25 12:44:11 +0200
commit6b00c7dc810131da65029598b97abbcf3584067c (patch)
treeb5837f7f8fee220c9212e49af411e08285a8d1ae /mesonbuild/interpreter/interpreterobjects.py
parentd93d01b6c5c98a77e057b914e8d66b01d2a10771 (diff)
downloadmeson-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.py23
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