diff options
Diffstat (limited to 'mesonbuild/interpreter/primitives/string.py')
-rw-r--r-- | mesonbuild/interpreter/primitives/string.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/primitives/string.py b/mesonbuild/interpreter/primitives/string.py index 6b7155a..82da6ce 100644 --- a/mesonbuild/interpreter/primitives/string.py +++ b/mesonbuild/interpreter/primitives/string.py @@ -64,6 +64,7 @@ class StringHolder(ObjectHolder[str]): # Use actual methods for functions that require additional checks self.operators.update({ MesonOperator.DIV: self.op_div, + MesonOperator.INDEX: self.op_index, }) def display_name(self) -> str: @@ -162,6 +163,13 @@ class StringHolder(ObjectHolder[str]): def op_div(self, other: str) -> str: return (PurePath(self.held_object) / other).as_posix() + @typed_operator(MesonOperator.INDEX, int) + def op_index(self, other: int) -> str: + try: + return self.held_object[other] + except IndexError: + raise InvalidArguments(f'Index {other} out of bounds of string of size {len(self.held_object)}.') + class MesonVersionString(str): pass |