rustfmt: cargo fmt --all completely stops formatting when failing on a single file

meta: rustc 1.30.0-nightly (2d4e34ca8 2018-09-09)

cargo fmt --version: rustfmt 0.99.4-nightly (1c40881 2018-08-27) rustfmt --version: rustfmt 0.99.4-nightly (1c40881 2018-08-27)

example crate: clippy

cd clippy_lints
cargo fmt --all

changed files:

    modified:   src/assign_ops.rs
    modified:   src/attrs.rs
cd clippy_lints
fd \.rs  -x rustfmt

changed files:

    modified:   src/assign_ops.rs
    modified:   src/attrs.rs
    modified:   src/blacklisted_name.rs
    modified:   src/block_in_if_condition.rs
    modified:   src/booleans.rs
    modified:   src/bytecount.rs
    modified:   src/const_static_lifetime.rs
    modified:   src/consts.rs
    modified:   src/cyclomatic_complexity.rs
    modified:   src/default_trait_access.rs
    modified:   src/deprecated_lints.rs
    modified:   src/doc.rs
    modified:   src/double_comparison.rs
    modified:   src/double_parens.rs
    modified:   src/drop_forget_ref.rs
    modified:   src/duration_subsec.rs
    modified:   src/else_if_without_else.rs
    modified:   src/empty_enum.rs
    modified:   src/entry.rs
    modified:   src/enum_clike.rs
    modified:   src/enum_glob_use.rs
    modified:   src/enum_variants.rs
    modified:   src/eq_op.rs
    modified:   src/erasing_op.rs
    modified:   src/escape.rs
    modified:   src/eta_reduction.rs
    modified:   src/eval_order_dependence.rs
    modified:   src/excessive_precision.rs
    modified:   src/explicit_write.rs
    modified:   src/fallible_impl_from.rs
    modified:   src/format.rs
    modified:   src/formatting.rs
    modified:   src/functions.rs
    modified:   src/identity_conversion.rs
    modified:   src/identity_op.rs
    modified:   src/if_let_redundant_pattern_matching.rs
    modified:   src/if_not_else.rs
    modified:   src/indexing_slicing.rs
    modified:   src/infallible_destructuring_match.rs
    modified:   src/infinite_iter.rs
    modified:   src/inherent_impl.rs
    modified:   src/inline_fn_without_body.rs
    modified:   src/int_plus_one.rs
    modified:   src/invalid_ref.rs
    modified:   src/items_after_statements.rs
    modified:   src/large_enum_variant.rs
    modified:   src/len_zero.rs
    modified:   src/let_if_seq.rs
    modified:   src/lifetimes.rs
    modified:   src/literal_representation.rs
    modified:   src/loops.rs
    modified:   src/map_clone.rs
    modified:   src/map_unit_fn.rs
    modified:   src/matches.rs
    modified:   src/misc.rs
    modified:   src/misc_early.rs
    modified:   src/missing_doc.rs
    modified:   src/missing_inline.rs
    modified:   src/multiple_crate_versions.rs
    modified:   src/mut_mut.rs
    modified:   src/mut_reference.rs
    modified:   src/mutex_atomic.rs
    modified:   src/needless_bool.rs
    modified:   src/needless_borrow.rs
    modified:   src/needless_borrowed_ref.rs
    modified:   src/needless_pass_by_value.rs
    modified:   src/needless_update.rs
    modified:   src/neg_cmp_op_on_partial_ord.rs
    modified:   src/neg_multiply.rs
    modified:   src/new_without_default.rs
    modified:   src/no_effect.rs
    modified:   src/non_copy_const.rs
    modified:   src/non_expressive_names.rs
    modified:   src/ok_if_let.rs
    modified:   src/open_options.rs
    modified:   src/overflow_check_conditional.rs
    modified:   src/panic_unimplemented.rs
    modified:   src/partialeq_ne_impl.rs
    modified:   src/precedence.rs
    modified:   src/ptr.rs
    modified:   src/ptr_offset_with_cast.rs
    modified:   src/question_mark.rs
    modified:   src/ranges.rs
    modified:   src/redundant_field_names.rs
    modified:   src/reference.rs
    modified:   src/regex.rs
    modified:   src/replace_consts.rs
    modified:   src/returns.rs
    modified:   src/serde_api.rs
    modified:   src/shadow.rs
    modified:   src/strings.rs
    modified:   src/suspicious_trait_impl.rs
    modified:   src/swap.rs
    modified:   src/temporary_assignment.rs
    modified:   src/transmute.rs
    modified:   src/trivially_copy_pass_by_ref.rs
    modified:   src/types.rs
    modified:   src/unicode.rs
    modified:   src/unsafe_removed_from_name.rs
    modified:   src/unused_io_amount.rs
    modified:   src/unused_label.rs
    modified:   src/unwrap.rs
    modified:   src/use_self.rs
    modified:   src/utils/author.rs
    modified:   src/utils/camel_case.rs
    modified:   src/utils/conf.rs
    modified:   src/utils/constants.rs
    modified:   src/utils/higher.rs
    modified:   src/utils/hir_utils.rs
    modified:   src/utils/internal_lints.rs
    modified:   src/utils/ptr.rs
    modified:   src/utils/sugg.rs
    modified:   src/vec.rs
    modified:   src/zero_div_zero.rs

What is going on here?

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Comments: 16 (14 by maintainers)

Most upvoted comments

I’d like to mention that as #3055 has been fixed, this does not happen to me anymore. However, this issue seems to be a general issue which rustfmt may die, and just abort the formatting of the rest of files.

It would be good if it at least prints something on the stderr so the user knows it is stopping the formatting without completing.