diff options
| author | krasimir <krasimir@chalmers.se> | 2009-10-02 13:25:12 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-10-02 13:25:12 +0000 |
| commit | 8e799548618318c37760a2e915eb994745574748 (patch) | |
| tree | eedbae4f6309c950e554631d94dc5b95a2a96abd /testsuite | |
| parent | af831e01a7baf6de9ac3a475368f7315c99797a7 (diff) | |
Implicit arguments in GF. Works only in PGF for now.
Diffstat (limited to 'testsuite')
| -rw-r--r-- | testsuite/runtime/typecheck/Graph.gf | 19 | ||||
| -rw-r--r-- | testsuite/runtime/typecheck/implicit-arguments.gfs | 9 | ||||
| -rw-r--r-- | testsuite/runtime/typecheck/implicit-arguments.gfs.gold | 22 |
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
+
|
