diff options
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/middle/typeck.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index 9f2bf64c..0fd55d5d 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -408,18 +408,25 @@ fn field_num(session.session sess, &span sp, &ast.ident id) -> uint { let uint i = 0u; for (u8 c in id) { if (i == 0u) { - if (c != '_' as u8) { - sess.span_err(sp, "bad numeric field on tuple"); + if (c != ('_' as u8)) { + sess.span_err(sp, + "bad numeric field on tuple: " + + "missing leading underscore"); } } else { - i += 1u; if (('0' as u8) <= c && c <= ('9' as u8)) { accum *= 10u; accum += (c as uint) - ('0' as uint); } else { - sess.span_err(sp, "bad numeric field on tuple"); + auto s = ""; + s += c; + sess.span_err(sp, + "bad numeric field on tuple: " + + " non-digit character: " + + s); } } + i += 1u; } ret accum; } |