From 76362f0a0ee1b66d7df524c4c8dea9b15b45cf78 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Thu, 22 Jan 2015 17:46:40 -0500 Subject: custom message for refutable patterns in for loops --- src/libsyntax/ast.rs | 1 + src/libsyntax/ext/expand.rs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 11068880b0e..d7283db25a5 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -788,6 +788,7 @@ pub enum MatchSource { Normal, IfLetDesugar { contains_else_clause: bool }, WhileLetDesugar, + ForLoopDesugar, } #[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)] diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 357bd2c17ab..5736400313e 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -288,8 +288,8 @@ pub fn expand_expr(e: P, fld: &mut MacroExpander) -> P { fld.cx.expr_call(span, fld.cx.expr_path(next_path), vec![ref_mut_iter]); let arms = vec![pat_arm, break_arm]; - // FIXME(japaric) This should use `ForLoopDesugar` as MatchSource - fld.cx.expr_match(pat_span, next_expr, arms) + fld.cx.expr(pat_span, + ast::ExprMatch(next_expr, arms, ast::MatchSource::ForLoopDesugar)) }; // `[opt_ident]: loop { ... }` -- cgit 1.4.1-3-g733a5