aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/meta/type/variance.lux
diff options
context:
space:
mode:
authorEduardo Julian2022-08-19 13:27:19 -0400
committerEduardo Julian2022-08-19 13:27:19 -0400
commitff6914a0e3bd85b2ae49b5bee6028dff8a47568a (patch)
tree1d62b134e4822ae61b3c39926aa3d7e269da8d5f /stdlib/source/test/lux/meta/type/variance.lux
parenta0517211a4e107f013995cd10e9693acad6885a9 (diff)
Added support for incremental computation.
Diffstat (limited to '')
-rw-r--r--stdlib/source/test/lux/meta/type/variance.lux25
1 files changed, 25 insertions, 0 deletions
diff --git a/stdlib/source/test/lux/meta/type/variance.lux b/stdlib/source/test/lux/meta/type/variance.lux
index 494aa23f9..5024bda85 100644
--- a/stdlib/source/test/lux/meta/type/variance.lux
+++ b/stdlib/source/test/lux/meta/type/variance.lux
@@ -21,6 +21,8 @@
(def .public test
Test
(<| (_.covering /._)
+ (do random.monad
+ [expected random.nat])
(all _.and
(_.coverage [/.Co]
(and (//check.subsumes? (type_literal (/.Co Super)) (type_literal (/.Co Sub)))
@@ -33,4 +35,27 @@
(//check.subsumes? (type_literal (/.In Sub)) (type_literal (/.In Sub)))
(not (//check.subsumes? (type_literal (/.In Sub)) (type_literal (/.In Super))))
(not (//check.subsumes? (type_literal (/.In Super)) (type_literal (/.In Sub))))))
+ (_.for [/.Mutable]
+ (all _.and
+ (_.coverage [/.write /.read]
+ (|> (/.write expected)
+ (is (/.Mutable I64 Nat))
+ /.read
+ (same? (.i64 expected))))
+ (_.coverage [/.Read_Only /.read_only]
+ (|> (/.write expected)
+ (is (/.Mutable I64 Nat))
+ /.read_only
+ (is (/.Read_Only I64))
+ /.read
+ (same? (.i64 expected))))
+ (_.coverage [/.Write_Only /.write_only]
+ (|> (/.write expected)
+ (is (/.Mutable I64 Nat))
+ /.write_only
+ (is (/.Write_Only Nat))
+ /.read
+ (is Any)
+ (same? (as Any expected))))
+ ))
)))