Skip to content
← Back

src/ir/values/wrapper.ghul

1
namespace IR.Values is
2
use Semantic.Types.Type
3
4
class WRAPPER: Value is
5
has_address: bool => value!.has_address
6
type: Type? pure => value!.type
7
value: Value? public
8
9
init(
10
value: Value
11
) is
12
super.init()
13
14
self.value = value
15
si
16
17
init() is
18
super.init()
19
si
20
21
gen(context: IR.CONTEXT) is
22
assert value? else "generate wrapper without value"
23
24
gen(value, context)
25
si
26
27
gen_address(context: IR.CONTEXT) is
28
assert value? else "generate wrapper without value"
29
30
value.gen_address(context)
31
si
32
33
to_string() -> string =>
34
"wrapper:[{if value? then value.type else null fi}]({value})"
35
si
36
si