Rustup to *rustc 1.15.0-nightly (3bf2be9ce 2016-11-22)*

This commit is contained in:
mcarton
2016-11-23 22:44:00 +01:00
parent 0b7de0d01f
commit c7e3cc1e27
13 changed files with 36 additions and 62 deletions

View File

@@ -292,14 +292,14 @@ pub fn resolve_node(cx: &LateContext, id: NodeId) -> Option<def::Def> {
/// For example, if `expr` represents the `.baz()` in `foo.bar().baz()`,
/// `matched_method_chain(expr, &["bar", "baz"])` will return a `Vec` containing the `Expr`s for
/// `.bar()` and `.baz()`
pub fn method_chain_args<'a>(expr: &'a Expr, methods: &[&str]) -> Option<Vec<&'a MethodArgs>> {
pub fn method_chain_args<'a>(expr: &'a Expr, methods: &[&str]) -> Option<Vec<&'a [Expr]>> {
let mut current = expr;
let mut matched = Vec::with_capacity(methods.len());
for method_name in methods.iter().rev() {
// method chains are stored last -> first
if let ExprMethodCall(ref name, _, ref args) = current.node {
if name.node == *method_name {
matched.push(args); // build up `matched` backwards
matched.push(&**args); // build up `matched` backwards
current = &args[0] // go to parent expression
} else {
return None;