diff options
| author | ljedrz <ljedrz@gmail.com> | 2018-07-26 17:11:10 +0200 |
|---|---|---|
| committer | ljedrz <ljedrz@gmail.com> | 2018-07-29 18:53:22 +0200 |
| commit | 59c8a279daf6912b99ba089ff6dafbfc3469831e (patch) | |
| tree | ab821f37fca36aa9730bed95c0cad5fbf3e9eaa4 /src/librustc_codegen_llvm/debuginfo | |
| parent | a5c2d0fffaaf0b764c01bc4066e51ffd475ceae9 (diff) | |
| download | rust-59c8a279daf6912b99ba089ff6dafbfc3469831e.tar.gz rust-59c8a279daf6912b99ba089ff6dafbfc3469831e.zip | |
Replace push loops with collect() and extend() where possible
Diffstat (limited to 'src/librustc_codegen_llvm/debuginfo')
| -rw-r--r-- | src/librustc_codegen_llvm/debuginfo/metadata.rs | 23 | ||||
| -rw-r--r-- | src/librustc_codegen_llvm/debuginfo/mod.rs | 7 |
2 files changed, 15 insertions, 15 deletions
diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/src/librustc_codegen_llvm/debuginfo/metadata.rs index 6d727f7b048..2f4dd5a7ce5 100644 --- a/src/librustc_codegen_llvm/debuginfo/metadata.rs +++ b/src/librustc_codegen_llvm/debuginfo/metadata.rs @@ -39,6 +39,7 @@ use rustc::util::common::path2cstr; use libc::{c_uint, c_longlong}; use std::ffi::CString; use std::fmt::Write; +use std::iter; use std::ptr; use std::path::{Path, PathBuf}; use syntax::ast; @@ -364,18 +365,16 @@ fn subroutine_type_metadata<'a, 'tcx>(cx: &CodegenCx<'a, 'tcx>, &signature, ); - let mut signature_metadata: Vec<DIType> = Vec::with_capacity(signature.inputs().len() + 1); - - // return type - signature_metadata.push(match signature.output().sty { - ty::TyTuple(ref tys) if tys.is_empty() => ptr::null_mut(), - _ => type_metadata(cx, signature.output(), span) - }); - - // regular arguments - for &argument_type in signature.inputs() { - signature_metadata.push(type_metadata(cx, argument_type, span)); - } + let signature_metadata: Vec<DIType> = iter::once( + // return type + match signature.output().sty { + ty::TyTuple(ref tys) if tys.is_empty() => ptr::null_mut(), + _ => type_metadata(cx, signature.output(), span) + } + ).chain( + // regular arguments + signature.inputs().iter().map(|argument_type| type_metadata(cx, argument_type, span)) + ).collect(); return_if_metadata_created_in_meantime!(cx, unique_type_id); diff --git a/src/librustc_codegen_llvm/debuginfo/mod.rs b/src/librustc_codegen_llvm/debuginfo/mod.rs index 068dd9821ac..9671db75baf 100644 --- a/src/librustc_codegen_llvm/debuginfo/mod.rs +++ b/src/librustc_codegen_llvm/debuginfo/mod.rs @@ -352,9 +352,10 @@ pub fn create_function_debug_context<'a, 'tcx>(cx: &CodegenCx<'a, 'tcx>, if sig.abi == Abi::RustCall && !sig.inputs().is_empty() { if let ty::TyTuple(args) = sig.inputs()[sig.inputs().len() - 1].sty { - for &argument_type in args { - signature.push(type_metadata(cx, argument_type, syntax_pos::DUMMY_SP)); - } + signature.extend( + args.iter().map(|argument_type| + type_metadata(cx, argument_type, syntax_pos::DUMMY_SP)) + ); } } |
