1
Fork 0

Note type mismatch on ConstArgHasType

This commit is contained in:
Michael Goulet 2023-03-09 22:08:48 +00:00
parent e55f73ae47
commit 6c6bd01421
4 changed files with 15 additions and 5 deletions

View file

@ -1282,10 +1282,20 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
), ),
ty::PredicateKind::Clause(ty::Clause::ConstArgHasType(ct, ty)) => { ty::PredicateKind::Clause(ty::Clause::ConstArgHasType(ct, ty)) => {
self.tcx.sess.struct_span_err( let mut diag = self.tcx.sess.struct_span_err(
span, span,
&format!("the constant `{}` is not of type `{}`", ct, ty), &format!("the constant `{}` is not of type `{}`", ct, ty),
) );
self.note_type_err(
&mut diag,
&obligation.cause,
None,
None,
TypeError::Sorts(ty::error::ExpectedFound::new(true, ty, ct.ty())),
false,
false,
);
diag
} }
} }
} }

View file

@ -2,7 +2,7 @@ error: the constant `N` is not of type `u8`
--> $DIR/type_mismatch.rs:2:11 --> $DIR/type_mismatch.rs:2:11
| |
LL | bar::<N>() LL | bar::<N>()
| ^ | ^ expected `u8`, found `usize`
| |
note: required by a bound in `bar` note: required by a bound in `bar`
--> $DIR/type_mismatch.rs:6:8 --> $DIR/type_mismatch.rs:6:8

View file

@ -2,7 +2,7 @@ error: the constant `N` is not of type `usize`
--> $DIR/bad-const-wf-doesnt-specialize.rs:8:29 --> $DIR/bad-const-wf-doesnt-specialize.rs:8:29
| |
LL | impl<const N: i32> Copy for S<N> {} LL | impl<const N: i32> Copy for S<N> {}
| ^^^^ | ^^^^ expected `usize`, found `i32`
| |
note: required by a bound in `S` note: required by a bound in `S`
--> $DIR/bad-const-wf-doesnt-specialize.rs:6:10 --> $DIR/bad-const-wf-doesnt-specialize.rs:6:10

View file

@ -8,7 +8,7 @@ error: the constant `ASSUME_ALIGNMENT` is not of type `Assume`
--> $DIR/issue-101739-1.rs:8:14 --> $DIR/issue-101739-1.rs:8:14
| |
LL | Dst: BikeshedIntrinsicFrom<Src, Context, ASSUME_ALIGNMENT>, LL | Dst: BikeshedIntrinsicFrom<Src, Context, ASSUME_ALIGNMENT>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Assume`, found `bool`
| |
note: required by a bound in `BikeshedIntrinsicFrom` note: required by a bound in `BikeshedIntrinsicFrom`
--> $SRC_DIR/core/src/mem/transmutability.rs:LL:COL --> $SRC_DIR/core/src/mem/transmutability.rs:LL:COL