Inline State::new_from_input in pprust
This function took too many arguments and are simple on the inside; inlining them makes complexity go down. hir::print's copy is unfortunately used from librustc_driver so inlining it is not as straightforward.
This commit is contained in:
parent
e0db2e606c
commit
e0ffa7c3d2
1 changed files with 6 additions and 18 deletions
|
@ -105,7 +105,12 @@ pub fn print_crate<'a>(cm: &'a SourceMap,
|
||||||
ann: &'a dyn PpAnn,
|
ann: &'a dyn PpAnn,
|
||||||
is_expanded: bool) -> String {
|
is_expanded: bool) -> String {
|
||||||
let mut out = String::new();
|
let mut out = String::new();
|
||||||
let mut s = State::new_from_input(cm, sess, filename, input, &mut out, ann, is_expanded);
|
let mut s = State {
|
||||||
|
s: pp::mk_printer(&mut out),
|
||||||
|
comments: Some(Comments::new(cm, sess, filename, input)),
|
||||||
|
ann,
|
||||||
|
is_expanded,
|
||||||
|
};
|
||||||
|
|
||||||
if is_expanded && std_inject::injected_crate_name().is_some() {
|
if is_expanded && std_inject::injected_crate_name().is_some() {
|
||||||
// We need to print `#![no_std]` (and its feature gate) so that
|
// We need to print `#![no_std]` (and its feature gate) so that
|
||||||
|
@ -132,23 +137,6 @@ pub fn print_crate<'a>(cm: &'a SourceMap,
|
||||||
out
|
out
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> State<'a> {
|
|
||||||
pub fn new_from_input(cm: &'a SourceMap,
|
|
||||||
sess: &ParseSess,
|
|
||||||
filename: FileName,
|
|
||||||
input: String,
|
|
||||||
out: &'a mut String,
|
|
||||||
ann: &'a dyn PpAnn,
|
|
||||||
is_expanded: bool) -> State<'a> {
|
|
||||||
State {
|
|
||||||
s: pp::mk_printer(out),
|
|
||||||
comments: Some(Comments::new(cm, sess, filename, input)),
|
|
||||||
ann,
|
|
||||||
is_expanded,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn to_string<F>(f: F) -> String where
|
pub fn to_string<F>(f: F) -> String where
|
||||||
F: FnOnce(&mut State<'_>),
|
F: FnOnce(&mut State<'_>),
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue