Point at type in `let` assignment on type errors

This commit is contained in:
Esteban Küber 2019-11-18 21:00:24 -08:00
parent f11759d38c
commit 34f03c01f6
101 changed files with 684 additions and 354 deletions

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

@ -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

@ -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

@ -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

@ -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

View File

@ -2,28 +2,31 @@ error[E0308]: mismatched types
--> $DIR/issue-59819.rs:28:18
|
LL | let y: i32 = x;
| ^
| |
| expected `i32`, found struct `Foo`
| help: consider dereferencing the type: `*x`
| --- ^
| | |
| | expected `i32`, found struct `Foo`
| | help: consider dereferencing the type: `*x`
| expected due to this
error[E0308]: mismatched types
--> $DIR/issue-59819.rs:30:18
|
LL | let b: i32 = a;
| ^
| |
| expected `i32`, found `&{integer}`
| help: consider dereferencing the borrow: `*a`
| --- ^
| | |
| | expected `i32`, found `&{integer}`
| | help: consider dereferencing the borrow: `*a`
| expected due to this
error[E0308]: mismatched types
--> $DIR/issue-59819.rs:34:21
|
LL | let g: String = f;
| ^
| |
| expected struct `std::string::String`, found struct `Bar`
| help: try using a conversion method: `f.to_string()`
| ------ ^
| | |
| | expected struct `std::string::String`, found struct `Bar`
| | help: try using a conversion method: `f.to_string()`
| expected due to this
error: aborting due to 3 previous errors

View File

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/mismatched-types-numeric-from.rs:2:18
|
LL | let _: u32 = i32::from(0_u8);
| ^^^^^^^^^^^^^^^ expected `u32`, found `i32`
| --- ^^^^^^^^^^^^^^^ expected `u32`, found `i32`
| |
| expected due to this
error: aborting due to previous error

View File

@ -22,13 +22,17 @@ error[E0308]: mismatched types
--> $DIR/recover-from-semicolon-trailing-item.rs:10:20
|
LL | let _: usize = S {};
| ^^^^ expected `usize`, found struct `S`
| ----- ^^^^ expected `usize`, found struct `S`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/recover-from-semicolon-trailing-item.rs:12:20
|
LL | let _: usize = X {};
| ^^^^ expected `usize`, found struct `main::X`
| ----- ^^^^ expected `usize`, found struct `main::X`
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/recover-from-semicolon-trailing-item.rs:14:9

View File

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/suggest-box.rs:4:47
|
LL | let _x: Box<dyn Fn() -> Result<(), ()>> = || {
| _______________________________________________^
| _____________-------------------------------___^
| | |
| | expected due to this
LL | | Err(())?;
LL | | Ok(())
LL | | };

View File

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/tag-that-dare-not-speak-its-name.rs:11:20
|
LL | let x : char = last(y);
| ^^^^^^^ expected `char`, found enum `std::option::Option`
| ---- ^^^^^^^ expected `char`, found enum `std::option::Option`
| |
| expected due to this
|
= note: expected type `char`
found enum `std::option::Option<_>`

View File

@ -1,8 +1,10 @@
error[E0308]: mismatched types
--> $DIR/non-whitespace-trimming-2.rs:4:311
|
LL | ... let _: usize = 14; let _: usize = 15; let _: () = 42; let _: usize = 0; let _: usize = 1; let _: usize = 2; let _: usize = 3; let _: ...
| ^^ expected `()`, found integer
LL | ...13; let _: usize = 14; let _: usize = 15; let _: () = 42; let _: usize = 0; let _: usize = 1; let _: usize = 2; let _: usize = 3; let ...
| -- ^^ expected `()`, found integer
| |
| expected due to this
error: aborting due to previous error

View File

@ -1,8 +1,10 @@
error[E0308]: mismatched types
--> $DIR/non-whitespace-trimming-unicode.rs:4:415
|
LL | ...♰♱♲♳♴♵♶♷♸♹♺♻♼♽♾♿⚀⚁⚂⚃⚄⚅⚆⚈⚉4"; let _: () = 42; let _: &str = "🦀☀☁☂☃☄★☆☇☈☉☊☋☌☍☎☏☐☑☒☓ ☖☗☘☙☚☛☜☝☞☟☠☡☢☣☤☥☦☧☨☩☪☫☬☭☮☯☰☱☲☳☴☵☶☷☸☹☺☻☼☽☾☿♀♁♂♃♄♅♆...
| ^^ expected `()`, found integer
LL | ...♭♮♯♰♱♲♳♴♵♶♷♸♹♺♻♼♽♾♿⚀⚁⚂⚃⚄⚅⚆⚈⚉4"; let _: () = 42; let _: &str = "🦀☀☁☂☃☄★☆☇☈☉☊☋☌☍☎☏☐☑☒☓ ☖☗☘☙☚☛☜☝☞☟☠☡☢☣☤☥☦☧☨☩☪☫☬☭☮☯☰☱☲☳☴☵☶☷☸☹☺☻☼☽☾☿♀♁♂♃♄...
| -- ^^ expected `()`, found integer
| |
| expected due to this
error: aborting due to previous error

View File

@ -1,8 +1,10 @@
error[E0308]: mismatched types
--> $DIR/non-whitespace-trimming.rs:4:241
|
LL | ... = (); let _: () = (); let _: () = (); let _: () = 42; let _: () = (); let _: () = (); let _: () = (); let _: () = (); let _: () = ();...
| ^^ expected `()`, found integer
LL | ... () = (); let _: () = (); let _: () = (); let _: () = 42; let _: () = (); let _: () = (); let _: () = (); let _: () = (); let _: () = ...
| -- ^^ expected `()`, found integer
| |
| expected due to this
error: aborting due to previous error

View File

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/whitespace-trimming.rs:4:193
|
LL | ... let _: () = 42;
| ^^ expected `()`, found integer
| -- ^^ expected `()`, found integer
| |
| expected due to this
error: aborting due to previous error

View File

@ -11,7 +11,9 @@ error[E0308]: mismatched types
--> $DIR/enum-variant-priority-higher-than-other-inherent.rs:22:17
|
LL | let _: u8 = <E2>::V;
| ^^^^^^^ expected `u8`, found enum `E2`
| -- ^^^^^^^ expected `u8`, found enum `E2`
| |
| expected due to this
error: aborting due to 2 previous errors

View File

@ -8,7 +8,9 @@ error[E0308]: mismatched types
--> $DIR/generic_type_does_not_live_long_enough.rs:6:18
|
LL | let z: i32 = x;
| ^ expected `i32`, found opaque type
| --- ^ expected `i32`, found opaque type
| |
| expected due to this
|
= note: expected type `i32`
found opaque type `WrongGeneric::<&{integer}>`

View File

@ -8,7 +8,9 @@ error[E0308]: mismatched types
--> $DIR/generic_type_does_not_live_long_enough.rs:6:18
|
LL | let z: i32 = x;
| ^ expected `i32`, found opaque type
| --- ^ expected `i32`, found opaque type
| |
| expected due to this
|
= note: expected type `i32`
found opaque type `WrongGeneric::<&{integer}>`

View File

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/never_reveal_concrete_type.rs:13:27
|
LL | let _: &'static str = x;
| ^ expected `&str`, found opaque type
| ------------ ^ expected `&str`, found opaque type
| |
| expected due to this
|
= note: expected reference `&'static str`
found opaque type `NoReveal`

View File

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/no_revealing_outside_defining_module.rs:15:19
|
LL | let _: &str = bomp();
| ^^^^^^ expected `&str`, found opaque type
| ---- ^^^^^^ expected `&str`, found opaque type
| |
| expected due to this
|
= note: expected reference `&str`
found opaque type `Boo`

View File

@ -107,7 +107,9 @@ error[E0308]: mismatched types
--> $DIR/assignment-expected-bool.rs:31:20
|
LL | let _: usize = 0 = 0;
| ^^^^^ expected `usize`, found `()`
| ----- ^^^^^ expected `usize`, found `()`
| |
| expected due to this
error: aborting due to 13 previous errors

View File

@ -2,13 +2,17 @@ error[E0308]: mismatched types
--> $DIR/type-mismatch-multiple.rs:3:27
|
LL | fn main() { let a: bool = 1; let b: i32 = true; }
| ^ expected `bool`, found integer
| ---- ^ expected `bool`, found integer
| |
| expected due to this
error[E0308]: mismatched types
--> $DIR/type-mismatch-multiple.rs:3:43
|
LL | fn main() { let a: bool = 1; let b: i32 = true; }
| ^^^^ expected `i32`, found `bool`
| --- ^^^^ expected `i32`, found `bool`
| |
| expected due to this
error: aborting due to 2 previous errors

View File

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

View File

@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/typeck_type_placeholder_mismatch.rs:13:21
|
LL | let x: Foo<_> = Bar::<usize>(PhantomData);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Foo`, found struct `Bar`
| ------ ^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Foo`, found struct `Bar`
| |
| expected due to this
|
= note: expected struct `Foo<_>`
found struct `Bar<usize>`
@ -11,7 +13,9 @@ error[E0308]: mismatched types
--> $DIR/typeck_type_placeholder_mismatch.rs:22:21
|
LL | let x: Foo<_> = Bar::<usize>(PhantomData);
| ^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Foo`, found struct `Bar`
| ------ ^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Foo`, found struct `Bar`
| |
| expected due to this
|
= note: expected struct `Foo<_>`
found struct `Bar<usize>`

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