use std::cmp::min;
use config::lists::*;
-use syntax::source_map::{BytePos, SourceMap, Span};
use syntax::parse::token::DelimToken;
+use syntax::source_map::{BytePos, SourceMap, Span};
use syntax::{ast, ptr};
use chains::rewrite_chain;
use closures;
-use source_map::{LineRangeUtils, SpanUtils};
use comment::{
combine_strs_with_missing_comments, contains_comment, recover_comment_removed, rewrite_comment,
rewrite_missing_comment, CharClasses, FindUncommented,
use patterns::{can_be_overflowed_pat, is_short_pattern, TuplePatField};
use rewrite::{Rewrite, RewriteContext};
use shape::{Indent, Shape};
+use source_map::{LineRangeUtils, SpanUtils};
use spanned::Spanned;
use string::{rewrite_string, StringFormat};
use types::{can_be_overflowed_type, rewrite_path, PathContext};
// We do not format these expressions yet, but they should still
// satisfy our width restrictions.
ast::ExprKind::InlineAsm(..) => Some(context.snippet(expr.span).to_owned()),
- ast::ExprKind::Catch(ref block) => {
- if let rw @ Some(_) = rewrite_single_line_block(
- context,
- "do catch ",
- block,
- Some(&expr.attrs),
- None,
- shape,
- ) {
+ ast::ExprKind::TryBlock(ref block) => {
+ if let rw @ Some(_) =
+ rewrite_single_line_block(context, "try ", block, Some(&expr.attrs), None, shape)
+ {
rw
} else {
- // 9 = `do catch `
+ // 9 = `try `
let budget = shape.width.saturating_sub(9);
Some(format!(
"{}{}",
- "do catch ",
+ "try ",
rewrite_block(
block,
Some(&expr.attrs),
))
}
}
- // FIXME(#2743)
- ast::ExprKind::ObsoleteInPlace(..) => unimplemented!(),
+ ast::ExprKind::ObsoleteInPlace(ref lhs, ref rhs) => lhs
+ .rewrite(context, shape)
+ .map(|s| s + " <-")
+ .and_then(|lhs| rewrite_assign_rhs(context, lhs, &**rhs, shape)),
ast::ExprKind::Async(capture_by, _node_id, ref block) => {
let mover = if capture_by == ast::CaptureBy::Value {
"move "
return None;
}
- if block.stmts.is_empty() && !block_contains_comment(block, context.source_map) && shape.width >= 2
+ if block.stmts.is_empty()
+ && !block_contains_comment(block, context.source_map)
+ && shape.width >= 2
{
return Some(format!("{}{}{{}}", prefix, label_str));
}