Auto merge of #66680 - Centril:rollup-1ke3svj, r=Centril

Rollup of 5 pull requests

Successful merges:

 - #61351 (Stabilize cfg(doc))
 - #66539 (Point at type in `let` assignment on type errors)
 - #66655 (rustdoc: Mark `--extern-private` as unstable)
 - #66657 (rustdoc: Don't panic when failing to write .lock file)
 - #66673 (Move def collector from `rustc` to `rustc_resolve`)

Failed merges:

r? @ghost
This commit is contained in:
bors 2019-11-23 22:23:20 +00:00
commit ad808d95c4
119 changed files with 768 additions and 404 deletions

View file

@ -7,4 +7,5 @@
- [Documentation tests](documentation-tests.md)
- [Lints](lints.md)
- [Passes](passes.md)
- [Advanced Features](advanced-features.md)
- [Unstable features](unstable-features.md)

View file

@ -0,0 +1,34 @@
# Advanced Features
The features listed on this page fall outside the rest of the main categories.
## `#[cfg(doc)]`: Documenting platform-/feature-specific information
For conditional compilation, Rustdoc treats your crate the same way the compiler does: Only things
from the host target are available (or from the given `--target` if present), and everything else is
"filtered out" from the crate. This can cause problems if your crate is providing different things
on different targets and you want your documentation to reflect all the available items you
provide.
If you want to make sure an item is seen by Rustdoc regardless of what platform it's targeting,
you can apply `#[cfg(doc)]` to it. Rustdoc sets this whenever it's building documentation, so
anything that uses that flag will make it into documentation it generates. To apply this to an item
with other `#[cfg]` filters on it, you can write something like `#[cfg(any(windows, doc))]`.
This will preserve the item either when built normally on Windows, or when being documented
anywhere.
Please note that this feature is not passed to doctests.
Example:
```rust
/// Token struct that can only be used on Windows.
#[cfg(any(windows, doc))]
pub struct WindowsToken;
/// Token struct that can only be used on Unix.
#[cfg(any(unix, doc))]
pub struct UnixToken;
```
Here, the respective tokens can only be used by dependent crates on their respective platforms, but
they will both appear in documentation.

View file

@ -105,7 +105,7 @@ pub struct Definitions {
/// we know what parent node that fragment should be attached to thanks to this table.
invocation_parents: FxHashMap<ExpnId, DefIndex>,
/// Indices of unnamed struct or variant fields with unresolved attributes.
pub(super) placeholder_field_indices: NodeMap<usize>,
placeholder_field_indices: NodeMap<usize>,
}
/// A unique identifier that we can use to lookup a definition
@ -535,6 +535,15 @@ impl Definitions {
let old_parent = self.invocation_parents.insert(invoc_id, parent);
assert!(old_parent.is_none(), "parent `DefIndex` is reset for an invocation");
}
pub fn placeholder_field_index(&self, node_id: ast::NodeId) -> usize {
self.placeholder_field_indices[&node_id]
}
pub fn set_placeholder_field_index(&mut self, node_id: ast::NodeId, index: usize) {
let old_index = self.placeholder_field_indices.insert(node_id, index);
assert!(old_index.is_none(), "placeholder field index is reset for a node ID");
}
}
impl DefPathData {

View file

@ -1,5 +1,4 @@
use self::collector::NodeCollector;
pub use self::def_collector::DefCollector;
pub use self::definitions::{
Definitions, DefKey, DefPath, DefPathData, DisambiguatedDefPathData, DefPathHash
};
@ -25,7 +24,6 @@ use syntax_pos::{Span, DUMMY_SP};
pub mod blocks;
mod collector;
mod def_collector;
pub mod definitions;
mod hir_id_validator;

View file

@ -298,15 +298,3 @@ cfg_if! {
}
}
}
impl Lock {
pub fn panicking_new(p: &Path,
wait: bool,
create: bool,
exclusive: bool)
-> Lock {
Lock::new(p, wait, create, exclusive).unwrap_or_else(|err| {
panic!("could not lock `{}`: {}", p.display(), err);
})
}
}

View file

@ -5,6 +5,7 @@
//! unexpanded macros in the fragment are visited and registered.
//! Imports are also considered items and placed into modules here, but not resolved yet.
use crate::def_collector::collect_definitions;
use crate::macros::{LegacyBinding, LegacyScope};
use crate::resolve_imports::ImportDirective;
use crate::resolve_imports::ImportDirectiveSubclass::{self, GlobImport, SingleImport};
@ -16,7 +17,6 @@ use crate::{ResolutionError, Determinacy, PathResult, CrateLint};
use rustc::bug;
use rustc::hir::def::{self, *};
use rustc::hir::def_id::{CRATE_DEF_INDEX, LOCAL_CRATE, DefId};
use rustc::hir::map::DefCollector;
use rustc::ty;
use rustc::middle::cstore::CrateStore;
use rustc_metadata::cstore::LoadedMacro;
@ -167,8 +167,7 @@ impl<'a> Resolver<'a> {
fragment: &AstFragment,
parent_scope: ParentScope<'a>,
) -> LegacyScope<'a> {
let mut def_collector = DefCollector::new(&mut self.definitions, parent_scope.expansion);
fragment.visit_with(&mut def_collector);
collect_definitions(&mut self.definitions, fragment, parent_scope.expansion);
let mut visitor = BuildReducedGraphVisitor { r: self, parent_scope };
fragment.visit_with(&mut visitor);
visitor.parent_scope.legacy

View file

@ -1,26 +1,31 @@
use crate::hir::map::definitions::*;
use crate::hir::def_id::DefIndex;
use log::debug;
use rustc::hir::map::definitions::*;
use rustc::hir::def_id::DefIndex;
use syntax::ast::*;
use syntax::visit;
use syntax::symbol::{kw, sym};
use syntax::token::{self, Token};
use syntax_expand::expand::AstFragment;
use syntax_pos::hygiene::ExpnId;
use syntax_pos::Span;
crate fn collect_definitions(
definitions: &mut Definitions,
fragment: &AstFragment,
expansion: ExpnId,
) {
let parent_def = definitions.invocation_parent(expansion);
fragment.visit_with(&mut DefCollector { definitions, parent_def, expansion });
}
/// Creates `DefId`s for nodes in the AST.
pub struct DefCollector<'a> {
struct DefCollector<'a> {
definitions: &'a mut Definitions,
parent_def: DefIndex,
expansion: ExpnId,
}
impl<'a> DefCollector<'a> {
pub fn new(definitions: &'a mut Definitions, expansion: ExpnId) -> Self {
let parent_def = definitions.invocation_parent(expansion);
DefCollector { definitions, parent_def, expansion }
}
fn create_def(&mut self,
node_id: NodeId,
data: DefPathData,
@ -82,7 +87,7 @@ impl<'a> DefCollector<'a> {
.or_else(|| index.map(sym::integer))
.unwrap_or_else(|| {
let node_id = NodeId::placeholder_from_expn_id(self.expansion);
sym::integer(self.definitions.placeholder_field_indices[&node_id])
sym::integer(self.definitions.placeholder_field_index(node_id))
});
let def = self.create_def(field.id, DefPathData::ValueNs(name), field.span);
self.with_parent(def, |this| visit::walk_struct_field(this, field));
@ -186,7 +191,7 @@ impl<'a> visit::Visitor<'a> for DefCollector<'a> {
for (index, field) in data.fields().iter().enumerate() {
self.collect_field(field, Some(index));
if field.is_placeholder && field.ident.is_none() {
self.definitions.placeholder_field_indices.insert(field.id, index);
self.definitions.set_placeholder_field_index(field.id, index);
}
}
}

View file

@ -68,6 +68,7 @@ use rustc_error_codes::*;
type Res = def::Res<NodeId>;
mod def_collector;
mod diagnostics;
mod late;
mod macros;

View file

@ -102,12 +102,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
// N.B., this code relies on `self.diverges` to be accurate. In
// particular, assignments to `!` will be permitted if the
// diverges flag is currently "always".
pub fn demand_coerce_diag(&self,
expr: &hir::Expr,
checked_ty: Ty<'tcx>,
expected: Ty<'tcx>,
allow_two_phase: AllowTwoPhase)
-> (Ty<'tcx>, Option<DiagnosticBuilder<'tcx>>) {
pub fn demand_coerce_diag(
&self,
expr: &hir::Expr,
checked_ty: Ty<'tcx>,
expected: Ty<'tcx>,
allow_two_phase: AllowTwoPhase,
) -> (Ty<'tcx>, Option<DiagnosticBuilder<'tcx>>) {
let expected = self.resolve_vars_with_obligations(expected);
let e = match self.try_coerce(expr, checked_ty, expected, allow_two_phase) {
@ -126,6 +127,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
return (expected, None)
}
self.annotate_expected_due_to_let_ty(&mut err, expr);
self.suggest_compatible_variants(&mut err, expr, expected, expr_ty);
self.suggest_ref_or_into(&mut err, expr, expected, expr_ty);
self.suggest_boxing_when_appropriate(&mut err, expr, expected, expr_ty);
@ -134,6 +136,20 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
(expected, Some(err))
}
fn annotate_expected_due_to_let_ty(&self, err: &mut DiagnosticBuilder<'_>, expr: &hir::Expr) {
let parent = self.tcx.hir().get_parent_node(expr.hir_id);
if let Some(hir::Node::Local(hir::Local {
ty: Some(ty),
init: Some(init),
..
})) = self.tcx.hir().find(parent) {
if init.hir_id == expr.hir_id {
// Point at `let` assignment type.
err.span_label(ty.span, "expected due to this");
}
}
}
/// Returns whether the expected type is `bool` and the expression is `x = y`.
pub fn is_assign_to_bool(&self, expr: &hir::Expr, expected: Ty<'tcx>) -> bool {
if let hir::ExprKind::Assign(..) = expr.kind {

View file

@ -250,7 +250,7 @@ pub fn run_core(options: RustdocOptions) -> (clean::Crate, RenderInfo, RenderOpt
let extern_names: Vec<String> = externs.iter().map(|(s,_)| s).cloned().collect();
// Add the rustdoc cfg into the doc build.
// Add the doc cfg into the doc build.
cfgs.push("doc".to_string());
let cpath = Some(input.clone());

View file

@ -546,7 +546,8 @@ fn write_shared(
// Write out the shared files. Note that these are shared among all rustdoc
// docs placed in the output directory, so this needs to be a synchronized
// operation with respect to all other rustdocs running around.
let _lock = flock::Lock::panicking_new(&cx.dst.join(".lock"), true, true, true);
let lock_file = cx.dst.join(".lock");
let _lock = try_err!(flock::Lock::new(&lock_file, true, true, true), &lock_file);
// Add all the static files. These may already exist, but we just
// overwrite them anyway to make sure that they're fresh and up-to-date.

View file

@ -144,7 +144,7 @@ fn opts() -> Vec<RustcOptGroup> {
stable("extern", |o| {
o.optmulti("", "extern", "pass an --extern to rustc", "NAME[=PATH]")
}),
stable("extern-private", |o| {
unstable("extern-private", |o| {
o.optmulti("", "extern-private",
"pass an --extern to rustc (compatibility only)", "NAME=PATH")
}),

View file

@ -30,7 +30,6 @@ const GATED_CFGS: &[(Symbol, Symbol, GateFn)] = &[
(sym::target_thread_local, sym::cfg_target_thread_local, cfg_fn!(cfg_target_thread_local)),
(sym::target_has_atomic, sym::cfg_target_has_atomic, cfg_fn!(cfg_target_has_atomic)),
(sym::target_has_atomic_load_store, sym::cfg_target_has_atomic, cfg_fn!(cfg_target_has_atomic)),
(sym::doc, sym::doc_cfg, cfg_fn!(doc_cfg)),
];
#[derive(Debug)]

View file

@ -627,7 +627,6 @@ symbols! {
rustc_test_marker,
rustc_then_this_would_need,
rustc_variance,
rustdoc,
rustfmt,
rust_eh_personality,
rust_eh_unwind_resume,

View file

@ -9,7 +9,9 @@ error[E0308]: mismatched types
--> $DIR/failed-doctest-missing-codes.rs:9:13
|
LL | let x: () = 5i32;
| ^^^^ expected `()`, found `i32`
| -- ^^^^ expected `()`, found `i32`
| |
| expected due to this
error: aborting due to previous error

View file

@ -1,4 +1,5 @@
// aux-build:issue-66159-1.rs
// compile-flags:-Z unstable-options
// extern-private:issue_66159_1
// The issue was an ICE which meant that we never actually generated the docs

View file

@ -2,13 +2,17 @@ error[E0308]: mismatched types
--> $DIR/array-not-vector.rs:2:19
|
LL | let _x: i32 = [1, 2, 3];
| ^^^^^^^^^ expected `i32`, found array `[{integer}; 3]`
| --- ^^^^^^^^^ expected `i32`, found array `[{integer}; 3]`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/array-not-vector.rs:7:20
|
LL | let _y: &i32 = x;
| ^ expected `i32`, found slice `[i32]`
| ---- ^ expected `i32`, found slice `[i32]`
| |
| expected due to this
|
= note: expected reference `&i32`
found reference `&[i32]`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/associated-types-eq-3.rs:23:18
|
LL | let _: Bar = x.boo();
| ^^^^^^^ expected struct `Bar`, found associated type
| --- ^^^^^^^ expected struct `Bar`, found associated type
| |
| expected due to this
|
= note: expected struct `Bar`
found associated type `<I as Foo>::A`

View file

@ -43,7 +43,9 @@ error[E0308]: mismatched types
--> $DIR/associated-types-path-2.rs:41:18
|
LL | let _: i32 = f2(2i32);
| ^^^^^^^^ expected `i32`, found `u32`
| --- ^^^^^^^^ expected `i32`, found `u32`
| |
| expected due to this
|
help: you can convert an `u32` to `i32` and panic if the converted value wouldn't fit
|

View file

@ -26,7 +26,9 @@ error[E0308]: mismatched types
--> $DIR/variadic-ffi-1.rs:19:56
|
LL | let x: unsafe extern "C" fn(f: isize, x: u8) = foo;
| ^^^ expected non-variadic fn, found variadic function
| ------------------------------------- ^^^ expected non-variadic fn, found variadic function
| |
| expected due to this
|
= note: expected fn pointer `unsafe extern "C" fn(isize, u8)`
found fn item `unsafe extern "C" fn(isize, u8, ...) {foo}`
@ -35,7 +37,9 @@ error[E0308]: mismatched types
--> $DIR/variadic-ffi-1.rs:20:54
|
LL | let y: extern "C" fn(f: isize, x: u8, ...) = bar;
| ^^^ expected variadic fn, found non-variadic function
| ----------------------------------- ^^^ expected variadic fn, found non-variadic function
| |
| expected due to this
|
= note: expected fn pointer `extern "C" fn(isize, u8, ...)`
found fn item `extern "C" fn(isize, u8) {bar}`

View file

@ -0,0 +1,6 @@
#[cfg(doc)]
pub struct Foo;
fn main() {
let f = Foo; //~ ERROR
}

View file

@ -0,0 +1,9 @@
error[E0425]: cannot find value `Foo` in this scope
--> $DIR/cfg-rustdoc.rs:5:13
|
LL | let f = Foo;
| ^^^ not found in this scope
error: aborting due to previous error
For more information about this error, try `rustc --explain E0425`.

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/closure-no-fn-1.rs:6:29
|
LL | let foo: fn(u8) -> u8 = |v: u8| { a += v; a };
| ^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found closure
| ------------ ^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found closure
| |
| expected due to this
|
= note: expected fn pointer `fn(u8) -> u8`
found closure `[closure@$DIR/closure-no-fn-1.rs:6:29: 6:50 a:_]`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/closure-no-fn-2.rs:6:27
|
LL | let bar: fn() -> u8 = || { b };
| ^^^^^^^^ expected fn pointer, found closure
| ---------- ^^^^^^^^ expected fn pointer, found closure
| |
| expected due to this
|
= note: expected fn pointer `fn() -> u8`
found closure `[closure@$DIR/closure-no-fn-2.rs:6:27: 6:35 b:_]`

View file

@ -47,7 +47,9 @@ error[E0308]: mismatched types
--> $DIR/coerce-to-bang.rs:48:21
|
LL | let x: [!; 2] = [return, 22];
| ^^^^^^^^^^^^ expected `!`, found integer
| ------ ^^^^^^^^^^^^ expected `!`, found integer
| |
| expected due to this
|
= note: expected array `[!; 2]`
found array `[{integer}; 2]`

View file

@ -2,10 +2,11 @@ error[E0308]: mismatched types
--> $DIR/coercion-slice.rs:4:21
|
LL | let _: &[i32] = [0];
| ^^^
| |
| expected `&[i32]`, found array `[{integer}; 1]`
| help: consider borrowing here: `&[0]`
| ------ ^^^
| | |
| | expected `&[i32]`, found array `[{integer}; 1]`
| | help: consider borrowing here: `&[0]`
| expected due to this
error: aborting due to previous error

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/fn-const-param-infer.rs:16:31
|
LL | let _: Checked<not_one> = Checked::<not_two>;
| ^^^^^^^^^^^^^^^^^^ expected `not_one`, found `not_two`
| ---------------- ^^^^^^^^^^^^^^^^^^ expected `not_one`, found `not_two`
| |
| expected due to this
|
= note: expected struct `Checked<not_one>`
found struct `Checked<not_two>`
@ -34,7 +36,9 @@ error[E0308]: mismatched types
--> $DIR/fn-const-param-infer.rs:25:40
|
LL | let _: Checked<{generic::<u32>}> = Checked::<{generic::<u16>}>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `generic::<u32>`, found `generic::<u16>`
| ------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `generic::<u32>`, found `generic::<u16>`
| |
| expected due to this
|
= note: expected struct `Checked<generic::<u32>>`
found struct `Checked<generic::<u16>>`

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/raw-ptr-const-param.rs:7:38
|
LL | let _: Const<{15 as *const _}> = Const::<{10 as *const _}>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{pointer}`, found `{pointer}`
| ----------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{pointer}`, found `{pointer}`
| |
| expected due to this
|
= note: expected struct `Const<{pointer}>`
found struct `Const<{pointer}>`

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/slice-const-param-mismatch.rs:9:35
|
LL | let _: ConstString<"Hello"> = ConstString::<"World">;
| ^^^^^^^^^^^^^^^^^^^^^^ expected `"Hello"`, found `"World"`
| -------------------- ^^^^^^^^^^^^^^^^^^^^^^ expected `"Hello"`, found `"World"`
| |
| expected due to this
|
= note: expected struct `ConstString<"Hello">`
found struct `ConstString<"World">`
@ -19,7 +21,9 @@ error[E0308]: mismatched types
--> $DIR/slice-const-param-mismatch.rs:11:33
|
LL | let _: ConstString<"ℇ㇈↦"> = ConstString::<"ℇ㇈↥">;
| ^^^^^^^^^^^^^^^^^^^^^ expected `"ℇ㇈↦"`, found `"ℇ㇈↥"`
| ------------------- ^^^^^^^^^^^^^^^^^^^^^ expected `"ℇ㇈↦"`, found `"ℇ㇈↥"`
| |
| expected due to this
|
= note: expected struct `ConstString<"ℇ㇈↦">`
found struct `ConstString<"ℇ㇈↥">`
@ -28,7 +32,9 @@ error[E0308]: mismatched types
--> $DIR/slice-const-param-mismatch.rs:13:33
|
LL | let _: ConstBytes<b"AAA"> = ConstBytes::<b"BBB">;
| ^^^^^^^^^^^^^^^^^^^^ expected `b"AAA"`, found `b"BBB"`
| ------------------ ^^^^^^^^^^^^^^^^^^^^ expected `b"AAA"`, found `b"BBB"`
| |
| expected due to this
|
= note: expected struct `ConstBytes<b"AAA">`
found struct `ConstBytes<b"BBB">`

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/types-mismatch-const-args.rs:13:41
|
LL | let _: A<'a, u32, {2u32}, {3u32}> = A::<'a, u32, {4u32}, {3u32}> { data: PhantomData };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `2u32`, found `4u32`
| -------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `2u32`, found `4u32`
| |
| expected due to this
|
= note: expected struct `A<'_, _, 2u32, _>`
found struct `A<'_, _, 4u32, _>`
@ -19,7 +21,9 @@ error[E0308]: mismatched types
--> $DIR/types-mismatch-const-args.rs:15:41
|
LL | let _: A<'a, u16, {2u32}, {3u32}> = A::<'b, u32, {2u32}, {3u32}> { data: PhantomData };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `u32`
| -------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `u32`
| |
| expected due to this
|
= note: expected struct `A<'a, u16, _, _>`
found struct `A<'b, u32, _, _>`

View file

@ -2,37 +2,41 @@ error[E0308]: mismatched types
--> $DIR/conversion-methods.rs:5:41
|
LL | let _tis_an_instants_play: String = "'Tis a fond Ambush—";
| ^^^^^^^^^^^^^^^^^^^^^
| |
| expected struct `std::string::String`, found `&str`
| help: try using a conversion method: `"'Tis a fond Ambush—".to_string()`
| ------ ^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected struct `std::string::String`, found `&str`
| | help: try using a conversion method: `"'Tis a fond Ambush—".to_string()`
| expected due to this
error[E0308]: mismatched types
--> $DIR/conversion-methods.rs:6:40
|
LL | let _just_to_make_bliss: PathBuf = Path::new("/ern/her/own/surprise");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected struct `std::path::PathBuf`, found `&std::path::Path`
| help: try using a conversion method: `Path::new("/ern/her/own/surprise").to_path_buf()`
| ------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected struct `std::path::PathBuf`, found `&std::path::Path`
| | help: try using a conversion method: `Path::new("/ern/her/own/surprise").to_path_buf()`
| expected due to this
error[E0308]: mismatched types
--> $DIR/conversion-methods.rs:9:40
|
LL | let _but_should_the_play: String = 2; // Perhaps surprisingly, we suggest .to_string() here
| ^
| |
| expected struct `std::string::String`, found integer
| help: try using a conversion method: `2.to_string()`
| ------ ^
| | |
| | expected struct `std::string::String`, found integer
| | help: try using a conversion method: `2.to_string()`
| expected due to this
error[E0308]: mismatched types
--> $DIR/conversion-methods.rs:12:47
|
LL | let _prove_piercing_earnest: Vec<usize> = &[1, 2, 3];
| ^^^^^^^^^^
| |
| expected struct `std::vec::Vec`, found `&[{integer}; 3]`
| help: try using a conversion method: `(&[1, 2, 3]).to_vec()`
| ---------- ^^^^^^^^^^
| | |
| | expected struct `std::vec::Vec`, found `&[{integer}; 3]`
| | help: try using a conversion method: `(&[1, 2, 3]).to_vec()`
| expected due to this
|
= note: expected struct `std::vec::Vec<usize>`
found reference `&[{integer}; 3]`

View file

@ -2,10 +2,11 @@ error[E0308]: mismatched types
--> $DIR/cross-borrow-trait.rs:10:26
|
LL | let _y: &dyn Trait = x;
| ^
| |
| expected `&dyn Trait`, found struct `std::boxed::Box`
| help: consider borrowing here: `&x`
| ---------- ^
| | |
| | expected `&dyn Trait`, found struct `std::boxed::Box`
| | help: consider borrowing here: `&x`
| expected due to this
|
= note: expected reference `&dyn Trait`
found struct `std::boxed::Box<dyn Trait>`

View file

@ -2,40 +2,47 @@ error[E0308]: mismatched types
--> $DIR/issue-53280-expected-float-found-integer-literal.rs:2:24
|
LL | let sixteen: f32 = 16;
| ^^
| |
| expected `f32`, found integer
| help: use a float literal: `16.0`
| --- ^^
| | |
| | expected `f32`, found integer
| | help: use a float literal: `16.0`
| expected due to this
error[E0308]: mismatched types
--> $DIR/issue-53280-expected-float-found-integer-literal.rs:5:38
|
LL | let a_million_and_seventy: f64 = 1_000_070;
| ^^^^^^^^^
| |
| expected `f64`, found integer
| help: use a float literal: `1_000_070.0`
| --- ^^^^^^^^^
| | |
| | expected `f64`, found integer
| | help: use a float literal: `1_000_070.0`
| expected due to this
error[E0308]: mismatched types
--> $DIR/issue-53280-expected-float-found-integer-literal.rs:8:30
|
LL | let negative_nine: f32 = -9;
| ^^
| |
| expected `f32`, found integer
| help: use a float literal: `-9.0`
| --- ^^
| | |
| | expected `f32`, found integer
| | help: use a float literal: `-9.0`
| expected due to this
error[E0308]: mismatched types
--> $DIR/issue-53280-expected-float-found-integer-literal.rs:15:30
|
LL | let sixteen_again: f64 = 0x10;
| ^^^^ expected `f64`, found integer
| --- ^^^^ expected `f64`, found integer
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/issue-53280-expected-float-found-integer-literal.rs:17:30
|
LL | let and_once_more: f32 = 0o20;
| ^^^^ expected `f32`, found integer
| --- ^^^^ expected `f32`, found integer
| |
| expected due to this
error: aborting due to 5 previous errors

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/recursion_limit_deref.rs:50:22
|
LL | let x: &Bottom = &t;
| ^^ expected struct `Bottom`, found struct `Top`
| ------- ^^ expected struct `Bottom`, found struct `Top`
| |
| expected due to this
|
= note: expected reference `&Bottom`
found reference `&Top`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce1.rs:16:29
|
LL | let f3: &Fat<[usize]> = f2;
| ^^ expected slice `[usize]`, found array `[isize; 3]`
| ------------- ^^ expected slice `[usize]`, found array `[isize; 3]`
| |
| expected due to this
|
= note: expected reference `&Fat<[usize]>`
found reference `&Fat<[isize; 3]>`
@ -19,7 +21,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce1.rs:28:27
|
LL | let f3: &([usize],) = f2;
| ^^ expected slice `[usize]`, found array `[isize; 3]`
| ----------- ^^ expected slice `[usize]`, found array `[isize; 3]`
| |
| expected due to this
|
= note: expected reference `&([usize],)`
found reference `&([isize; 3],)`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce2.rs:15:33
|
LL | let f3: &mut Fat<[isize]> = f2;
| ^^ types differ in mutability
| ----------------- ^^ types differ in mutability
| |
| expected due to this
|
= note: expected mutable reference `&mut Fat<[isize]>`
found reference `&Fat<[isize; 3]>`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce2.rs:20:33
|
LL | let f3: &mut Fat<dyn Bar> = f2;
| ^^ types differ in mutability
| ----------------- ^^ types differ in mutability
| |
| expected due to this
|
= note: expected mutable reference `&mut Fat<dyn Bar>`
found reference `&Fat<Foo>`
@ -20,7 +24,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce2.rs:25:31
|
LL | let f3: &mut ([isize],) = f2;
| ^^ types differ in mutability
| --------------- ^^ types differ in mutability
| |
| expected due to this
|
= note: expected mutable reference `&mut ([isize],)`
found reference `&([isize; 3],)`
@ -29,7 +35,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce2.rs:30:31
|
LL | let f3: &mut (dyn Bar,) = f2;
| ^^ types differ in mutability
| --------------- ^^ types differ in mutability
| |
| expected due to this
|
= note: expected mutable reference `&mut (dyn Bar,)`
found reference `&(Foo,)`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce4.rs:12:32
|
LL | let f2: &Fat<[isize; 3]> = f1;
| ^^ expected array `[isize; 3]`, found slice `[isize]`
| ---------------- ^^ expected array `[isize; 3]`, found slice `[isize]`
| |
| expected due to this
|
= note: expected reference `&Fat<[isize; 3]>`
found reference `&Fat<[isize]>`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coerce4.rs:20:30
|
LL | let f2: &([isize; 3],) = f1;
| ^^ expected array `[isize; 3]`, found slice `[isize]`
| -------------- ^^ expected array `[isize; 3]`, found slice `[isize]`
| |
| expected due to this
|
= note: expected reference `&([isize; 3],)`
found reference `&([isize],)`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coercions.rs:14:17
|
LL | let y: &S = x;
| ^ expected `&S`, found *-ptr
| -- ^ expected `&S`, found *-ptr
| |
| expected due to this
|
= note: expected reference `&S`
found raw pointer `*const S`
@ -11,10 +13,11 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coercions.rs:15:21
|
LL | let y: &dyn T = x;
| ^
| |
| expected `&dyn T`, found *-ptr
| help: consider borrowing here: `&x`
| ------ ^
| | |
| | expected `&dyn T`, found *-ptr
| | help: consider borrowing here: `&x`
| expected due to this
|
= note: expected reference `&dyn T`
found raw pointer `*const S`
@ -23,7 +26,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coercions.rs:19:17
|
LL | let y: &S = x;
| ^ expected `&S`, found *-ptr
| -- ^ expected `&S`, found *-ptr
| |
| expected due to this
|
= note: expected reference `&S`
found raw pointer `*mut S`
@ -32,10 +37,11 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coercions.rs:20:21
|
LL | let y: &dyn T = x;
| ^
| |
| expected `&dyn T`, found *-ptr
| help: consider borrowing here: `&x`
| ------ ^
| | |
| | expected `&dyn T`, found *-ptr
| | help: consider borrowing here: `&x`
| expected due to this
|
= note: expected reference `&dyn T`
found raw pointer `*mut S`
@ -44,7 +50,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coercions.rs:23:25
|
LL | let x: &mut dyn T = &S;
| ^^ types differ in mutability
| ---------- ^^ types differ in mutability
| |
| expected due to this
|
= note: expected mutable reference `&mut dyn T`
found reference `&S`
@ -53,7 +61,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coercions.rs:24:25
|
LL | let x: *mut dyn T = &S;
| ^^ types differ in mutability
| ---------- ^^ types differ in mutability
| |
| expected due to this
|
= note: expected raw pointer `*mut dyn T`
found reference `&S`
@ -62,7 +72,9 @@ error[E0308]: mismatched types
--> $DIR/dst-bad-coercions.rs:25:21
|
LL | let x: *mut S = &S;
| ^^ types differ in mutability
| ------ ^^ types differ in mutability
| |
| expected due to this
|
= note: expected raw pointer `*mut S`
found reference `&S`

View file

@ -1,4 +0,0 @@
#[cfg(doc)] //~ ERROR: `cfg(doc)` is experimental and subject to change
pub struct SomeStruct;
fn main() {}

View file

@ -1,12 +0,0 @@
error[E0658]: `cfg(doc)` is experimental and subject to change
--> $DIR/feature-gate-doc_cfg-cfg-rustdoc.rs:1:7
|
LL | #[cfg(doc)]
| ^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/43781
= help: add `#![feature(doc_cfg)]` to the crate attributes to enable
error: aborting due to previous error
For more information about this error, try `rustc --explain E0658`.

View file

@ -2,16 +2,19 @@ error[E0308]: mismatched types
--> $DIR/float-literal-inference-restrictions.rs:2:18
|
LL | let x: f32 = 1;
| ^
| |
| expected `f32`, found integer
| help: use a float literal: `1.0`
| --- ^
| | |
| | expected `f32`, found integer
| | help: use a float literal: `1.0`
| expected due to this
error[E0308]: mismatched types
--> $DIR/float-literal-inference-restrictions.rs:3:18
|
LL | let y: f32 = 1f64;
| ^^^^ expected `f32`, found `f64`
| --- ^^^^ expected `f32`, found `f64`
| |
| expected due to this
|
help: change the type of the numeric literal from `f64` to `f32`
|

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/fn-trait-formatting.rs:6:17
|
LL | let _: () = (box |_: isize| {}) as Box<dyn FnOnce(isize)>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found struct `std::boxed::Box`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found struct `std::boxed::Box`
| |
| expected due to this
|
= note: expected unit type `()`
found struct `std::boxed::Box<dyn std::ops::FnOnce(isize)>`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/fn-trait-formatting.rs:10:17
|
LL | let _: () = (box |_: isize, isize| {}) as Box<dyn Fn(isize, isize)>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found struct `std::boxed::Box`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found struct `std::boxed::Box`
| |
| expected due to this
|
= note: expected unit type `()`
found struct `std::boxed::Box<dyn std::ops::Fn(isize, isize)>`
@ -20,7 +24,9 @@ error[E0308]: mismatched types
--> $DIR/fn-trait-formatting.rs:14:17
|
LL | let _: () = (box || -> isize { unimplemented!() }) as Box<dyn FnMut() -> isize>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found struct `std::boxed::Box`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found struct `std::boxed::Box`
| |
| expected due to this
|
= note: expected unit type `()`
found struct `std::boxed::Box<dyn std::ops::FnMut() -> isize>`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/generic-type-params-name-repr.rs:13:25
|
LL | let _: Foo<isize> = ();
| ^^ expected struct `Foo`, found `()`
| ---------- ^^ expected struct `Foo`, found `()`
| |
| expected due to this
|
= note: expected struct `Foo<isize>`
found unit type `()`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/generic-type-params-name-repr.rs:20:31
|
LL | let _: Foo<isize, B, C> = ();
| ^^ expected struct `Foo`, found `()`
| ---------------- ^^ expected struct `Foo`, found `()`
| |
| expected due to this
|
= note: expected struct `Foo<isize>`
found unit type `()`
@ -20,7 +24,9 @@ error[E0308]: mismatched types
--> $DIR/generic-type-params-name-repr.rs:27:37
|
LL | let _: HashMap<String, isize> = ();
| ^^ expected struct `HashMap`, found `()`
| ---------------------- ^^ expected struct `HashMap`, found `()`
| |
| expected due to this
|
= note: expected struct `HashMap<std::string::String, isize>`
found unit type `()`
@ -29,7 +35,9 @@ error[E0308]: mismatched types
--> $DIR/generic-type-params-name-repr.rs:32:51
|
LL | let _: HashMap<String, isize, Hash<String>> = ();
| ^^ expected struct `HashMap`, found `()`
| ------------------------------------ ^^ expected struct `HashMap`, found `()`
| |
| expected due to this
|
= note: expected struct `HashMap<std::string::String, isize>`
found unit type `()`
@ -38,7 +46,9 @@ error[E0308]: mismatched types
--> $DIR/generic-type-params-name-repr.rs:39:31
|
LL | let _: Foo<A, isize, C> = ();
| ^^ expected struct `Foo`, found `()`
| ---------------- ^^ expected struct `Foo`, found `()`
| |
| expected due to this
|
= note: expected struct `Foo<A, isize>`
found unit type `()`
@ -47,7 +57,9 @@ error[E0308]: mismatched types
--> $DIR/generic-type-params-name-repr.rs:46:27
|
LL | let _: Foo<A, B, C> = ();
| ^^ expected struct `Foo`, found `()`
| ------------ ^^ expected struct `Foo`, found `()`
| |
| expected due to this
|
= note: expected struct `Foo`
found unit type `()`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/hrtb-exists-forall-fn.rs:17:34
|
LL | let _: for<'b> fn(&'b u32) = foo();
| ^^^^^ expected concrete lifetime, found bound lifetime parameter 'b
| ------------------- ^^^^^ expected concrete lifetime, found bound lifetime parameter 'b
| |
| expected due to this
|
= note: expected fn pointer `for<'b> fn(&'b u32)`
found fn pointer `fn(&u32)`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/equality2.rs:25:18
|
LL | let _: u32 = hide(0_u32);
| ^^^^^^^^^^^ expected `u32`, found opaque type
| --- ^^^^^^^^^^^ expected `u32`, found opaque type
| |
| expected due to this
|
= note: expected type `u32`
found opaque type `impl Foo`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/equality2.rs:31:18
|
LL | let _: i32 = Leak::leak(hide(0_i32));
| ^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found associated type
| --- ^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found associated type
| |
| expected due to this
|
= note: expected type `i32`
found associated type `<impl Foo as Leak>::T`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/mismatched-types.rs:2:20
|
LL | let b: &[u8] = include_str!("file.txt");
| ^^^^^^^^^^^^^^^^^^^^^^^^ expected slice `[u8]`, found `str`
| ----- ^^^^^^^^^^^^^^^^^^^^^^^^ expected slice `[u8]`, found `str`
| |
| expected due to this
|
= note: expected reference `&[u8]`
found reference `&'static str`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/mismatched-types.rs:3:19
|
LL | let s: &str = include_bytes!("file.txt");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `str`, found array `[u8; 0]`
| ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `str`, found array `[u8; 0]`
| |
| expected due to this
|
= note: expected reference `&str`
found reference `&'static [u8; 0]`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/issue-1362.rs:4:16
|
LL | let x: u32 = 20i32;
| ^^^^^ expected `u32`, found `i32`
| --- ^^^^^ expected `u32`, found `i32`
| |
| expected due to this
|
help: change the type of the numeric literal from `i32` to `u32`
|

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/issue-22684.rs:17:17
|
LL | let _: () = foo::Foo.bar();
| ^^^^^^^^^^^^^^ expected `()`, found `bool`
| -- ^^^^^^^^^^^^^^ expected `()`, found `bool`
| |
| expected due to this
error: aborting due to previous error

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/issue-24322.rs:8:29
|
LL | let x: &fn(&B) -> u32 = &B::func;
| ^^^^^^^^ expected fn pointer, found fn item
| -------------- ^^^^^^^^ expected fn pointer, found fn item
| |
| expected due to this
|
= note: expected reference `&for<'r> fn(&'r B) -> u32`
found reference `&for<'r> fn(&'r B) -> u32 {B::func}`

View file

@ -20,6 +20,8 @@ LL | loop { break };
error[E0308]: mismatched types
--> $DIR/issue-27042.rs:8:9
|
LL | let _: i32 =
| --- expected due to this
LL | / 'b:
LL | |
LL | | while true { break }; // but here we cite the whole loop
@ -35,6 +37,8 @@ LL | | for _ in None { break }; // but here we cite the whole loop
error[E0308]: mismatched types
--> $DIR/issue-27042.rs:15:9
|
LL | let _: i32 =
| --- expected due to this
LL | / 'd:
LL | | while let Some(_) = None { break };
| |__________________________________________^ expected `i32`, found `()`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/issue-3477.rs:2:20
|
LL | let _p: char = 100;
| ^^^ expected `char`, found `u8`
| ---- ^^^ expected `char`, found `u8`
| |
| expected due to this
error: aborting due to previous error

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/issue-37665.rs:10:17
|
LL | let x: () = 0;
| ^ expected `()`, found integer
| -- ^ expected `()`, found integer
| |
| expected due to this
error: aborting due to previous error

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/issue-38940.rs:43:22
|
LL | let x: &Bottom = &t;
| ^^ expected struct `Bottom`, found struct `Top`
| ------- ^^ expected struct `Bottom`, found struct `Top`
| |
| expected due to this
|
= note: expected reference `&Bottom`
found reference `&Top`

View file

@ -57,7 +57,9 @@ error[E0308]: mismatched types
--> $DIR/issue-5100.rs:55:19
|
LL | let x: char = true;
| ^^^^ expected `char`, found `bool`
| ---- ^^^^ expected `char`, found `bool`
| |
| expected due to this
error: aborting due to 7 previous errors

View file

@ -2,10 +2,11 @@ error[E0308]: mismatched types
--> $DIR/issue-53692.rs:4:37
|
LL | let items_clone: Vec<i32> = ref_items.clone();
| ^^^^^^^^^^^^^^^^^
| |
| expected struct `std::vec::Vec`, found `&[i32]`
| help: try using a conversion method: `ref_items.to_vec()`
| -------- ^^^^^^^^^^^^^^^^^
| | |
| | expected struct `std::vec::Vec`, found `&[i32]`
| | help: try using a conversion method: `ref_items.to_vec()`
| expected due to this
|
= note: expected struct `std::vec::Vec<i32>`
found reference `&[i32]`
@ -14,10 +15,11 @@ error[E0308]: mismatched types
--> $DIR/issue-53692.rs:11:30
|
LL | let string: String = s.clone();
| ^^^^^^^^^
| |
| expected struct `std::string::String`, found `&str`
| help: try using a conversion method: `s.to_string()`
| ------ ^^^^^^^^^
| | |
| | expected struct `std::string::String`, found `&str`
| | help: try using a conversion method: `s.to_string()`
| expected due to this
error: aborting due to 2 previous errors

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/issue-56943.rs:6:29
|
LL | let _: issue_56943::S = issue_56943::S2;
| ^^^^^^^^^^^^^^^ expected struct `issue_56943::S`, found struct `issue_56943::S2`
| -------------- ^^^^^^^^^^^^^^^ expected struct `issue_56943::S`, found struct `issue_56943::S2`
| |
| expected due to this
error: aborting due to previous error

View file

@ -15,7 +15,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:17:22: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":612,"byte_end":618,"line_start":17,"line_end":17,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:17:22: error[E0308]: mismatched types
"}
{"message":"mismatched types","code":{"code":"E0308","explanation":"This error occurs when the compiler was unable to infer the concrete type of a
variable. It can occur for several cases, the most common of which is a
@ -34,7 +34,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:19:22: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":672,"byte_end":678,"line_start":19,"line_end":19,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = 1","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:19:22: error[E0308]: mismatched types
"}
{"message":"mismatched types","code":{"code":"E0308","explanation":"This error occurs when the compiler was unable to infer the concrete type of a
variable. It can occur for several cases, the most common of which is a
@ -53,7 +53,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:23:1: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":735,"byte_end":741,"line_start":22,"line_end":22,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String =","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:23:1: error[E0308]: mismatched types
"}
{"message":"mismatched types","code":{"code":"E0308","explanation":"This error occurs when the compiler was unable to infer the concrete type of a
variable. It can occur for several cases, the most common of which is a
@ -72,7 +72,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":801,"byte_end":809,"line_start":25,"line_end":26,"column_start":22,"column_end":6,"is_primary":true,"text":[{"text":" let s : String = (","highlight_start":22,"highlight_end":23},{"text":" ); // Error spanning the newline.","highlight_start":1,"highlight_end":6}],"label":"expected struct `std::string::String`, found `()`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:25:22: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":801,"byte_end":809,"line_start":25,"line_end":26,"column_start":22,"column_end":6,"is_primary":true,"text":[{"text":" let s : String = (","highlight_start":22,"highlight_end":23},{"text":" ); // Error spanning the newline.","highlight_start":1,"highlight_end":6}],"label":"expected struct `std::string::String`, found `()`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":792,"byte_end":798,"line_start":25,"line_end":25,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = (","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:25:22: error[E0308]: mismatched types
"}
{"message":"aborting due to 4 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 4 previous errors
"}

View file

@ -15,7 +15,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:17:22: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":612,"byte_end":618,"line_start":17,"line_end":17,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":621,"byte_end":622,"line_start":17,"line_end":17,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:17:22: error[E0308]: mismatched types
"}
{"message":"mismatched types","code":{"code":"E0308","explanation":"This error occurs when the compiler was unable to infer the concrete type of a
variable. It can occur for several cases, the most common of which is a
@ -34,7 +34,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:19:22: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":672,"byte_end":678,"line_start":19,"line_end":19,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = 1","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":681,"byte_end":682,"line_start":19,"line_end":19,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:19:22: error[E0308]: mismatched types
"}
{"message":"mismatched types","code":{"code":"E0308","explanation":"This error occurs when the compiler was unable to infer the concrete type of a
variable. It can occur for several cases, the most common of which is a
@ -53,7 +53,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:23:1: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":735,"byte_end":741,"line_start":22,"line_end":22,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String =","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":745,"byte_end":746,"line_start":23,"line_end":23,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:23:1: error[E0308]: mismatched types
"}
{"message":"mismatched types","code":{"code":"E0308","explanation":"This error occurs when the compiler was unable to infer the concrete type of a
variable. It can occur for several cases, the most common of which is a
@ -72,7 +72,7 @@ let x: i32 = \"I am not a number!\";
// |
// type `i32` assigned to variable `x`
```
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":801,"byte_end":809,"line_start":25,"line_end":26,"column_start":22,"column_end":6,"is_primary":true,"text":[{"text":" let s : String = (","highlight_start":22,"highlight_end":23},{"text":" ); // Error spanning the newline.","highlight_start":1,"highlight_end":6}],"label":"expected struct `std::string::String`, found `()`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:25:22: error[E0308]: mismatched types
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":801,"byte_end":809,"line_start":25,"line_end":26,"column_start":22,"column_end":6,"is_primary":true,"text":[{"text":" let s : String = (","highlight_start":22,"highlight_end":23},{"text":" ); // Error spanning the newline.","highlight_start":1,"highlight_end":6}],"label":"expected struct `std::string::String`, found `()`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":792,"byte_end":798,"line_start":25,"line_end":25,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = (","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:25:22: error[E0308]: mismatched types
"}
{"message":"aborting due to 4 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 4 previous errors
"}

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/meta-expected-error-correct-rev.rs:7:18
|
LL | let x: u32 = 22_usize;
| ^^^^^^^^ expected `u32`, found `usize`
| --- ^^^^^^^^ expected `u32`, found `usize`
| |
| expected due to this
|
help: change the type of the numeric literal from `usize` to `u32`
|

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/method-ambig-one-trait-unknown-int-type.rs:33:20
|
LL | let y: usize = x.foo();
| ^^^^^^^ expected `usize`, found `isize`
| ----- ^^^^^^^ expected `usize`, found `isize`
| |
| expected due to this
|
help: you can convert an `isize` to `usize` and panic if the converted value wouldn't fit
|

View file

@ -2,13 +2,17 @@ error[E0308]: mismatched types
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:85:24
|
LL | let _seetype: () = z;
| ^ expected `()`, found `u32`
| -- ^ expected `()`, found `u32`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:102:24
|
LL | let _seetype: () = z;
| ^ expected `()`, found `u64`
| -- ^ expected `()`, found `u64`
| |
| expected due to this
error[E0034]: multiple applicable items in scope
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:120:15
@ -39,19 +43,25 @@ error[E0308]: mismatched types
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:137:24
|
LL | let _seetype: () = z;
| ^ expected `()`, found `u8`
| -- ^ expected `()`, found `u8`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:155:24
|
LL | let _seetype: () = z;
| ^ expected `()`, found `u32`
| -- ^ expected `()`, found `u32`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:172:24
|
LL | let _seetype: () = z;
| ^ expected `()`, found `u32`
| -- ^ expected `()`, found `u32`
| |
| expected due to this
error: aborting due to 6 previous errors

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/mir-unpretty.rs:4:17
|
LL | let x: () = 0;
| ^ expected `()`, found integer
| -- ^ expected `()`, found integer
| |
| expected due to this
error: aborting due to previous error

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/main.rs:2:18
|
LL | let x: u32 = (
| __________________^
| ____________---___^
| | |
| | expected due to this
LL | | );
| |_____^ expected `u32`, found `()`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/never-assign-wrong-type.rs:6:16
|
LL | let x: ! = "hello";
| ^^^^^^^ expected `!`, found `&str`
| - ^^^^^^^ expected `!`, found `&str`
| |
| expected due to this
|
= note: expected type `!`
found reference `&'static str`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/noexporttypeexe.rs:10:18
|
LL | let x: isize = noexporttypelib::foo();
| ^^^^^^^^^^^^^^^^^^^^^^ expected `isize`, found enum `std::option::Option`
| ----- ^^^^^^^^^^^^^^^^^^^^^^ expected `isize`, found enum `std::option::Option`
| |
| expected due to this
|
= note: expected type `isize`
found enum `std::option::Option<isize>`

View file

@ -14,19 +14,25 @@ error[E0308]: mismatched types
--> $DIR/const-scope.rs:5:18
|
LL | let c: i32 = 1i8;
| ^^^ expected `i32`, found `i8`
| --- ^^^ expected `i32`, found `i8`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/const-scope.rs:6:17
|
LL | let d: i8 = c;
| ^ expected `i8`, found `i32`
| -- ^ expected `i8`, found `i32`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/const-scope.rs:10:18
|
LL | let c: i32 = 1i8;
| ^^^ expected `i32`, found `i8`
| --- ^^^ expected `i32`, found `i8`
| |
| expected due to this
|
help: change the type of the numeric literal from `i8` to `i32`
|
@ -37,7 +43,9 @@ error[E0308]: mismatched types
--> $DIR/const-scope.rs:11:17
|
LL | let d: i8 = c;
| ^ expected `i8`, found `i32`
| -- ^ expected `i8`, found `i32`
| |
| expected due to this
|
help: you can convert an `i32` to `i8` and panic if the converted value wouldn't fit
|

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/numeric-cast-2.rs:5:18
|
LL | let x: u16 = foo();
| ^^^^^ expected `u16`, found `i32`
| --- ^^^^^ expected `u16`, found `i32`
| |
| expected due to this
|
help: you can convert an `i32` to `u16` and panic if the converted value wouldn't fit
|
@ -13,7 +15,9 @@ error[E0308]: mismatched types
--> $DIR/numeric-cast-2.rs:7:18
|
LL | let y: i64 = x + x;
| ^^^^^ expected `i64`, found `u16`
| --- ^^^^^ expected `i64`, found `u16`
| |
| expected due to this
|
help: you can convert an `u16` to `i64` and panic if the converted value wouldn't fit
|
@ -24,7 +28,9 @@ error[E0308]: mismatched types
--> $DIR/numeric-cast-2.rs:9:18
|
LL | let z: i32 = x + x;
| ^^^^^ expected `i32`, found `u16`
| --- ^^^^^ expected `i32`, found `u16`
| |
| expected due to this
|
help: you can convert an `u16` to `i32` and panic if the converted value wouldn't fit
|

View file

@ -10,7 +10,9 @@ error[E0308]: mismatched types
--> $DIR/issue-64879-trailing-before-guard.rs:12:42
|
LL | let recovery_witness: bool = 0;
| ^ expected `bool`, found integer
| ---- ^ expected `bool`, found integer
| |
| expected due to this
error: aborting due to 2 previous errors

View file

@ -118,10 +118,11 @@ error[E0308]: mismatched types
--> $DIR/or-patterns-syntactic-fail.rs:52:36
|
LL | let recovery_witness: String = 0;
| ^
| |
| expected struct `std::string::String`, found integer
| help: try using a conversion method: `0.to_string()`
| ------ ^
| | |
| | expected struct `std::string::String`, found integer
| | help: try using a conversion method: `0.to_string()`
| expected due to this
error: aborting due to 16 previous errors

View file

@ -43,7 +43,9 @@ error[E0308]: mismatched types
--> $DIR/lex-bad-char-literals-6.rs:15:20
|
LL | let a: usize = "";
| ^^ expected `usize`, found `&str`
| ----- ^^ expected `usize`, found `&str`
| |
| expected due to this
error[E0277]: can't compare `&str` with `char`
--> $DIR/lex-bad-char-literals-6.rs:12:10

View file

@ -14,7 +14,9 @@ error[E0308]: mismatched types
--> $DIR/numeric-lifetime.rs:6:20
|
LL | let x: usize = "";
| ^^ expected `usize`, found `&str`
| ----- ^^ expected `usize`, found `&str`
| |
| expected due to this
error: aborting due to 3 previous errors

View file

@ -13,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/recover-from-homoglyph.rs:3:20
|
LL | let x: usize = ();
| ^^ expected `usize`, found `()`
| ----- ^^ expected `usize`, found `()`
| |
| expected due to this
error: aborting due to 2 previous errors

View file

@ -20,13 +20,17 @@ error[E0308]: mismatched types
--> $DIR/recover-missing-semi.rs:2:20
|
LL | let _: usize = ()
| ^^ expected `usize`, found `()`
| ----- ^^ expected `usize`, found `()`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/recover-missing-semi.rs:9:20
|
LL | let _: usize = ()
| ^^ expected `usize`, found `()`
| ----- ^^ expected `usize`, found `()`
| |
| expected due to this
error: aborting due to 4 previous errors

View file

@ -8,7 +8,9 @@ error[E0308]: mismatched types
--> $DIR/recover-tuple.rs:6:20
|
LL | let y: usize = "";
| ^^ expected `usize`, found `&str`
| ----- ^^ expected `usize`, found `&str`
| |
| expected due to this
error: aborting due to 2 previous errors

View file

@ -13,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/unclosed-delimiter-in-dep.rs:4:20
|
LL | let _: usize = unclosed_delim_mod::new();
| ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found enum `std::result::Result`
| ----- ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found enum `std::result::Result`
| |
| expected due to this
|
= note: expected type `usize`
found enum `std::result::Result<unclosed_delim_mod::Value, ()>`

View file

@ -2,13 +2,17 @@ error[E0308]: mismatched types
--> $DIR/attribute-spans-preserved.rs:7:23
|
LL | #[ foo ( let y: u32 = "z"; ) ]
| ^^^ expected `u32`, found `&str`
| --- ^^^ expected `u32`, found `&str`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/attribute-spans-preserved.rs:8:23
|
LL | #[ bar { let x: u32 = "y"; } ]
| ^^^ expected `u32`, found `&str`
| --- ^^^ expected `u32`, found `&str`
| |
| expected due to this
error: aborting due to 2 previous errors

View file

@ -2,25 +2,33 @@ error[E0308]: mismatched types
--> $DIR/attribute-with-error.rs:10:18
|
LL | let a: i32 = "foo";
| ^^^^^ expected `i32`, found `&str`
| --- ^^^^^ expected `i32`, found `&str`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/attribute-with-error.rs:12:18
|
LL | let b: i32 = "f'oo";
| ^^^^^^ expected `i32`, found `&str`
| --- ^^^^^^ expected `i32`, found `&str`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/attribute-with-error.rs:25:22
|
LL | let a: i32 = "foo";
| ^^^^^ expected `i32`, found `&str`
| --- ^^^^^ expected `i32`, found `&str`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/attribute-with-error.rs:35:22
|
LL | let a: i32 = "foo";
| ^^^^^ expected `i32`, found `&str`
| --- ^^^^^ expected `i32`, found `&str`
| |
| expected due to this
error: aborting due to 4 previous errors

View file

@ -2,13 +2,17 @@ error[E0308]: mismatched types
--> $DIR/nested-item-spans.rs:9:22
|
LL | let x: u32 = "x";
| ^^^ expected `u32`, found `&str`
| --- ^^^ expected `u32`, found `&str`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/nested-item-spans.rs:18:22
|
LL | let x: u32 = "x";
| ^^^ expected `u32`, found `&str`
| --- ^^^ expected `u32`, found `&str`
| |
| expected due to this
error: aborting due to 2 previous errors

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/span-preservation.rs:11:20
|
LL | let x: usize = "hello";
| ^^^^^^^ expected `usize`, found `&str`
| ----- ^^^^^^^ expected `usize`, found `&str`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/span-preservation.rs:17:29

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/ptr-coercion.rs:7:25
|
LL | let x: *mut isize = x;
| ^ types differ in mutability
| ---------- ^ types differ in mutability
| |
| expected due to this
|
= note: expected raw pointer `*mut isize`
found raw pointer `*const isize`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/ptr-coercion.rs:13:25
|
LL | let x: *mut isize = &42;
| ^^^ types differ in mutability
| ---------- ^^^ types differ in mutability
| |
| expected due to this
|
= note: expected raw pointer `*mut isize`
found reference `&isize`
@ -20,7 +24,9 @@ error[E0308]: mismatched types
--> $DIR/ptr-coercion.rs:19:25
|
LL | let x: *mut isize = x;
| ^ types differ in mutability
| ---------- ^ types differ in mutability
| |
| expected due to this
|
= note: expected raw pointer `*mut isize`
found raw pointer `*const isize`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/region-lifetime-bounds-on-fns-where-clause.rs:20:43
|
LL | let _: fn(&mut &isize, &mut &isize) = a;
| ^ expected concrete lifetime, found bound lifetime parameter
| ---------------------------- ^ expected concrete lifetime, found bound lifetime parameter
| |
| expected due to this
|
= note: expected fn pointer `for<'r, 's, 't0, 't1> fn(&'r mut &'s isize, &'t0 mut &'t1 isize)`
found fn item `for<'r, 's> fn(&'r mut &isize, &'s mut &isize) {a::<'_, '_>}`

View file

@ -20,7 +20,9 @@ error[E0308]: mismatched types
--> $DIR/region-lifetime-bounds-on-fns-where-clause.rs:20:43
|
LL | let _: fn(&mut &isize, &mut &isize) = a;
| ^ expected concrete lifetime, found bound lifetime parameter
| ---------------------------- ^ expected concrete lifetime, found bound lifetime parameter
| |
| expected due to this
|
= note: expected fn pointer `for<'r, 's, 't0, 't1> fn(&'r mut &'s isize, &'t0 mut &'t1 isize)`
found fn item `for<'r, 's> fn(&'r mut &isize, &'s mut &isize) {a::<'_, '_>}`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/region-multiple-lifetime-bounds-on-fns-where-clause.rs:22:56
|
LL | let _: fn(&mut &isize, &mut &isize, &mut &isize) = a;
| ^ expected concrete lifetime, found bound lifetime parameter
| ----------------------------------------- ^ expected concrete lifetime, found bound lifetime parameter
| |
| expected due to this
|
= note: expected fn pointer `for<'r, 's, 't0, 't1, 't2, 't3> fn(&'r mut &'s isize, &'t0 mut &'t1 isize, &'t2 mut &'t3 isize)`
found fn item `for<'r, 's, 't0> fn(&'r mut &isize, &'s mut &isize, &'t0 mut &isize) {a::<'_, '_, '_>}`

View file

@ -31,7 +31,9 @@ error[E0308]: mismatched types
--> $DIR/region-multiple-lifetime-bounds-on-fns-where-clause.rs:22:56
|
LL | let _: fn(&mut &isize, &mut &isize, &mut &isize) = a;
| ^ expected concrete lifetime, found bound lifetime parameter
| ----------------------------------------- ^ expected concrete lifetime, found bound lifetime parameter
| |
| expected due to this
|
= note: expected fn pointer `for<'r, 's, 't0, 't1, 't2, 't3> fn(&'r mut &'s isize, &'t0 mut &'t1 isize, &'t2 mut &'t3 isize)`
found fn item `for<'r, 's, 't0> fn(&'r mut &isize, &'s mut &isize, &'t0 mut &isize) {a::<'_, '_, '_>}`

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/regions-lifetime-bounds-on-fns.rs:20:43
|
LL | let _: fn(&mut &isize, &mut &isize) = a;
| ^ expected concrete lifetime, found bound lifetime parameter
| ---------------------------- ^ expected concrete lifetime, found bound lifetime parameter
| |
| expected due to this
|
= note: expected fn pointer `for<'r, 's, 't0, 't1> fn(&'r mut &'s isize, &'t0 mut &'t1 isize)`
found fn item `for<'r, 's> fn(&'r mut &isize, &'s mut &isize) {a::<'_, '_>}`

View file

@ -20,7 +20,9 @@ error[E0308]: mismatched types
--> $DIR/regions-lifetime-bounds-on-fns.rs:20:43
|
LL | let _: fn(&mut &isize, &mut &isize) = a;
| ^ expected concrete lifetime, found bound lifetime parameter
| ---------------------------- ^ expected concrete lifetime, found bound lifetime parameter
| |
| expected due to this
|
= note: expected fn pointer `for<'r, 's, 't0, 't1> fn(&'r mut &'s isize, &'t0 mut &'t1 isize)`
found fn item `for<'r, 's> fn(&'r mut &isize, &'s mut &isize) {a::<'_, '_>}`

View file

@ -2,10 +2,11 @@ error[E0308]: cannot coerce intrinsics to function pointers
--> $DIR/reify-intrinsic.rs:6:64
|
LL | let _: unsafe extern "rust-intrinsic" fn(isize) -> usize = std::mem::transmute;
| ^^^^^^^^^^^^^^^^^^^
| |
| cannot coerce intrinsics to function pointers
| help: use parentheses to call this function: `std::mem::transmute(...)`
| ------------------------------------------------- ^^^^^^^^^^^^^^^^^^^
| | |
| | cannot coerce intrinsics to function pointers
| | help: use parentheses to call this function: `std::mem::transmute(...)`
| expected due to this
|
= note: expected fn pointer `unsafe extern "rust-intrinsic" fn(isize) -> usize`
found fn item `unsafe extern "rust-intrinsic" fn(_) -> _ {std::intrinsics::transmute::<_, _>}`

View file

@ -280,10 +280,11 @@ LL | Fn(u8),
| ------ fn(u8) -> m::n::Z {m::n::Z::Fn} defined here
...
LL | let _: Z = Z::Fn;
| ^^^^^
| |
| expected enum `m::n::Z`, found fn item
| help: use parentheses to instantiate this tuple variant: `Z::Fn(_)`
| - ^^^^^
| | |
| | expected enum `m::n::Z`, found fn item
| | help: use parentheses to instantiate this tuple variant: `Z::Fn(_)`
| expected due to this
|
= note: expected enum `m::n::Z`
found fn item `fn(u8) -> m::n::Z {m::n::Z::Fn}`
@ -311,10 +312,11 @@ LL | Fn(u8),
| ------ fn(u8) -> m::E {m::E::Fn} defined here
...
LL | let _: E = m::E::Fn;
| ^^^^^^^^
| |
| expected enum `m::E`, found fn item
| help: use parentheses to instantiate this tuple variant: `m::E::Fn(_)`
| - ^^^^^^^^
| | |
| | expected enum `m::E`, found fn item
| | help: use parentheses to instantiate this tuple variant: `m::E::Fn(_)`
| expected due to this
|
= note: expected enum `m::E`
found fn item `fn(u8) -> m::E {m::E::Fn}`
@ -342,10 +344,11 @@ LL | Fn(u8),
| ------ fn(u8) -> m::E {m::E::Fn} defined here
...
LL | let _: E = E::Fn;
| ^^^^^
| |
| expected enum `m::E`, found fn item
| help: use parentheses to instantiate this tuple variant: `E::Fn(_)`
| - ^^^^^
| | |
| | expected enum `m::E`, found fn item
| | help: use parentheses to instantiate this tuple variant: `E::Fn(_)`
| expected due to this
|
= note: expected enum `m::E`
found fn item `fn(u8) -> m::E {m::E::Fn}`

View file

@ -26,7 +26,9 @@ error[E0308]: mismatched types
--> $DIR/shift-various-bad-types.rs:25:18
|
LL | let _: i32 = 22_i64 >> 1_i32;
| ^^^^^^^^^^^^^^^ expected `i32`, found `i64`
| --- ^^^^^^^^^^^^^^^ expected `i32`, found `i64`
| |
| expected due to this
|
help: you can convert an `i64` to `i32` and panic if the converted value wouldn't fit
|

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/slice-mut.rs:7:22
|
LL | let y: &mut[_] = &x[2..4];
| ^^^^^^^^ types differ in mutability
| ------- ^^^^^^^^ types differ in mutability
| |
| expected due to this
|
= note: expected mutable reference `&mut [_]`
found reference `&[isize]`

View file

@ -2,16 +2,19 @@ error[E0308]: mismatched types
--> $DIR/coerce-suggestions.rs:7:20
|
LL | let x: usize = String::new();
| ^^^^^^^^^^^^^ expected `usize`, found struct `std::string::String`
| ----- ^^^^^^^^^^^^^ expected `usize`, found struct `std::string::String`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/coerce-suggestions.rs:9:19
|
LL | let x: &str = String::new();
| ^^^^^^^^^^^^^
| |
| expected `&str`, found struct `std::string::String`
| help: consider borrowing here: `&String::new()`
| ---- ^^^^^^^^^^^^^
| | |
| | expected `&str`, found struct `std::string::String`
| | help: consider borrowing here: `&String::new()`
| expected due to this
error[E0308]: mismatched types
--> $DIR/coerce-suggestions.rs:12:10

View file

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/move-closure.rs:5:17
|
LL | let x: () = move || ();
| ^^^^^^^^^^ expected `()`, found closure
| -- ^^^^^^^^^^ expected `()`, found closure
| |
| expected due to this
|
= note: expected unit type `()`
found closure `[closure@$DIR/move-closure.rs:5:17: 5:27]`

View file

@ -32,10 +32,11 @@ error[E0308]: mismatched types
--> $DIR/str-array-assignment.rs:9:17
|
LL | let w: &str = s[..2];
| ^^^^^^
| |
| expected `&str`, found `str`
| help: consider borrowing here: `&s[..2]`
| ---- ^^^^^^
| | |
| | expected `&str`, found `str`
| | help: consider borrowing here: `&s[..2]`
| expected due to this
error: aborting due to 4 previous errors

View file

@ -2,10 +2,11 @@ error[E0308]: mismatched types
--> $DIR/str-lit-type-mismatch.rs:2:20
|
LL | let x: &[u8] = "foo";
| ^^^^^
| |
| expected slice `[u8]`, found `str`
| help: consider adding a leading `b`: `b"foo"`
| ----- ^^^^^
| | |
| | expected slice `[u8]`, found `str`
| | help: consider adding a leading `b`: `b"foo"`
| expected due to this
|
= note: expected reference `&[u8]`
found reference `&'static str`
@ -14,10 +15,11 @@ error[E0308]: mismatched types
--> $DIR/str-lit-type-mismatch.rs:3:23
|
LL | let y: &[u8; 4] = "baaa";
| ^^^^^^
| |
| expected array `[u8; 4]`, found `str`
| help: consider adding a leading `b`: `b"baaa"`
| -------- ^^^^^^
| | |
| | expected array `[u8; 4]`, found `str`
| | help: consider adding a leading `b`: `b"baaa"`
| expected due to this
|
= note: expected reference `&[u8; 4]`
found reference `&'static str`
@ -26,10 +28,11 @@ error[E0308]: mismatched types
--> $DIR/str-lit-type-mismatch.rs:4:19
|
LL | let z: &str = b"foo";
| ^^^^^^
| |
| expected `str`, found array `[u8; 3]`
| help: consider removing the leading `b`: `"foo"`
| ---- ^^^^^^
| | |
| | expected `str`, found array `[u8; 3]`
| | help: consider removing the leading `b`: `"foo"`
| expected due to this
|
= note: expected reference `&str`
found reference `&'static [u8; 3]`

View file

@ -63,7 +63,9 @@ error[E0308]: mismatched types
--> $DIR/struct-literal-variant-in-if.rs:21:20
|
LL | let y: usize = ();
| ^^ expected `usize`, found `()`
| ----- ^^ expected `usize`, found `()`
| |
| expected due to this
error: aborting due to 7 previous errors

View file

@ -5,10 +5,11 @@ LL | fn bar<'a, T>() where T: 'a {}
| --------------------------- fn() {<i8 as Foo<'static, 'static, u8>>::bar::<'static, char>} defined here
...
LL | let x: () = <i8 as Foo<'static, 'static, u8>>::bar::<'static, char>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::bar::<'static, char>()`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::bar::<'static, char>()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {<i8 as Foo<'static, 'static, u8>>::bar::<'static, char>}`
@ -20,10 +21,11 @@ LL | fn bar<'a, T>() where T: 'a {}
| --------------------------- fn() {<i8 as Foo<'static, 'static>>::bar::<'static, char>} defined here
...
LL | let x: () = <i8 as Foo<'static, 'static, u32>>::bar::<'static, char>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u32>>::bar::<'static, char>()`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u32>>::bar::<'static, char>()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {<i8 as Foo<'static, 'static>>::bar::<'static, char>}`
@ -35,10 +37,11 @@ LL | fn baz() {}
| -------- fn() {<i8 as Foo<'static, 'static, u8>>::baz} defined here
...
LL | let x: () = <i8 as Foo<'static, 'static, u8>>::baz;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::baz()`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::baz()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {<i8 as Foo<'static, 'static, u8>>::baz}`
@ -50,10 +53,11 @@ LL | fn foo<'z>() where &'z (): Sized {
| -------------------------------- fn() {foo::<'static>} defined here
...
LL | let x: () = foo::<'static>;
| ^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `foo::<'static>()`
| -- ^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `foo::<'static>()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {foo::<'static>}`

View file

@ -5,10 +5,11 @@ LL | fn bar<'a, T>() where T: 'a {}
| --------------------------- fn() {<i8 as Foo<ReStatic, ReStatic, u8>>::bar::<ReStatic, char>} defined here
...
LL | let x: () = <i8 as Foo<'static, 'static, u8>>::bar::<'static, char>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::bar::<'static, char>()`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::bar::<'static, char>()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {<i8 as Foo<ReStatic, ReStatic, u8>>::bar::<ReStatic, char>}`
@ -20,10 +21,11 @@ LL | fn bar<'a, T>() where T: 'a {}
| --------------------------- fn() {<i8 as Foo<ReStatic, ReStatic>>::bar::<ReStatic, char>} defined here
...
LL | let x: () = <i8 as Foo<'static, 'static, u32>>::bar::<'static, char>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u32>>::bar::<'static, char>()`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u32>>::bar::<'static, char>()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {<i8 as Foo<ReStatic, ReStatic>>::bar::<ReStatic, char>}`
@ -35,10 +37,11 @@ LL | fn baz() {}
| -------- fn() {<i8 as Foo<ReStatic, ReStatic, u8>>::baz} defined here
...
LL | let x: () = <i8 as Foo<'static, 'static, u8>>::baz;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::baz()`
| -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `<i8 as Foo<'static, 'static, u8>>::baz()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {<i8 as Foo<ReStatic, ReStatic, u8>>::baz}`
@ -50,10 +53,11 @@ LL | fn foo<'z>() where &'z (): Sized {
| -------------------------------- fn() {foo::<ReStatic>} defined here
...
LL | let x: () = foo::<'static>;
| ^^^^^^^^^^^^^^
| |
| expected `()`, found fn item
| help: use parentheses to call this function: `foo::<'static>()`
| -- ^^^^^^^^^^^^^^
| | |
| | expected `()`, found fn item
| | help: use parentheses to call this function: `foo::<'static>()`
| expected due to this
|
= note: expected unit type `()`
found fn item `fn() {foo::<ReStatic>}`

View file

@ -34,10 +34,11 @@ error[E0308]: mismatched types
--> $DIR/as-ref.rs:16:27
|
LL | let y: Option<&usize> = x;
| ^
| |
| expected enum `std::option::Option`, found reference
| help: you can convert from `&Option<T>` to `Option<&T>` using `.as_ref()`: `x.as_ref()`
| -------------- ^
| | |
| | expected enum `std::option::Option`, found reference
| | help: you can convert from `&Option<T>` to `Option<&T>` using `.as_ref()`: `x.as_ref()`
| expected due to this
|
= note: expected enum `std::option::Option<&usize>`
found reference `&std::option::Option<usize>`
@ -46,7 +47,9 @@ error[E0308]: mismatched types
--> $DIR/as-ref.rs:19:35
|
LL | let y: Result<&usize, &usize> = x;
| ^ expected enum `std::result::Result`, found reference
| ---------------------- ^ expected enum `std::result::Result`, found reference
| |
| expected due to this
|
= note: expected enum `std::result::Result<&usize, &usize>`
found reference `&std::result::Result<usize, usize>`
@ -59,7 +62,9 @@ error[E0308]: mismatched types
--> $DIR/as-ref.rs:23:34
|
LL | let y: Result<&usize, usize> = x;
| ^ expected enum `std::result::Result`, found reference
| --------------------- ^ expected enum `std::result::Result`, found reference
| |
| expected due to this
|
= note: expected enum `std::result::Result<&usize, usize>`
found reference `&std::result::Result<usize, usize>`

View file

@ -19,10 +19,11 @@ LL | fn foo(a: usize, b: usize) -> usize { a }
| ----------------------------------- fn(usize, usize) -> usize {foo} defined here
...
LL | let _: usize = foo;
| ^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `foo(a, b)`
| ----- ^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `foo(a, b)`
| expected due to this
|
= note: expected type `usize`
found fn item `fn(usize, usize) -> usize {foo}`
@ -34,10 +35,11 @@ LL | struct S(usize, usize);
| ----------------------- fn(usize, usize) -> S {S} defined here
...
LL | let _: S = S;
| ^
| |
| expected struct `S`, found fn item
| help: use parentheses to instantiate this tuple struct: `S(_, _)`
| - ^
| | |
| | expected struct `S`, found fn item
| | help: use parentheses to instantiate this tuple struct: `S(_, _)`
| expected due to this
|
= note: expected struct `S`
found fn item `fn(usize, usize) -> S {S}`
@ -49,10 +51,11 @@ LL | fn bar() -> usize { 42 }
| ----------------- fn() -> usize {bar} defined here
...
LL | let _: usize = bar;
| ^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `bar()`
| ----- ^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `bar()`
| expected due to this
|
= note: expected type `usize`
found fn item `fn() -> usize {bar}`
@ -64,10 +67,11 @@ LL | struct V();
| ----------- fn() -> V {V} defined here
...
LL | let _: V = V;
| ^
| |
| expected struct `V`, found fn item
| help: use parentheses to instantiate this tuple struct: `V()`
| - ^
| | |
| | expected struct `V`, found fn item
| | help: use parentheses to instantiate this tuple struct: `V()`
| expected due to this
|
= note: expected struct `V`
found fn item `fn() -> V {V}`
@ -79,10 +83,11 @@ LL | fn baz(x: usize, y: usize) -> usize { x }
| ----------------------------------- fn(usize, usize) -> usize {<_ as T>::baz} defined here
...
LL | let _: usize = T::baz;
| ^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `T::baz(x, y)`
| ----- ^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `T::baz(x, y)`
| expected due to this
|
= note: expected type `usize`
found fn item `fn(usize, usize) -> usize {<_ as T>::baz}`
@ -94,10 +99,11 @@ LL | fn bat(x: usize) -> usize { 42 }
| ------------------------- fn(usize) -> usize {<_ as T>::bat} defined here
...
LL | let _: usize = T::bat;
| ^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `T::bat(x)`
| ----- ^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `T::bat(x)`
| expected due to this
|
= note: expected type `usize`
found fn item `fn(usize) -> usize {<_ as T>::bat}`
@ -109,10 +115,11 @@ LL | A(usize),
| -------- fn(usize) -> E {E::A} defined here
...
LL | let _: E = E::A;
| ^^^^
| |
| expected enum `E`, found fn item
| help: use parentheses to instantiate this tuple variant: `E::A(_)`
| - ^^^^
| | |
| | expected enum `E`, found fn item
| | help: use parentheses to instantiate this tuple variant: `E::A(_)`
| expected due to this
|
= note: expected enum `E`
found fn item `fn(usize) -> E {E::A}`
@ -124,10 +131,11 @@ LL | fn baz(x: usize, y: usize) -> usize { x }
| ----------------------------------- fn(usize, usize) -> usize {<X as T>::baz} defined here
...
LL | let _: usize = X::baz;
| ^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `X::baz(x, y)`
| ----- ^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `X::baz(x, y)`
| expected due to this
|
= note: expected type `usize`
found fn item `fn(usize, usize) -> usize {<X as T>::baz}`
@ -139,10 +147,11 @@ LL | fn bat(x: usize) -> usize { 42 }
| ------------------------- fn(usize) -> usize {<X as T>::bat} defined here
...
LL | let _: usize = X::bat;
| ^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `X::bat(x)`
| ----- ^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `X::bat(x)`
| expected due to this
|
= note: expected type `usize`
found fn item `fn(usize) -> usize {<X as T>::bat}`
@ -154,10 +163,11 @@ LL | fn bax(x: usize) -> usize { 42 }
| ------------------------- fn(usize) -> usize {<X as T>::bax} defined here
...
LL | let _: usize = X::bax;
| ^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `X::bax(x)`
| ----- ^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `X::bax(x)`
| expected due to this
|
= note: expected type `usize`
found fn item `fn(usize) -> usize {<X as T>::bax}`
@ -169,10 +179,11 @@ LL | fn bach(x: usize) -> usize;
| --------------------------- fn(usize) -> usize {<X as T>::bach} defined here
...
LL | let _: usize = X::bach;
| ^^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `X::bach(x)`
| ----- ^^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `X::bach(x)`
| expected due to this
|
= note: expected type `usize`
found fn item `fn(usize) -> usize {<X as T>::bach}`
@ -184,10 +195,11 @@ LL | fn ban(&self) -> usize { 42 }
| ---------------------- for<'r> fn(&'r X) -> usize {<X as T>::ban} defined here
...
LL | let _: usize = X::ban;
| ^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `X::ban(_)`
| ----- ^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `X::ban(_)`
| expected due to this
|
= note: expected type `usize`
found fn item `for<'r> fn(&'r X) -> usize {<X as T>::ban}`
@ -199,10 +211,11 @@ LL | fn bal(&self) -> usize;
| ----------------------- for<'r> fn(&'r X) -> usize {<X as T>::bal} defined here
...
LL | let _: usize = X::bal;
| ^^^^^^
| |
| expected `usize`, found fn item
| help: use parentheses to call this function: `X::bal(_)`
| ----- ^^^^^^
| | |
| | expected `usize`, found fn item
| | help: use parentheses to call this function: `X::bal(_)`
| expected due to this
|
= note: expected type `usize`
found fn item `for<'r> fn(&'r X) -> usize {<X as T>::bal}`
@ -225,10 +238,11 @@ error[E0308]: mismatched types
LL | let closure = || 42;
| -- closure defined here
LL | let _: usize = closure;
| ^^^^^^^
| |
| expected `usize`, found closure
| help: use parentheses to call this closure: `closure()`
| ----- ^^^^^^^
| | |
| | expected `usize`, found closure
| | help: use parentheses to call this closure: `closure()`
| expected due to this
|
= note: expected type `usize`
found closure `[closure@$DIR/fn-or-tuple-struct-without-args.rs:45:19: 45:24]`

View file

@ -2,19 +2,21 @@ error[E0308]: mismatched types
--> $DIR/format-borrow.rs:2:21
|
LL | let a: String = &String::from("a");
| ^^^^^^^^^^^^^^^^^^
| |
| expected struct `std::string::String`, found `&std::string::String`
| help: consider removing the borrow: `String::from("a")`
| ------ ^^^^^^^^^^^^^^^^^^
| | |
| | expected struct `std::string::String`, found `&std::string::String`
| | help: consider removing the borrow: `String::from("a")`
| expected due to this
error[E0308]: mismatched types
--> $DIR/format-borrow.rs:4:21
|
LL | let b: String = &format!("b");
| ^^^^^^^^^^^^^
| |
| expected struct `std::string::String`, found `&std::string::String`
| help: consider removing the borrow: `format!("b")`
| ------ ^^^^^^^^^^^^^
| | |
| | expected struct `std::string::String`, found `&std::string::String`
| | help: consider removing the borrow: `format!("b")`
| expected due to this
error: aborting due to 2 previous errors

Some files were not shown because too many files have changed in this diff Show more