aboutsummaryrefslogtreecommitdiff
path: root/src/type/check.rs
diff options
context:
space:
mode:
authorJoel Kronqvist <joel.kronqvist@iki.fi>2025-08-05 15:12:27 +0300
committerJoel Kronqvist <joel.kronqvist@iki.fi>2025-08-05 15:12:27 +0300
commit1e712e91edea0735c5eb440af26ac6d4454e70a9 (patch)
treef03b4afb90bb4e36e825814a4fddec253994b7b3 /src/type/check.rs
parent7be78efb6c56c04b8a96b3f4f7f6cf810da04dbf (diff)
downloadmyslip-1e712e91edea0735c5eb440af26ac6d4454e70a9.tar.gz
myslip-1e712e91edea0735c5eb440af26ac6d4454e70a9.zip
Fix: quote is not a typewise identity function. Added vt(&str) as util for VarType(String).
Diffstat (limited to 'src/type/check.rs')
-rw-r--r--src/type/check.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/type/check.rs b/src/type/check.rs
index 81a43a4..c3bdcb4 100644
--- a/src/type/check.rs
+++ b/src/type/check.rs
@@ -28,7 +28,7 @@ impl SExp {
///
/// assert_eq!(
/// scons(Quote, scons(1, scons(False, Nil))).type_check(),
- /// Ok(List(vec![Integer, Boolean]))
+ /// Ok(List(vec![QuoteTy, List(vec![Integer, Boolean])]))
/// );
/// ```
/// Though so is Nil given too:
@@ -150,8 +150,8 @@ impl SExp {
Atom(Not) => Ok(arr(List(vec!(Boolean)), Boolean)),
Atom(Nil) => Ok(List(vec![])),
Atom(Quote) => Ok(arr(
- VarType("T".to_string()),
- VarType("T".to_string())
+ vt("T"),
+ List(vec![QuoteTy, vt("T")])
)),
SCons(op, l) => {