diff --git a/src/libsyntax/ext/pipes/check.rs b/src/libsyntax/ext/pipes/check.rs index 7cf96707bca..492cb255805 100644 --- a/src/libsyntax/ext/pipes/check.rs +++ b/src/libsyntax/ext/pipes/check.rs @@ -44,28 +44,29 @@ impl proto_check of proto::visitor<(), (), ()> for ext_ctxt { fn visit_message(name: ident, _tys: &[@ast::ty], this: state, next: next_state) { - alt next { - some({state: next, tys: next_tys}) { - let proto = this.proto; - if !proto.has_state(next) { - // This should be a span fatal, but then we need to - // track span information. - self.span_err( - empty_span(), - #fmt("message %s steps to undefined state, %s", - *name, *next)); - } - - let next = proto.get_state(next); - - if next.ty_params.len() != next_tys.len() { + alt next { + some({state: next, tys: next_tys}) { + let proto = this.proto; + if !proto.has_state(next) { + // This should be a span fatal, but then we need to + // track span information. self.span_err( - empty_span(), // use a real span - #fmt("message %s target (%s) \ - needs %u type parameters, but got %u", - *name, *next.name, - next.ty_params.len(), - next_tys.len())); + empty_span(), + #fmt("message %s steps to undefined state, %s", + *name, *next)); + } + else { + let next = proto.get_state(next); + + if next.ty_params.len() != next_tys.len() { + self.span_err( + empty_span(), // use a real span + #fmt("message %s target (%s) \ + needs %u type parameters, but got %u", + *name, *next.name, + next.ty_params.len(), + next_tys.len())); + } } } none { }