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;
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(),
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};
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();
if errors == 0 {
Ok(result)
} else {
- Err(errors)
+ Err(ErrorReported)
}
}
pub fn span_warn<S: Into<MultiSpan>>(&self, sp: S, 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))
}
}
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;
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;
}
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();
}
}}
}
Ok(krate) => krate,
Err(mut parse_error) => {
parse_error.emit();
- return Err(1);
+ return Err(CompileIncomplete::Errored(ErrorReported));
}
};
(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));
}
}
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();
// 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))?;
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,
// 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 =
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()));
})
}
"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.
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};
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,
}
{
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();
}
}
}
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));
// 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;
}
}
-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,
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};
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) {
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;
}
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
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
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;
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 {
let (result, _) = rustc_driver::run_compiler(
&args, &mut JitCalls, Some(box JitLoader), None);
if let Err(n) = result {
- panic!("Error {}", n);
+ panic!("Error {:?}", n);
}
}
= note: expected type `()`
found type `bool`
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `()`
found type `bool`
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `()`
found type `bool`
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `std::string::String`
found type `()`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= note: expected type `i32`
found type `()`
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `std::string::String`
found type `()`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= note: expected type `()`
found type `a::Enum`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
17 | let x = foo(5)(2);
| ^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= note: expected type `()`
found type `Bob`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= 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
= note: expected type `()`
found type `&_`
-error: aborting due to previous error(s)
+error: aborting due to previous error
help: possibly return type missing here?
| fn bar() -> usize {
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
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
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
15 | num += 1;
| ^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
15 | vec
| ^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
16 | for (key, value) in dict {
| ^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
15 | impl C { fn f() {} }
| --------- other definition for `f`
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | unsafe impl Send for &'static Foo { }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
100 | let y = &mut x;
| ^ cannot borrow mutably
-error: aborting due to previous error(s)
+error: aborting due to previous error
101 | }
| - first borrow ends here
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
| | second mutable borrow occurs here
| first mutable borrow occurs here
-error: aborting due to previous error(s)
+error: aborting due to previous error
43 | fn baz(&self) {}
| ---------------- other definition for `baz`
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
| | 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
14 | \tbar;
| \t^^^ not found in this scope
-error: aborting due to previous error(s)
+error: aborting due to previous error
11 | extern "路濫狼á́́" fn foo() {}
| ^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `std::result::Result<u8, u64>`
found type `()`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= 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
22 | | }
| |_____^ impl has extra requirement `'a: 'b`
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
= 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
= 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
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
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
26 | | }
| |_____^ impl has extra requirement `U: Iterator<B>`
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
17 | z: fn() -> Foo + 'a,
| ^^^^^^^^^^^^^^^^ perhaps you forgot parentheses?
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
<Bar as Foo<i32>>
<Bar as Foo<u8>>
-error: aborting due to previous error(s)
+error: aborting due to previous error
<Bar as Foo<u8>>
and 2 others
-error: aborting due to previous error(s)
+error: aborting due to previous error
23 | (&mut self).bar();
| ^^^^ cannot borrow mutably
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
| try removing `&mut` here
| cannot reborrow mutably
-error: aborting due to previous error(s)
+error: aborting due to previous error
| try removing `&mut` here
| cannot reborrow mutably
-error: aborting due to previous error(s)
+error: aborting due to previous error
30 | s.x += 1;
| ^^^^^^^^ cannot mutably borrow immutable field
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
17 | f.baz;
| ^^^ did you mean `bar`?
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | f.zz;
| ^^ unknown field
-error: aborting due to previous error(s)
+error: aborting due to previous error
| try removing `&mut` here
| cannot reborrow mutably
-error: aborting due to previous error(s)
+error: aborting due to previous error
13 | use Foo1;
| ^^^^ no `Foo1` in the root
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
27 | self.s.push('x');
| ^^^^^^ assignment into an immutable reference
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | self.s.push('x');
| ^^^^^^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | self.s.push('x');
| ^^^^^^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to previous error
16 | f.s.push('x');
| ^^^ assignment into an immutable reference
-error: aborting due to previous error(s)
+error: aborting due to previous error
58 | *x.0 = 1;
| ^^^^^^^^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to 12 previous errors
and 2 others
= note: required by `Foo::bar`
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
|
= note: method `xxx` has no receiver
-error: aborting due to previous error(s)
+error: aborting due to 9 previous errors
|
= 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
13 | buf.iter_mut();
| ^^^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= help: use `!` instead of `~` if you meant to perform bitwise negation
-error: aborting due to previous error(s)
+error: aborting due to previous error
= 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
= note: expected type `&Bottom`
found type `&Top`
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
|
= note: the trait cannot require that `Self : Sized`
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
|
= 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
43 | | }
| |_^
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
|
= 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
|
= 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
= 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
= 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
= 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
candidate #2: `core::slice::SliceExt`
candidate #3: `core::str::StrExt`
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
|
= 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
= 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
11 | pub mod baz;
| ^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
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
--- /dev/null
+// 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;
+}
--- /dev/null
+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
+
|
= 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
16 | let test_x = [0; issue_38875_b::FOO];
| ^^^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
| 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
| | ...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
| |__________________________^
= 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
12 | if x > y { x } else { y }
| ^ lifetime `'a` required
-error: aborting due to previous error(s)
+error: aborting due to previous error
12 | if x > y { x } else { y }
| ^ lifetime `'a` required
-error: aborting due to previous error(s)
+error: aborting due to previous error
14 | if x > y { x } else { y }
| ^ lifetime `'a` required
-error: aborting due to previous error(s)
+error: aborting due to previous error
18 | if true { &self.field } else { x }
| ^ lifetime `'a` required
-error: aborting due to previous error(s)
+error: aborting due to previous error
23 | | }
| |_____^
-error: aborting due to previous error(s)
+error: aborting due to previous error
12 | if x > y { x } else { y }
| ^ lifetime `'a` required
-error: aborting due to previous error(s)
+error: aborting due to previous error
20 | | }
| |___^
-error: aborting due to previous error(s)
+error: aborting due to previous error
20 | | }
| |_____^
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
16 | y.push(x);
| ^ lifetime `'a` required
-error: aborting due to previous error(s)
+error: aborting due to previous error
16 | x.push(y);
| ^ lifetime `'a` required
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | | }
| |_^
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | x.push(z);
| ^
-error: aborting due to previous error(s)
+error: aborting due to previous error
16 | let a: &mut Vec<Ref<i32>> = x;
| ^
-error: aborting due to previous error(s)
+error: aborting due to previous error
16 | let a: &mut Vec<Ref<i32>> = x;
| ^
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: consider using a `let` binding to increase its lifetime
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: `-D non-snake-case` implied by `-D bad-style`
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: `-F non-snake-case` implied by `-F bad-style`
-error: aborting due to previous error(s)
+error: aborting due to previous error
| ^^^^^^^^^
= 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
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
22 | break 22
| ^^^^^^^^ can only break with a value inside `loop`
-error: aborting due to previous error(s)
+error: aborting due to previous error
12 | println!(3 + 4);
| ^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
= 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
56 | let _ = fake_anon_field_expr!();
| ----------------------- in this macro invocation
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
28 | call_nested_expr_sum!();
| ------------------------ in this macro invocation
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
28 | myprintln!("{}");
| ----------------- in this macro invocation
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `fn(&Bar)`
found type `fn(&mut Bar)`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
|
= note: required by `foo`
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `&{integer}`
found type `{integer}`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= 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
|
= 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
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
| |
| expected closure that takes 2 arguments
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
= 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
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
|
= note: required by `apply`
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= note: expected type `()`
found type `{integer}`
-error: aborting due to previous error(s)
+error: aborting due to previous error
= note: expected type `()`
found type `*mut Trait`
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
= note: expected type `bool` (type parameter)
found type `bool` (bool)
-error: aborting due to previous error(s)
+error: aborting due to previous error
| 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
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
= note: expected type `u32`
found type `()`
-error: aborting due to previous error(s)
+error: aborting due to previous error
= 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
45 | let ans = s("burma", "shave");
| ^^^^^^^^^^^^^^^^ expected 1 parameter
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
= 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
= 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
|
= note: required by `call_it`
-error: aborting due to previous error(s)
+error: aborting due to previous error
21 | match proto {
| ^^^^^ pattern `C(QA)` not covered
-error: aborting due to previous error(s)
+error: aborting due to previous error
= 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
14 | foo();
| ^^^ cannot infer type for `X`
-error: aborting due to previous error(s)
+error: aborting due to previous error
13 | pub(crate) () fn foo() {}
| ^
-error: aborting due to previous error(s)
+error: aborting due to previous error
16 | pub(crate) () foo: usize,
| ^
-error: aborting due to previous error(s)
+error: aborting due to previous error
13 | pub (.) fn afn() {}
| ^
-error: aborting due to previous error(s)
+error: aborting due to previous error
33 | pub (in x) non_parent_invalid: usize,
| ^
-error: aborting due to previous error(s)
+error: aborting due to 5 previous errors
13 | #![deny(unreachable_code)]
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
| ^^^^^^^^^^^^^^^^
= 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
25 | let x: [usize; 2] = [22, return];
| ^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
36 | *{return; &mut i} = 22;
| ^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
|
= 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
13 | #![deny(unreachable_code)]
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
28 | bar(return);
| ^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
14 | #![deny(unreachable_code)]
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
| ^^^^^^^^^^^^^^^^
= 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
|
= 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
|
= 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
31 | Foo.bar(return);
| ^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
14 | #![deny(unreachable_code)]
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
14 | #![deny(unreachable_code)]
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
40 | let x = Foo { a: 22, b: return };
| ^^^^^^^^^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
25 | let x: (usize, usize) = (2, return);
| ^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
14 | #![deny(unreachable_code)]
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
18 | let x: ! = ! { return; 22 };
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
= 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
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
error[E0601]: main function not found
-error: aborting due to previous error(s)
+error: aborting due to 25 previous errors
| use std::io::Result;
| use std::thread::Result;
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
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
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
| ^^^^^^^^^^^^^^^^^^^
= 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
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
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
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
|
= note: method `bar` has no receiver
-error: aborting due to previous error(s)
+error: aborting due to previous error
| did you mean `handle`?
| did you mean `Handle { /* fields */ }`?
-error: aborting due to previous error(s)
+error: aborting due to previous error
= 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
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
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
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
52 | method;
| ^^^^^^ did you mean `self.method(...)`?
-error: aborting due to previous error(s)
+error: aborting due to 9 previous errors
12 | assert(true);
| ^^^^^^ did you mean `assert!(...)`?
-error: aborting due to previous error(s)
+error: aborting due to previous error
38 | method();
| ^^^^^^ did you mean `self.method(...)`?
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
error[E0601]: main function not found
-error: aborting due to previous error(s)
+error: aborting due to 10 previous errors
14 | if foo {
| ^^^ not found in this scope
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
= 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
14 | foo(bar(;
| ^^^ not found in this scope
-error: aborting due to previous error(s)
+error: aborting due to 7 previous errors
| did you mean `S`?
| did you mean `A { /* fields */ }`?
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
| 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
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
18 | impl Foo for Bar {}
| ^^^^^^^^^^^^^^^^^^^ missing `foo` in implementation
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
|
= 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
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
27 | const F : Foo = Foo { a : 0 };
| ^^^^^^^^^^^^^ constants cannot have destructors
-error: aborting due to previous error(s)
+error: aborting due to previous error
11 | #[inline(unknown)] //~ ERROR E0535
| ^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
11 | #[cfg(not())] //~ ERROR E0536
| ^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
11 | #[cfg(unknown())] //~ ERROR E0537
| ^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
63 | **x = 3; //~ ERROR cannot borrow
| ^^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
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
27 | x.h(); //~ ERROR cannot borrow
| ^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | x.push(format!("this is broken"));
| ^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: consider using a `let` binding to increase its lifetime
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
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
|
= note: consider using a `let` binding to increase its lifetime
-error: aborting due to previous error(s)
+error: aborting due to previous error
= 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
| |
| `*a` dropped here while still borrowed
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
|
= 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
|
= 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
|
= 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
|
= 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
|
= 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
23 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: consider using a `let` binding to increase its lifetime
-error: aborting due to previous error(s)
+error: aborting due to previous error
| |
| `y` dropped here while still borrowed
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
|
= note: `Item` from trait: `type Item;`
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: `Output` from trait: `type Output;`
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: `Target` from trait: `type Target;`
-error: aborting due to previous error(s)
+error: aborting due to previous error
| ^^^^^^^^
= note: #[deny(unused_variables)] implied by #[deny(warnings)]
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
|
= 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
|
= 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
|
= 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
|
= 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
|
= 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
= note: expected type `&Self`
found type `&SomeType`
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
|
= note: required by `Tr::C`
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
19 | bar(1, 2, 3);
| ^^^^^^^ expected 2 parameters
-error: aborting due to previous error(s)
+error: aborting due to 6 previous errors
|
= 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
|
= 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
| ^^^^^^^^^^^^^^^
= 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
|
= 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
| | pattern doesn't bind `c`
| pattern doesn't bind `c`
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
|
= 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
= 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
|
= 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
|
= 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
|
= 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
|
= 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
44 | | }
| |_^
-error: aborting due to previous error(s)
+error: aborting due to 8 previous errors
|
= 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
= 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
|
= 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
|
= help: the trait `std::ops::Add<()>` is not implemented for `u32`
-error: aborting due to previous error(s)
+error: aborting due to previous error
25 | a.push_str("foo");
| ^ cannot borrow as mutable
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
20 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
17 | pub(crate) bar: u8,
| ^^^^^^^^^^^^^^^^^^ field already declared
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
21 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
|
= 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
20 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
23 | }
| - temporary value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
| |
| `tmp0` dropped here while still borrowed
-error: aborting due to previous error(s)
+error: aborting due to previous error
23 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
30 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
35 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
44 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
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
19 | }
| - temporary value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
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
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
18 | println!("Hello {}", fob);
| ^^^ did you mean `foo`?
-error: aborting due to previous error(s)
+error: aborting due to 2 previous errors
|
= 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
|
= 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
33 | }
| - borrowed value needs to live until here
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: type must satisfy the static lifetime
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
|
= 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
|
= 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
|
= 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
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
| | 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
15 | FAIL
| ^^^^ expected one of `!` or `::` here
-error: aborting due to previous error(s)
+error: aborting due to previous error
error[E0601]: main function not found
-error: aborting due to previous error(s)
+error: aborting due to 4 previous errors
error[E0601]: main function not found
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
37 | ignored_pat!() => (), //~ NOTE caused by the macro expansion here
| ^^^^^^^^^^^^^^
-error: aborting due to previous error(s)
+error: aborting due to 3 previous errors
19 | FAIL
| ^^^^ expected one of `!` or `::` here
-error: aborting due to previous error(s)
+error: aborting due to previous error
= 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
= 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
= 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
= note: expected type `bool`
found type `()`
-error: aborting due to previous error(s)
+error: aborting due to 5 previous errors
| |
| consider giving `x` a type
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= 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
|
= 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
14 | [];
| ^^ cannot infer type for `[_; 0]`
-error: aborting due to previous error(s)
+error: aborting due to previous error
|
= note: required by `Foo`
-error: aborting due to previous error(s)
+error: aborting due to previous error
12 | let x = |_| { };
| ^ consider giving this closure parameter a type
-error: aborting due to previous error(s)
+error: aborting due to previous error