Skip to content

Commit bf59103

Browse files
authored
Merge pull request RustPython#2802 from eldpswp99/iskeyword-none-check
add iskeyword None check
2 parents 653858e + 1c0bd83 commit bf59103

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

Lib/test/test_keyword.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ def test_true_is_a_keyword(self):
99
def test_uppercase_true_is_not_a_keyword(self):
1010
self.assertFalse(keyword.iskeyword('TRUE'))
1111

12-
# TODO: RUSTPYTHON
13-
@unittest.expectedFailure
1412
def test_none_value_is_not_a_keyword(self):
1513
self.assertFalse(keyword.iskeyword(None))
1614

vm/src/stdlib/keyword.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@ mod decl {
66
use itertools::Itertools;
77
use rustpython_parser::lexer;
88

9-
use crate::builtins::pystr::PyStrRef;
9+
use crate::builtins::PyStr;
1010
use crate::vm::VirtualMachine;
1111
use crate::PyObjectRef;
1212

1313
#[pyfunction]
14-
fn iskeyword(s: PyStrRef) -> bool {
15-
lexer::KEYWORDS.contains_key(s.as_str())
14+
fn iskeyword(s: PyObjectRef) -> bool {
15+
if let Some(s) = s.payload::<PyStr>() {
16+
lexer::KEYWORDS.contains_key(s.as_str())
17+
} else {
18+
false
19+
}
1620
}
1721

1822
#[pyattr]

0 commit comments

Comments
 (0)