diff --git a/crates/py2erg/convert.rs b/crates/py2erg/convert.rs index f0b7517..fa3de7b 100644 --- a/crates/py2erg/convert.rs +++ b/crates/py2erg/convert.rs @@ -1886,6 +1886,7 @@ impl ASTConverter { ); method.call1(self.convert_expr(*subs.slice)) } + // [:] == [slice(None)] // [start:] == [slice(start, None)] // [:stop] == [slice(stop)] // [start:stop] == [slice(start, stop)] @@ -1905,6 +1906,14 @@ impl ASTConverter { if let Some(step) = step { args.push_pos(PosArg::new(step)); } + if args.is_empty() { + args.push_pos(PosArg::new(Expr::Literal(Literal::new(Token::new( + TokenKind::NoneLit, + "None", + loc.row.get(), + loc.column.to_zero_indexed(), + ))))); + } let slice = self.convert_ident("slice".to_string(), loc); slice.call(args).into() } diff --git a/tests/list.py b/tests/list.py index 0548b75..4fd6ead 100644 --- a/tests/list.py +++ b/tests/list.py @@ -1,5 +1,9 @@ l = [1, 2, 3] _ = l[1:2] +_ = l[:] +_ = l[1:] +_ = l[:1] +_ = l[1:1:1] print(l[2]) print(l["a"]) # ERR