1
Fork 0

Rollup merge of #128467 - estebank:unsized-args, r=cjgillot

Detect `*` operator on `!Sized` expression

The suggestion is new:

```
error[E0277]: the size for values of type `str` cannot be known at compilation time
  --> $DIR/unsized-str-in-return-expr-arg-and-local.rs:15:9
   |
LL |     let x = *"";
   |         ^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `str`
   = note: all local variables must have a statically known size
   = help: unsized locals are gated as an unstable feature
help: references to `!Sized` types like `&str` are `Sized`; consider not dereferencing the expression
   |
LL -     let x = *"";
LL +     let x = "";
   |
```

Fix #128199.
This commit is contained in:
Trevor Gross 2024-08-24 21:03:30 -05:00 committed by GitHub
commit 00308920ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 187 additions and 9 deletions

View file

@ -353,7 +353,7 @@ pub enum ObligationCauseCode<'tcx> {
ReturnValue(HirId),
/// Opaque return type of this function
OpaqueReturnType(Option<(Ty<'tcx>, Span)>),
OpaqueReturnType(Option<(Ty<'tcx>, HirId)>),
/// Block implicit return
BlockTailExpression(HirId, hir::MatchSource),