Add the dyn keyword before trait objects;

This commit is contained in:
Benjamin Bouvier
2019-06-06 10:11:41 +02:00
parent eee824b6bd
commit d7d48d5cc6
77 changed files with 274 additions and 247 deletions

View File

@@ -22,9 +22,9 @@ pub trait FuncWriter {
/// Write the extended basic block header for the current function.
fn write_ebb_header(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
isa: Option<&TargetIsa>,
isa: Option<&dyn TargetIsa>,
ebb: Ebb,
indent: usize,
) -> fmt::Result;
@@ -32,10 +32,10 @@ pub trait FuncWriter {
/// Write the given `inst` to `w`.
fn write_instruction(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
aliases: &SecondaryMap<Value, Vec<Value>>,
isa: Option<&TargetIsa>,
isa: Option<&dyn TargetIsa>,
inst: Inst,
indent: usize,
) -> fmt::Result;
@@ -43,7 +43,7 @@ pub trait FuncWriter {
/// Write the preamble to `w`. By default, this uses `write_entity_definition`.
fn write_preamble(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
regs: Option<&RegInfo>,
) -> Result<bool, fmt::Error> {
@@ -53,7 +53,7 @@ pub trait FuncWriter {
/// Default impl of `write_preamble`
fn super_preamble(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
regs: Option<&RegInfo>,
) -> Result<bool, fmt::Error> {
@@ -108,10 +108,10 @@ pub trait FuncWriter {
/// Write an entity definition defined in the preamble to `w`.
fn write_entity_definition(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
entity: AnyEntity,
value: &fmt::Display,
value: &dyn fmt::Display,
) -> fmt::Result {
self.super_entity_definition(w, func, entity, value)
}
@@ -120,10 +120,10 @@ pub trait FuncWriter {
#[allow(unused_variables)]
fn super_entity_definition(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
entity: AnyEntity,
value: &fmt::Display,
value: &dyn fmt::Display,
) -> fmt::Result {
writeln!(w, " {} = {}", entity, value)
}
@@ -135,10 +135,10 @@ pub struct PlainWriter;
impl FuncWriter for PlainWriter {
fn write_instruction(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
aliases: &SecondaryMap<Value, Vec<Value>>,
isa: Option<&TargetIsa>,
isa: Option<&dyn TargetIsa>,
inst: Inst,
indent: usize,
) -> fmt::Result {
@@ -147,9 +147,9 @@ impl FuncWriter for PlainWriter {
fn write_ebb_header(
&mut self,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
isa: Option<&TargetIsa>,
isa: Option<&dyn TargetIsa>,
ebb: Ebb,
indent: usize,
) -> fmt::Result {
@@ -160,7 +160,7 @@ impl FuncWriter for PlainWriter {
/// Write `func` to `w` as equivalent text.
/// Use `isa` to emit ISA-dependent annotations.
pub fn write_function(
w: &mut Write,
w: &mut dyn Write,
func: &Function,
annotations: &DisplayFunctionAnnotations,
) -> fmt::Result {
@@ -184,7 +184,7 @@ fn alias_map(func: &Function) -> SecondaryMap<Value, Vec<Value>> {
/// pretty_function_error is passed as 'closure' to add error decoration.
pub fn decorate_function<FW: FuncWriter>(
func_w: &mut FW,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
annotations: &DisplayFunctionAnnotations,
) -> fmt::Result {
@@ -210,7 +210,7 @@ pub fn decorate_function<FW: FuncWriter>(
//
// Function spec.
fn write_spec(w: &mut Write, func: &Function, regs: Option<&RegInfo>) -> fmt::Result {
fn write_spec(w: &mut dyn Write, func: &Function, regs: Option<&RegInfo>) -> fmt::Result {
write!(w, "{}{}", func.name, func.signature.display(regs))
}
@@ -218,7 +218,12 @@ fn write_spec(w: &mut Write, func: &Function, regs: Option<&RegInfo>) -> fmt::Re
//
// Basic blocks
fn write_arg(w: &mut Write, func: &Function, regs: Option<&RegInfo>, arg: Value) -> fmt::Result {
fn write_arg(
w: &mut dyn Write,
func: &Function,
regs: Option<&RegInfo>,
arg: Value,
) -> fmt::Result {
write!(w, "{}: {}", arg, func.dfg.value_type(arg))?;
let loc = func.locations[arg];
if loc.is_assigned() {
@@ -235,9 +240,9 @@ fn write_arg(w: &mut Write, func: &Function, regs: Option<&RegInfo>, arg: Value)
/// ebb10(v4: f64, v5: b1):
///
pub fn write_ebb_header(
w: &mut Write,
w: &mut dyn Write,
func: &Function,
isa: Option<&TargetIsa>,
isa: Option<&dyn TargetIsa>,
ebb: Ebb,
indent: usize,
) -> fmt::Result {
@@ -263,7 +268,7 @@ pub fn write_ebb_header(
writeln!(w, "):")
}
fn write_valueloc(w: &mut Write, loc: &ValueLoc, regs: &RegInfo) -> fmt::Result {
fn write_valueloc(w: &mut dyn Write, loc: &ValueLoc, regs: &RegInfo) -> fmt::Result {
match loc {
ValueLoc::Reg(r) => write!(w, "{}", regs.display_regunit(*r)),
ValueLoc::Stack(ss) => write!(w, "{}", ss),
@@ -272,7 +277,7 @@ fn write_valueloc(w: &mut Write, loc: &ValueLoc, regs: &RegInfo) -> fmt::Result
}
fn write_value_range_markers(
w: &mut Write,
w: &mut dyn Write,
val_ranges: &ValueLabelsRanges,
regs: &RegInfo,
offset: u32,
@@ -306,7 +311,7 @@ fn write_value_range_markers(
fn decorate_ebb<FW: FuncWriter>(
func_w: &mut FW,
w: &mut Write,
w: &mut dyn Write,
func: &Function,
aliases: &SecondaryMap<Value, Vec<Value>>,
annotations: &DisplayFunctionAnnotations,
@@ -385,7 +390,7 @@ fn type_suffix(func: &Function, inst: Inst) -> Option<Type> {
/// Write out any aliases to the given target, including indirect aliases
fn write_value_aliases(
w: &mut Write,
w: &mut dyn Write,
aliases: &SecondaryMap<Value, Vec<Value>>,
target: Value,
indent: usize,
@@ -402,10 +407,10 @@ fn write_value_aliases(
}
fn write_instruction(
w: &mut Write,
w: &mut dyn Write,
func: &Function,
aliases: &SecondaryMap<Value, Vec<Value>>,
isa: Option<&TargetIsa>,
isa: Option<&dyn TargetIsa>,
inst: Inst,
indent: usize,
) -> fmt::Result {
@@ -472,9 +477,9 @@ fn write_instruction(
/// Write the operands of `inst` to `w` with a prepended space.
pub fn write_operands(
w: &mut Write,
w: &mut dyn Write,
dfg: &DataFlowGraph,
isa: Option<&TargetIsa>,
isa: Option<&dyn TargetIsa>,
inst: Inst,
) -> fmt::Result {
let pool = &dfg.value_lists;
@@ -687,7 +692,7 @@ pub fn write_operands(
}
/// Write EBB args using optional parantheses.
fn write_ebb_args(w: &mut Write, args: &[Value]) -> fmt::Result {
fn write_ebb_args(w: &mut dyn Write, args: &[Value]) -> fmt::Result {
if args.is_empty() {
Ok(())
} else {