9 assert_equal ~printer:Std.dump x (snd @@ Binding.of_module y)
11 let member scope ns name =
12 Node.ghost @@ Member (scope,(ns,name))
14 Node.ghost @@ Slot (scope,i)
16 Node.ghost @@ Register n
19 AstUtil.class_ (`Public (qname [] "Foo")) (qname [] "Object") [] meths
25 | Member of scope * name
31 ok [expr @@ let_ ["x", int 42] @@
32 `BindVar (member (Scope 1) [] "x")]
33 [expr @@ let_ ["x", int 42] @@
35 ok [expr @@ let_ ["x", var [] "x"] @@
37 [expr @@ let_ ["x", var [] "x"] @@
39 ok [expr @@ let_ ["x", int 42] @@
41 `BindVar (member (Scope 2) [] "x")]
42 [expr @@ let_ ["x", int 42] @@
47 ok [expr @@ let_rec ["x", int 42] @@
48 `BindVar (member (Scope 1) [] "x")]
49 [expr @@ let_rec ["x", int 42] @@
52 ok [expr @@ let_rec ["x", `BindVar (member (Scope 1) [] "x")] @@
54 [expr @@ let_rec ["x", var [] "x"] @@
56 ok [expr @@ let_rec ["x", int 42] @@
57 let_rec ["x",int 42] @@
58 `BindVar (member (Scope 2) [] "x")]
59 [expr @@ let_rec ["x", int 42] @@
60 let_rec ["x",int 42] @@
64 ok [expr @@ lambda [] @@ var [] "x"]
65 [expr @@ lambda [] @@ var [] "x"];
66 ok [expr @@ lambda ["x"] @@ `BindVar (register 1)]
67 [expr @@ lambda ["x"] @@ var [] "x"];
68 ok [expr @@ lambda ["x";"y"] @@ `BindVar (register 2)]
69 [expr @@ lambda ["x";"y"] @@ var [] "y"]);
72 ok [class_ [public_meth "f" [] @@ var [] "x"]]
73 [class_ [public_meth "f" [] @@ var [] "x"]];
74 ok [class_ [public_meth "f" ["x"] @@ `BindVar (register 0)]]
75 [class_ [public_meth "f" ["x"] @@ var [] "x"]]);
78 ok [`ReDefine (`Public (qname [] "x"),0,int 42);
79 expr @@ `BindVar (slot Global 1)]
80 [`Define (`Public (qname [] "x"),int 42);
84 ok [`ReDefine (`Public (qname [] "x"),0,int 42);
85 `ReDefine (`Public (qname [] "x"),0,int 42);
86 expr @@ `BindVar (slot Global 1)]
87 [`Define (`Public (qname [] "x"),int 42);
88 `Define (`Public (qname [] "x"),int 42);
93 expr @@ `BindVar (member Global [] "Foo")]
95 expr @@ var [] "Foo"]);