Move return type an associated type of the Fn* traits. Mostly this involves tweaking things in

the compiler that assumed two input types to assume two ouputs; we also have to teach `project.rs`
to project `Output` from the unboxed closure and fn traits.
This commit is contained in:
Niko Matsakis
2015-01-10 11:54:15 -05:00
parent c61d7889b4
commit 07cdb85331
12 changed files with 359 additions and 134 deletions

View File

@@ -1796,6 +1796,8 @@ impl<'a> Parser<'a> {
bindings: OwnedSlice::from_vec(bindings),
})
} else if self.eat(&token::OpenDelim(token::Paren)) {
let lo = self.last_span.lo;
let inputs = self.parse_seq_to_end(
&token::CloseDelim(token::Paren),
seq_sep_trailing_allowed(token::Comma),
@@ -1807,9 +1809,12 @@ impl<'a> Parser<'a> {
None
};
let hi = self.last_span.hi;
ast::ParenthesizedParameters(ast::ParenthesizedParameterData {
span: mk_sp(lo, hi),
inputs: inputs,
output: output_ty
output: output_ty,
})
} else {
ast::PathParameters::none()