From 6bf5aa9dd839fcf48aedf076052ce8ecc12054f8 Mon Sep 17 00:00:00 2001 From: IRONM00N Date: Thu, 24 Jul 2025 13:34:15 -0400 Subject: [PATCH 1/3] fix: add missing `current-checker` global types, so `because` desugar can be type checked --- src/js/trove/global.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/js/trove/global.js b/src/js/trove/global.js index e68c12f5e..8acdc742a 100644 --- a/src/js/trove/global.js +++ b/src/js/trove/global.js @@ -54,19 +54,31 @@ "current-checker": ["arrow", [], ["record", { "run-checks": "tbot", "check-is": "tbot", - "check-is-not": "tbot", + "check-is-cause": "tbot", "check-is-roughly": "tbot", + "check-is-roughly-cause": "tbot", + "check-is-not": "tbot", + "check-is-not-cause": "tbot", "check-is-refinement": "tbot", + "check-is-refinement-cause": "tbot", "check-is-not-refinement": "tbot", - "check-satisfies": "tbot", + "check-is-not-refinement-cause": "tbot", + "check-satisfies": "tbot", // doesn't have -cause + "check-satisfies-not": "tbot", // doesn't have -cause "check-satisfies-delayed": "tbot", - "check-satisfies-not": "tbot", + "check-satisfies-delayed-cause": "tbot", "check-satisfies-not-delayed": "tbot", + "check-satisfies-not-delayed-cause": "tbot", "check-raises-str": "tbot", - "check-raises-not": "tbot", + "check-raises-str-cause": "tbot", "check-raises-other-str": "tbot", + "check-raises-other-str-cause": "tbot", + "check-raises-not": "tbot", + "check-raises-not-cause": "tbot", "check-raises-satisfies": "tbot", - "check-raises-violates": "tbot" + "check-raises-satisfies-cause": "tbot", + "check-raises-violates": "tbot", + "check-raises-violates-cause": "tbot" }]] }], From 2ed529c7bd5a2d9c37e7a8c5b936756af84a47a0 Mon Sep 17 00:00:00 2001 From: IRONM00N Date: Thu, 24 Jul 2025 13:36:08 -0400 Subject: [PATCH 2/3] test: type-check tests for each type of check operator, with and without `because` --- tests/type-check/good/tests-because.arr | 43 +++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/type-check/good/tests-because.arr diff --git a/tests/type-check/good/tests-because.arr b/tests/type-check/good/tests-because.arr new file mode 100644 index 000000000..437aca167 --- /dev/null +++ b/tests/type-check/good/tests-because.arr @@ -0,0 +1,43 @@ +check: + fun less-than(l :: Number, r :: Number): l < r end + fun is-even(n :: Number): num-modulo(n, 2) == 0 end + + 67 is 67 + 67 is 67 because 67 + + ~0.0000001 is-roughly ~0.0000002 + ~0.0000001 is-roughly ~0.0000002 because ~0.0000001 + + 67 is-not 69 + 67 is-not 69 because 67 + + 67 is%(less-than) 69 + 67 is%(less-than) 69 because 67 + + 69 is-not%(less-than) 67 + 69 is-not%(less-than) 67 because 69 + + 67 + 1 satisfies is-even + 67 + 1 satisfies is-even because 68 + + 70 - 1 violates is-even + 70 - 1 violates is-even because 69 + + raise("err") raises "err" + raise("err") raises "err" because raise("err") + + raise("foo") raises-other-than "bar" + raise("foo") raises-other-than "bar" because raise("foo") + + 67 does-not-raise + 67 does-not-raise because 67 + + fun is-foo(x :: Any): x == "foo" end + + raise("foo") raises-satisfies is-foo + raise("foo") raises-satisfies is-foo because raise("foo") + + raise("bar") raises-violates is-foo + raise("bar") raises-violates is-foo because raise("bar") +end + From 4e44ecff08b0f31d4a5d615d5baf84b3eb57864c Mon Sep 17 00:00:00 2001 From: IRONM00N Date: Thu, 24 Jul 2025 13:37:16 -0400 Subject: [PATCH 3/3] promote two type-check test from should pass to good --- tests/type-check/{should => good}/obj-fun-check.arr | 0 tests/type-check/{should => good}/obj-lub.arr | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/type-check/{should => good}/obj-fun-check.arr (100%) rename tests/type-check/{should => good}/obj-lub.arr (100%) diff --git a/tests/type-check/should/obj-fun-check.arr b/tests/type-check/good/obj-fun-check.arr similarity index 100% rename from tests/type-check/should/obj-fun-check.arr rename to tests/type-check/good/obj-fun-check.arr diff --git a/tests/type-check/should/obj-lub.arr b/tests/type-check/good/obj-lub.arr similarity index 100% rename from tests/type-check/should/obj-lub.arr rename to tests/type-check/good/obj-lub.arr