Workaround ICE with if-let and RFC 2229
This commit is contained in:
parent
db1fb85cff
commit
440d9372a2
2 changed files with 8 additions and 9 deletions
|
@ -1028,15 +1028,13 @@ impl HandlerInner {
|
|||
let mut error_codes = self
|
||||
.emitted_diagnostic_codes
|
||||
.iter()
|
||||
.filter_map(|x| {
|
||||
match &x {
|
||||
.filter_map(|x| match &x {
|
||||
DiagnosticId::Error(s)
|
||||
if let Ok(Some(_explanation)) = registry.try_find_description(s) =>
|
||||
if registry.try_find_description(s).map_or(false, |o| o.is_some()) =>
|
||||
{
|
||||
Some(s.clone())
|
||||
}
|
||||
_ => None,
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
if !error_codes.is_empty() {
|
||||
|
|
|
@ -2417,13 +2417,14 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
let substs = InternalSubsts::for_item(tcx, def_id, |param, _| {
|
||||
if let Some(i) = (param.index as usize).checked_sub(generics.parent_count) {
|
||||
// Our own parameters are the resolved lifetimes.
|
||||
match param.kind {
|
||||
GenericParamDefKind::Lifetime
|
||||
if let hir::GenericArg::Lifetime(lifetime) = &lifetimes[i] =>
|
||||
{
|
||||
if let GenericParamDefKind::Lifetime = param.kind {
|
||||
if let hir::GenericArg::Lifetime(lifetime) = &lifetimes[i] {
|
||||
self.ast_region_to_region(lifetime, None).into()
|
||||
} else {
|
||||
bug!()
|
||||
}
|
||||
_ => bug!(),
|
||||
} else {
|
||||
bug!()
|
||||
}
|
||||
} else {
|
||||
match param.kind {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue