Add basic pin sugar support to rustfmt
This commit is contained in:
parent
b490bf56b7
commit
3aabe1e4a3
@ -829,7 +829,6 @@ fn rewrite_result(&self, context: &RewriteContext<'_>, shape: Shape) -> RewriteR
|
|||||||
}
|
}
|
||||||
ast::TyKind::Ref(ref lifetime, ref mt)
|
ast::TyKind::Ref(ref lifetime, ref mt)
|
||||||
| ast::TyKind::PinnedRef(ref lifetime, ref mt) => {
|
| ast::TyKind::PinnedRef(ref lifetime, ref mt) => {
|
||||||
// FIXME(pin_ergonomics): correctly format pinned reference syntax
|
|
||||||
let mut_str = format_mutability(mt.mutbl);
|
let mut_str = format_mutability(mt.mutbl);
|
||||||
let mut_len = mut_str.len();
|
let mut_len = mut_str.len();
|
||||||
let mut result = String::with_capacity(128);
|
let mut result = String::with_capacity(128);
|
||||||
@ -863,6 +862,13 @@ fn rewrite_result(&self, context: &RewriteContext<'_>, shape: Shape) -> RewriteR
|
|||||||
cmnt_lo = lifetime.ident.span.hi();
|
cmnt_lo = lifetime.ident.span.hi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let ast::TyKind::PinnedRef(..) = self.kind {
|
||||||
|
result.push_str("pin ");
|
||||||
|
if ast::Mutability::Not == mt.mutbl {
|
||||||
|
result.push_str("const ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ast::Mutability::Mut == mt.mutbl {
|
if ast::Mutability::Mut == mt.mutbl {
|
||||||
let mut_hi = context.snippet_provider.span_after(self.span(), "mut");
|
let mut_hi = context.snippet_provider.span_after(self.span(), "mut");
|
||||||
let before_mut_span = mk_sp(cmnt_lo, mut_hi - BytePos::from_usize(3));
|
let before_mut_span = mk_sp(cmnt_lo, mut_hi - BytePos::from_usize(3));
|
||||||
|
10
src/tools/rustfmt/tests/source/pin_sugar.rs
Normal file
10
src/tools/rustfmt/tests/source/pin_sugar.rs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// See #130494
|
||||||
|
|
||||||
|
#![feature(pin_ergonomics)]
|
||||||
|
#![allow(incomplete_features)]
|
||||||
|
|
||||||
|
fn f(x: &pin const i32) {}
|
||||||
|
fn g<'a>(x: & 'a pin const i32) {}
|
||||||
|
fn h<'a>(x: & 'a pin
|
||||||
|
mut i32) {}
|
||||||
|
fn i(x: &pin mut i32) {}
|
9
src/tools/rustfmt/tests/target/pin_sugar.rs
Normal file
9
src/tools/rustfmt/tests/target/pin_sugar.rs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// See #130494
|
||||||
|
|
||||||
|
#![feature(pin_ergonomics)]
|
||||||
|
#![allow(incomplete_features)]
|
||||||
|
|
||||||
|
fn f(x: &pin const i32) {}
|
||||||
|
fn g<'a>(x: &'a pin const i32) {}
|
||||||
|
fn h<'a>(x: &'a pin mut i32) {}
|
||||||
|
fn i(x: &pin mut i32) {}
|
Loading…
Reference in New Issue
Block a user