diff options
| author | Daniel Micay <danielmicay@gmail.com> | 2013-09-26 02:26:09 -0400 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2013-10-01 14:54:10 -0400 |
| commit | c9d4ad07c4c166d655f11862e03c10100dcb704b (patch) | |
| tree | 53a506f27ce5d9e192ef540ae3ad4010eba10fee /src/libsyntax | |
| parent | 24a253778aa26222cae97e3b57f85e5054a39977 (diff) | |
| download | rust-c9d4ad07c4c166d655f11862e03c10100dcb704b.tar.gz rust-c9d4ad07c4c166d655f11862e03c10100dcb704b.zip | |
remove the `float` type
It is simply defined as `f64` across every platform right now. A use case hasn't been presented for a `float` type defined as the highest precision floating point type implemented in hardware on the platform. Performance-wise, using the smallest precision correct for the use case greatly saves on cache space and allows for fitting more numbers into SSE/AVX registers. If there was a use case, this could be implemented as simply a type alias or a struct thanks to `#[cfg(...)]`. Closes #6592 The mailing list thread, for reference: https://mail.mozilla.org/pipermail/rust-dev/2013-July/004632.html
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/ast_util.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/quote.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/parse/lexer.rs | 7 |
4 files changed, 2 insertions, 9 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index f2d7ebdd599..5056bd5a00d 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -765,7 +765,6 @@ impl ToStr for uint_ty { #[deriving(Clone, Eq, Encodable, Decodable, IterBytes)] pub enum float_ty { - ty_f, ty_f32, ty_f64, } diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index f93fc1e81da..12ad7111f7f 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -190,7 +190,7 @@ pub fn uint_ty_max(t: uint_ty) -> u64 { } pub fn float_ty_to_str(t: float_ty) -> ~str { - match t { ty_f => ~"f", ty_f32 => ~"f32", ty_f64 => ~"f64" } + match t { ty_f32 => ~"f32", ty_f64 => ~"f64" } } pub fn is_call_expr(e: @Expr) -> bool { diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index 24a5f9d5e3c..bfd1e9cc994 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -446,7 +446,6 @@ fn mk_token(cx: @ExtCtxt, sp: Span, tok: &token::Token) -> @ast::Expr { LIT_FLOAT(fident, fty) => { let s_fty = match fty { - ast::ty_f => ~"ty_f", ast::ty_f32 => ~"ty_f32", ast::ty_f64 => ~"ty_f64" }; diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index 640c7c220e5..4a384f864b0 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -530,7 +530,6 @@ fn scan_number(c: char, rdr: @mut StringReader) -> token::Token { None => () } - let mut is_machine_float = false; if rdr.curr == 'f' { bump(rdr); c = rdr.curr; @@ -549,14 +548,10 @@ fn scan_number(c: char, rdr: @mut StringReader) -> token::Token { 32-bit or 64-bit float, it won't be noticed till the back-end. */ } else { - is_float = true; - is_machine_float = true; + fatal_span(rdr, start_bpos, rdr.last_pos, ~"expected `f32` or `f64` suffix"); } } if is_float { - if is_machine_float { - return token::LIT_FLOAT(str_to_ident(num_str), ast::ty_f); - } return token::LIT_FLOAT_UNSUFFIXED(str_to_ident(num_str)); } else { if num_str.len() == 0u { |
