MCPcopy Index your code
hub / github.com/RustPython/RustPython / into_expr

Method into_expr

crates/vm/src/stdlib/_ast/string.rs:320–353  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

318
319impl JoinedStr {
320 pub(super) fn into_expr(self) -> ast::Expr {
321 let Self { range, values } = self;
322 ast::Expr::FString(ast::ExprFString {
323 node_index: Default::default(),
324 range: Default::default(),
325 value: match values.len() {
326 // ruff represents an empty fstring like this:
327 0 => ast::FStringValue::single(ast::FString {
328 node_index: Default::default(),
329 range,
330 elements: vec![].into(),
331 flags: ast::FStringFlags::empty(),
332 }),
333 1 => ast::FStringValue::single(
334 Box::<[_]>::into_iter(values)
335 .map(joined_str_part_to_ruff_fstring_element)
336 .map(|element| ast::FString {
337 node_index: Default::default(),
338 range,
339 elements: vec![element].into(),
340 flags: ast::FStringFlags::empty(),
341 })
342 .next()
343 .expect("FString has exactly one part"),
344 ),
345 _ => ast::FStringValue::concatenated(
346 Box::<[_]>::into_iter(values)
347 .map(joined_str_part_to_ruff_fstring_element)
348 .map(ruff_fstring_element_to_ruff_fstring_part)
349 .collect(),
350 ),
351 },
352 })
353 }
354}
355
356fn joined_str_part_to_ruff_fstring_element(part: JoinedStrPart) -> ast::InterpolatedStringElement {

Callers 1

ast_from_objectMethod · 0.45

Calls 4

collectMethod · 0.80
lenMethod · 0.45
nextMethod · 0.45
mapMethod · 0.45

Tested by

no test coverage detected