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 { }