Skip to content
← Back

src/semantic/symbols/symbol_wrapper.ghul

1
namespace Semantic is
2
use IO.Std
3
4
use Symbols.Symbol
5
6
class SYMBOL_WRAPPER(symbol: Symbol) is
7
_hash: int
8
_root_symbol: Symbol
9
10
equals(other: object?) -> bool =>
11
if !other? then
12
false
13
elif !isa SYMBOL_WRAPPER(other) then
14
false
15
else
16
self =~ other
17
fi
18
19
=~(other: SYMBOL_WRAPPER) -> bool =>
20
_root_symbol == other._root_symbol
21
22
init(..) is
23
_root_symbol = symbol.root_specialized_from
24
_hash = _root_symbol.get_hash_code()
25
si
26
27
get_hash_code() -> int => _hash
28
29
to_string() -> string => "{symbol}"
30
si
31
si