diff --git a/src/prolog/machine/partial_string.rs b/src/prolog/machine/partial_string.rs index ea36d409..2d821ac4 100644 --- a/src/prolog/machine/partial_string.rs +++ b/src/prolog/machine/partial_string.rs @@ -202,7 +202,11 @@ impl PartialString { #[inline] pub fn range_from(&self, index: RangeFrom) -> PStrIter { - PStrIter::from(self.buf, self.len - '\u{0}'.len_utf8(), index.start) + if self.len >= '\u{0}'.len_utf8() { + PStrIter::from(self.buf, self.len - '\u{0}'.len_utf8(), index.start) + } else { + PStrIter::from(self.buf, 0, 0) + } } #[inline]