mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 17:03:35 +00:00
Rollup merge of #119169 - fmease:pretty-yeet-syntactic-cruft, r=compiler-errors
Rid the AST & HIR pretty printer of cruft Found while working on #119163. For `trait Trait: ?Sized {}` (semantically malformed), we currently output `trait Trait for ? Sized {}` (sic!) / `trait Trait for ? Sized { }` (sic!) if `-Zunpretty=expanded` / `-Zunpretty=hir` is passed. `trait Tr for Sized? {}` (#15521) and later also `trait Tr for ?Sized {}` (I guess, #20194) is former Rust syntax. Hence I'm removing these outdated branches. ~~This will conflict with #119163, therefore marking this PR as blocked.~~ Rebased
This commit is contained in:
commit
15dc9f5bee
@ -5,7 +5,6 @@ use crate::pprust::state::{AnnNode, PrintState, State, INDENT_UNIT};
|
||||
use ast::StaticItem;
|
||||
use itertools::{Itertools, Position};
|
||||
use rustc_ast as ast;
|
||||
use rustc_ast::GenericBound;
|
||||
use rustc_ast::ModKind;
|
||||
use rustc_span::symbol::Ident;
|
||||
|
||||
@ -338,21 +337,9 @@ impl<'a> State<'a> {
|
||||
self.word_nbsp("trait");
|
||||
self.print_ident(item.ident);
|
||||
self.print_generic_params(&generics.params);
|
||||
let mut real_bounds = Vec::with_capacity(bounds.len());
|
||||
for bound in bounds.iter() {
|
||||
if let GenericBound::Trait(ptr, modifiers) = bound
|
||||
&& let ast::BoundPolarity::Maybe(_) = modifiers.polarity
|
||||
{
|
||||
self.space();
|
||||
self.word_space("for ?");
|
||||
self.print_trait_ref(&ptr.trait_ref);
|
||||
} else {
|
||||
real_bounds.push(bound.clone());
|
||||
}
|
||||
}
|
||||
if !real_bounds.is_empty() {
|
||||
if !bounds.is_empty() {
|
||||
self.word_nbsp(":");
|
||||
self.print_type_bounds(&real_bounds);
|
||||
self.print_type_bounds(bounds);
|
||||
}
|
||||
self.print_where_clause(&generics.where_clause);
|
||||
self.word(" ");
|
||||
|
@ -553,17 +553,7 @@ impl<'a> State<'a> {
|
||||
}
|
||||
hir::ItemKind::OpaqueTy(opaque_ty) => {
|
||||
self.print_item_type(item, opaque_ty.generics, |state| {
|
||||
let mut real_bounds = Vec::with_capacity(opaque_ty.bounds.len());
|
||||
for b in opaque_ty.bounds {
|
||||
if let GenericBound::Trait(ptr, hir::TraitBoundModifier::Maybe) = b {
|
||||
state.space();
|
||||
state.word_space("for ?");
|
||||
state.print_trait_ref(&ptr.trait_ref);
|
||||
} else {
|
||||
real_bounds.push(b);
|
||||
}
|
||||
}
|
||||
state.print_bounds("= impl", real_bounds);
|
||||
state.print_bounds("= impl", opaque_ty.bounds)
|
||||
});
|
||||
}
|
||||
hir::ItemKind::Enum(ref enum_definition, params) => {
|
||||
@ -625,17 +615,7 @@ impl<'a> State<'a> {
|
||||
self.word_nbsp("trait");
|
||||
self.print_ident(item.ident);
|
||||
self.print_generic_params(generics.params);
|
||||
let mut real_bounds = Vec::with_capacity(bounds.len());
|
||||
for b in bounds {
|
||||
if let GenericBound::Trait(ptr, hir::TraitBoundModifier::Maybe) = b {
|
||||
self.space();
|
||||
self.word_space("for ?");
|
||||
self.print_trait_ref(&ptr.trait_ref);
|
||||
} else {
|
||||
real_bounds.push(b);
|
||||
}
|
||||
}
|
||||
self.print_bounds(":", real_bounds);
|
||||
self.print_bounds(":", bounds);
|
||||
self.print_where_clause(generics);
|
||||
self.word(" ");
|
||||
self.bopen();
|
||||
|
Loading…
Reference in New Issue
Block a user