mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 01:04:03 +00:00
parent
8ad7bc3f42
commit
62e75a1f22
@ -509,11 +509,6 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
|
||||
fn lower_pattern_unadjusted(&mut self, pat: &'tcx hir::Pat<'tcx>) -> Pat<'tcx> {
|
||||
let mut ty = self.typeck_results.node_type(pat.hir_id);
|
||||
|
||||
if let ty::Error(_) = ty.kind {
|
||||
// Avoid ICEs (e.g., #50577 and #50585).
|
||||
return Pat { span: pat.span, ty, kind: Box::new(PatKind::Wild) };
|
||||
}
|
||||
|
||||
let kind = match pat.kind {
|
||||
hir::PatKind::Wild => PatKind::Wild,
|
||||
|
||||
|
17
src/test/ui/issue-74047.rs
Normal file
17
src/test/ui/issue-74047.rs
Normal file
@ -0,0 +1,17 @@
|
||||
// edition:2018
|
||||
|
||||
use std::convert::{TryFrom, TryInto};
|
||||
use std::io;
|
||||
|
||||
pub struct MyStream;
|
||||
pub struct OtherStream;
|
||||
|
||||
pub async fn connect() -> io::Result<MyStream> {
|
||||
let stream: MyStream = OtherStream.try_into()?;
|
||||
Ok(stream)
|
||||
}
|
||||
|
||||
impl TryFrom<OtherStream> for MyStream {}
|
||||
//~^ ERROR: missing
|
||||
|
||||
fn main() {}
|
12
src/test/ui/issue-74047.stderr
Normal file
12
src/test/ui/issue-74047.stderr
Normal file
@ -0,0 +1,12 @@
|
||||
error[E0046]: not all trait items implemented, missing: `Error`, `try_from`
|
||||
--> $DIR/issue-74047.rs:14:1
|
||||
|
|
||||
LL | impl TryFrom<OtherStream> for MyStream {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `Error`, `try_from` in implementation
|
||||
|
|
||||
= help: implement the missing item: `type Error = Type;`
|
||||
= help: implement the missing item: `fn try_from(_: T) -> std::result::Result<Self, <Self as std::convert::TryFrom<T>>::Error> { todo!() }`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0046`.
|
Loading…
Reference in New Issue
Block a user