[clippy] Pass more types by value;

wasmparser::Type is an enum, and there was one Location I missed.
This commit is contained in:
Benjamin Bouvier
2018-07-10 15:41:59 +02:00
committed by Dan Gohman
parent bea843519c
commit 25508ac66e
4 changed files with 14 additions and 14 deletions

View File

@@ -197,7 +197,7 @@ impl<'a> Context<'a> {
} }
// Resolve a reference to a signature. // Resolve a reference to a signature.
fn check_sig(&self, sig: SigRef, loc: &Location) -> ParseResult<()> { fn check_sig(&self, sig: SigRef, loc: Location) -> ParseResult<()> {
if !self.map.contains_sig(sig) { if !self.map.contains_sig(sig) {
err!(loc, "undefined signature {}", sig) err!(loc, "undefined signature {}", sig)
} else { } else {
@@ -1246,7 +1246,7 @@ impl<'a> Parser<'a> {
} }
Some(sig) => sig, Some(sig) => sig,
}; };
ctx.check_sig(sig, &self.loc)?; ctx.check_sig(sig, self.loc)?;
self.consume(); self.consume();
ExtFuncData { ExtFuncData {
name, name,
@@ -2096,7 +2096,7 @@ impl<'a> Parser<'a> {
} }
InstructionFormat::CallIndirect => { InstructionFormat::CallIndirect => {
let sig_ref = self.match_sig("expected signature reference")?; let sig_ref = self.match_sig("expected signature reference")?;
ctx.check_sig(sig_ref, &self.loc)?; ctx.check_sig(sig_ref, self.loc)?;
self.match_token(Token::Comma, "expected ',' between operands")?; self.match_token(Token::Comma, "expected ',' between operands")?;
let callee = self.match_value("expected SSA value callee operand")?; let callee = self.match_value("expected SSA value callee operand")?;
self.match_token(Token::LPar, "expected '(' before arguments")?; self.match_token(Token::LPar, "expected '(' before arguments")?;

View File

@@ -129,7 +129,7 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
***********************************************************************************/ ***********************************************************************************/
Operator::Block { ty } => { Operator::Block { ty } => {
let next = builder.create_ebb(); let next = builder.create_ebb();
if let Ok(ty_cre) = type_to_type(&ty) { if let Ok(ty_cre) = type_to_type(ty) {
builder.append_ebb_param(next, ty_cre); builder.append_ebb_param(next, ty_cre);
} }
state.push_block(next, num_return_values(ty)); state.push_block(next, num_return_values(ty));
@@ -137,7 +137,7 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
Operator::Loop { ty } => { Operator::Loop { ty } => {
let loop_body = builder.create_ebb(); let loop_body = builder.create_ebb();
let next = builder.create_ebb(); let next = builder.create_ebb();
if let Ok(ty_cre) = type_to_type(&ty) { if let Ok(ty_cre) = type_to_type(ty) {
builder.append_ebb_param(next, ty_cre); builder.append_ebb_param(next, ty_cre);
} }
builder.ins().jump(loop_body, &[]); builder.ins().jump(loop_body, &[]);
@@ -155,7 +155,7 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
// and we add nothing; // and we add nothing;
// - either the If have an Else clause, in that case the destination of this jump // - either the If have an Else clause, in that case the destination of this jump
// instruction will be changed later when we translate the Else operator. // instruction will be changed later when we translate the Else operator.
if let Ok(ty_cre) = type_to_type(&ty) { if let Ok(ty_cre) = type_to_type(ty) {
builder.append_ebb_param(if_not, ty_cre); builder.append_ebb_param(if_not, ty_cre);
} }
state.push_if(jump_inst, if_not, num_return_values(ty)); state.push_if(jump_inst, if_not, num_return_values(ty));

View File

@@ -36,12 +36,12 @@ pub fn parse_function_signatures(
}) => { }) => {
let mut sig = Signature::new(environ.flags().call_conv()); let mut sig = Signature::new(environ.flags().call_conv());
sig.params.extend(params.iter().map(|ty| { sig.params.extend(params.iter().map(|ty| {
let cret_arg: ir::Type = type_to_type(ty) let cret_arg: ir::Type = type_to_type(*ty)
.expect("only numeric types are supported in function signatures"); .expect("only numeric types are supported in function signatures");
AbiParam::new(cret_arg) AbiParam::new(cret_arg)
})); }));
sig.returns.extend(returns.iter().map(|ty| { sig.returns.extend(returns.iter().map(|ty| {
let cret_arg: ir::Type = type_to_type(ty) let cret_arg: ir::Type = type_to_type(*ty)
.expect("only numeric types are supported in function signatures"); .expect("only numeric types are supported in function signatures");
AbiParam::new(cret_arg) AbiParam::new(cret_arg)
})); }));
@@ -92,7 +92,7 @@ pub fn parse_import_section<'data>(
.. ..
} => { } => {
environ.declare_global(Global { environ.declare_global(Global {
ty: type_to_type(&ty.content_type).unwrap(), ty: type_to_type(ty.content_type).unwrap(),
mutability: ty.mutable, mutability: ty.mutable,
initializer: GlobalInit::Import(), initializer: GlobalInit::Import(),
}); });
@@ -101,7 +101,7 @@ pub fn parse_import_section<'data>(
ty: ImportSectionEntryType::Table(ref tab), ty: ImportSectionEntryType::Table(ref tab),
.. ..
} => environ.declare_table(Table { } => environ.declare_table(Table {
ty: match type_to_type(&tab.element_type) { ty: match type_to_type(tab.element_type) {
Ok(t) => TableElementType::Val(t), Ok(t) => TableElementType::Val(t),
Err(()) => TableElementType::Func(), Err(()) => TableElementType::Func(),
}, },
@@ -245,7 +245,7 @@ pub fn parse_global_section(
ref s => panic!("unexpected section content: {:?}", s), ref s => panic!("unexpected section content: {:?}", s),
} }
let global = Global { let global = Global {
ty: type_to_type(&content_type).unwrap(), ty: type_to_type(content_type).unwrap(),
mutability, mutability,
initializer, initializer,
}; };
@@ -329,7 +329,7 @@ pub fn parse_table_section(parser: &mut Parser, environ: &mut ModuleEnvironment)
loop { loop {
match *parser.read() { match *parser.read() {
ParserState::TableSectionEntry(ref table) => environ.declare_table(Table { ParserState::TableSectionEntry(ref table) => environ.declare_table(Table {
ty: match type_to_type(&table.element_type) { ty: match type_to_type(table.element_type) {
Ok(t) => TableElementType::Val(t), Ok(t) => TableElementType::Val(t),
Err(()) => TableElementType::Func(), Err(()) => TableElementType::Func(),
}, },

View File

@@ -72,8 +72,8 @@ pub struct Memory {
} }
/// Helper function translating wasmparser types to Cretonne types when possible. /// Helper function translating wasmparser types to Cretonne types when possible.
pub fn type_to_type(ty: &wasmparser::Type) -> Result<ir::Type, ()> { pub fn type_to_type(ty: wasmparser::Type) -> Result<ir::Type, ()> {
match *ty { match ty {
wasmparser::Type::I32 => Ok(ir::types::I32), wasmparser::Type::I32 => Ok(ir::types::I32),
wasmparser::Type::I64 => Ok(ir::types::I64), wasmparser::Type::I64 => Ok(ir::types::I64),
wasmparser::Type::F32 => Ok(ir::types::F32), wasmparser::Type::F32 => Ok(ir::types::F32),