Skip to content

Commit ab19e58

Browse files
committed
Use try blocks in rustc_codegen_ssa
1 parent 2a8f6a7 commit ab19e58

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

src/librustc_codegen_ssa/back/linker.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -382,29 +382,27 @@ impl<'a> Linker for GccLinker<'a> {
382382

383383
if self.sess.target.target.options.is_like_osx {
384384
// Write a plain, newline-separated list of symbols
385-
let res = (|| -> io::Result<()> {
385+
let res: io::Result<()> = try {
386386
let mut f = BufWriter::new(File::create(&path)?);
387387
for sym in self.info.exports[&crate_type].iter() {
388388
debug!(" _{}", sym);
389389
writeln!(f, "_{}", sym)?;
390390
}
391-
Ok(())
392-
})();
391+
};
393392
if let Err(e) = res {
394393
self.sess.fatal(&format!("failed to write lib.def file: {}", e));
395394
}
396395
} else {
397396
// Write an LD version script
398-
let res = (|| -> io::Result<()> {
397+
let res: io::Result<()> = try {
399398
let mut f = BufWriter::new(File::create(&path)?);
400399
writeln!(f, "{{\n global:")?;
401400
for sym in self.info.exports[&crate_type].iter() {
402401
debug!(" {};", sym);
403402
writeln!(f, " {};", sym)?;
404403
}
405404
writeln!(f, "\n local:\n *;\n}};")?;
406-
Ok(())
407-
})();
405+
};
408406
if let Err(e) = res {
409407
self.sess.fatal(&format!("failed to write version script: {}", e));
410408
}
@@ -644,7 +642,7 @@ impl<'a> Linker for MsvcLinker<'a> {
644642
tmpdir: &Path,
645643
crate_type: CrateType) {
646644
let path = tmpdir.join("lib.def");
647-
let res = (|| -> io::Result<()> {
645+
let res: io::Result<()> = try {
648646
let mut f = BufWriter::new(File::create(&path)?);
649647

650648
// Start off with the standard module name header and then go
@@ -655,8 +653,7 @@ impl<'a> Linker for MsvcLinker<'a> {
655653
debug!(" _{}", symbol);
656654
writeln!(f, " {}", symbol)?;
657655
}
658-
Ok(())
659-
})();
656+
};
660657
if let Err(e) = res {
661658
self.sess.fatal(&format!("failed to write lib.def file: {}", e));
662659
}

src/librustc_codegen_ssa/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#![feature(libc)]
88
#![feature(rustc_diagnostic_macros)]
99
#![feature(stmt_expr_attributes)]
10+
#![feature(try_blocks)]
1011
#![feature(in_band_lifetimes)]
1112
#![feature(nll)]
1213
#![allow(unused_attributes)]

0 commit comments

Comments
 (0)