]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #43015 - arielb1:every-error-counts, r=eddyb
authorbors <bors@rust-lang.org>
Sun, 2 Jul 2017 13:22:23 +0000 (13:22 +0000)
committerbors <bors@rust-lang.org>
Sun, 2 Jul 2017 13:22:23 +0000 (13:22 +0000)
report the total number of errors on compilation failure

Prior to this PR, when we aborted because a "critical pass" failed, we displayed the number of errors from that critical pass. While that's the number of errors that caused compilation to abort in *that place*, that's not what people really want to know. Instead, always report the total number of errors, and don't bother to track the number of errors from the last pass that failed.

This changes the compiler driver API to handle errors more smoothly, therefore is a compiler-api-[breaking-change].

Fixes #42793.

r? @eddyb

295 files changed:
src/librustc/middle/resolve_lifetime.rs
src/librustc/session/mod.rs
src/librustc_driver/driver.rs
src/librustc_driver/lib.rs
src/librustc_errors/lib.rs
src/librustc_passes/static_recursion.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/lib.rs
src/librustdoc/test.rs
src/test/run-make/llvm-phase/test.rs
src/test/ui/block-result/block-must-not-have-result-do.stderr
src/test/ui/block-result/block-must-not-have-result-res.stderr
src/test/ui/block-result/block-must-not-have-result-while.stderr
src/test/ui/block-result/consider-removing-last-semi.stderr
src/test/ui/block-result/issue-11714.stderr
src/test/ui/block-result/issue-13428.stderr
src/test/ui/block-result/issue-13624.stderr
src/test/ui/block-result/issue-20862.stderr
src/test/ui/block-result/issue-22645.stderr
src/test/ui/block-result/issue-3563.stderr
src/test/ui/block-result/issue-5500.stderr
src/test/ui/block-result/unexpected-return-on-unit.stderr
src/test/ui/borrowck/borrowck-in-static.stderr
src/test/ui/borrowck/unboxed-closures-move-upvar-from-non-once-ref-closure.stderr
src/test/ui/check_match/issue-35609.stderr
src/test/ui/closure_context/issue-26046-fn-mut.stderr
src/test/ui/closure_context/issue-26046-fn-once.stderr
src/test/ui/closure_context/issue-42065.stderr
src/test/ui/codemap_tests/bad-format-args.stderr
src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr
src/test/ui/codemap_tests/empty_span.stderr
src/test/ui/codemap_tests/huge_multispan_highlight.stderr
src/test/ui/codemap_tests/issue-11715.stderr
src/test/ui/codemap_tests/issue-28308.stderr
src/test/ui/codemap_tests/one_line.stderr
src/test/ui/codemap_tests/overlapping_inherent_impls.stderr
src/test/ui/codemap_tests/overlapping_spans.stderr
src/test/ui/codemap_tests/tab.stderr
src/test/ui/codemap_tests/unicode.stderr
src/test/ui/coercion-missing-tail-expected-type.stderr
src/test/ui/compare-method/proj-outlives-region.stderr
src/test/ui/compare-method/region-extra-2.stderr
src/test/ui/compare-method/region-extra.stderr
src/test/ui/compare-method/region-unrelated.stderr
src/test/ui/compare-method/reordered-type-param.stderr
src/test/ui/compare-method/trait-bound-on-type-parameter.stderr
src/test/ui/compare-method/traits-misc-mismatch-1.stderr
src/test/ui/compare-method/traits-misc-mismatch-2.stderr
src/test/ui/cross-crate-macro-backtrace/main.stderr
src/test/ui/did_you_mean/E0178.stderr
src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-1.stderr
src/test/ui/did_you_mean/issue-21659-show-relevant-trait-impls-2.stderr
src/test/ui/did_you_mean/issue-31424.stderr
src/test/ui/did_you_mean/issue-34126.stderr
src/test/ui/did_you_mean/issue-34337.stderr
src/test/ui/did_you_mean/issue-35937.stderr
src/test/ui/did_you_mean/issue-36798.stderr
src/test/ui/did_you_mean/issue-36798_unknown_field.stderr
src/test/ui/did_you_mean/issue-37139.stderr
src/test/ui/did_you_mean/issue-38054-do-not-show-unresolved-names.stderr
src/test/ui/did_you_mean/issue-38147-1.stderr
src/test/ui/did_you_mean/issue-38147-2.stderr
src/test/ui/did_you_mean/issue-38147-3.stderr
src/test/ui/did_you_mean/issue-38147-4.stderr
src/test/ui/did_you_mean/issue-39544.stderr
src/test/ui/did_you_mean/issue-39802-show-5-trait-impls.stderr
src/test/ui/did_you_mean/issue-40006.stderr
src/test/ui/did_you_mean/issue-40396.stderr
src/test/ui/did_you_mean/issue-40823.stderr
src/test/ui/did_you_mean/issue-41679.stderr
src/test/ui/did_you_mean/recursion_limit.stderr
src/test/ui/did_you_mean/recursion_limit_deref.stderr
src/test/ui/did_you_mean/trait-object-reference-without-parens-suggestion.stderr
src/test/ui/dropck/dropck-eyepatch-extern-crate.stderr
src/test/ui/dropck/dropck-eyepatch-implies-unsafe-impl.stderr
src/test/ui/dropck/dropck-eyepatch-reorder.stderr
src/test/ui/dropck/dropck-eyepatch.stderr
src/test/ui/fmt/format-string-error.stderr
src/test/ui/impl-trait/equality.stderr
src/test/ui/impl-trait/issue-21659-show-relevant-trait-impls-3.stderr
src/test/ui/impl-trait/method-suggestion-no-duplication.stderr
src/test/ui/impl-trait/no-method-suggested-traits.stderr
src/test/ui/impl-trait/trait_type.stderr
src/test/ui/interior-mutability/interior-mutability.stderr
src/test/ui/invalid-module-declaration/invalid-module-declaration.stderr
src/test/ui/issue-22644.stderr
src/test/ui/issue-26548.stderr
src/test/ui/issue-33525.rs [new file with mode: 0644]
src/test/ui/issue-33525.stderr [new file with mode: 0644]
src/test/ui/issue-37311-type-length-limit/issue-37311.stderr
src/test/ui/issue-38875/issue_38875.stderr
src/test/ui/issue-40402-ref-hints/issue-40402-1.stderr
src/test/ui/issue-40402-ref-hints/issue-40402-2.stderr
src/test/ui/issue-41652/issue_41652.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-2.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-3.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-2.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-3.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-if-else.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.stderr
src/test/ui/lifetime-errors/ex1-return-one-existing-name-self-is-anon.stderr
src/test/ui/lifetime-errors/ex1b-return-no-names-if-else.stderr
src/test/ui/lifetime-errors/ex2a-push-one-existing-name-2.stderr
src/test/ui/lifetime-errors/ex2a-push-one-existing-name.stderr
src/test/ui/lifetime-errors/ex2b-push-no-existing-names.stderr
src/test/ui/lifetime-errors/ex2c-push-inference-variable.stderr
src/test/ui/lifetime-errors/ex2d-push-inference-variable-2.stderr
src/test/ui/lifetime-errors/ex2e-push-inference-variable-3.stderr
src/test/ui/lifetimes/borrowck-let-suggestion.stderr
src/test/ui/lint/command-line-lint-group-deny.stderr
src/test/ui/lint/command-line-lint-group-forbid.stderr
src/test/ui/lint/lint-group-style.stderr
src/test/ui/lint/outer-forbid.stderr
src/test/ui/loop-break-value-no-repeat.stderr
src/test/ui/macros/bad_hello.stderr
src/test/ui/macros/format-foreign.stderr
src/test/ui/macros/macro-backtrace-invalid-internals.stderr
src/test/ui/macros/macro-backtrace-nested.stderr
src/test/ui/macros/macro-backtrace-println.stderr
src/test/ui/mismatched_types/E0053.stderr
src/test/ui/mismatched_types/E0281.stderr
src/test/ui/mismatched_types/E0409.stderr
src/test/ui/mismatched_types/abridged.stderr
src/test/ui/mismatched_types/binops.stderr
src/test/ui/mismatched_types/cast-rfc0401.stderr
src/test/ui/mismatched_types/closure-arg-count.stderr
src/test/ui/mismatched_types/closure-mismatch.stderr
src/test/ui/mismatched_types/const-fn-in-trait.stderr
src/test/ui/mismatched_types/fn-variance-1.stderr
src/test/ui/mismatched_types/for-loop-has-unit-body.stderr
src/test/ui/mismatched_types/issue-19109.stderr
src/test/ui/mismatched_types/issue-26480.stderr
src/test/ui/mismatched_types/issue-35030.stderr
src/test/ui/mismatched_types/issue-36053-2.stderr
src/test/ui/mismatched_types/issue-38371.stderr
src/test/ui/mismatched_types/main.stderr
src/test/ui/mismatched_types/method-help-unsatisfied-bound.stderr
src/test/ui/mismatched_types/overloaded-calls-bad.stderr
src/test/ui/mismatched_types/trait-bounds-cant-coerce.stderr
src/test/ui/mismatched_types/trait-impl-fn-incompatibility.stderr
src/test/ui/mismatched_types/unboxed-closures-vtable-mismatch.stderr
src/test/ui/missing-items/issue-40221.stderr
src/test/ui/missing-items/m2.stderr
src/test/ui/missing-items/missing-type-parameter.stderr
src/test/ui/pub/pub-restricted-error-fn.stderr
src/test/ui/pub/pub-restricted-error.stderr
src/test/ui/pub/pub-restricted-non-path.stderr
src/test/ui/pub/pub-restricted.stderr
src/test/ui/reachable/expr_add.stderr
src/test/ui/reachable/expr_again.stderr
src/test/ui/reachable/expr_array.stderr
src/test/ui/reachable/expr_assign.stderr
src/test/ui/reachable/expr_block.stderr
src/test/ui/reachable/expr_box.stderr
src/test/ui/reachable/expr_call.stderr
src/test/ui/reachable/expr_cast.stderr
src/test/ui/reachable/expr_if.stderr
src/test/ui/reachable/expr_loop.stderr
src/test/ui/reachable/expr_match.stderr
src/test/ui/reachable/expr_method.stderr
src/test/ui/reachable/expr_repeat.stderr
src/test/ui/reachable/expr_return.stderr
src/test/ui/reachable/expr_struct.stderr
src/test/ui/reachable/expr_tup.stderr
src/test/ui/reachable/expr_type.stderr
src/test/ui/reachable/expr_unary.stderr
src/test/ui/reachable/expr_while.stderr
src/test/ui/regions-fn-subtyping-return-static.stderr
src/test/ui/resolve/enums-are-namespaced-xc.stderr
src/test/ui/resolve/issue-14254.stderr
src/test/ui/resolve/issue-16058.stderr
src/test/ui/resolve/issue-17518.stderr
src/test/ui/resolve/issue-18252.stderr
src/test/ui/resolve/issue-19452.stderr
src/test/ui/resolve/issue-23305.stderr
src/test/ui/resolve/issue-2356.stderr
src/test/ui/resolve/issue-24968.stderr
src/test/ui/resolve/issue-33876.stderr
src/test/ui/resolve/issue-3907-2.stderr
src/test/ui/resolve/issue-39226.stderr
src/test/ui/resolve/issue-5035-2.stderr
src/test/ui/resolve/issue-6702.stderr
src/test/ui/resolve/levenshtein.stderr
src/test/ui/resolve/privacy-struct-ctor.stderr
src/test/ui/resolve/resolve-assoc-suggestions.stderr
src/test/ui/resolve/resolve-hint-macro.stderr
src/test/ui/resolve/resolve-speculative-adjustment.stderr
src/test/ui/resolve/suggest-path-instead-of-mod-dot-item.stderr
src/test/ui/resolve/token-error-correct-2.stderr
src/test/ui/resolve/token-error-correct-3.stderr
src/test/ui/resolve/token-error-correct.stderr
src/test/ui/resolve/tuple-struct-alias.stderr
src/test/ui/resolve/unresolved_static_type_field.stderr
src/test/ui/shadowed-type-parameter.stderr
src/test/ui/span/E0046.stderr
src/test/ui/span/E0057.stderr
src/test/ui/span/E0072.stderr
src/test/ui/span/E0204.stderr
src/test/ui/span/E0493.stderr
src/test/ui/span/E0535.stderr
src/test/ui/span/E0536.stderr
src/test/ui/span/E0537.stderr
src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.stderr
src/test/ui/span/borrowck-borrow-overloaded-deref-mut.stderr
src/test/ui/span/borrowck-call-is-borrow-issue-12224.stderr
src/test/ui/span/borrowck-call-method-from-mut-aliasable.stderr
src/test/ui/span/borrowck-fn-in-const-b.stderr
src/test/ui/span/borrowck-let-suggestion-suffixes.stderr
src/test/ui/span/borrowck-object-mutability.stderr
src/test/ui/span/borrowck-ref-into-rvalue.stderr
src/test/ui/span/coerce-suggestions.stderr
src/test/ui/span/destructor-restrictions.stderr
src/test/ui/span/dropck-object-cycle.stderr
src/test/ui/span/dropck_arr_cycle_checked.stderr
src/test/ui/span/dropck_direct_cycle_with_drop.stderr
src/test/ui/span/dropck_misc_variants.stderr
src/test/ui/span/dropck_vec_cycle_checked.stderr
src/test/ui/span/impl-wrong-item-for-trait.stderr
src/test/ui/span/issue-11925.stderr
src/test/ui/span/issue-15480.stderr
src/test/ui/span/issue-23338-locals-die-before-temps-of-body.stderr
src/test/ui/span/issue-23729.stderr
src/test/ui/span/issue-23827.stderr
src/test/ui/span/issue-24356.stderr
src/test/ui/span/issue-24690.stderr
src/test/ui/span/issue-24805-dropck-child-has-items-via-parent.stderr
src/test/ui/span/issue-24805-dropck-trait-has-items.stderr
src/test/ui/span/issue-24895-copy-clone-dropck.stderr
src/test/ui/span/issue-25199.stderr
src/test/ui/span/issue-26656.stderr
src/test/ui/span/issue-27522.stderr
src/test/ui/span/issue-29106.stderr
src/test/ui/span/issue-29595.stderr
src/test/ui/span/issue-33884.stderr
src/test/ui/span/issue-34264.stderr
src/test/ui/span/issue-36530.stderr
src/test/ui/span/issue-36537.stderr
src/test/ui/span/issue-37767.stderr
src/test/ui/span/issue-39018.stderr
src/test/ui/span/issue-39698.stderr
src/test/ui/span/issue-40157.stderr
src/test/ui/span/issue-7575.stderr
src/test/ui/span/issue28498-reject-ex1.stderr
src/test/ui/span/issue28498-reject-lifetime-param.stderr
src/test/ui/span/issue28498-reject-passed-to-fn.stderr
src/test/ui/span/issue28498-reject-trait-bound.stderr
src/test/ui/span/lint-unused-unsafe.stderr
src/test/ui/span/loan-extend.stderr
src/test/ui/span/move-closure.stderr
src/test/ui/span/multiline-span-E0072.stderr
src/test/ui/span/multiline-span-simple.stderr
src/test/ui/span/mut-arg-hint.stderr
src/test/ui/span/mut-ptr-cant-outlive-ref.stderr
src/test/ui/span/pub-struct-field.stderr
src/test/ui/span/range-2.stderr
src/test/ui/span/recursive-type-field.stderr
src/test/ui/span/regionck-unboxed-closure-lifetimes.stderr
src/test/ui/span/regions-close-over-borrowed-ref-in-obj.stderr
src/test/ui/span/regions-close-over-type-parameter-2.stderr
src/test/ui/span/regions-escape-loop-via-variable.stderr
src/test/ui/span/regions-escape-loop-via-vec.stderr
src/test/ui/span/regions-infer-borrow-scope-within-loop.stderr
src/test/ui/span/send-is-not-static-ensures-scoping.stderr
src/test/ui/span/send-is-not-static-std-sync-2.stderr
src/test/ui/span/send-is-not-static-std-sync.stderr
src/test/ui/span/slice-borrow.stderr
src/test/ui/span/suggestion-non-ascii.stderr
src/test/ui/span/type-binding.stderr
src/test/ui/span/typo-suggestion.stderr
src/test/ui/span/vec-must-not-hide-type-from-dropck.stderr
src/test/ui/span/vec_refs_data_with_early_death.stderr
src/test/ui/span/wf-method-late-bound-regions.stderr
src/test/ui/static-lifetime.stderr
src/test/ui/suggestions/confuse-field-and-method/issue-18343.stderr
src/test/ui/suggestions/confuse-field-and-method/issue-2392.stderr
src/test/ui/suggestions/confuse-field-and-method/issue-32128.stderr
src/test/ui/suggestions/confuse-field-and-method/issue-33784.stderr
src/test/ui/suggestions/confuse-field-and-method/private-field.stderr
src/test/ui/suggestions/tuple-float-index.stderr
src/test/ui/token/bounds-obj-parens.stderr
src/test/ui/token/issue-10636-2.stderr
src/test/ui/token/issue-41155.stderr
src/test/ui/token/macro-incomplete-parse.stderr
src/test/ui/token/trailing-plus-in-bounds.stderr
src/test/ui/transmute/main.stderr
src/test/ui/transmute/transmute-from-fn-item-types-error.stderr
src/test/ui/transmute/transmute-type-parameters.stderr
src/test/ui/type-check/assignment-in-if.stderr
src/test/ui/type-check/cannot_infer_local_or_array.stderr
src/test/ui/type-check/cannot_infer_local_or_vec.stderr
src/test/ui/type-check/cannot_infer_local_or_vec_in_tuples.stderr
src/test/ui/type-check/issue-22897.stderr
src/test/ui/type-check/issue-40294.stderr
src/test/ui/type-check/unknown_type_for_closure.stderr

index ce5d58f5800c788c413d98bd42e087e72ec086c4..b347a93185124b21852a2c51c377885b52b1d82b 100644 (file)
@@ -28,6 +28,7 @@
 use syntax::ptr::P;
 use syntax_pos::Span;
 use errors::DiagnosticBuilder;
+use util::common::ErrorReported;
 use util::nodemap::{NodeMap, NodeSet, FxHashSet, FxHashMap, DefIdMap};
 use rustc_back::slice;
 
@@ -255,7 +256,7 @@ struct ElisionFailureInfo {
 
 pub fn krate(sess: &Session,
              hir_map: &Map)
-             -> Result<NamedRegionMap, usize> {
+             -> Result<NamedRegionMap, ErrorReported> {
     let krate = hir_map.krate();
     let mut map = NamedRegionMap {
         defs: NodeMap(),
index fb513f573d7e2bf83465b9c3aa1c1bd73888982c..8bafdda234a09b1589a30b7314f8d156a9e8b961 100644 (file)
@@ -21,7 +21,7 @@
 use session::config::DebugInfoLevel;
 use ty::tls;
 use util::nodemap::{FxHashMap, FxHashSet};
-use util::common::duration_to_secs_str;
+use util::common::{duration_to_secs_str, ErrorReported};
 
 use syntax::ast::NodeId;
 use errors::{self, DiagnosticBuilder};
@@ -255,7 +255,10 @@ pub fn has_errors(&self) -> bool {
     pub fn abort_if_errors(&self) {
         self.diagnostic().abort_if_errors();
     }
-    pub fn track_errors<F, T>(&self, f: F) -> Result<T, usize>
+    pub fn compile_status(&self) -> Result<(), CompileIncomplete> {
+        compile_result_from_err_count(self.err_count())
+    }
+    pub fn track_errors<F, T>(&self, f: F) -> Result<T, ErrorReported>
         where F: FnOnce() -> T
     {
         let old_count = self.err_count();
@@ -264,7 +267,7 @@ pub fn track_errors<F, T>(&self, f: F) -> Result<T, usize>
         if errors == 0 {
             Ok(result)
         } else {
-            Err(errors)
+            Err(ErrorReported)
         }
     }
     pub fn span_warn<S: Into<MultiSpan>>(&self, sp: S, msg: &str) {
@@ -802,15 +805,23 @@ pub fn early_warn(output: config::ErrorOutputType, msg: &str) {
     handler.emit(&MultiSpan::new(), msg, errors::Level::Warning);
 }
 
-// Err(0) means compilation was stopped, but no errors were found.
-// This would be better as a dedicated enum, but using try! is so convenient.
-pub type CompileResult = Result<(), usize>;
+#[derive(Copy, Clone, Debug)]
+pub enum CompileIncomplete {
+    Stopped,
+    Errored(ErrorReported)
+}
+impl From<ErrorReported> for CompileIncomplete {
+    fn from(err: ErrorReported) -> CompileIncomplete {
+        CompileIncomplete::Errored(err)
+    }
+}
+pub type CompileResult = Result<(), CompileIncomplete>;
 
 pub fn compile_result_from_err_count(err_count: usize) -> CompileResult {
     if err_count == 0 {
         Ok(())
     } else {
-        Err(err_count)
+        Err(CompileIncomplete::Errored(ErrorReported))
     }
 }
 
index 98278949d51fd43ebe6ed8dec2d0bd4ce4d7200a..a3e1cf7c1a8f81427179929d7bc6fb618d9008f0 100644 (file)
@@ -13,7 +13,8 @@
 use rustc::ich::Fingerprint;
 use rustc_data_structures::stable_hasher::StableHasher;
 use rustc_mir as mir;
-use rustc::session::{Session, CompileResult, compile_result_from_err_count};
+use rustc::session::{Session, CompileResult};
+use rustc::session::CompileIncomplete;
 use rustc::session::config::{self, Input, OutputFilenames, OutputType,
                              OutputTypes};
 use rustc::session::search_paths::PathKind;
@@ -23,7 +24,7 @@
 use rustc::mir::transform::{MIR_CONST, MIR_VALIDATED, MIR_OPTIMIZED, Passes};
 use rustc::ty::{self, TyCtxt, Resolutions, GlobalArenas};
 use rustc::traits;
-use rustc::util::common::time;
+use rustc::util::common::{ErrorReported, time};
 use rustc::util::nodemap::NodeSet;
 use rustc::util::fs::rename_or_copy_remove;
 use rustc_borrowck as borrowck;
@@ -78,7 +79,9 @@ macro_rules! controller_entry_point {
             }
 
             if control.$point.stop == Compilation::Stop {
-                return compile_result_from_err_count($tsess.err_count());
+                // FIXME: shouldn't this return Err(CompileIncomplete::Stopped)
+                // if there are no errors?
+                return $tsess.compile_status();
             }
         }}
     }
@@ -91,7 +94,7 @@ macro_rules! controller_entry_point {
             Ok(krate) => krate,
             Err(mut parse_error) => {
                 parse_error.emit();
-                return Err(1);
+                return Err(CompileIncomplete::Errored(ErrorReported));
             }
         };
 
@@ -194,7 +197,7 @@ macro_rules! controller_entry_point {
                 (control.after_analysis.callback)(&mut state);
 
                 if control.after_analysis.stop == Compilation::Stop {
-                    return result.and_then(|_| Err(0usize));
+                    return result.and_then(|_| Err(CompileIncomplete::Stopped));
                 }
             }
 
@@ -564,7 +567,7 @@ pub fn phase_2_configure_and_expand<F>(sess: &Session,
                                        addl_plugins: Option<Vec<String>>,
                                        make_glob_map: MakeGlobMap,
                                        after_expand: F)
-                                       -> Result<ExpansionResult, usize>
+                                       -> Result<ExpansionResult, CompileIncomplete>
     where F: FnOnce(&ast::Crate) -> CompileResult,
 {
     let time_passes = sess.time_passes();
@@ -636,7 +639,7 @@ pub fn phase_2_configure_and_expand<F>(sess: &Session,
     // Lint plugins are registered; now we can process command line flags.
     if sess.opts.describe_lints {
         super::describe_lints(&sess.lint_store.borrow(), true);
-        return Err(0);
+        return Err(CompileIncomplete::Stopped);
     }
     sess.track_errors(|| sess.lint_store.borrow_mut().process_command_line(sess))?;
 
@@ -839,7 +842,7 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
                                                arenas: &'tcx GlobalArenas<'tcx>,
                                                name: &str,
                                                f: F)
-                                               -> Result<R, usize>
+                                               -> Result<R, CompileIncomplete>
     where F: for<'a> FnOnce(TyCtxt<'a, 'tcx, 'tcx>,
                             ty::CrateAnalysis,
                             IncrementalHashesMap,
@@ -1019,7 +1022,7 @@ macro_rules! try_with_f {
         // lint warnings and so on -- kindck used to do this abort, but
         // kindck is gone now). -nmatsakis
         if sess.err_count() > 0 {
-            return Ok(f(tcx, analysis, incremental_hashes_map, Err(sess.err_count())));
+            return Ok(f(tcx, analysis, incremental_hashes_map, sess.compile_status()));
         }
 
         analysis.reachable =
@@ -1035,12 +1038,7 @@ macro_rules! try_with_f {
 
         time(time_passes, "lint checking", || lint::check_crate(tcx));
 
-        // The above three passes generate errors w/o aborting
-        if sess.err_count() > 0 {
-            return Ok(f(tcx, analysis, incremental_hashes_map, Err(sess.err_count())));
-        }
-
-        Ok(f(tcx, analysis, incremental_hashes_map, Ok(())))
+        return Ok(f(tcx, analysis, incremental_hashes_map, tcx.sess.compile_status()));
     })
 }
 
@@ -1116,11 +1114,7 @@ pub fn phase_5_run_llvm_passes(sess: &Session,
          "serialize work products",
          move || rustc_incremental::save_work_products(sess));
 
-    if sess.err_count() > 0 {
-        Err(sess.err_count())
-    } else {
-        Ok(())
-    }
+    sess.compile_status()
 }
 
 /// Run the linker on any artifacts that resulted from the LLVM run.
index 54e7c398fe6a67379990159b7064fd778f4af026..f2aacbc629fad9351705af9cffebadab1e9fe514 100644 (file)
@@ -67,6 +67,7 @@
 use rustc_trans::back::write::{RELOC_MODEL_ARGS, CODE_GEN_MODEL_ARGS};
 use rustc::dep_graph::DepGraph;
 use rustc::session::{self, config, Session, build_session, CompileResult};
+use rustc::session::CompileIncomplete;
 use rustc::session::config::{Input, PrintRequest, OutputType, ErrorOutputType};
 use rustc::session::config::nightly_options;
 use rustc::session::{early_error, early_warn};
@@ -74,7 +75,7 @@
 use rustc::lint;
 use rustc_metadata::locator;
 use rustc_metadata::cstore::CStore;
-use rustc::util::common::time;
+use rustc::util::common::{time, ErrorReported};
 
 use serialize::json::ToJson;
 
 const BUG_REPORT_URL: &'static str = "https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.\
                                       md#bug-reports";
 
-#[inline]
-fn abort_msg(err_count: usize) -> String {
-    match err_count {
-        0 => "aborting with no errors (maybe a bug?)".to_owned(),
-        _ => "aborting due to previous error(s)".to_owned(),
-    }
-}
-
-pub fn abort_on_err<T>(result: Result<T, usize>, sess: &Session) -> T {
+pub fn abort_on_err<T>(result: Result<T, CompileIncomplete>, sess: &Session) -> T {
     match result {
-        Err(err_count) => {
-            sess.fatal(&abort_msg(err_count));
+        Err(CompileIncomplete::Errored(ErrorReported)) => {
+            sess.abort_if_errors();
+            panic!("error reported but abort_if_errors didn't abort???");
+        }
+        Err(CompileIncomplete::Stopped) => {
+            sess.fatal("compilation terminated");
         }
         Ok(x) => x,
     }
@@ -131,19 +128,20 @@ pub fn run<F>(run_compiler: F) -> isize
 {
     monitor(move || {
         let (result, session) = run_compiler();
-        if let Err(err_count) = result {
-            if err_count > 0 {
-                match session {
-                    Some(sess) => sess.fatal(&abort_msg(err_count)),
-                    None => {
-                        let emitter =
-                            errors::emitter::EmitterWriter::stderr(errors::ColorConfig::Auto, None);
-                        let handler = errors::Handler::with_emitter(true, false, Box::new(emitter));
-                        handler.emit(&MultiSpan::new(),
-                                     &abort_msg(err_count),
-                                     errors::Level::Fatal);
-                        exit_on_err();
-                    }
+        if let Err(CompileIncomplete::Errored(_)) = result {
+            match session {
+                Some(sess) => {
+                    sess.abort_if_errors();
+                    panic!("error reported but abort_if_errors didn't abort???");
+                }
+                None => {
+                    let emitter =
+                        errors::emitter::EmitterWriter::stderr(errors::ColorConfig::Auto, None);
+                    let handler = errors::Handler::with_emitter(true, false, Box::new(emitter));
+                    handler.emit(&MultiSpan::new(),
+                                 "aborting due to previous error(s)",
+                                 errors::Level::Fatal);
+                    exit_on_err();
                 }
             }
         }
index ada1c632bc014a2e2489515d5b087ee8d4c97af0..dd25f96941401f868d69e8502db9d9df14a34aa5 100644 (file)
@@ -506,7 +506,10 @@ pub fn abort_if_errors(&self) {
 
                 return;
             }
-            _ => s = "aborting due to previous error(s)".to_string(),
+            1 => s = "aborting due to previous error".to_string(),
+            _ => {
+                s = format!("aborting due to {} previous errors", self.err_count.get());
+            }
         }
 
         panic!(self.fatal(&s));
index 8d455adc23c99d95b500988fec69e1874f192d79..0dbb2d1d4d0bf8e6183c295fb1b5cc79f226475e 100644 (file)
@@ -12,8 +12,9 @@
 // recursively.
 
 use rustc::hir::map as hir_map;
-use rustc::session::{CompileResult, Session};
+use rustc::session::Session;
 use rustc::hir::def::{Def, CtorKind};
+use rustc::util::common::ErrorReported;
 use rustc::util::nodemap::{NodeMap, NodeSet};
 
 use syntax::ast;
@@ -86,7 +87,9 @@ fn visit_impl_item(&mut self, ii: &'hir hir::ImplItem) {
     }
 }
 
-pub fn check_crate<'hir>(sess: &Session, hir_map: &hir_map::Map<'hir>) -> CompileResult {
+pub fn check_crate<'hir>(sess: &Session, hir_map: &hir_map::Map<'hir>)
+                         -> Result<(), ErrorReported>
+{
     let mut visitor = CheckCrateVisitor {
         sess: sess,
         hir_map: hir_map,
index 0dfd9a1838e5a3fa524542c6c6ec8395c0ead180..3241267bbc2e48d55c78bbe00a4997819912cf3b 100644 (file)
 use rustc::ty::util::{Representability, IntTypeExt};
 use errors::DiagnosticBuilder;
 use require_c_abi_if_variadic;
-use session::{Session, CompileResult};
+use session::{CompileIncomplete, Session};
 use TypeAndSubsts;
 use lint;
 use util::common::{ErrorReported, indenter};
@@ -691,30 +691,32 @@ fn visit_trait_item(&mut self, _: &'tcx hir::TraitItem) { }
     fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem) { }
 }
 
-pub fn check_wf_new<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) -> CompileResult {
+pub fn check_wf_new<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) -> Result<(), ErrorReported> {
     tcx.sess.track_errors(|| {
         let mut visit = wfcheck::CheckTypeWellFormedVisitor::new(tcx);
         tcx.hir.krate().visit_all_item_likes(&mut visit.as_deep_visitor());
     })
 }
 
-pub fn check_item_types<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) -> CompileResult {
+pub fn check_item_types<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) -> Result<(), ErrorReported> {
     tcx.sess.track_errors(|| {
         tcx.hir.krate().visit_all_item_likes(&mut CheckItemTypesVisitor { tcx });
     })
 }
 
-pub fn check_item_bodies<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) -> CompileResult {
+pub fn check_item_bodies<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) -> Result<(), CompileIncomplete> {
     tcx.typeck_item_bodies(LOCAL_CRATE)
 }
 
-fn typeck_item_bodies<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, crate_num: CrateNum) -> CompileResult {
+fn typeck_item_bodies<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, crate_num: CrateNum)
+                                -> Result<(), CompileIncomplete>
+{
     debug_assert!(crate_num == LOCAL_CRATE);
-    tcx.sess.track_errors(|| {
+    Ok(tcx.sess.track_errors(|| {
         for body_owner_def_id in tcx.body_owners() {
             tcx.typeck_tables_of(body_owner_def_id);
         }
-    })
+    })?)
 }
 
 pub fn provide(providers: &mut Providers) {
index 2857b5fb5e05e3c7c61ef9c5e3eeac07680ca29e..9b829e6e3ff2ed8cbf1ec6502dac208ffc72e6b0 100644 (file)
 use rustc::ty::{self, Ty, TyCtxt};
 use rustc::ty::maps::Providers;
 use rustc::traits::{FulfillmentContext, ObligationCause, ObligationCauseCode, Reveal};
-use session::config;
+use session::{CompileIncomplete, config};
 use util::common::time;
 
 use syntax::ast;
@@ -293,7 +293,8 @@ pub fn provide(providers: &mut Providers) {
 }
 
 pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>)
-                             -> Result<(), usize> {
+                             -> Result<(), CompileIncomplete>
+{
     let time_passes = tcx.sess.time_passes();
 
     // this ensures that later parts of type checking can assume that items
@@ -328,12 +329,7 @@ pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>)
     check_unused::check_crate(tcx);
     check_for_entry_fn(tcx);
 
-    let err_count = tcx.sess.err_count();
-    if err_count == 0 {
-        Ok(())
-    } else {
-        Err(err_count)
-    }
+    tcx.sess.compile_status()
 }
 
 /// A quasi-deprecated helper used in rustdoc and save-analysis to get
index 4766778eed1b88bc00b505f708ad78b39bc83b97..f012fd974b574267d28841be6f870741872dca58 100644 (file)
@@ -25,7 +25,7 @@
 use rustc::dep_graph::DepGraph;
 use rustc::hir;
 use rustc::hir::intravisit;
-use rustc::session::{self, config};
+use rustc::session::{self, CompileIncomplete, config};
 use rustc::session::config::{OutputType, OutputTypes, Externs};
 use rustc::session::search_paths::{SearchPaths, PathKind};
 use rustc_back::dynamic_lib::DynamicLibrary;
@@ -253,35 +253,25 @@ fn drop(&mut self) {
         driver::compile_input(&sess, &cstore, &input, &out, &None, None, &control)
     }));
 
-    match res {
-        Ok(r) => {
-            match r {
-                Err(count) => {
-                    if count > 0 && !compile_fail {
-                        sess.fatal("aborting due to previous error(s)")
-                    } else if count == 0 && compile_fail {
-                        panic!("test compiled while it wasn't supposed to")
-                    }
-                    if count > 0 && error_codes.len() > 0 {
-                        let out = String::from_utf8(data.lock().unwrap().to_vec()).unwrap();
-                        error_codes.retain(|err| !out.contains(err));
-                    }
-                }
-                Ok(()) if compile_fail => {
-                    panic!("test compiled while it wasn't supposed to")
-                }
-                _ => {}
-            }
+    let compile_result = match res {
+        Ok(Ok(())) | Ok(Err(CompileIncomplete::Stopped)) => Ok(()),
+        Err(_) | Ok(Err(CompileIncomplete::Errored(_))) => Err(())
+    };
+
+    match (compile_result, compile_fail) {
+        (Ok(()), true) => {
+            panic!("test compiled while it wasn't supposed to")
         }
-        Err(_) => {
-            if !compile_fail {
-                panic!("couldn't compile the test");
-            }
+        (Ok(()), false) => {}
+        (Err(()), true) => {
             if error_codes.len() > 0 {
                 let out = String::from_utf8(data.lock().unwrap().to_vec()).unwrap();
                 error_codes.retain(|err| !out.contains(err));
             }
         }
+        (Err(()), false) => {
+            panic!("couldn't compile the test")
+        }
     }
 
     if error_codes.len() > 0 {
index ca58e007852bd53fe0216330256284544bbe33da..a75dc7e57a9a265526af8b83134ee1b4dc0581e0 100644 (file)
@@ -85,6 +85,6 @@ fn main() {
     let (result, _) = rustc_driver::run_compiler(
         &args, &mut JitCalls, Some(box JitLoader), None);
     if let Err(n) = result {
-        panic!("Error {}", n);
+        panic!("Error {:?}", n);
     }
 }
index a770ebeab35a7acc863dac283e06dec7fda01f42..d4024f41c26fa4e4f30b604822baa8ed7c175c70 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `bool`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b1146864566e33ec54fa13681c0c8e2a24c11929..f60a0c2e5f6e00f017d93882debb11da567f4f9b 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `bool`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 31ec7cdd3c5abc39a10d9b8b5cc2f2c10518149a..888a64c1bb1aa61a0a8d383c37b834bf276d7f85 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `bool`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 282583d32a665dcaa0568e9276a3e7d9c41dedf8..5905cfa9322a28ab753701cb9c8e07deec9d52a9 100644 (file)
@@ -26,5 +26,5 @@ error[E0308]: mismatched types
    = note: expected type `std::string::String`
               found type `()`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index ed61ec6ca291f5062e7ff7fe4673be389ab45ee3..376834beab0dacfc4a6b9661dbd862c1d02a3caf 100644 (file)
@@ -13,5 +13,5 @@ error[E0308]: mismatched types
    = note: expected type `i32`
               found type `()`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 5e8d92f64e29344d7389d6f932d5a89c5dd64d50..7bd4529c46399a1a600d99b23816f43d68a1d873 100644 (file)
@@ -29,5 +29,5 @@ error[E0308]: mismatched types
    = note: expected type `std::string::String`
               found type `()`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 72ff859d7e93a0f71bbbafcb25e79b5e804038bb..41113eb7a573e6b741508415238ce192cf9ef16c 100644 (file)
@@ -16,5 +16,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `a::Enum`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index e4367f170ce1856dbb33c6660800e6aeb2b23171..7c88d789fd36eeb55fb971886484b42bc5f1a066 100644 (file)
@@ -15,5 +15,5 @@ error[E0618]: expected function, found `()`
 17 |     let x = foo(5)(2);
    |             ^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 3921a301c922393d5d7af0fb2230d7398970983b..a9bcc8bea94cc177d0ebb793ae6025d0c640fa55 100644 (file)
@@ -17,5 +17,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `Bob`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index c6ab4cbb2a7c5e0d22175085a222af9123c0366c..4b1f8b032b74d1d257548b606c48c440b0e08390 100644 (file)
@@ -15,5 +15,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `[closure@$DIR/issue-3563.rs:13:9: 13:20 self:_]`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index bffe2a82ca8d756961d54f284a0efbc2beff9928..bd670a14f247e7f6b0e58410b3d091c3da8559cf 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `&_`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 18d0cc4814056f94d93958568a4c2a8c28056a1a..68afd2084f10568dbcf09cacddc4afb3c25b1c8b 100644 (file)
@@ -11,5 +11,5 @@ help: did you mean to add a semicolon here?
 help: possibly return type missing here?
    | fn bar() -> usize {
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a30d4cbd64c22e84e4362a5230c496d944c63568..6083a82b1b6de29eb926114b8b6a37a58b31884c 100644 (file)
@@ -6,5 +6,5 @@ error[E0507]: cannot move out of captured outer variable in an `Fn` closure
 15 |     Box::new(|| x) //~ ERROR cannot move out of captured outer variable
    |                 ^ cannot move out of captured outer variable in an `Fn` closure
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a13971d32de084bc50f950fcd466c44074828eb8..dbfcb2e0c2f95fbef0c71d52e7ed596c37c334eb 100644 (file)
@@ -7,5 +7,5 @@ error[E0507]: cannot move out of captured outer variable in an `Fn` closure
 21 |         y.into_iter();
    |         ^ cannot move out of captured outer variable in an `Fn` closure
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 0cb264ff35e4eb0ffd5b491e6611a19b2c38d92d..0aafe3f17b3d0f6310b30d10baedc9eb00d19cef 100644 (file)
@@ -46,5 +46,5 @@ error[E0004]: non-exhaustive patterns: `Some(B)`, `Some(C)`, `Some(D)` and 2 mor
 49 |     match Some(A) {
    |           ^^^^^^^ patterns `Some(B)`, `Some(C)`, `Some(D)` and 2 more not covered
 
-error: aborting due to previous error(s)
+error: aborting due to 8 previous errors
 
index dbf702e45030901ab56212e99e62c9abff739825..42fc2909dfb5a2846a1cb942ae9679e05fa52ab5 100644 (file)
@@ -16,5 +16,5 @@ note: closure is `FnMut` because it mutates the variable `num` here
 15 |         num += 1;
    |         ^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 3ec3f0cc9aa598ec676ddc38b4e6e840b9ec6a5a..7bfe72d3d6c9c8fbcac796e7638ba881507e2997 100644 (file)
@@ -16,5 +16,5 @@ note: closure is `FnOnce` because it moves the variable `vec` out of its environ
 15 |         vec
    |         ^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 5bbd372adb6cef96554b001de25abd0b661d8fa9..c195940ade6fa931275e620ca43d705acba29257 100644 (file)
@@ -12,5 +12,5 @@ note: closure cannot be invoked more than once because it moves the variable `di
 16 |         for (key, value) in dict {
    |                             ^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index cddc7df85ae3e763d8336c0705a015323cb4010d..87255dfe7747673b7be9b215df55da55c16fb64c 100644 (file)
@@ -22,5 +22,5 @@ error: expected token: `,`
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 1c32ce44109ed2002e047b0bc9414d61a27ef45d..7f1ab929c6fc2b32fcbd4e0a18cd4341d08da5e8 100644 (file)
@@ -6,5 +6,5 @@ error[E0592]: duplicate definitions with name `f`
 15 | impl C { fn f() {} }
    |          --------- other definition for `f`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 84e6e336b9343dfcad1ff05d48f97dade5f97f01..b33dee6b4a472ed04086888a61d93accf8f11e91 100644 (file)
@@ -4,5 +4,5 @@ error[E0321]: cross-crate traits with a default impl, like `std::marker::Send`,
 17 |     unsafe impl Send for &'static Foo { }
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 46b3db18e8a5c8f8411cd87f574ca43616707dd2..914db98c7844648ddb36924874144a3d70263a61 100644 (file)
@@ -7,5 +7,5 @@ error[E0596]: cannot borrow immutable local variable `x` as mutable
 100 |     let y = &mut x;
     |                  ^ cannot borrow mutably
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index dcc21672c56323b3c4d6f95505bf9a396463a9a8..4947cbedd200e45ec424e508881480505c313b57 100644 (file)
@@ -8,5 +8,5 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time
 101 | }
     | - first borrow ends here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 43743b796d5e45697c5a6b7183284cba86ab11ec..7a1478104fdf1402367aa61eab645c9802c656de 100644 (file)
@@ -6,5 +6,5 @@ error[E0600]: cannot apply unary operator `!` to type `&'static str`
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index e2e0537226a92cff78795cff18bb17bb17c22eef..a73575a8d57f1ae65783eec6492c758db02c3c5c 100644 (file)
@@ -7,5 +7,5 @@ error[E0499]: cannot borrow `v` as mutable more than once at a time
    |     |      second mutable borrow occurs here
    |     first mutable borrow occurs here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 0af8c06cfdae71c0bbaa57991bbde19c68450313..de8a24cf33f44c12f0e70d3dbf57e99101a67e09 100644 (file)
@@ -25,5 +25,5 @@ error[E0592]: duplicate definitions with name `baz`
 43 |     fn baz(&self) {}
    |     ---------------- other definition for `baz`
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 9778015766ce55489807c5376526b84e30a1a04c..d32b18d670308c4379da0ed8060db3694a1f1bdd 100644 (file)
@@ -7,5 +7,5 @@ error[E0509]: cannot move out of type `S`, which implements the `Drop` trait
    |         |    hint: to prevent move, use `ref _s` or `ref mut _s`
    |         cannot move out of here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a3b76159b463fa9d3de9db2a82740d40d286e192..657deca4e6d491afc2398aa5e4c4da6bda8df00a 100644 (file)
@@ -4,5 +4,5 @@ error[E0425]: cannot find value `bar` in this scope
 14 | \tbar;
    | \t^^^ not found in this scope
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 0f1e008d5893ff17bfcd011779d57792356b5e2f..0828fd28b5878642ec5c640d90fcb0aad1ed8ba3 100644 (file)
@@ -4,5 +4,5 @@ error: invalid ABI: expected one of [cdecl, stdcall, fastcall, vectorcall, thisc
 11 | extern "路濫狼á́́" fn foo() {}
    |        ^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 49e8b9febc2bb6a4e44bc093bffe9e705d2a7b28..0de0a25e68e24c0d0e63672fc5ed271e6533b7c8 100644 (file)
@@ -24,5 +24,5 @@ error[E0308]: mismatched types
    = note: expected type `std::result::Result<u8, u64>`
               found type `()`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 63c48ffe26b28478f36a2149c9dc29b26c5e3411..2a707c6eb8b103b428de32c4fb5f2c64f848b38a 100644 (file)
@@ -11,5 +11,5 @@ error[E0276]: impl has stricter requirements than trait
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #37166 <https://github.com/rust-lang/rust/issues/37166>
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 7adcc66d75c892b2eee2c83344b9ddc2eef7e855..af974d501839b35cb76d8ac7c746c244e25d4b6a 100644 (file)
@@ -10,5 +10,5 @@ error[E0276]: impl has stricter requirements than trait
 22 | |     }
    | |_____^ impl has extra requirement `'a: 'b`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a29a292ac655656eaa3f1559ff9e0f3d0fbf9adb..e657813221a1265e9854a8728e4055a91be39df2 100644 (file)
@@ -7,5 +7,5 @@ error[E0276]: impl has stricter requirements than trait
 22 |     fn foo() where 'a: 'b { }
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `'a: 'b`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 04de54cd05de215017b8fcf7d49680cab1eb33b9..9e822bd8b0790097ff4832bd78edadf41677b8e9 100644 (file)
@@ -11,5 +11,5 @@ error[E0276]: impl has stricter requirements than trait
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #37166 <https://github.com/rust-lang/rust/issues/37166>
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b5e9c89f2f591293daaac81bc912b65b7a01fea8..4620248e2efeae50747b5af688ea1fabb96e008f 100644 (file)
@@ -10,5 +10,5 @@ error[E0053]: method `b` has an incompatible type for trait
    = note: expected type `fn(&E, F) -> F`
               found type `fn(&E, G) -> G`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index c4a4921289b3b56100d0da4946316f603b470af2..7112a00c7b7900fd7f305fbc1b79f71a044d21e4 100644 (file)
@@ -7,5 +7,5 @@ error[E0276]: impl has stricter requirements than trait
 25 |     fn b<F: Sync, G>(&self, _x: F) -> F { panic!() } //~ ERROR E0276
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `F: std::marker::Sync`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 6374b83e7946a10402671a5cec8b74832a48d3a0..f221ebe3302c019dadf23280d4904b519a7955a6 100644 (file)
@@ -61,5 +61,5 @@ error[E0276]: impl has stricter requirements than trait
 76 |     fn method<G: Getter<usize>>(&self) {}
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `G: Getter<usize>`
 
-error: aborting due to previous error(s)
+error: aborting due to 7 previous errors
 
index 7ff2d93d820dbde51ca05bac13433999749ee20b..622e144c53a040447103654b7fb552c79d68c5b0 100644 (file)
@@ -10,5 +10,5 @@ error[E0276]: impl has stricter requirements than trait
 26 | |     }
    | |_____^ impl has extra requirement `U: Iterator<B>`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 3642a702a82955838cafc8b01e27df0e3cf247d1..84db85ac092dbfbf3d199d7d489ca97983da83db 100644 (file)
@@ -6,5 +6,5 @@ error: invalid reference to argument `0` (no arguments given)
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index bcf00df98323bd96a98b2f463bdc9c16698975ad..15e7131cfd3be41a75621b24e212971643909267 100644 (file)
@@ -22,5 +22,5 @@ error[E0178]: expected a path on the left-hand side of `+`, not `fn() -> Foo`
 17 |     z: fn() -> Foo + 'a,
    |        ^^^^^^^^^^^^^^^^ perhaps you forgot parentheses?
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 73b8e06183b25cf07732cffaae678c30989ff805..9010de081da46b602e3db93efa77d54165c9f1c6 100644 (file)
@@ -8,5 +8,5 @@ error[E0277]: the trait bound `Bar: Foo<usize>` is not satisfied
              <Bar as Foo<i32>>
              <Bar as Foo<u8>>
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index e1e4e14b215c08617a251ae4253cc5c6b2270c29..e9591a64784d5ad6dff8f3a96648d5a7b16194ce 100644 (file)
@@ -11,5 +11,5 @@ error[E0277]: the trait bound `Bar: Foo<usize>` is not satisfied
              <Bar as Foo<u8>>
            and 2 others
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index eecb164a83fdc9ba94fea0eee914c1d104624b97..c7d43a0fc0b6f1b794dc7a49d199dec7c6c4e8e2 100644 (file)
@@ -15,5 +15,5 @@ error[E0596]: cannot borrow immutable argument `self` as mutable
 23 |         (&mut self).bar();
    |               ^^^^ cannot borrow mutably
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index d5d6ee133b81936507d9f966e4798de1cc26d004..63d59a59238b538dd5c4869dc8f4930d1652e16e 100644 (file)
@@ -7,5 +7,5 @@ error[E0596]: cannot borrow immutable argument `self` as mutable
    |                       try removing `&mut` here
    |                       cannot reborrow mutably
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 2769c74be5ef8d8267b21148e6a6a1b7fdaa9ced..9eb88cdeddbe6d4a027cfa9fc1f4488a42fddcfc 100644 (file)
@@ -7,5 +7,5 @@ error[E0596]: cannot borrow immutable local variable `key` as mutable
    |              try removing `&mut` here
    |              cannot reborrow mutably
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4760d28566fcf22478c5179d1ee47fadbbdadc48..1cd1fb76aa33050d14e11f130b6d4460981b1f44 100644 (file)
@@ -22,5 +22,5 @@ error[E0594]: cannot assign to immutable field `s.x`
 30 |     s.x += 1;
    |     ^^^^^^^^ cannot mutably borrow immutable field
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index a8d978d55140b93cf19f4715cfabd0fe866f0321..72fd09c0357198df46d352a05a4df52c0dc7af63 100644 (file)
@@ -4,5 +4,5 @@ error[E0609]: no field `baz` on type `Foo`
 17 |     f.baz;
    |       ^^^ did you mean `bar`?
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 8228f9f3face95e36023fdd1fbb45d1d9e663cca..82e3eab0836ce2750b6cdbc9a56484444b1f3706 100644 (file)
@@ -4,5 +4,5 @@ error[E0609]: no field `zz` on type `Foo`
 17 |     f.zz;
    |       ^^ unknown field
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 6debbaadb1ab1ee778d3e8738530bb6623b99f6c..4348b6fca63b6878deba32ad226a48c910f17afd 100644 (file)
@@ -7,5 +7,5 @@ error[E0596]: cannot borrow immutable local variable `x` as mutable
    |                       try removing `&mut` here
    |                       cannot reborrow mutably
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 10f5972e36946554f4f304dbcc2cfc9a1ac38982..325f55e686c622e12ec5772512392b0a1e70f460 100644 (file)
@@ -10,5 +10,5 @@ error[E0432]: unresolved import `Foo1`
 13 | use Foo1;
    |     ^^^^ no `Foo1` in the root
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 85eecd037dd7badbe71bfbe844e7a2b8923a39cb..e9f2b1dad806d52429b48060b5a1136315856584 100644 (file)
@@ -6,5 +6,5 @@ error[E0389]: cannot borrow data mutably in a `&` reference
 27 |         self.s.push('x');
    |         ^^^^^^ assignment into an immutable reference
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 2834fc6262fb2ab8e5c7b652654b9e6a99477994..e81bc722fa0989d6c76e7914b28f31f17b54d476 100644 (file)
@@ -7,5 +7,5 @@ error[E0596]: cannot borrow immutable borrowed content `*self.s` as mutable
 17 |         self.s.push('x');
    |         ^^^^^^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index d950e82003cc036d1a62ec4f5fe151cd4db30eef..749795f4d8fbd60320583f4c88af28e496dc96ed 100644 (file)
@@ -7,5 +7,5 @@ error[E0596]: cannot borrow immutable borrowed content `*self.s` as mutable
 17 |         self.s.push('x');
    |         ^^^^^^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 6fa152c970bdfe2227ff41634a4818cb52170ae3..9a8853f4fbbdb15dfe2bfa8330db4c5b4d4e8344 100644 (file)
@@ -6,5 +6,5 @@ error[E0389]: cannot borrow data mutably in a `&` reference
 16 |     f.s.push('x');
    |     ^^^ assignment into an immutable reference
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 94afe896d5ead42e5141a713e796351e58b2638c..28aaab97bdad1c8712c0f397885ca59b40926c7a 100644 (file)
@@ -96,5 +96,5 @@ error[E0594]: cannot assign to immutable borrowed content `*x.0`
 58 |     *x.0 = 1;
    |     ^^^^^^^^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to 12 previous errors
 
index 6a0e94bf13803d3cd74e02c22a2ace99d1f6384a..4ea4adfcfe0fc68260f9dc047f487db7cc6eea17 100644 (file)
@@ -39,5 +39,5 @@ error[E0277]: the trait bound `bool: Foo<i32>` is not satisfied
            and 2 others
    = note: required by `Foo::bar`
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index b1dab01d81ff2637d5b8bdeba494846ba52f6c56..3b7f32cf8904a33a90898124898c3477e49b3010 100644 (file)
@@ -64,5 +64,5 @@ error[E0038]: the trait `X` cannot be made into an object
    |
    = note: method `xxx` has no receiver
 
-error: aborting due to previous error(s)
+error: aborting due to 9 previous errors
 
index daee8df7ed89b219618a15b1321cc2b82837713d..1a0c74dc01a09d4eb96735e0253f8215220ed082 100644 (file)
@@ -30,5 +30,5 @@ error: chained comparison operators require parentheses
    |
    = help: use `::<...>` instead of `<...>` if you meant to specify type arguments
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index a034ea809692ae87486adbc7fb1e435837936214..7daab09c09e37737b790e644fa243dafbe5b4a11 100644 (file)
@@ -4,5 +4,5 @@ error[E0596]: cannot borrow immutable borrowed content `*buf` as mutable
 13 |     buf.iter_mut();
    |     ^^^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4f210bb0b11b2d7ca60a359eb2c83961dee8a07b..2abbbf65ba9b507254cef20ec002e58cf760aea5 100644 (file)
@@ -6,5 +6,5 @@ error: `~` can not be used as a unary operator
    |
    = help: use `!` instead of `~` if you meant to perform bitwise negation
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 32f9d90ec2d8d5ea39bbeb72f69536e3dcbcae2e..d157c5de6c7f57f98fd213b5da51db9a6015e9be 100644 (file)
@@ -17,5 +17,5 @@ error[E0275]: overflow evaluating the requirement `K: std::marker::Send`
    = note: required because it appears within the type `A`
    = note: required by `is_send`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index ba8d3815181ac84c282682f0f290826d1fe13663..57b28d037362239f237591faf6eb9dd7d7aa6456 100644 (file)
@@ -19,5 +19,5 @@ error[E0308]: mismatched types
    = note: expected type `&Bottom`
               found type `&Top`
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 50e296a1bc53758b491bd1f753e670f9ddcf1a43..498255cb9ea374cc905dab9cc6369144b4725e70 100644 (file)
@@ -18,5 +18,5 @@ error[E0038]: the trait `std::marker::Copy` cannot be made into an object
    |
    = note: the trait cannot require that `Self : Sized`
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index a5a3c48ab9752b1d716ce91b3020e19b93503af4..62ce3209c919d6271d615816541aa5631794432e 100644 (file)
@@ -42,5 +42,5 @@ error[E0597]: `c` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index e1bfb4d8c1e181a4feb734c89e70252c9ad0f0c1..2c788e952edbfd455b29645f875bdded8cf4eedd 100644 (file)
@@ -20,5 +20,5 @@ error[E0569]: requires an `unsafe impl` declaration due to `#[may_dangle]` attri
 43 | | }
    | |_^
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index de04a1c4283d1bf029db00892f97a3382e58d306..d94808bbcb6d0eafd6c8f7c3916fd20246a93462 100644 (file)
@@ -42,5 +42,5 @@ error[E0597]: `c` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 26fee852fb24ac78b3be69578c92f3f8a12f2825..811eee0e85f15cb56515fc02ddc6d337cb2a053b 100644 (file)
@@ -42,5 +42,5 @@ error[E0597]: `c` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 2466d2b43b6fcd648f325d5f44b146a2177cfaa4..58b392f0b8d658fc1df9896a3568b05b9338bf23 100644 (file)
@@ -16,5 +16,5 @@ error: invalid format string: unmatched `}` found
    = note: if you intended to print `}`, you can escape it using `}}`
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 2206234b77744ca670a8cbaa52049cd86172c6b3..3fc08a0900fb9ed7b8213b4d1d78144d3c07cca4 100644 (file)
@@ -51,5 +51,5 @@ error[E0308]: mismatched types
    = note: expected type `impl Foo` (i32)
               found type `impl Foo` (u32)
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index 1b1e0eaf2039a52ad7a28d1e61d6f07a8a4360fd..3bc281726ef3a9563669869116afd1f88a6506c2 100644 (file)
@@ -8,5 +8,5 @@ error[E0599]: no method named `foo` found for type `Bar` in the current scope
    = note: the following trait defines an item `foo`, perhaps you need to implement it:
            candidate #1: `Foo`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index fa08c3bee9cf356c8538bca589bcc0dbd6c9a08d..d3dbb77490b8730cff9a5fc09ac2d7eccf09079d 100644 (file)
@@ -10,5 +10,5 @@ error[E0599]: no method named `is_empty` found for type `Foo` in the current sco
            candidate #2: `core::slice::SliceExt`
            candidate #3: `core::str::StrExt`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 95d3007a4fb218e2982727b21ef52146e45cc850..fc441f94842731d7b65ca8044615e91d6c1168e4 100644 (file)
@@ -226,5 +226,5 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
 131 |     std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method3();
     |                                                                          ^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 24 previous errors
 
index cc7a7153a3859098837fd18e067486451cf49451..9216c6e290775163b731ee3c03d9fa68ffd820a6 100644 (file)
@@ -31,5 +31,5 @@ error[E0046]: not all trait items implemented, missing: `fmt`
    |
    = note: `fmt` from trait: `fn(&Self, &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error>`
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index a9535f1c8303884ff6e63919c0e16a2c7543b0eb..76362f1f494a6bb8b96a0e230869f72d6d5e501d 100644 (file)
@@ -10,5 +10,5 @@ error[E0277]: the trait bound `std::cell::UnsafeCell<i32>: std::panic::RefUnwind
    = note: required because it appears within the type `[closure@$DIR/interior-mutability.rs:15:18: 15:35 x:&std::cell::Cell<i32>]`
    = note: required by `std::panic::catch_unwind`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a444d5f5a40308bbae8a182f8392b831e1db5b5c..3e9b21cdb740fc072a1779e128acb49be55d7df2 100644 (file)
@@ -10,5 +10,5 @@ note: maybe move this module `$DIR/auxiliary/foo/bar.rs` to its own directory vi
 11 | pub mod baz;
    |         ^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a22496357d9915f12528a5839f563744fdfff490..22c16ada05de468757a87ec79f787039a724def9 100644 (file)
@@ -20,5 +20,5 @@ error: `<` is interpreted as a start of generic arguments for `usize`, not a com
 help: if you want to compare the casted value then write:
    |     println!("{}", (a as usize) < 4);
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index c27ad7680a5700696d21499d346dd8da95f5de72..8bfe4ac733b6d91c97d783b55e6a20fa95af4f4f 100644 (file)
@@ -5,5 +5,5 @@ note: ...which then requires computing layout of `std::option::Option<<S as Mirr
 note: ...which then requires computing layout of `<S as Mirror>::It`...
   = note: ...which then again requires computing layout of `S`, completing the cycle.
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
diff --git a/src/test/ui/issue-33525.rs b/src/test/ui/issue-33525.rs
new file mode 100644 (file)
index 0000000..0e777fe
--- /dev/null
@@ -0,0 +1,15 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn main() {
+    a;
+    "".lorem;
+    "".ipsum;
+}
diff --git a/src/test/ui/issue-33525.stderr b/src/test/ui/issue-33525.stderr
new file mode 100644 (file)
index 0000000..5de2d98
--- /dev/null
@@ -0,0 +1,20 @@
+error[E0425]: cannot find value `a` in this scope
+  --> $DIR/issue-33525.rs:12:5
+   |
+12 |     a;
+   |     ^ not found in this scope
+
+error[E0609]: no field `lorem` on type `&'static str`
+  --> $DIR/issue-33525.rs:13:8
+   |
+13 |     "".lorem;
+   |        ^^^^^
+
+error[E0609]: no field `ipsum` on type `&'static str`
+  --> $DIR/issue-33525.rs:14:8
+   |
+14 |     "".ipsum;
+   |        ^^^^^
+
+error: aborting due to 3 previous errors
+
index 62223c553e377a7e9f91cd6adea6c238fb9d82a2..b51b683a1ac3a5de798a8e3feaea1d315159574d 100644 (file)
@@ -8,5 +8,5 @@ error: reached the type-length limit while instantiating `<T as Foo><(&(&(&(&(&(
    |
    = note: consider adding a `#![type_length_limit="2097152"]` attribute to your crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index ceed83d9313cdbe14cf928eb1558593b0da77397..10bb61ee22a610819bded82ee3e6954f6eef1c9d 100644 (file)
@@ -10,5 +10,5 @@ note: for repeat count here
 16 |     let test_x = [0; issue_38875_b::FOO];
    |                      ^^^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 80f608c1d371040075d466165e1a1b6e75419f88..de110ac12b70398a3fc7f8d6ca7f051f71ff73b1 100644 (file)
@@ -7,5 +7,5 @@ error[E0507]: cannot move out of indexed content
    |             help: consider using a reference instead `&f.v[0]`
    |             cannot move out of indexed content
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index d35800ac1e766f67d9dfca9ad611d5ac56b8ec77..0060b683bba43637789a732186b8de60b21e75f5 100644 (file)
@@ -7,5 +7,5 @@ error[E0507]: cannot move out of indexed content
    |          |  ...and here (use `ref b` or `ref mut b`)
    |          hint: to prevent move, use `ref a` or `ref mut a`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b7b1ddb7b88d8ca54c1f219ffd271a77e56661b1..8a55c9989e18c1b9d9cb358e194ee4bda7085fe7 100644 (file)
@@ -13,5 +13,5 @@ note: candidate #1 is defined in the trait `issue_41652_b::Tr`
    | |__________________________^
    = help: to disambiguate the method call, write `issue_41652_b::Tr::f(3)` instead
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4d8c5e039af418846ed2476fe098e08ce4ddc445..83716b7791d83cac3a6f0046efbbb35909641234 100644 (file)
@@ -6,5 +6,5 @@ error[E0621]: explicit lifetime required in the type of `x`
 12 |     if x > y { x } else { y }
    |                ^ lifetime `'a` required
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 07b276601f47cef82517949e2908b28265b3f0ea..6d5e94a5e78adc8ead80a8c8aaaf3b4200f2df74 100644 (file)
@@ -6,5 +6,5 @@ error[E0621]: explicit lifetime required in parameter type
 12 |     if x > y { x } else { y }
    |                           ^ lifetime `'a` required
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 2adf0cd762c59b342f855438fbe5b3310b256f61..4288fdf89a41732a973360a903f0d7f8e7a498a0 100644 (file)
@@ -6,5 +6,5 @@ error[E0621]: explicit lifetime required in the type of `x`
 14 |    if x > y { x } else { y }
    |               ^ lifetime `'a` required
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 15825017d15c3edd9aada9447f00ee275a5435e9..95076bfbdc7dae548671a589ad9336a8d2bc5b7f 100644 (file)
@@ -7,5 +7,5 @@ error[E0621]: explicit lifetime required in the type of `x`
 18 |     if true { &self.field } else { x }
    |                                    ^ lifetime `'a` required
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 15ecca618052e25ce49b1b907b04dbda29e0a7c8..9e4f6c421790f5533ec266de0fd8647442b62a7c 100644 (file)
@@ -23,5 +23,5 @@ note: ...but the borrowed content is only valid for the anonymous lifetime #1 de
 23 | |     }
    | |_____^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 892a6dcd1e9346bf414746f577dac32d9ea6ec40..5d1336c7c3a22deaf77bdbf80122f716059e98bb 100644 (file)
@@ -6,5 +6,5 @@ error[E0621]: explicit lifetime required in the type of `y`
 12 |     if x > y { x } else { y }
    |                           ^ lifetime `'a` required
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 471b3401827d8106050281770a56350fa5b091d4..e3fd0192053b93547ce06af04fc2aabdcefb2328 100644 (file)
@@ -23,5 +23,5 @@ note: ...but the borrowed content is only valid for the lifetime 'a as defined o
 20 | |   }
    | |___^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 46fc43eaf5756fa0524dca41aab65e33f554f38b..8551f015db52772b2fe9349fa5aac4b6701ca0b8 100644 (file)
@@ -23,5 +23,5 @@ note: ...but the borrowed content is only valid for the anonymous lifetime #1 de
 20 | |     }
    | |_____^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index d005eeb40451ad8f9855665c8f10368510bc031d..fccc44caac81a5f7e25b11cdb0ca893266387bd7 100644 (file)
@@ -6,5 +6,5 @@ error[E0106]: missing lifetime specifier
    |
    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `x` or `y`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index ea696c51d62188ece63e4d106e3b6f612d02e005..8dba0c33f201a381e7a741f2fcb7d51467085956 100644 (file)
@@ -6,5 +6,5 @@ error[E0621]: explicit lifetime required in the type of `x`
 16 |     y.push(x);
    |            ^ lifetime `'a` required
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 1630ae32ba6bf65d7f48bbfac1e4e726a70ba66a..e529d6ffe46b47ac79973b7089aa7f75e6fb373b 100644 (file)
@@ -6,5 +6,5 @@ error[E0621]: explicit lifetime required in the type of `y`
 16 |     x.push(y);
    |            ^ lifetime `'a` required
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 6380a885f4467ddaf2a783ccb7716c454782fb4e..6764c58f4bb59aeb1b9b345eab5f840ba0032c48 100644 (file)
@@ -21,5 +21,5 @@ note: ...does not necessarily outlive the anonymous lifetime #2 defined on the f
 17 | | }
    | |_^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b28a3c0c1351da9662f025cbb0f832a961146a13..7356fc11862f6e104d004cd642852161b18e5e1b 100644 (file)
@@ -31,5 +31,5 @@ note: ...so that expression is assignable (expected Ref<'b, _>, found Ref<'_, _>
 17 |     x.push(z);
    |            ^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index dd716bac513d2eab4fceba362c4f54de6983295a..38b0acf9339e0e89595a6c0ee889abca1f2c221e 100644 (file)
@@ -33,5 +33,5 @@ note: ...so that expression is assignable (expected &mut std::vec::Vec<Ref<'_, i
 16 |     let a: &mut Vec<Ref<i32>> = x;
    |                                 ^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 141f5a7c4528b1e55ec504aae50ab10bac9f3f41..035e516e8628e9b933157645e651ef281f272c01 100644 (file)
@@ -33,5 +33,5 @@ note: ...so that expression is assignable (expected &mut std::vec::Vec<Ref<'_, i
 16 |     let a: &mut Vec<Ref<i32>> = x;
    |                                 ^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 2bc0acd626c0735b5a51ae61e7f5838f82132ab7..d1ba92465886e360d8f868e5a235a728d0e402c0 100644 (file)
@@ -10,5 +10,5 @@ error[E0597]: borrowed value does not live long enough
    |
    = note: consider using a `let` binding to increase its lifetime
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index d441702374b74dc42a3b8796a93ea26daf05f801..23fac66cc6c98f60ba85966bc8c10f565bd4ee3e 100644 (file)
@@ -6,5 +6,5 @@ error: variable `_InappropriateCamelCasing` should have a snake case name such a
    |
    = note: `-D non-snake-case` implied by `-D bad-style`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 9d4d0b12b187071d0311e4ed3e81faeb3f13ded1..0babd7f6fe47a06dbaccf37ad6790a8b15d2bb45 100644 (file)
@@ -6,5 +6,5 @@ error: variable `_InappropriateCamelCasing` should have a snake case name such a
    |
    = note: `-F non-snake-case` implied by `-F bad-style`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 636370de302b64c710498a7556da0034ea5a27f0..862e94b873a0c1faeb3f4775a52d8675d884e631 100644 (file)
@@ -63,5 +63,5 @@ note: lint level defined here
    |                 ^^^^^^^^^
    = note: #[warn(non_camel_case_types)] implied by #[warn(bad_style)]
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 831b3f65634b2b805485b8dfbe8dd3dfe1899c43..df62f5acc00748712e059522e358bbad9fd04bb2 100644 (file)
@@ -25,5 +25,5 @@ error[E0453]: allow(bad_style) overruled by outer forbid(non_snake_case)
 19 | #[allow(unused, unused_variables, bad_style)]
    |                                   ^^^^^^^^^ overruled by previous forbid
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 7a4a9c3f012bf9d082a30af769b45f3614a861cc..c154ea6f8c2d68e76a7ff04e24ad6b2a5b2b5017 100644 (file)
@@ -4,5 +4,5 @@ error[E0571]: `break` with value from a `for` loop
 22 |         break 22
    |         ^^^^^^^^ can only break with a value inside `loop`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b8337c81834b89e6efcf9ae2857838405f526216..bffb33f468fc886c7c10433111713bb242add472 100644 (file)
@@ -4,5 +4,5 @@ error: expected a literal
 12 |     println!(3 + 4);
    |              ^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a964b92712ddb00711621b6f2eb3c0ef8e9861e3..0283052a89f53d19a128cd8cb4836f7dbae769c2 100644 (file)
@@ -48,5 +48,5 @@ error: named argument never used
    = help: `$NAME` should be written as `{NAME}`
    = note: shell formatting not supported; see the documentation for `std::fmt`
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 5ed4ab4552a66e010beee95eca3198a17721d6e3..0f0d6d8ded313a2ede62e075ee903d28956ac397 100644 (file)
@@ -52,5 +52,5 @@ error[E0613]: attempted to access tuple index `0` on type `{integer}`, but the t
 56 |     let _ = fake_anon_field_expr!();
    |             ----------------------- in this macro invocation
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index 7835b85eafc0e8821889ec8abb9f7222a50de6ee..8b69d112d4d42b8390db27b5a03056557656aa02 100644 (file)
@@ -16,5 +16,5 @@ error[E0425]: cannot find value `fake` in this scope
 28 |     call_nested_expr_sum!();
    |     ------------------------ in this macro invocation
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 4177240d97696d2693bff7b8824de62c0bca7425..f21253bb67fb0c10e46458e63aa3997d639283cf 100644 (file)
@@ -7,5 +7,5 @@ error: invalid reference to argument `0` (no arguments given)
 28 |     myprintln!("{}");
    |     ----------------- in this macro invocation
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 2ba2069677e3d9f1cb41225fb6995acbe84e5f88..d9871b8970c5cf22b1cd32b70b5b34bbc8f4c32d 100644 (file)
@@ -22,5 +22,5 @@ error[E0053]: method `bar` has an incompatible type for trait
    = note: expected type `fn(&Bar)`
               found type `fn(&mut Bar)`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 3eb5c125789fc3ae44410541c6e244ae8e8d95c9..887412d1be7af5eba8acc1b40d44032c84e2cd27 100644 (file)
@@ -9,5 +9,5 @@ error[E0281]: type mismatch: `[closure@$DIR/E0281.rs:14:9: 14:24]` implements th
    |
    = note: required by `foo`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a5f63aca13e2170128675f077be1d1e3a3d588d0..cc7c01790706a02ea69c6bcf8617fb1252d638c6 100644 (file)
@@ -15,5 +15,5 @@ error[E0308]: mismatched types
    = note: expected type `&{integer}`
               found type `{integer}`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 8513da1e1d2111e21f2569a849ac566b59dceea0..d40bc3b333903fee5625460068abfab81c3a5185 100644 (file)
@@ -52,5 +52,5 @@ error[E0308]: mismatched types
    = note: expected type `X<X<_, std::string::String>, _>`
               found type `X<X<_, {integer}>, _>`
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index cebdc12f5684d73331c50860163000f4f9d23ebc..6d1a39e0d93c04554f7ccec483b0fa05226deeb4 100644 (file)
@@ -46,5 +46,5 @@ error[E0277]: the trait bound `{integer}: std::cmp::PartialEq<std::result::Resul
    |
    = help: the trait `std::cmp::PartialEq<std::result::Result<{integer}, _>>` is not implemented for `{integer}`
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index 879acbcf9d9d1cd198a603df218e067a894c0dab..fb363c388b6e659fc2d04cfeb29b25254760d544 100644 (file)
@@ -246,5 +246,5 @@ help: did you mean `*s`?
 81 |     vec![0.0].iter().map(|s| s as f32).collect::<Vec<f32>>();
    |                              ^
 
-error: aborting due to previous error(s)
+error: aborting due to 34 previous errors
 
index 85734dfac70d92f88679bab35e289ed9f77e934c..ca71154e872ee9ae7af4753f3c3f1b2705b5f3b7 100644 (file)
@@ -31,5 +31,5 @@ error[E0593]: closure takes 1 argument but 2 arguments are required
    |               |
    |               expected closure that takes 2 arguments
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 2c9c918168d0299989fe7b508f10199863f19799..5b3eb5931896aee60c50c0e36b8efa0c97379607 100644 (file)
@@ -20,5 +20,5 @@ error[E0281]: type mismatch: `[closure@$DIR/closure-mismatch.rs:18:9: 18:15]` im
    = note: required because of the requirements on the impl of `Foo` for `[closure@$DIR/closure-mismatch.rs:18:9: 18:15]`
    = note: required by `baz`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 5f67a66eb325fa7e287cf2537d32f24478fcc813..f7b7635e41aecfec70ad91f99b95fac6a0d944f2 100644 (file)
@@ -10,5 +10,5 @@ error[E0379]: trait fns cannot be declared const
 21 |     const fn f() -> u32 { 22 }
    |     ^^^^^ trait fns cannot be const
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 2030ad6c13b56af2ea42f0c0292875a523665914..120fb87cdc89820ea2264348dea853e069c8d105 100644 (file)
@@ -14,5 +14,5 @@ error[E0281]: type mismatch: `fn(&isize) {takes_imm}` implements the trait `for<
    |
    = note: required by `apply`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 6787fe91bf30847efb0b341f3c18d04db2151a44..4a619804a6c5d6722d5a661e22a38da1af73d071 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `{integer}`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 083c1f953330c0dd4baab3a4dcc4e62dcfb0bd71..2b4b8242af6fb7620bc961454e364f53de96a718 100644 (file)
@@ -9,5 +9,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `*mut Trait`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 9da9042e78ed13b891e2899e6e9bccd36b368a0f..fae831ffb868f63870802b19ff7ca2c05591d5e7 100644 (file)
@@ -18,5 +18,5 @@ error[E0605]: non-primitive cast: `{integer}` as `()`
    |
    = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 463d9fdf1717b3cac825bc248ad496976f37cf58..46d690c5f037b97ee2235cc51364c663ae642b4a 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `bool` (type parameter)
               found type `bool` (bool)
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index f818bd8bcb1bbf60d6cf30694788551b36b82ea4..51acdb719b69afc04c5e7bab30235d01c2a4b57e 100644 (file)
@@ -17,5 +17,5 @@ error[E0281]: type mismatch: `[closure@$DIR/issue-36053-2.rs:17:39: 17:53]` impl
    |                                requires `for<'r> std::ops::FnMut<(&'r &str,)>`
    |                                expected &str, found str
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 76ffa6e50e133d2e58cad02b4802bf75db98b40e..9efee4cc5593cb2ed8c9056c6ff3b985be3d7298 100644 (file)
@@ -32,5 +32,5 @@ error[E0529]: expected an array or slice, found `u32`
 34 | fn ugh(&[bar]: &u32) {
    |         ^^^^^ pattern cannot match with input type `u32`
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index b4e688e025e52b23ef87cc54223b8a86f3261375..c8941fbf950734c021621508ef1ef3129a95af14 100644 (file)
@@ -9,5 +9,5 @@ error[E0308]: mismatched types
    = note: expected type `u32`
               found type `()`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 80f95da0bbe443f2b5f73de93d23f3029e548522..ab5b3e1791528adfafb92d7490d9ede384641372 100644 (file)
@@ -7,5 +7,5 @@ error[E0599]: no method named `unwrap` found for type `std::result::Result<(), F
    = note: the method `unwrap` exists but the following trait bounds were not satisfied:
            `Foo : std::fmt::Debug`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 7c644e3a72dcd637e079bb6074c6d3e0c4934d75..cd05684f15d55d71c2157558b6380c8de90f615b 100644 (file)
@@ -19,5 +19,5 @@ error[E0057]: this function takes 1 parameter but 2 parameters were supplied
 45 |     let ans = s("burma", "shave");
    |                 ^^^^^^^^^^^^^^^^ expected 1 parameter
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 9e7f79df35aee136652f733d095930b292dc876f..ccc9fb56772f5b4e1c6b67b5be3d7bf509caed8e 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `std::boxed::Box<Foo + std::marker::Send + 'static>`
               found type `std::boxed::Box<Foo + 'static>`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 8741589f8464ed8b9a629ebc8975ff2bb9dcc450..349432f64bbc20cf4af4839fe604639f2c6f7124 100644 (file)
@@ -22,5 +22,5 @@ error[E0053]: method `bar` has an incompatible type for trait
    = note: expected type `fn(&mut Bar, &mut Bar)`
               found type `fn(&mut Bar, &Bar)`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 643c9b36dbd513dbc7beae5ee123b8a5769c17b4..995a12584547734a84abf2a68dec2b2aba38c496 100644 (file)
@@ -12,5 +12,5 @@ error[E0281]: type mismatch: `[closure@$DIR/unboxed-closures-vtable-mismatch.rs:
    |
    = note: required by `call_it`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 878544937905d0907f6a10af8510a54e4ea10c32..fc90c8a2b20bebc39cc4029febe377213a1c61da 100644 (file)
@@ -4,5 +4,5 @@ error[E0004]: non-exhaustive patterns: `C(QA)` not covered
 21 |     match proto {
    |           ^^^^^ pattern `C(QA)` not covered
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 2d699c66359d82edf2165b32632776fb229fa207..51afb95b89611d3583d4c4c7c740baa29b0eea3a 100644 (file)
@@ -11,5 +11,5 @@ error[E0046]: not all trait items implemented, missing: `CONSTANT`, `Type`, `met
    = note: `Type` from trait: `type Type;`
    = note: `method` from trait: `fn(&Self, std::string::String) -> <Self as m1::X>::Type`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index ce38178bf87bbfcb962ad807b93761e656f73ca2..a16ae5538bf92d2038afae65670a6d6d909c7b1a 100644 (file)
@@ -4,5 +4,5 @@ error[E0282]: type annotations needed
 14 |     foo();
    |     ^^^ cannot infer type for `X`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 94fc8f15c2b9e23346ecd1e71f0d2652051ba2ba..470e8331247851848b2cecf66b5c87c66d1fd863 100644 (file)
@@ -4,5 +4,5 @@ error: unmatched visibility `pub`
 13 | pub(crate) () fn foo() {}
    |          ^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index eebb2428ba3a5f023d5c2fba73465eefedb7838d..b8b4c80778d968d05f5296d9a8acb2459e8974dd 100644 (file)
@@ -4,5 +4,5 @@ error: expected identifier, found `(`
 16 |     pub(crate) () foo: usize,
    |                ^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 865b1d409e131bfa2e86ed0df3b3a25994047f7b..ebfccc4d720451f0e168d5c606792cdb64c68d45 100644 (file)
@@ -4,5 +4,5 @@ error: expected identifier, found `.`
 13 | pub (.) fn afn() {}
    |      ^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 34cc80fcc752796e9f480fbe276d64af615b95df..ae283f1fb636a151fb913cc8134a623ffff96f9b 100644 (file)
@@ -48,5 +48,5 @@ error: visibilities can only be restricted to ancestor modules
 33 |         pub (in x) non_parent_invalid: usize,
    |                 ^
 
-error: aborting due to previous error(s)
+error: aborting due to 5 previous errors
 
index cbcbf88d86e7f6c39a3ba88843aee6d4df80ec8a..1a2cc252051bfb9dffc07e18fdf0b86b2ff0ed71 100644 (file)
@@ -10,5 +10,5 @@ note: lint level defined here
 13 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 20640c0a897b44c562c8658e7bc9847fa34098c5..bf4e4dc4711cbcfbd6ef39069ae3536ac956a924 100644 (file)
@@ -11,5 +11,5 @@ note: lint level defined here
    |         ^^^^^^^^^^^^^^^^
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index c778aec08108e84c9afd5ec71ca43f3e3be67763..f8dbdb5f8bb66aa9c6097c5a6d18cb6944e80920 100644 (file)
@@ -16,5 +16,5 @@ error: unreachable expression
 25 |     let x: [usize; 2] = [22, return];
    |                         ^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 9310c000192739124476794271e214c4587f98f9..807f6a1c1d5847eb383d2e1f6bcfcb24ee2f2ea2 100644 (file)
@@ -22,5 +22,5 @@ error: unreachable expression
 36 |     *{return; &mut i} = 22;
    |               ^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index ea7b962e190d190c03a7a8237ee776f3e20529c3..542ce1c3fd9cb5b49e7f41743d623128be4505bc 100644 (file)
@@ -18,5 +18,5 @@ error: unreachable statement
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index ee89104df9e92413bdac699125cbffb35e9f30ac..78ba231cef9fcf2121f0173688ab3710823c13fa 100644 (file)
@@ -10,5 +10,5 @@ note: lint level defined here
 13 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 5e072ed1dc7abe766ec0e2ef41636a50eda5aba2..5526827f59fc9965853df9bc66eb3674e29572ea 100644 (file)
@@ -16,5 +16,5 @@ error: unreachable expression
 28 |     bar(return);
    |     ^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index a8668dc7355c12f6d6ae17d8f06f8f9adf6acbaa..a22300dcc1398f37c6c0dbee1b349266864a90a1 100644 (file)
@@ -10,5 +10,5 @@ note: lint level defined here
 14 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 7f901511f7206f281972cdcd1be72ed9cf47926b..2cf17474f6e9dd2ab1ddd152addf393ab004971a 100644 (file)
@@ -11,5 +11,5 @@ note: lint level defined here
    |         ^^^^^^^^^^^^^^^^
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4fb6392f405c218eb4858fe9b6e2ac139aac957c..6e98e754c54db30d1078dd882e45d004bfaeec0a 100644 (file)
@@ -27,5 +27,5 @@ error: unreachable statement
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 387f7900f4948d86d53b3be53adbee9e24472f5a..f5857a5b345eccbb27c0ee1159574737e9897002 100644 (file)
@@ -26,5 +26,5 @@ error: unreachable statement
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 68fd4973414151cf00e4c4985146e6cf108b552d..177d4352a376ddb175125c1425e7e57891a8d659 100644 (file)
@@ -16,5 +16,5 @@ error: unreachable expression
 31 |     Foo.bar(return);
    |     ^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 01b2e1009ee0c5507e2cf6c0d41df7c8a877f003..19afc5dd7b5ee192dc8307c046a6fabaa6d08100 100644 (file)
@@ -10,5 +10,5 @@ note: lint level defined here
 14 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index ee958aa9089d8e3350705265f9339b47f153bf80..3eb70a4dd7c848ecc53b7b50d5ce47035c876da5 100644 (file)
@@ -10,5 +10,5 @@ note: lint level defined here
 14 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 08866bf32b873abf1d4a0437318e12309183b4de..4b7ac6604132c165b255200be13f61c49b0ae77f 100644 (file)
@@ -28,5 +28,5 @@ error: unreachable expression
 40 |     let x = Foo { a: 22, b: return };
    |             ^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 780fb02f79037861879cc53c5441e81b1217acc5..63f477fd0c373a9a8b37111b1657380e410b8733 100644 (file)
@@ -16,5 +16,5 @@ error: unreachable expression
 25 |     let x: (usize, usize) = (2, return);
    |                             ^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 1216ec2676eefe106e40ca1dec343bfa82e3e8da..6ed79974ccb77c1aea43d4eddfbecc92102215fd 100644 (file)
@@ -10,5 +10,5 @@ note: lint level defined here
 14 | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index f47791455afed5a84beee86f6b612cf37cc71ab2..328b75fd236bcfcf73387b5b66dd447dd159b0df 100644 (file)
@@ -4,5 +4,5 @@ error[E0600]: cannot apply unary operator `!` to type `!`
 18 |     let x: ! = ! { return; 22 };
    |                ^^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 3da057f4bbd364ec61a0667518c4ecd378802fc0..066cfc86c6462c534a35260d76975bd5c40b091a 100644 (file)
@@ -27,5 +27,5 @@ error: unreachable statement
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 121a50d0eda172dd0e61a0283b61c9bb9b704880..0c7b44af949b6315588759e19418a5ea30064d01 100644 (file)
@@ -9,5 +9,5 @@ error[E0308]: mismatched types
    = note: lifetime parameter `'b` declared on fn `bar` appears only in the return type, but here is required to be higher-ranked, which means that `'b` must appear in both argument and return types
    = note: this error is the result of a recent bug fix; for more information, see issue #33685 <https://github.com/rust-lang/rust/issues/33685>
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 03e80046f679cb69140ee979474c762d8ba1b45a..17c5d5d15d40479415e0c5503c248ace94e25045 100644 (file)
@@ -25,5 +25,5 @@ error[E0422]: cannot find struct, variant or union type `C` in module `namespace
 help: possible candidate is found in another module, you can import it into scope
    | use namespaced_enums::Foo::C;
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 009d969fc285d703b6ae838023045ca81ae5c294..11268e593c4131bf40a958c5b60cc8b368aefea6 100644 (file)
@@ -144,5 +144,5 @@ error[E0425]: cannot find value `bah` in this scope
 
 error[E0601]: main function not found
 
-error: aborting due to previous error(s)
+error: aborting due to 25 previous errors
 
index 2fbf7d7185da3d3de70cdafcee7a45b43cc8a689..63d2ce109142c70116181304aad38511fcb51325 100644 (file)
@@ -9,5 +9,5 @@ help: possible better candidates are found in other modules, you can import them
    | use std::io::Result;
    | use std::thread::Result;
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 69eeb178dffcca4abf6b12637628fba7e6bafdc0..c0438abfe43b45cd5458eb302868063ff96c15df 100644 (file)
@@ -7,5 +7,5 @@ error[E0422]: cannot find struct, variant or union type `E` in this scope
 help: possible candidate is found in another module, you can import it into scope
    | use SomeEnum::E;
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 225e31010dabbfd4c0665d04df35e013fcc71b3d..edc7196d8464570222f235bd0a0b9b3e10947f20 100644 (file)
@@ -4,5 +4,5 @@ error[E0423]: expected function, found struct variant `Foo::Variant`
 16 |     let f = Foo::Variant(42);
    |             ^^^^^^^^^^^^ did you mean `Foo::Variant { /* fields */ }`?
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 25ee3a02146a70f5c614ae3dd6012440955b7962..7b14d49af51dd8c79cddd54c83372dd9b8929395 100644 (file)
@@ -10,5 +10,5 @@ error[E0423]: expected value, found struct variant `issue_19452_aux::Homura::Mad
 22 |     let homura = issue_19452_aux::Homura::Madoka;
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ did you mean `issue_19452_aux::Homura::Madoka { /* fields */ }`?
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 2ca541c161badea97dea7256ca4c1c9a2759c63d..fda87de9b9c500bb2f3d151ec33aa14cc7d9ca59 100644 (file)
@@ -11,5 +11,5 @@ note: the cycle begins when processing `<impl at $DIR/issue-23305.rs:15:1: 15:20
    | ^^^^^^^^^^^^^^^^^^^
    = note: ...which then again requires processing `<impl at $DIR/issue-23305.rs:15:1: 15:20>`, completing the cycle.
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 559598dd38ae92cbb882a31d38b240e6babd38e6..039887d8da65fe169b5695d5b880f6d1a47f2724 100644 (file)
@@ -106,5 +106,5 @@ error[E0424]: expected value, found module `self`
 122 |     self += 1;
     |     ^^^^ `self` value is only available in methods with `self` parameter
 
-error: aborting due to previous error(s)
+error: aborting due to 17 previous errors
 
index 14a2413feee23265c375b56bda9a2de934a9a09a..111710d515a92f28c3e4a479913e9fac3bd76c6b 100644 (file)
@@ -4,5 +4,5 @@ error[E0411]: cannot find type `Self` in this scope
 11 | fn foo(_: Self) {
    |           ^^^^ `Self` is only available in traits and impls
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a950075715ac014417aa46f2d1d2cdb57b4b766d..5dbecc4f0c5fa1ca937092b80d39cbb57de8282c 100644 (file)
@@ -4,5 +4,5 @@ error[E0423]: expected value, found trait `Bar`
 20 |     let any: &Any = &Bar; //~ ERROR expected value, found trait `Bar`
    |                      ^^^ not a value
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4e1ef25f8033307f32eb48cf52d41fa3c71a8c34..2ef8c830eb2fe5173c8f774a0a1053f75d74a33c 100644 (file)
@@ -6,5 +6,5 @@ error[E0038]: the trait `issue_3907::Foo` cannot be made into an object
    |
    = note: method `bar` has no receiver
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 134a4540a8d9e39538814de39db8c61625d6be00..f6ee0b025bb2e9a78c688d761626b8e03a0b6490 100644 (file)
@@ -7,5 +7,5 @@ error[E0423]: expected value, found struct `Handle`
    |                 did you mean `handle`?
    |                 did you mean `Handle { /* fields */ }`?
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 9bdd7ee4fd4b588eff1181c3324aec71b8dd8bf8..791b20725f3bcbb5d11ac164da22aa02812e56bf 100644 (file)
@@ -7,5 +7,5 @@ error[E0277]: the trait bound `I + 'static: std::marker::Sized` is not satisfied
    = help: the trait `std::marker::Sized` is not implemented for `I + 'static`
    = note: all local variables must have a statically known size
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 620958190caf8f739343e3a38ad13dd1d702da1a..b50295752f2e0a1632558b7d6de3a25a17d4b57d 100644 (file)
@@ -4,5 +4,5 @@ error[E0423]: expected function, found struct `Monster`
 17 |     let _m = Monster(); //~ ERROR expected function, found struct `Monster`
    |              ^^^^^^^ did you mean `Monster { /* fields */ }`?
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index d25c52eeab3ce9cb31b6464e31cbc464c74a970b..4dff2620319e4607dcee7cf5fe92c79bd922a8ab 100644 (file)
@@ -46,5 +46,5 @@ error[E0425]: cannot find value `second` in module `m`
 32 |     let b: m::first = m::second; // Misspelled item in module.
    |                          ^^^^^^ did you mean `Second`?
 
-error: aborting due to previous error(s)
+error: aborting due to 8 previous errors
 
index a1ec5f0b713a5d003cdbc2360954b2c7b991b1f5..18efb17dd4657fa851f202e5acbfb26b58476127 100644 (file)
@@ -65,5 +65,5 @@ error[E0603]: tuple struct `Z` is private
 45 |     xcrate::m::n::Z; //~ ERROR tuple struct `Z` is private
    |     ^^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 8 previous errors
 
index c346612a68bb62a04353ef3fb401cacfc5a61a20..7975c168de7d4d39075ed8e349aeeec795b8f249 100644 (file)
@@ -52,5 +52,5 @@ error[E0425]: cannot find value `method` in this scope
 52 |         method;
    |         ^^^^^^ did you mean `self.method(...)`?
 
-error: aborting due to previous error(s)
+error: aborting due to 9 previous errors
 
index 92f13f705b079adf766dee79291467c6319f5986..ffb3f8484306f72b66f857cc1a634233deb6c1c2 100644 (file)
@@ -4,5 +4,5 @@ error[E0423]: expected function, found macro `assert`
 12 |     assert(true);
    |     ^^^^^^ did you mean `assert!(...)`?
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 04c8087ace9ffa5e937fe36d8f6792971afc3621..e7df8140bc577bbb0d207cf85801c736c330d6a9 100644 (file)
@@ -22,5 +22,5 @@ error[E0425]: cannot find function `method` in this scope
 38 |         method();
    |         ^^^^^^ did you mean `self.method(...)`?
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index a34c27a47da8288892b482a4f6043f34cf56b902..d1794d19f6a53a1537ca133d328a3c1bb2c644e3 100644 (file)
@@ -74,5 +74,5 @@ error[E0423]: expected function, found module `a::b`
 
 error[E0601]: main function not found
 
-error: aborting due to previous error(s)
+error: aborting due to 10 previous errors
 
index 7307f19c74de3ecb3347f92f37050a73c9014346..feb12612e660419a04b8db46ad4da603f9ead61d 100644 (file)
@@ -16,5 +16,5 @@ error[E0425]: cannot find value `foo` in this scope
 14 |     if foo {
    |        ^^^ not found in this scope
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 53e9cb2177892eec1f54842fee6091ad2c747b56..bd3bdf35da60900c2874febe3b10297e56118457 100644 (file)
@@ -42,5 +42,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `std::result::Result<bool, std::io::Error>`
 
-error: aborting due to previous error(s)
+error: aborting due to 5 previous errors
 
index 1dd263affd4c3c6f923cf9b58f705fc2abbe2b86..226fa6469bc740f9403c0f8aa75050a68693574e 100644 (file)
@@ -52,5 +52,5 @@ error[E0425]: cannot find function `bar` in this scope
 14 |     foo(bar(;
    |         ^^^ not found in this scope
 
-error: aborting due to previous error(s)
+error: aborting due to 7 previous errors
 
index 2fc5979a6065ebc4b42be1f855c6789dfaed7e44..e2ef8f0e568fcf4f47ca1ed331d22eb9fa5b6dbe 100644 (file)
@@ -28,5 +28,5 @@ error[E0532]: expected tuple struct/variant, found type alias `A`
    |         did you mean `S`?
    |         did you mean `A { /* fields */ }`?
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index ff6bcf2a53205ecb9f5c4b4a8fd153e77712088f..5fbaf66e014af073f45aef78a325c8347a7c1cef 100644 (file)
@@ -7,5 +7,5 @@ error[E0425]: cannot find value `cx` in this scope
    |           did you mean `self.cx`?
    |           `self` value is only available in methods with `self` parameter
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index d77523299bc29c5cc2674b7b73abee5b54d358f4..a16a9c0244fb6dd18d1bb1a37cb0b258566387b1 100644 (file)
@@ -24,5 +24,5 @@ error[E0194]: type parameter `T` shadows another type parameter of the same name
 18 |     fn shadow_in_method<T>(&self) {}
    |                         ^ shadows another type parameter
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index f722908ec108a07099a4db10567e1f27a8f89a96..729a515612463396cf588abc8c38f174ed0c092f 100644 (file)
@@ -7,5 +7,5 @@ error[E0046]: not all trait items implemented, missing: `foo`
 18 | impl Foo for Bar {}
    | ^^^^^^^^^^^^^^^^^^^ missing `foo` in implementation
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index bc3a3908dcaefef6033c4a40114732dc37acda19..0d6b0a552e4de981733df0af246a7dc0848b50cf 100644 (file)
@@ -10,5 +10,5 @@ error[E0057]: this function takes 1 parameter but 2 parameters were supplied
 15 |     let c = f(2, 3); //~ ERROR E0057
    |               ^^^^ expected 1 parameter
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 14e6bcb73b02b69c62058b93fc3861924f24afd7..1f6dd6b1d165f52c9eb3f5e257ccce7dcafd4718 100644 (file)
@@ -9,5 +9,5 @@ error[E0072]: recursive type `ListNode` has infinite size
    |
    = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `ListNode` representable
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index fab2436922dda318fd5f2d16716b69ba17407645..4fe6afaca8ec658a4eae9fdba79b35dc37cacb29 100644 (file)
@@ -34,5 +34,5 @@ error[E0204]: the trait `Copy` may not be implemented for this type
 31 |     Bar(&'a mut bool),
    |         ------------- this field does not implement `Copy`
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 5f8b57294d548e6aa6fb38133abb7adbc0017ba4..afcc9a240eb4e6c266a4decb0e110c8e2b80ad99 100644 (file)
@@ -7,5 +7,5 @@ error[E0493]: constants are not allowed to have destructors
 27 | const F : Foo = Foo { a : 0 };
    |                 ^^^^^^^^^^^^^ constants cannot have destructors
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 64c0016085f07c1de13792dfe77ddd532828bbc4..23070e1555b9b89f101cd7440fd30e9d06554978 100644 (file)
@@ -4,5 +4,5 @@ error[E0535]: invalid argument
 11 | #[inline(unknown)] //~ ERROR E0535
    |          ^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 8a4cf34e565f5016348dd7b7b33efa26b2b42c5b..b2da0c6a296d8fc5119d4f68560f799f9947408d 100644 (file)
@@ -4,5 +4,5 @@ error[E0536]: expected 1 cfg-pattern
 11 | #[cfg(not())] //~ ERROR E0536
    |       ^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 1bd54a6a007ed94c2c18c128270da0be691bec71..29873943f444d8e65a7fc59f27af530744919307 100644 (file)
@@ -4,5 +4,5 @@ error[E0537]: invalid predicate `unknown`
 11 | #[cfg(unknown())] //~ ERROR E0537
    |       ^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4b01f5bea7cf2f28a3f2b7fd4df0eb824eb6b0be..2d580e7c20eee53bc9726f8e25f0d2781a408cc8 100644 (file)
@@ -82,5 +82,5 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 143 |     *x.y_mut() = 3; //~ ERROR cannot borrow
     |      ^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to 10 previous errors
 
index 886cc14203956e293d2e38032ebcd3440feb7759..3d380a9a2e88d4714bd6ae9987d51e9e32aa28bb 100644 (file)
@@ -30,5 +30,5 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 63 |     **x = 3; //~ ERROR cannot borrow
    |      ^^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index a26ca490dd5eed7b9a1fac1165d11ef1f4f1578d..6e7d0c17f1dfe58233e41a52ff7f62aa8be36903 100644 (file)
@@ -47,5 +47,5 @@ error[E0507]: cannot move out of captured outer variable in an `FnMut` closure
 72 |         foo(f);
    |             ^ cannot move out of captured outer variable in an `FnMut` closure
 
-error: aborting due to previous error(s)
+error: aborting due to 5 previous errors
 
index dea95d6bf6dcabf5ad3ae93ff8018dc68c23b3e1..a57cc94b9ba742d99bd446dbbd91ccc83fc67b2d 100644 (file)
@@ -7,5 +7,5 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 27 |     x.h(); //~ ERROR cannot borrow
    |     ^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 3bf56881c54aee44cb093bf3eb5e5e08890cd7f5..45712d1a710246469f8e8e9e2dbbd527c212ff49 100644 (file)
@@ -6,5 +6,5 @@ error[E0596]: cannot borrow immutable borrowed content `*x` as mutable
 17 |         x.push(format!("this is broken"));
    |         ^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 04dbcd2ef499f0fa8758579aa027b984e0512999..6ed1b7c26225e31019507ab31ea74838b6b5d6f5 100644 (file)
@@ -48,5 +48,5 @@ error[E0597]: borrowed value does not live long enough
    |
    = note: consider using a `let` binding to increase its lifetime
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 877b17dc27dff8f26621a6cbb797514eebf38fcb..530993f399a99d76e174d4e3406d288b7a302859 100644 (file)
@@ -16,5 +16,5 @@ error[E0596]: cannot borrow immutable `Box` content `*x` as mutable
 29 |     x.borrowed_mut(); //~ ERROR cannot borrow
    |     ^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index e0a484bcb37ad7f3dca3b0494e0df964440f357e..ced1f762af4a40a7b9a0c4958465e4c7dbcdda07 100644 (file)
@@ -12,5 +12,5 @@ error[E0597]: borrowed value does not live long enough
    |
    = note: consider using a `let` binding to increase its lifetime
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index e3bc64a2cfd416054826d1ab120a790f0f24758f..b703632bf90c1c662ecd7891a4b6b14051494e98 100644 (file)
@@ -58,5 +58,5 @@ error[E0308]: mismatched types
    = help: try with `&mut format!("foo")`
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index 1472a364863de3116992f4bc5f6c79e6291456d7..ee885454169cb1824ec83a5023b3850f52c80567 100644 (file)
@@ -8,5 +8,5 @@ error[E0597]: `*a` does not live long enough
    |     |
    |     `*a` dropped here while still borrowed
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index d0fceb2a03eefcd84867b35d4c594b05919790ca..49115b244e6737662250eea54a2f4118811c25aa 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: `*m` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 2a9c2c8413f5737cb130f60029e898f0e83b6bd5..4179ac1a94605ecb067775af2f562b4c009b430b 100644 (file)
@@ -63,5 +63,5 @@ error[E0597]: `b2` does not live long enough
     |
     = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index e6421cd47854e506a64a195ce06b2c6f1fb4bf99..597d42aabd2d7000923ead130a0e2613a7d3ab9c 100644 (file)
@@ -19,5 +19,5 @@ error[E0597]: `d1` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 7fbdcba7eb6887c0ad457dcec2e2b1699d0c0f61..958f229f659ea03b0c261b687d27ab977199c4a0 100644 (file)
@@ -19,5 +19,5 @@ error[E0597]: `v` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 3861b145c1b5fcdc1fb8b309db5bde29148025e7..d7d0fe5323ba2735218fcb9b7ba6366ffe433027 100644 (file)
@@ -63,5 +63,5 @@ error[E0597]: `c2` does not live long enough
     |
     = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index ca7286f50275b7c3899c281718b8b03cb13ddf74..2c4c6a148d7b37ec107ecd6b73665a675048f371 100644 (file)
@@ -85,5 +85,5 @@ error[E0046]: not all trait items implemented, missing: `fmt`
    |
    = note: `fmt` from trait: `fn(&Self, &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error>`
 
-error: aborting due to previous error(s)
+error: aborting due to 8 previous errors
 
index 67d60fe085ad278c2a72306e3cf97a8e935086b0..6b2942bc7a8a78a1c1887f907d60d7639efe25c8 100644 (file)
@@ -10,5 +10,5 @@ error[E0597]: `x` does not live long enough
 23 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index f5f987c823f731f463c7251fc2b777e8262102a4..ce1c6e81b960fe148a067fe225d36c600afb112b 100644 (file)
@@ -11,5 +11,5 @@ error[E0597]: borrowed value does not live long enough
    |
    = note: consider using a `let` binding to increase its lifetime
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index e564b7ccef2356b6dce8c1dfbf3852078a1d09b5..02c033153725c14e7f698a02946971cc03ae334f 100644 (file)
@@ -18,5 +18,5 @@ error[E0597]: `y` does not live long enough
    |     |
    |     `y` dropped here while still borrowed
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index d6aed36c8f63f9258323bfb42396d433a7b67ae3..d9f4bacce35ae0650c9d88c39f58329dab187dcc 100644 (file)
@@ -12,5 +12,5 @@ error[E0046]: not all trait items implemented, missing: `Item`
    |
    = note: `Item` from trait: `type Item;`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index a1d3f5c11df34e91c2d7f34c0069b79209a9e568..3127af157a62bbb8184673b6398e6f4993db4230 100644 (file)
@@ -12,5 +12,5 @@ error[E0046]: not all trait items implemented, missing: `Output`
    |
    = note: `Output` from trait: `type Output;`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 771ea787304b3c29862b4b7c6dc0c0002b776089..71ab82d98b809abee614d08c740e37a5266d8ee6 100644 (file)
@@ -11,5 +11,5 @@ error[E0046]: not all trait items implemented, missing: `Target`
    |
    = note: `Target` from trait: `type Target;`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index edc150f65eafc0e7ca137ce8e27b0dfbf20fb590..8332ba50a73dc3b72016dd8f54ab0c4b7df16c6d 100644 (file)
@@ -30,5 +30,5 @@ note: lint level defined here
    |         ^^^^^^^^
    = note: #[deny(unused_variables)] implied by #[deny(warnings)]
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 314ef0ecbbcd304e710507e50f750e9202d634c6..29587b7fbde9e6637ab42c0fec1c77b880be2b7f 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: `d1` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 66f22d14578bbb68ee4e58bbbcae164dfba7a5b5..c88d4a0202fba67f074cf37af4374ac661d05f19 100644 (file)
@@ -28,5 +28,5 @@ error[E0597]: `d1` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index cfa8359088a9fbb28bf14f7ed0939ea1f7614cab..7f80e6e115af4c3230b30245520c69b9fa89d83f 100644 (file)
@@ -8,5 +8,5 @@ error[E0597]: `d1` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 999871db0939b05b6d2727f1c586a09dc23e8a33..4f403b38f5a1f1bc737012c1f950770ac17854d4 100644 (file)
@@ -19,5 +19,5 @@ error[E0597]: `container` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index b4f0195f6a8bc6e807fec79a1f6e2cda794bb478..748fcae48fcba03958782e66398d5a18f37fd10b 100644 (file)
@@ -8,5 +8,5 @@ error[E0597]: `ticking` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 443595c6d2c764ae4c62a20c0a16dc56758c9375..117b109780b152de90c24f45dd97f8697ea3d84b 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched method receiver
    = note: expected type `&Self`
               found type `&SomeType`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b645cbf402d95cd54576af6be177339caaca3ac9..f146028c2fcf190988f016ba0ac119688076e315 100644 (file)
@@ -18,5 +18,5 @@ error[E0597]: `x` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 4065c4fb85713f3836cf1172c98672a3d1fd5971..abbac245f89f66b191709212f42738ac9d8e2244 100644 (file)
@@ -6,5 +6,5 @@ error[E0277]: the trait bound `u8: Tr` is not satisfied
    |
    = note: required by `Tr::C`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 38256ec944b9b9c5debf9ed7f4a9cd55f075381a..2a874181c7ad9a03332c073bbde569fce15ebc76 100644 (file)
@@ -8,5 +8,5 @@ error[E0308]: mismatched types
               found type `std::string::String`
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 48ed0b4ac89aa964e62debf10532383fa2873175..e25caacac8febed524fc3dbcf11b6a26fd65e0ea 100644 (file)
@@ -45,5 +45,5 @@ error[E0061]: this function takes 2 parameters but 3 parameters were supplied
 19 |     bar(1, 2, 3);
    |         ^^^^^^^ expected 2 parameters
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index 5dc9bd8b79b19952cd313f6940e421135ea7eb7d..dc6190c2e76b0f28afee368623308f022d13cb96 100644 (file)
@@ -14,5 +14,5 @@ error: The attribute `foo` is currently unknown to the compiler and may have mea
    |
    = help: add #![feature(custom_attribute)] to the crate attributes to enable
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index df06cd1d0ea0c88e089ef7ee24e51fd396e6a671..803e476b74932789b96839b3f4305983807c133a 100644 (file)
@@ -8,5 +8,5 @@ error[E0597]: `a` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index bd271641e7e3cca949f80c52bee1e71a435e3815..7cf74eaab8db12c65c7ed2e1266edc152643919d 100644 (file)
@@ -55,5 +55,5 @@ note: candidate #2 is defined in the trait `F`
    |     ^^^^^^^^^^^^^^^
    = help: to disambiguate the method call, write `F::foo(a)` instead
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index f0b940cdf3fa9e150e1509ec9562f0dd10734b82..cd3a41b037c7996e8fa529e8fc805b9bca3e4c61 100644 (file)
@@ -15,5 +15,5 @@ error[E0369]: binary operation `+` cannot be applied to type `World`
    |
    = note: an implementation of `std::ops::Add` might be missing for `World`
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 0d0a07629c49a09309dacb4115d1e6cbafd73f15..97d802f8398311fa3930f046e903224063e1d87e 100644 (file)
@@ -38,5 +38,5 @@ error[E0408]: variable `c` is not bound in all patterns
    |         |             pattern doesn't bind `c`
    |         pattern doesn't bind `c`
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 50183aa3bde813f587d1207f7ea873d9c598cf60..b689bef63f156a0f9a2b64af5b0684603d4fbfd1 100644 (file)
@@ -10,5 +10,5 @@ error[E0597]: `foo` does not live long enough
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 9bf00b1b5749a2091f49c74fbdb9303a90ee7270..858c099d37434f2116eb2187d5bcfe94eb4df09a 100644 (file)
@@ -63,5 +63,5 @@ note: candidate #1 is defined in the trait `ManyImplTrait`
    = note: the following trait defines an item `is_str`, perhaps you need to implement it:
            candidate #1: `ManyImplTrait`
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index a2ef99f9d76fffe924af0f45776bceaca76ca9b6..6beb3109c75d486cf7648b038ddf5ac6b6eb4bb1 100644 (file)
@@ -19,5 +19,5 @@ error[E0597]: `foo.data` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index cb77cd3dc991cc7646f6b47b755d40e25cee11e4..358fa9b7c450d9609fd8d2ed4d6826fed05c9cb1 100644 (file)
@@ -20,5 +20,5 @@ error[E0597]: `first_dropped` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 49116c340ec5cc57d64415e434afe7dfdbef6620..0aaf2b27f60a8d4e30b482479997a54ba957474d 100644 (file)
@@ -20,5 +20,5 @@ error[E0597]: `first_dropped` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index bb4de82422ae83fa85b3c2fe40e56cfeb9cc78f1..27a4d2384ab79d672b7aa535824319f805cacad6 100644 (file)
@@ -20,5 +20,5 @@ error[E0597]: `first_dropped` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 2f5e60a1b3c9d0fbf07bb0899f18db927e6b467c..f4998e08907a387f55b897ab80f5cc47e203d540 100644 (file)
@@ -106,5 +106,5 @@ note: because it's nested under this `unsafe` fn
 44 | | }
    | |_^
 
-error: aborting due to previous error(s)
+error: aborting due to 8 previous errors
 
index 036c4bd6b8d1407aa558fee269fec667559bece0..91bdd8a8caddb9b8e554de3774d0cdd19ea1831b 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: `short` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index f76c5b049c4b04c0a65f69885be2573e89c647d3..2294e6476d61fe2dd6c157884821603176b21af3 100644 (file)
@@ -7,5 +7,5 @@ error[E0308]: mismatched types
    = note: expected type `()`
               found type `[closure@$DIR/move-closure.rs:15:17: 15:27]`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 881c2f5df45a2ffaee2e15f8a26870904589379a..a06cbd04deb4fb4a32bc030387426608e8a913fd 100644 (file)
@@ -12,5 +12,5 @@ error[E0072]: recursive type `ListNode` has infinite size
    |
    = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `ListNode` representable
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 0224cef8da123cbc4eaed2ec89cdb5d35414373b..3915f1b655cf5bad8dd3d1ba544a6a5fbf39629d 100644 (file)
@@ -6,5 +6,5 @@ error[E0277]: the trait bound `u32: std::ops::Add<()>` is not satisfied
    |
    = help: the trait `std::ops::Add<()>` is not implemented for `u32`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 754e96aa808a8713b00f4b771d4f625d042cc11d..f8584c6739078d624019f7ce3982296208371826 100644 (file)
@@ -22,5 +22,5 @@ error[E0596]: cannot borrow immutable borrowed content `*a` as mutable
 25 |         a.push_str("foo");
    |         ^ cannot borrow as mutable
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 5bd6a786cfd4f71d549813e920a2a6c4aa05c139..007a9fad83073ffe808f679460ec3b75d8e659d2 100644 (file)
@@ -8,5 +8,5 @@ error[E0597]: `b` does not live long enough
 20 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 835b08f890751a853a2407902bdba88e9e702d03..c66361c8546b839046fb47b9fcf2556eeba2c395 100644 (file)
@@ -15,5 +15,5 @@ error[E0124]: field `bar` is already declared
 17 |     pub(crate) bar: u8,
    |     ^^^^^^^^^^^^^^^^^^ field already declared
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 465a663a7416c7c1e4974d5d29f4881c0e87a0e6..285ab4aee4bc473853c03acae85bbb3073e3581a 100644 (file)
@@ -20,5 +20,5 @@ error[E0597]: `b` does not live long enough
 21 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 72177754681f80ea3c516f000cd953ffa76db8a2..b4d0b5a6a25d03557028beec40e27409ccb2b19e 100644 (file)
@@ -27,5 +27,5 @@ error[E0072]: recursive type `Bar` has infinite size
    |
    = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `Bar` representable
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 80dadd97a1793f928c274189b79016adccc71ed5..29848412e4e7740bbcaac82448e6d4ef6a1c42dd 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: `c` does not live long enough
 20 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 25386cb30b185872bd2e7727a06cb512dd54c63d..e671f1daf61da1163c9e393b1513345f7b5f1fd1 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: borrowed value does not live long enough
 23 | }
    | - temporary value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 9b5383877a08a6a3d5b844246b7de0af9a150872..a89127b1436c57a187a96d69eb051a28ed2b0f6b 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: `tmp0` does not live long enough
    |     |
    |     `tmp0` dropped here while still borrowed
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 9f8c91cb9cdbd5489afd3c2b3d7d364485cbbe75..cfdd1c8b1539d4205c2e77d11795aa53fc1767cd 100644 (file)
@@ -8,5 +8,5 @@ error[E0597]: `x` does not live long enough
 23 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4f0e61f1133800416cd2750a6186be859e7b9684..b61df82e8a14f1db996497c321757825f3e2d140 100644 (file)
@@ -37,5 +37,5 @@ error[E0506]: cannot assign to `x` because it is borrowed
 24 |         x += 1; //~ ERROR cannot assign
    |         ^^^^^^ assignment to borrowed `x` occurs here
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 43103e619a549357c85e9a4f8b0e90cb79a047ff..0960f5e1b25669621049f73a197e6da9cc243b03 100644 (file)
@@ -10,5 +10,5 @@ error[E0597]: `*x` does not live long enough
 30 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b5e55adfb459ea69772eedf520fb0d7bd2a125d2..02fc9820495a983d05d813e3d8b61dfc33fad926 100644 (file)
@@ -24,5 +24,5 @@ error[E0597]: `y` does not live long enough
 35 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 2845c4f6bda804ed87b58b49c059f3b1b1bf903b..318dab599f5a3f910846d4a826954a7b73337197 100644 (file)
@@ -32,5 +32,5 @@ error[E0597]: `x` does not live long enough
 44 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 3d75a1b717aadc42385a65e629efd8d7391af479..988ff228105de907bf2c7c77d7489a500d7c94eb 100644 (file)
@@ -52,5 +52,5 @@ error[E0505]: cannot move out of `y` because it is borrowed
 49 |     drop(y); //~ ERROR cannot move out
    |          ^ move out of `y` occurs here
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index 0c07d068d287eeee871ce32cb484e9d22bcea322..b60ccd0fbf348d6dd033d8467966637d66fa449a 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: borrowed value does not live long enough
 19 | }
    | - temporary value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 68d43d3f5cd857939ce16aaedbbcf5ee43b14ff3..c2ab7542d8a98ed8d89e115e3bfde24f3bb5415c 100644 (file)
@@ -4,5 +4,5 @@ error[E0608]: cannot index into a value of type `({integer},)`
 14 |     println!("☃{}", tup[0]);
    |                     ^^^^^^ help: to access tuple elements, use `tup.0`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index afe069e7aa684cad3bc73dfdb92528c209d0210e..dc37acaf3f98eb3a5b320bebfb3c4d65bc40dc13 100644 (file)
@@ -4,5 +4,5 @@ error[E0220]: associated type `Trget` not found for `std::ops::Deref`
 16 | fn homura<T: Deref<Trget = i32>>(_: T) {}
    |                    ^^^^^^^^^^^ associated type `Trget` not found
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 6556e5b4c001e7f92e86d2ec7b76bbdb1166f2f6..dca0a93f897baaa42de4d950161856983dd49876 100644 (file)
@@ -10,5 +10,5 @@ error[E0425]: cannot find value `fob` in this scope
 18 |     println!("Hello {}", fob);
    |                          ^^^ did you mean `foo`?
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 0efbd8472aec47132ad2c283b179b93cb8cc41f7..f7c94ed9f73d138438f064a6db1ffefbe38c327b 100644 (file)
@@ -19,5 +19,5 @@ error[E0597]: `c1` does not live long enough
     |
     = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index 0dee15b42319fc898d8e224487eda926ea0f2893..282e5caf20787ce1bed47cf4425d813575425576 100644 (file)
@@ -20,5 +20,5 @@ error[E0597]: `y` does not live long enough
    |
    = note: values in a scope are dropped in the opposite order they are created
 
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
 
index d5e663ff26d382f324f49f059d408b85b8626119..a37b5d17aac98f244dbea5484746a9ced3e4b3d6 100644 (file)
@@ -9,5 +9,5 @@ error[E0597]: `pointer` does not live long enough
 33 | }
    | - borrowed value needs to live until here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 89008828ac5efaf54178e88ed0bca1c847fac0f8..f73dff4f73d0ee43ba06369bcfed4a5a6f3ca13a 100644 (file)
@@ -6,5 +6,5 @@ error[E0477]: the type `std::borrow::Cow<'a, A>` does not fulfill the required l
    |
    = note: type must satisfy the static lifetime
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b69d90cf8f78c64e0d01458eac0e1282884f3287..0ca61127634bcaa8ebc4d40b07dee0a927feaa9d 100644 (file)
@@ -6,5 +6,5 @@ error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-
    |
    = help: use `(o.closure)(...)` if you meant to call the function stored in the `closure` field
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 218653239083b88f04b0b1ab537072476f3ba4cb..c6f134f118db70ee1670e34e4b95fb9cd371bef2 100644 (file)
@@ -86,5 +86,5 @@ error[E0599]: no method named `f3` found for type `FuncContainer` in the current
     |
     = help: use `((*self.container).f3)(...)` if you meant to call the function stored in the `f3` field
 
-error: aborting due to previous error(s)
+error: aborting due to 11 previous errors
 
index f1d8df816398704b2cd086b9c3783bfe3acafa1d..a45e70d48c99e6200a9c323cecc39f1567759739 100644 (file)
@@ -6,5 +6,5 @@ error[E0599]: no method named `example` found for type `Example` in the current
    |
    = help: use `(demo.example)(...)` if you meant to call the function stored in the `example` field
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 7918fc1e89d8c4cdbaea61391d1d8b6a6d06852e..d41f7cbdf5658436b40fa134182fd01478826eba 100644 (file)
@@ -22,5 +22,5 @@ error[E0599]: no method named `c_fn_ptr` found for type `&D` in the current scop
    |
    = help: use `(s.c_fn_ptr)(...)` if you meant to call the function stored in the `c_fn_ptr` field
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 5b1c63822f90703c3b773f87448a25d944967581..9451926626028a79543267139f04009158e9bcbb 100644 (file)
@@ -4,5 +4,5 @@ error[E0599]: no method named `dog_age` found for type `animal::Dog` in the curr
 26 |     let dog_age = dog.dog_age();
    |                       ^^^^^^^ private field, not a method
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 47a1b53cc60e0d95a98f78a4e4d2cafdf02636dd..8a121b145366250abbcd1d39a05c42ca1d4e63d5 100644 (file)
@@ -7,5 +7,5 @@ error: unexpected token: `1.1`
    |     |           unexpected token
    |     help: try parenthesizing the first index `((1, (2, 3)).1).1`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 15e4d4c72bc50d926ddae589d8c319e6601ea35f..4d60be15ecaf0aae9a8801d4a1655831da71eb7a 100644 (file)
@@ -4,5 +4,5 @@ error: expected one of `!` or `::`, found `<eof>`
 15 | FAIL
    | ^^^^ expected one of `!` or `::` here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4b0b05ca65adc89eee6a6baf957dc68bcc75ef57..48bbeac75d3d18dc0170d7393cf28d35025e3a31 100644 (file)
@@ -24,5 +24,5 @@ error: expected expression, found `)`
 
 error[E0601]: main function not found
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 56f71a2995382759495c4daf6e8dfaa1160e19ff..50a38da9d8c18ecb4539611534e0f26d0c969c09 100644 (file)
@@ -14,5 +14,5 @@ error[E0412]: cannot find type `S` in this scope
 
 error[E0601]: main function not found
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 14a7186aab19c2ef249e21d37e062f0270251206..f23d97586b843437002585034875cd2bca7dddd8 100644 (file)
@@ -28,5 +28,5 @@ note: caused by the macro expansion here; the usage of `ignored_pat!` is likely
 37 |         ignored_pat!() => (), //~ NOTE caused by the macro expansion here
    |         ^^^^^^^^^^^^^^
 
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
 
index 5fe0b3594f67cc1bd86a856de6972ec7928a51e8..c765a434b8ac6e86ef1c6f5cffce28b847dea095 100644 (file)
@@ -4,5 +4,5 @@ error: expected one of `!` or `::`, found `<eof>`
 19 | FAIL
    | ^^^^ expected one of `!` or `::` here
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index c5d5a4ed8a6239631d2985df674f9002414779c4..a7fc0808e184557153feae0b4d62e36b0ac95fcb 100644 (file)
@@ -34,5 +34,5 @@ error[E0512]: transmute called with types of different sizes
    = note: source type: i32 (32 bits)
    = note: target type: Foo (0 bits)
 
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
 
index 61ee5cf61283fa2937b16ad0307a40b46d72a679..7f1929050bb8fc33275a1032453ed3642b77e79f 100644 (file)
@@ -104,5 +104,5 @@ error[E0512]: transmute called with types of different sizes
    = note: source type: std::option::Option<fn()> (64 bits)
    = note: target type: u32 (32 bits)
 
-error: aborting due to previous error(s)
+error: aborting due to 11 previous errors
 
index bb21cfd3e4c9d462adc5b1e731f22a13a86c2982..816c62812f31f7541cff0a60ad2c80a22397358e 100644 (file)
@@ -52,5 +52,5 @@ error[E0512]: transmute called with types of different sizes
    = note: source type: std::option::Option<T> (size can vary because of T)
    = note: target type: i32 (32 bits)
 
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
 
index 294399992732233a541ce4899456667b22e00fc1..a077f37eae6eeff367197194391b25a1c93122de 100644 (file)
@@ -55,5 +55,5 @@ error[E0308]: mismatched types
    = note: expected type `bool`
               found type `()`
 
-error: aborting due to previous error(s)
+error: aborting due to 5 previous errors
 
index 007480dc44ff22e7f508008de9ed4d676090620d..8c52bb5a1d3a51d9401efe7d30800c019f4b8323 100644 (file)
@@ -6,5 +6,5 @@ error[E0282]: type annotations needed
    |         |
    |         consider giving `x` a type
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 4650df5411b5bc6abba5ec0a5e396d548db00f00..4788fad20889e4123904a479d13ed2ade197b7c7 100644 (file)
@@ -8,5 +8,5 @@ error[E0282]: type annotations needed
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 08b5ae4bbb6fa2e7377b3bdf1f289d89077684f0..ccffadebe9ee2c177ed408509ae3789ede07e7f9 100644 (file)
@@ -8,5 +8,5 @@ error[E0282]: type annotations needed
    |
    = note: this error originates in a macro outside of the current crate
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index b3c736c3b685d3722e066c8bab8b7e5d296b0e93..9568411885192a04f4002f0ca87a138159b22f1e 100644 (file)
@@ -4,5 +4,5 @@ error[E0282]: type annotations needed
 14 |     [];
    |     ^^ cannot infer type for `[_; 0]`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index cd474b14193f1096e9258f2e5f0a3d7be447fbae..bb3a371b26e0ceefba9b25e1aff1edc1f6cc28af 100644 (file)
@@ -12,5 +12,5 @@ error[E0283]: type annotations required: cannot resolve `&'a T: Foo`
    |
    = note: required by `Foo`
 
-error: aborting due to previous error(s)
+error: aborting due to previous error
 
index 200864dfbf77aa0467d3f6e75b25c066a51ca7bc..afbd15ca486bd1e66566ee1269341879986d5e45 100644 (file)
@@ -4,5 +4,5 @@ error[E0282]: type annotations needed
 12 |     let x = |_| {    };
    |              ^ consider giving this closure parameter a type
 
-error: aborting due to previous error(s)
+error: aborting due to previous error