summaryrefslogtreecommitdiff
path: root/testsuite/runtime
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-10-02 13:25:12 +0000
committerkrasimir <krasimir@chalmers.se>2009-10-02 13:25:12 +0000
commit8e799548618318c37760a2e915eb994745574748 (patch)
treeeedbae4f6309c950e554631d94dc5b95a2a96abd /testsuite/runtime
parentaf831e01a7baf6de9ac3a475368f7315c99797a7 (diff)
Implicit arguments in GF. Works only in PGF for now.
Diffstat (limited to 'testsuite/runtime')
-rw-r--r--testsuite/runtime/typecheck/Graph.gf19
-rw-r--r--testsuite/runtime/typecheck/implicit-arguments.gfs9
-rw-r--r--testsuite/runtime/typecheck/implicit-arguments.gfs.gold22
3 files changed, 50 insertions, 0 deletions
diff --git a/testsuite/runtime/typecheck/Graph.gf b/testsuite/runtime/typecheck/Graph.gf
new file mode 100644
index 000000000..a44cf35b5
--- /dev/null
+++ b/testsuite/runtime/typecheck/Graph.gf
@@ -0,0 +1,19 @@
+abstract Graph = {
+
+cat
+ Node ;
+ Link (n,m : Node) ;
+ Path (n,m : Node) ;
+ Label ({n} : Node) ; -- just to debug implicit arguments of categories
+
+fun
+ n1,n2,n3,n4,n5 : Node ;
+
+ l12 : Link n1 n2 ;
+ l23 : Link n2 n3 ;
+ l34 : Link n3 n4 ;
+ l35 : Link n3 n5 ;
+
+ link : ({n,m} : Node) -> Link n m -> Path n m ;
+ join : ({n,p,m} : Node) -> Link n p -> Path p m -> Path n m ;
+} \ No newline at end of file
diff --git a/testsuite/runtime/typecheck/implicit-arguments.gfs b/testsuite/runtime/typecheck/implicit-arguments.gfs
new file mode 100644
index 000000000..0306a662a
--- /dev/null
+++ b/testsuite/runtime/typecheck/implicit-arguments.gfs
@@ -0,0 +1,9 @@
+i testsuite/runtime/typecheck/Graph.gf
+ai join l12 (link l23)
+ai join {n1} {n2} {n3} l12 (link {n2} {n3} l23)
+ai <? : Label>
+ai <? : Label {n1}>
+ai <? : Link {n1} {n2}>
+ai <\x -> x : ({m},n : Node) -> Node>
+ai <n1 : ({m} : Node) -> Node>
+ai <? : ({m} : Node) -> Node> \ No newline at end of file
diff --git a/testsuite/runtime/typecheck/implicit-arguments.gfs.gold b/testsuite/runtime/typecheck/implicit-arguments.gfs.gold
new file mode 100644
index 000000000..8a5c08461
--- /dev/null
+++ b/testsuite/runtime/typecheck/implicit-arguments.gfs.gold
@@ -0,0 +1,22 @@
+Expression: join {n1} {n2} {n3} l12 (link {n2} {n3} l23)
+Type: Path n1 n3
+
+Expression: join {n1} {n2} {n3} l12 (link {n2} {n3} l23)
+Type: Path n1 n3
+
+Expression: <?2 : Label {?1}>
+Type: Label {?1}
+
+Expression: <?2 : Label {n1}>
+Type: Label {n1}
+
+{n1} is implicit argument but not implicit argument is expected here
+Expression: <\{_1}, x -> x : ({m} : Node) -> (n : Node) -> Node>
+Type: ({m} : Node) -> (n : Node) -> Node
+
+Expression: <\{_1} -> n1 : ({m} : Node) -> Node>
+Type: ({m} : Node) -> Node
+
+Expression: <\{_1} -> ?1 : ({m} : Node) -> Node>
+Type: ({m} : Node) -> Node
+