Further work on integer literal suffix inference (#1425)
In this commit: * Change the lit_int_unsuffixed AST node to not carry a type, since it doesn't need one * Don't print "(unsuffixed)" when pretty-printing unsuffixed integer literals * Just print "I" instead of "(integral)" for integral type variables * Set up trans to use the information that will be gathered during typeck to construct the appropriate constants for unsuffixed int literals * Add logic for handling int_ty_sets in typeck::infer * Clean up unnecessary code in typeck::infer * Add missing mk_ functions to middle::ty * Add ty_var_integral to a few of the type utility functions it was missing from in middle::ty
This commit is contained in:
parent
d953462d03
commit
77e6573929
12 changed files with 201 additions and 143 deletions
|
@ -501,7 +501,7 @@ class parser {
|
|||
let lo = self.span.lo;
|
||||
self.bump();
|
||||
alt copy self.token {
|
||||
token::LIT_INT_UNSUFFIXED(num, _) {
|
||||
token::LIT_INT_UNSUFFIXED(num) {
|
||||
self.bump();
|
||||
some(mac_var(num as uint))
|
||||
}
|
||||
|
@ -534,7 +534,7 @@ class parser {
|
|||
token::UNDERSCORE {
|
||||
self.bump(); some(vstore_fixed(none))
|
||||
}
|
||||
token::LIT_INT_UNSUFFIXED(i, _) if i >= 0i64 {
|
||||
token::LIT_INT_UNSUFFIXED(i) if i >= 0i64 {
|
||||
self.bump(); some(vstore_fixed(some(i as uint)))
|
||||
}
|
||||
token::BINOP(token::AND) {
|
||||
|
@ -553,7 +553,7 @@ class parser {
|
|||
alt tok {
|
||||
token::LIT_INT(i, it) { lit_int(i, it) }
|
||||
token::LIT_UINT(u, ut) { lit_uint(u, ut) }
|
||||
token::LIT_INT_UNSUFFIXED(i, it) { lit_int_unsuffixed(i, it) }
|
||||
token::LIT_INT_UNSUFFIXED(i) { lit_int_unsuffixed(i) }
|
||||
token::LIT_FLOAT(s, ft) { lit_float(self.get_str(s), ft) }
|
||||
token::LIT_STR(s) { lit_str(self.get_str(s)) }
|
||||
token::LPAREN { self.expect(token::RPAREN); lit_nil }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue