Resolved #56 -- mut
was eaten out of mut self
in fn args.
This commit is contained in:
parent
47b29abd92
commit
59554dd5e1
@ -164,7 +164,22 @@ fn rewrite_args(&self,
|
|||||||
arg_item_strs[0] = format!("self: {}", pprust::ty_to_string(ty));
|
arg_item_strs[0] = format!("self: {}", pprust::ty_to_string(ty));
|
||||||
}
|
}
|
||||||
ast::ExplicitSelf_::SelfValue(_) => {
|
ast::ExplicitSelf_::SelfValue(_) => {
|
||||||
arg_item_strs[0] = "self".to_owned();
|
assert!(args.len() >= 1, "&[ast::Arg] shouldn't be empty.");
|
||||||
|
|
||||||
|
// this hacky solution caused by absence of `Mutability` in `SelfValue`.
|
||||||
|
let mut_str = {
|
||||||
|
if let ast::Pat_::PatIdent(ast::BindingMode::BindByValue(mutability), _, _)
|
||||||
|
= args[0].pat.node {
|
||||||
|
match mutability {
|
||||||
|
ast::Mutability::MutMutable => "mut ",
|
||||||
|
ast::Mutability::MutImmutable => "",
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
panic!("there is a bug or change in structure of AST, aborting.");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
arg_item_strs[0] = format!("{}self", mut_str);
|
||||||
min_args = 2;
|
min_args = 2;
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
@ -39,6 +39,12 @@ fn with_no_errors<T, F>(&mut self, f: F) -> T
|
|||||||
where F: FnOnce(&mut Resolver) -> T
|
where F: FnOnce(&mut Resolver) -> T
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn foo(mut self, mut bar: u32) {
|
||||||
|
}
|
||||||
|
|
||||||
|
fn bar(self, mut bazz: u32) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn render<'a,
|
pub fn render<'a,
|
||||||
|
Loading…
Reference in New Issue
Block a user