difftreelog
fix(parser) slice case with present end and missing step
in: master
1 file changed
crates/jsonnet-parser/src/lib.rsdiffbeforeafterboth195 rule slice_part(s: &ParserSettings) -> Option<LocExpr>195 rule slice_part(s: &ParserSettings) -> Option<LocExpr>196 = e:(_ e:expr(s) _{e})? {e}196 = e:(_ e:expr(s) _{e})? {e}197 pub rule slice_desc(s: &ParserSettings) -> SliceDesc197 pub rule slice_desc(s: &ParserSettings) -> SliceDesc198 = start:slice_part(s) ":" pair:(end:slice_part(s) ":" step:slice_part(s) {(end, step)})? {198 = start:slice_part(s) ":" pair:(end:slice_part(s) step:(":" e:slice_part(s){e})? {(end, step.flatten())})? {199 let (end, step) = if let Some((end, step)) = pair {199 let (end, step) = if let Some((end, step)) = pair {200 (end, step)200 (end, step)201 }else{201 }else{357357358 #[test]358 #[test]359 fn slice() {359 fn slice() {360 println!("{:?}", parse!("a[1:]"));360 parse!("a[1:]");361 println!("{:?}", parse!("a[1::]"));361 parse!("a[1::]");362 println!("{:?}", parse!("a[:1:]"));362 parse!("a[:1:]");363 println!("{:?}", parse!("a[::1]"));363 parse!("a[::1]");364 parse!("str[:len - 1]");364 }365 }365366366 #[test]367 #[test]