Auto merge of #104629 - JohnTitor:rollup-vp3m98i, r=JohnTitor
Rollup of 6 pull requests Successful merges: - #103901 (Add tracking issue for `const_arguments_as_str`) - #104112 (rustdoc: Add copy to the description of repeat) - #104435 (`VecDeque::resize` should re-use the buffer in the passed-in element) - #104467 (Fix substraction with overflow in `wrong_number_of_generic_args.rs`) - #104608 (Cleanup macro matching recovery) - #104626 (Fix doctest errors related to rustc_middle) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
2ed65da152
19 changed files with 377 additions and 14 deletions
|
@ -495,7 +495,6 @@ fn try_match_macro<'matcher, T: Tracker<'matcher>>(
|
|||
// hacky, but speeds up the `html5ever` benchmark significantly. (Issue
|
||||
// 68836 suggests a more comprehensive but more complex change to deal with
|
||||
// this situation.)
|
||||
// FIXME(Nilstrieb): Stop recovery from happening on this parser and retry later with recovery if the macro failed to match.
|
||||
let parser = parser_from_cx(sess, arg.clone(), T::recovery());
|
||||
// Try each arm's matchers.
|
||||
let mut tt_parser = TtParser::new(name);
|
||||
|
|
|
@ -728,7 +728,8 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
|
|||
&& let Some(trait_path_segment) = path.segments.get(0) {
|
||||
let num_generic_args_supplied_to_trait = trait_path_segment.args().num_generic_params();
|
||||
|
||||
if num_assoc_fn_excess_args == num_trait_generics_except_self - num_generic_args_supplied_to_trait {
|
||||
if num_generic_args_supplied_to_trait + num_assoc_fn_excess_args == num_trait_generics_except_self
|
||||
{
|
||||
if let Some(span) = self.gen_args.span_ext()
|
||||
&& let Ok(snippet) = self.tcx.sess.source_map().span_to_snippet(span) {
|
||||
let sugg = vec![
|
||||
|
|
|
@ -4,7 +4,6 @@ version = "0.0.0"
|
|||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
bitflags = "1.2.1"
|
||||
|
|
|
@ -1648,6 +1648,8 @@ rustc_queries! {
|
|||
/// a generic type parameter will panic if you call this method on it:
|
||||
///
|
||||
/// ```
|
||||
/// use std::fmt::Debug;
|
||||
///
|
||||
/// pub trait Foo<T: Debug> {}
|
||||
/// ```
|
||||
///
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//!
|
||||
//! # Example
|
||||
//! ```rust
|
||||
//! enum Void {}
|
||||
//! #![feature(never_type)]
|
||||
//! mod a {
|
||||
//! pub mod b {
|
||||
//! pub struct SecretlyUninhabited {
|
||||
|
@ -15,6 +15,7 @@
|
|||
//! }
|
||||
//!
|
||||
//! mod c {
|
||||
//! enum Void {}
|
||||
//! pub struct AlsoSecretlyUninhabited {
|
||||
//! _priv: Void,
|
||||
//! }
|
||||
|
@ -35,7 +36,7 @@
|
|||
//! `Foo`.
|
||||
//!
|
||||
//! # Example
|
||||
//! ```rust
|
||||
//! ```ignore(illustrative)
|
||||
//! let foo_result: Result<T, Foo> = ... ;
|
||||
//! let Ok(t) = foo_result;
|
||||
//! ```
|
||||
|
|
|
@ -2078,12 +2078,7 @@ impl<'a> Parser<'a> {
|
|||
|
||||
if self.token.kind == TokenKind::Semi
|
||||
&& matches!(self.token_cursor.frame.delim_sp, Some((Delimiter::Parenthesis, _)))
|
||||
// HACK: This is needed so we can detect whether we're inside a macro,
|
||||
// where regular assumptions about what tokens can follow other tokens
|
||||
// don't necessarily apply.
|
||||
&& self.may_recover()
|
||||
// FIXME(Nilstrieb): Remove this check once `may_recover` actually stops recovery
|
||||
&& self.subparser_name.is_none()
|
||||
{
|
||||
// It is likely that the closure body is a block but where the
|
||||
// braces have been removed. We will recover and eat the next
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue