about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2019-07-05 17:48:21 -0400
committerMark Rousskov <mark.simulacrum@gmail.com>2019-07-10 07:12:28 -0400
commite0db2e606cdb242db1466ae51129c9a6b81560fe (patch)
tree79e113bb20975e3ebf23bc076edd959e69122351
parent7e3791469fce12a95d5d85b9a8744a61a0970fe1 (diff)
downloadrust-e0db2e606cdb242db1466ae51129c9a6b81560fe.tar.gz
rust-e0db2e606cdb242db1466ae51129c9a6b81560fe.zip
print_crate returns String instead of taking an out pointer
-rw-r--r--src/librustc/hir/print.rs10
-rw-r--r--src/librustc_driver/pretty.rs9
-rw-r--r--src/libsyntax/print/pprust.rs9
3 files changed, 13 insertions, 15 deletions
diff --git a/src/librustc/hir/print.rs b/src/librustc/hir/print.rs
index fc3430566a0..01cdd8a6f22 100644
--- a/src/librustc/hir/print.rs
+++ b/src/librustc/hir/print.rs
@@ -93,17 +93,17 @@ pub fn print_crate<'a>(cm: &'a SourceMap,
                        krate: &hir::Crate,
                        filename: FileName,
                        input: String,
-                       out: &'a mut String,
-                       ann: &'a dyn PpAnn)
-                       {
-    let mut s = State::new_from_input(cm, sess, filename, input, out, ann);
+                       ann: &'a dyn PpAnn) -> String {
+    let mut out = String::new();
+    let mut s = State::new_from_input(cm, sess, filename, input, &mut out, ann);
 
     // When printing the AST, we sometimes need to inject `#[no_std]` here.
     // Since you can't compile the HIR, it's not necessary.
 
     s.print_mod(&krate.module, &krate.attrs);
     s.print_remaining_comments();
-    s.s.eof()
+    s.s.eof();
+    out
 }
 
 impl<'a> State<'a> {
diff --git a/src/librustc_driver/pretty.rs b/src/librustc_driver/pretty.rs
index df8dc3871b7..3e6d843ffbe 100644
--- a/src/librustc_driver/pretty.rs
+++ b/src/librustc_driver/pretty.rs
@@ -725,12 +725,11 @@ pub fn print_after_parsing(sess: &Session,
         s.call_with_pp_support(sess, None, move |annotation| {
             debug!("pretty printing source code {:?}", s);
             let sess = annotation.sess();
-            pprust::print_crate(sess.source_map(),
+            *out = pprust::print_crate(sess.source_map(),
                                 &sess.parse_sess,
                                 krate,
                                 src_name,
                                 src,
-                                out,
                                 annotation.pp_ann(),
                                 false)
         })
@@ -771,12 +770,11 @@ pub fn print_after_hir_lowering<'tcx>(
                 s.call_with_pp_support(tcx.sess, Some(tcx), move |annotation| {
                     debug!("pretty printing source code {:?}", s);
                     let sess = annotation.sess();
-                    pprust::print_crate(sess.source_map(),
+                    *out = pprust::print_crate(sess.source_map(),
                                         &sess.parse_sess,
                                         krate,
                                         src_name,
                                         src,
-                                        out,
                                         annotation.pp_ann(),
                                         true)
                 })
@@ -788,12 +786,11 @@ pub fn print_after_hir_lowering<'tcx>(
                 s.call_with_pp_support_hir(tcx, move |annotation, krate| {
                     debug!("pretty printing source code {:?}", s);
                     let sess = annotation.sess();
-                    pprust_hir::print_crate(sess.source_map(),
+                    *out = pprust_hir::print_crate(sess.source_map(),
                                             &sess.parse_sess,
                                             krate,
                                             src_name,
                                             src,
-                                            out,
                                             annotation.pp_ann())
                 })
             }
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index a6680ee02b5..555276234f7 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -102,10 +102,10 @@ pub fn print_crate<'a>(cm: &'a SourceMap,
                        krate: &ast::Crate,
                        filename: FileName,
                        input: String,
-                       out: &mut String,
                        ann: &'a dyn PpAnn,
-                       is_expanded: bool) {
-    let mut s = State::new_from_input(cm, sess, filename, input, out, ann, is_expanded);
+                       is_expanded: bool) -> String {
+    let mut out = String::new();
+    let mut s = State::new_from_input(cm, sess, filename, input, &mut out, ann, is_expanded);
 
     if is_expanded && std_inject::injected_crate_name().is_some() {
         // We need to print `#![no_std]` (and its feature gate) so that
@@ -128,7 +128,8 @@ pub fn print_crate<'a>(cm: &'a SourceMap,
 
     s.print_mod(&krate.module, &krate.attrs);
     s.print_remaining_comments();
-    s.s.eof()
+    s.s.eof();
+    out
 }
 
 impl<'a> State<'a> {