Ensure that float literal is always formatted as floating point
diff --git a/src/stable.rs b/src/stable.rs
index 984a146..b5820b1 100644
--- a/src/stable.rs
+++ b/src/stable.rs
@@ -492,8 +492,15 @@
Literal(s.to_string())
}
- pub fn float(s: f64) -> Literal {
- Literal(s.to_string())
+ pub fn float(n: f64) -> Literal {
+ if !n.is_finite() {
+ panic!("Invalid float literal {}", n);
+ }
+ let mut s = n.to_string();
+ if !s.contains('.') {
+ s += ".0";
+ }
+ Literal(s)
}
pub fn integer(s: i64) -> Literal {