Wrap BlockClosure into Fn to work around a bug
[jackhill/mal.git] / gst / func.st
1 MALObject subclass: Func [
2 | ast params env fn isMacro |
3
4 ast [ ^ast ]
5 params [ ^params ]
6 env [ ^env ]
7 fn [ ^fn ]
8 isMacro [ ^isMacro ]
9
10 isMacro: bool [
11 isMacro := bool
12 ]
13
14 Func class >> new: ast params: params env: env fn: fn [
15 | func |
16 func := super new: #func value: fn meta: nil.
17 func init: ast params: params env: env fn: fn.
18 ^func
19 ]
20
21 init: anAst params: someParams env: anEnv fn: aFn [
22 ast := anAst.
23 params := someParams.
24 env := anEnv.
25 fn := aFn.
26 isMacro := false
27 ]
28 ]