Skip to content
← Back

src/semantic/dotnet/type_details.ghul

1
namespace Semantic.DotNet is
2
use IO.Std;
3
4
use TYPE = System.Type;
5
6
class TYPE_DETAILS(
7
dotnet_type: TYPE,
8
ghul_namespace: string,
9
ghul_type_name: string,
10
il_name: string?,
11
assembly_name: string?,
12
version_number: string
13
) is
14
// True for the synthetic class hosting a namespace's globals. A
15
// namespace can have one carrier per contributing assembly, and the
16
// re-homing of Ghul.Internal into Ghul gives it two from a single one.
17
is_globals_carrier: bool public;
18
19
matches(namespace_name: string?, name: string) -> bool =>
20
namespace_name? /\ namespace_name =~ ghul_namespace /\ name =~ ghul_type_name;
21
22
merge_assembly_reference(type: TYPE, assembly_name: string, assembly_version: string) is
23
if !self.assembly_name? then
24
self.assembly_name = assembly_name;
25
self.version_number = assembly_version;
26
fi
27
si
28
29
to_string() -> string => "(.NET type: {dotnet_type} ghul ns: {ghul_namespace} ghul name: {ghul_type_name} il_name: {il_name} assembly_name: {assembly_name})";
30
si
31
si