Skip to content

Commit f0e7427

Browse files
authored
Merge pull request #5808 from ShaharNaveh/cln-general
2 parents e4c8f2b + fc68da7 commit f0e7427

File tree

5 files changed

+38
-28
lines changed

5 files changed

+38
-28
lines changed

vm/src/bytes_inner.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ pub struct ByteInnerTranslateOptions {
214214
impl ByteInnerTranslateOptions {
215215
pub fn get_value(self, vm: &VirtualMachine) -> PyResult<(Vec<u8>, Vec<u8>)> {
216216
let table = self.table.map_or_else(
217-
|| Ok((0..=255).collect::<Vec<u8>>()),
217+
|| Ok((0..=u8::MAX).collect::<Vec<u8>>()),
218218
|v| {
219219
let bytes = v
220220
.try_into_value::<PyBytesInner>(vm)
@@ -424,8 +424,8 @@ impl PyBytesInner {
424424
let mut new: Vec<u8> = Vec::with_capacity(self.elements.len());
425425
for w in &self.elements {
426426
match w {
427-
65..=90 => new.push(w.to_ascii_lowercase()),
428-
97..=122 => new.push(w.to_ascii_uppercase()),
427+
b'A'..=b'Z' => new.push(w.to_ascii_lowercase()),
428+
b'a'..=b'z' => new.push(w.to_ascii_uppercase()),
429429
x => new.push(*x),
430430
}
431431
}
@@ -491,10 +491,11 @@ impl PyBytesInner {
491491
vm: &VirtualMachine,
492492
) -> PyResult<Vec<u8>> {
493493
let (width, fillchar) = options.get_value("center", vm)?;
494-
Ok(if self.len() as isize >= width {
494+
let len = self.len();
495+
Ok(if len as isize >= width {
495496
Vec::from(&self.elements[..])
496497
} else {
497-
pad(&self.elements, width as usize, fillchar, self.len())
498+
pad(&self.elements, width as usize, fillchar, len)
498499
})
499500
}
500501

@@ -564,7 +565,7 @@ impl PyBytesInner {
564565
}
565566
let mut res = vec![];
566567

567-
for i in 0..=255 {
568+
for i in 0..=u8::MAX {
568569
res.push(if let Some(position) = from.elements.find_byte(i) {
569570
to.elements[position]
570571
} else {
@@ -929,7 +930,7 @@ impl PyBytesInner {
929930

930931
for i in &self.elements {
931932
match i {
932-
65..=90 | 97..=122 => {
933+
b'A'..=b'Z' | b'a'..=b'z' => {
933934
if spaced {
934935
res.push(i.to_ascii_uppercase());
935936
spaced = false
@@ -1011,6 +1012,7 @@ impl AnyStrWrapper<[u8]> for PyBytesInner {
10111012
fn as_ref(&self) -> Option<&[u8]> {
10121013
Some(&self.elements)
10131014
}
1015+
10141016
fn is_empty(&self) -> bool {
10151017
self.elements.is_empty()
10161018
}
@@ -1036,9 +1038,11 @@ impl anystr::AnyChar for u8 {
10361038
fn is_lowercase(self) -> bool {
10371039
self.is_ascii_lowercase()
10381040
}
1041+
10391042
fn is_uppercase(self) -> bool {
10401043
self.is_ascii_uppercase()
10411044
}
1045+
10421046
fn bytes_len(self) -> usize {
10431047
1
10441048
}

vm/src/dict_inner.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ impl GenIndexes {
146146
mask,
147147
}
148148
}
149+
149150
fn next(&mut self) -> usize {
150151
let prev = self.idx;
151152
self.idx = prev

vm/src/exceptions.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,10 @@ impl VirtualMachine {
237237
let colno = offset - 1 - spaces;
238238
let end_colno = end_offset - 1 - spaces;
239239
if colno >= 0 {
240-
let caret_space = l_text.chars().collect::<Vec<_>>()[..colno as usize]
241-
.iter()
242-
.map(|c| if c.is_whitespace() { *c } else { ' ' })
240+
let caret_space = l_text
241+
.chars()
242+
.take(colno as usize)
243+
.map(|c| if c.is_whitespace() { c } else { ' ' })
243244
.collect::<String>();
244245

245246
let mut error_width = end_colno - colno;
@@ -1619,24 +1620,23 @@ pub(super) mod types {
16191620
.clone()
16201621
.downcast::<crate::builtins::PyTuple>()
16211622
{
1622-
#[allow(clippy::len_zero)]
1623-
if location_tuple.len() >= 1 {
1624-
zelf.set_attr("filename", location_tuple.fast_getitem(0).clone(), vm)?;
1625-
}
1626-
if location_tuple.len() >= 2 {
1627-
zelf.set_attr("lineno", location_tuple.fast_getitem(1).clone(), vm)?;
1628-
}
1629-
if location_tuple.len() >= 3 {
1630-
zelf.set_attr("offset", location_tuple.fast_getitem(2).clone(), vm)?;
1631-
}
1632-
if location_tuple.len() >= 4 {
1633-
zelf.set_attr("text", location_tuple.fast_getitem(3).clone(), vm)?;
1634-
}
1635-
if location_tuple.len() >= 5 {
1636-
zelf.set_attr("end_lineno", location_tuple.fast_getitem(4).clone(), vm)?;
1637-
}
1638-
if location_tuple.len() >= 6 {
1639-
zelf.set_attr("end_offset", location_tuple.fast_getitem(5).clone(), vm)?;
1623+
let location_tup_len = location_tuple.len();
1624+
for (i, &attr) in [
1625+
"filename",
1626+
"lineno",
1627+
"offset",
1628+
"text",
1629+
"end_lineno",
1630+
"end_offset",
1631+
]
1632+
.iter()
1633+
.enumerate()
1634+
{
1635+
if location_tup_len > i {
1636+
zelf.set_attr(attr, location_tuple.fast_getitem(i).clone(), vm)?;
1637+
} else {
1638+
break;
1639+
}
16401640
}
16411641
}
16421642
}

vm/src/readline.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,15 +138,19 @@ impl<H: Helper> Readline<H> {
138138
pub fn new(helper: H) -> Self {
139139
Readline(readline_inner::Readline::new(helper))
140140
}
141+
141142
pub fn load_history(&mut self, path: &Path) -> OtherResult<()> {
142143
self.0.load_history(path)
143144
}
145+
144146
pub fn save_history(&mut self, path: &Path) -> OtherResult<()> {
145147
self.0.save_history(path)
146148
}
149+
147150
pub fn add_history_entry(&mut self, entry: &str) -> OtherResult<()> {
148151
self.0.add_history_entry(entry)
149152
}
153+
150154
pub fn readline(&mut self, prompt: &str) -> ReadlineResult {
151155
self.0.readline(prompt)
152156
}

vm/src/sliceable.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ impl SequenceIndexOp for BigInt {
331331
self.try_into().unwrap_or(len)
332332
}
333333
}
334+
334335
fn wrapped_at(&self, _len: usize) -> Option<usize> {
335336
unimplemented!("please add one once we need it")
336337
}

0 commit comments

Comments
 (0)