Skip to content

Commit

Permalink
librustc_resolve: make sure pattern def gets recorded if `resolve_pat…
Browse files Browse the repository at this point in the history
…h` returns `Err(true)`

In 1a374b8, (pr #33046) fixed the error reporting of a specific
case, but the change that was introduced did not make sure that
`record_def` was called in all cases, which lead to an ICE in [1].
This change restores the original `else` case, but keeps the changes
that were committed in 1a374b8.

This commit fixes issue #33293.

[1] `rustc::middle::mem_categorization::MemCategorizationContext::cat_pattern_`
  • Loading branch information
dsprenkels committed May 30, 2016
1 parent 8f3e8c7 commit cde0f94
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions src/librustc_resolve/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2422,13 +2422,16 @@ impl<'a> Resolver<'a> {
}
}
}
} else if let Err(false) = self.resolve_path(pat_id, &path, 0, ValueNS) {
resolve_error(
self,
path.span,
ResolutionError::UnresolvedEnumVariantStructOrConst(
&path.segments.last().unwrap().identifier.name.as_str())
);
} else {
if let Err(false) = self.resolve_path(pat_id, &path, 0, ValueNS) {
// No error has been reported, so we need to do this ourselves.
resolve_error(
self,
path.span,
ResolutionError::UnresolvedEnumVariantStructOrConst(
&path.segments.last().unwrap().identifier.name.as_str())
);
}
self.record_def(pattern.id, err_path_resolution());
}
visit::walk_path(self, path);
Expand Down

0 comments on commit cde0f94

Please sign in to comment.