aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/primitives/string.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/primitives/string.py
parentd93d01b6c5c98a77e057b914e8d66b01d2a10771 (diff)
downloadmeson-6b00c7dc810131da65029598b97abbcf3584067c.zip
meson-6b00c7dc810131da65029598b97abbcf3584067c.tar.gz
meson-6b00c7dc810131da65029598b97abbcf3584067c.tar.bz2
Remove helpers.check_stringlist()
Diffstat (limited to 'mesonbuild/interpreter/primitives/string.py')
-rw-r--r--mesonbuild/interpreter/primitives/string.py8
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