diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-02-10 17:29:03 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-10 17:29:03 +0100 |
| commit | 119bc976db5549f17258a55bb9684eae0fa98b65 (patch) | |
| tree | c86a4ca7da09a17b2eaafb29547bcd7c938fb59d /src/librustc_parse/parser | |
| parent | db08784964012fc998b33f4104daf05a121383e0 (diff) | |
| parent | 371060b5988158fdaa3b7abd6167a28d95d74b38 (diff) | |
| download | rust-119bc976db5549f17258a55bb9684eae0fa98b65.tar.gz rust-119bc976db5549f17258a55bb9684eae0fa98b65.zip | |
Rollup merge of #69014 - dwrensha:fix-68890, r=Centril
change an instance of span_bug() to struct_span_err() to avoid ICE After #67148, the `span_bug()` in `parse_ty_tuple_or_parens()` is reachable because `parse_paren_comma_seq()` can return an `Ok()` even in cases where it encounters an error. This pull request prevents an ICE in such cases by replacing the `span_bug()` with `struct_span_error()`. Fixes #68890.
Diffstat (limited to 'src/librustc_parse/parser')
| -rw-r--r-- | src/librustc_parse/parser/ty.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/librustc_parse/parser/ty.rs b/src/librustc_parse/parser/ty.rs index 990661bf6b5..a573a1ee699 100644 --- a/src/librustc_parse/parser/ty.rs +++ b/src/librustc_parse/parser/ty.rs @@ -214,7 +214,10 @@ impl<'a> Parser<'a> { let path = match bounds.remove(0) { GenericBound::Trait(pt, ..) => pt.trait_ref.path, GenericBound::Outlives(..) => { - self.span_bug(ty.span, "unexpected lifetime bound") + return Err(self.struct_span_err( + ty.span, + "expected trait bound, not lifetime bound", + )); } }; self.parse_remaining_bounds(Vec::new(), path, lo, true) |
