aboutsummaryrefslogtreecommitdiff
path: root/tests/expansion/type.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/expansion/type.testscript')
-rw-r--r--tests/expansion/type.testscript50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/expansion/type.testscript b/tests/expansion/type.testscript
new file mode 100644
index 0000000..12204a3
--- /dev/null
+++ b/tests/expansion/type.testscript
@@ -0,0 +1,50 @@
+# file : tests/expansion/type.testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# Test type propagation during expansion.
+
+.include ../common.testscript
+
+: var
+:
+$* <<EOI
+x = [bool] true
+y = $x
+assert ($type($y) == bool)
+EOI
+
+: eval
+:
+$* <<EOI
+y = ([bool] true)
+assert ($type($y) == bool)
+EOI
+
+: func
+:
+$* <<EOI
+y = $identity([bool] true)
+assert ($type($y) == bool)
+EOI
+
+: untypify
+:
+$* <<EOI
+x = [bool] true
+y = "$x"
+assert ($type($y) == "")
+EOI
+
+: retypify
+:
+$* <'print [bool] ([string] true)' >'true'
+
+: retypify-quote
+:
+$* <'print [bool] "([string] true)"' >'true'
+
+: retypify-name
+: Test the "steal" case of untypify()
+:
+$* <'print [bool] "([name] true)"' >'true'