diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-03-09 17:18:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-09 17:18:11 +0100 |
| commit | 19f969a465e15abc2f5f271b234405c6a85c471f (patch) | |
| tree | 29c173eb462eaac7fb4d8f759be82fc2a8b4a1b5 /src/librustc_codegen_ssa | |
| parent | e1b8898cfb0392f534cc25808a7f6caad36ebbb7 (diff) | |
| parent | 5c0615b89c399ce6a431ba660f9457c24bc69964 (diff) | |
| download | rust-19f969a465e15abc2f5f271b234405c6a85c471f.tar.gz rust-19f969a465e15abc2f5f271b234405c6a85c471f.zip | |
Rollup merge of #58518 - oli-obk:unreachable_result_errors, r=RalfJung
Use early unwraps instead of bubbling up errors just to unwrap in the end r? @RalfJung
Diffstat (limited to 'src/librustc_codegen_ssa')
| -rw-r--r-- | src/librustc_codegen_ssa/mir/constant.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/librustc_codegen_ssa/mir/constant.rs b/src/librustc_codegen_ssa/mir/constant.rs index 6bc69efa4a7..349c9132842 100644 --- a/src/librustc_codegen_ssa/mir/constant.rs +++ b/src/librustc_codegen_ssa/mir/constant.rs @@ -49,36 +49,36 @@ impl<'a, 'tcx: 'a, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { constant: Result<ty::Const<'tcx>, ErrorHandled>, ) -> (Bx::Value, Ty<'tcx>) { constant - .and_then(|c| { + .map(|c| { let field_ty = c.ty.builtin_index().unwrap(); let fields = match c.ty.sty { ty::Array(_, n) => n.unwrap_usize(bx.tcx()), ref other => bug!("invalid simd shuffle type: {}", other), }; - let values: Result<Vec<_>, ErrorHandled> = (0..fields).map(|field| { + let values: Vec<_> = (0..fields).map(|field| { let field = const_field( bx.tcx(), ty::ParamEnv::reveal_all(), None, mir::Field::new(field as usize), c, - )?; + ); if let Some(prim) = field.val.try_to_scalar() { let layout = bx.layout_of(field_ty); let scalar = match layout.abi { layout::Abi::Scalar(ref x) => x, _ => bug!("from_const: invalid ByVal layout: {:#?}", layout) }; - Ok(bx.scalar_to_backend( + bx.scalar_to_backend( prim, scalar, bx.immediate_backend_type(layout), - )) + ) } else { bug!("simd shuffle field {:?}", field) } }).collect(); - let llval = bx.const_struct(&values?, false); - Ok((llval, c.ty)) + let llval = bx.const_struct(&values, false); + (llval, c.ty) }) .unwrap_or_else(|_| { bx.tcx().sess.span_err( |
