summaryrefslogtreecommitdiff
path: root/src/syntax
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-08-01 19:15:55 +0200
committerLaurenz <laurmaedje@gmail.com>2020-08-01 19:15:55 +0200
commit659248d52ff9e6be4dad7c4555bd62899671ad55 (patch)
tree610f382adc09524a08c5cbb941e46103117a88e5 /src/syntax
parent04c05502bee50f7657dc2d88c60eb935b068a284 (diff)
Raw lengths 🚲
Replace unitless length with raw f64 and introduce length type with unit.
Diffstat (limited to 'src/syntax')
-rw-r--r--src/syntax/func/maps.rs3
-rw-r--r--src/syntax/func/values.rs4
-rw-r--r--src/syntax/tokens.rs1
3 files changed, 5 insertions, 3 deletions
diff --git a/src/syntax/func/maps.rs b/src/syntax/func/maps.rs
index 2ac70223..59159ae1 100644
--- a/src/syntax/func/maps.rs
+++ b/src/syntax/func/maps.rs
@@ -1,8 +1,9 @@
//! Deduplicating maps and keys for argument parsing.
use crate::diagnostic::Diagnostics;
+use crate::geom::Value4;
use crate::layout::prelude::*;
-use crate::length::{ScaleLength, Value4};
+use crate::length::ScaleLength;
use crate::syntax::span::Spanned;
use super::keys::*;
use super::values::*;
diff --git a/src/syntax/func/values.rs b/src/syntax/func/values.rs
index 85891d5e..64d4d345 100644
--- a/src/syntax/func/values.rs
+++ b/src/syntax/func/values.rs
@@ -76,13 +76,13 @@ value!(Ident, "identifier", Expr::Ident(i) => i);
value!(String, "string", Expr::Str(s) => s);
value!(f64, "number", Expr::Number(n) => n);
value!(bool, "bool", Expr::Bool(b) => b);
-value!(Length, "length", Expr::Length(s) => s);
+value!(Length, "length", Expr::Length(l) => l);
value!(Tuple, "tuple", Expr::Tuple(t) => t);
value!(Object, "object", Expr::Object(o) => o);
value!(ScaleLength, "number or length",
Expr::Length(length) => ScaleLength::Absolute(length),
- Expr::Number(scale) => ScaleLength::Scaled(scale as f64),
+ Expr::Number(scale) => ScaleLength::Scaled(scale),
);
/// A value type that matches [`Expr::Ident`] and [`Expr::Str`] and implements
diff --git a/src/syntax/tokens.rs b/src/syntax/tokens.rs
index 9bb95c97..4998ea19 100644
--- a/src/syntax/tokens.rs
+++ b/src/syntax/tokens.rs
@@ -534,6 +534,7 @@ pub fn is_identifier(string: &str) -> bool {
#[cfg(test)]
#[allow(non_snake_case)]
mod tests {
+ use crate::length::Length;
use super::super::test::check;
use super::*;
use Token::{