v2: reorder types idxs, > string defined with v struct. rm unresovled
parent
d2cb5ad725
commit
aab1045045
|
@ -35,16 +35,16 @@ pub const (
|
||||||
f64_type_idx = 14
|
f64_type_idx = 14
|
||||||
char_type_idx = 15
|
char_type_idx = 15
|
||||||
bool_type_idx = 16
|
bool_type_idx = 16
|
||||||
|
none_type_idx = 17
|
||||||
// advanced / defined from v structs
|
// advanced / defined from v structs
|
||||||
string_type_idx = 17
|
string_type_idx = 18
|
||||||
array_type_idx = 18
|
array_type_idx = 19
|
||||||
map_type_idx = 19
|
map_type_idx = 20
|
||||||
none_type_idx = 20
|
|
||||||
)
|
)
|
||||||
|
|
||||||
pub const (
|
pub const (
|
||||||
builtin_type_names = ['void', 'voidptr', 'charptr', 'byteptr', 'i8', 'i16', 'int', 'i64', 'u16', 'u32', 'u64',
|
builtin_type_names = ['void', 'voidptr', 'charptr', 'byteptr', 'i8', 'i16', 'int', 'i64', 'u16', 'u32', 'u64',
|
||||||
'f32', 'f64', 'string', 'char', 'byte', 'bool', 'struct', 'array', 'array_fixed', 'map',
|
'f32', 'f64', 'string', 'char', 'byte', 'bool', 'none', 'array', 'array_fixed', 'map', 'struct',
|
||||||
'mapnode', 'ustring']
|
'mapnode', 'ustring']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -73,16 +73,15 @@ pub enum Kind {
|
||||||
f64
|
f64
|
||||||
char
|
char
|
||||||
bool
|
bool
|
||||||
|
none_
|
||||||
string
|
string
|
||||||
struct_
|
|
||||||
array
|
array
|
||||||
array_fixed
|
array_fixed
|
||||||
map
|
map
|
||||||
|
struct_
|
||||||
multi_return
|
multi_return
|
||||||
sum_type
|
sum_type
|
||||||
alias
|
alias
|
||||||
unresolved
|
|
||||||
none_
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[inline]
|
[inline]
|
||||||
|
@ -226,6 +225,10 @@ pub fn (t mut Table) register_builtin_type_symbols() {
|
||||||
kind: .bool
|
kind: .bool
|
||||||
name: 'bool'
|
name: 'bool'
|
||||||
})
|
})
|
||||||
|
t.register_type_symbol(TypeSymbol{
|
||||||
|
kind: .none_
|
||||||
|
name: 'none'
|
||||||
|
})
|
||||||
t.register_type_symbol(TypeSymbol{
|
t.register_type_symbol(TypeSymbol{
|
||||||
kind: .string
|
kind: .string
|
||||||
name: 'string'
|
name: 'string'
|
||||||
|
@ -238,10 +241,6 @@ pub fn (t mut Table) register_builtin_type_symbols() {
|
||||||
kind: .map
|
kind: .map
|
||||||
name: 'map'
|
name: 'map'
|
||||||
})
|
})
|
||||||
t.register_type_symbol(TypeSymbol{
|
|
||||||
kind: .none_
|
|
||||||
name: 'none'
|
|
||||||
})
|
|
||||||
// TODO: remove
|
// TODO: remove
|
||||||
t.register_type_symbol(TypeSymbol{
|
t.register_type_symbol(TypeSymbol{
|
||||||
parent_idx: map_type_idx
|
parent_idx: map_type_idx
|
||||||
|
@ -267,9 +266,6 @@ pub fn (t &TypeSymbol) is_number() bool {
|
||||||
|
|
||||||
pub fn (k Kind) str() string {
|
pub fn (k Kind) str() string {
|
||||||
k_str := match k {
|
k_str := match k {
|
||||||
.unresolved{
|
|
||||||
'unresolved'
|
|
||||||
}
|
|
||||||
.placeholder{
|
.placeholder{
|
||||||
'placeholder'
|
'placeholder'
|
||||||
}
|
}
|
||||||
|
@ -327,6 +323,9 @@ pub fn (k Kind) str() string {
|
||||||
.bool{
|
.bool{
|
||||||
'bool'
|
'bool'
|
||||||
}
|
}
|
||||||
|
.none_{
|
||||||
|
'none'
|
||||||
|
}
|
||||||
.array{
|
.array{
|
||||||
'array'
|
'array'
|
||||||
}
|
}
|
||||||
|
|
|
@ -187,14 +187,7 @@ pub fn (t &Table) find_type(name string) ?TypeSymbol {
|
||||||
[inline]
|
[inline]
|
||||||
pub fn (t &Table) get_type_symbol(typ Type) &TypeSymbol {
|
pub fn (t &Table) get_type_symbol(typ Type) &TypeSymbol {
|
||||||
idx := type_idx(typ)
|
idx := type_idx(typ)
|
||||||
if idx < 0 {
|
if idx > 0 {
|
||||||
unresolved_idx := -idx
|
|
||||||
return &TypeSymbol{
|
|
||||||
kind: .unresolved
|
|
||||||
name: 'unresolved-$unresolved_idx'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if idx > 0 {
|
|
||||||
return &t.types[idx]
|
return &t.types[idx]
|
||||||
}
|
}
|
||||||
// this should never happen
|
// this should never happen
|
||||||
|
|
|
@ -57,12 +57,6 @@ pub fn new_type_ptr(idx, nr_muls int) Type {
|
||||||
return idx<<i16(16) | nr_muls
|
return idx<<i16(16) | nr_muls
|
||||||
}
|
}
|
||||||
|
|
||||||
// true if the type of unresolved expression
|
|
||||||
[inline]
|
|
||||||
pub fn type_is_unresolved(t Type) bool {
|
|
||||||
return type_idx(t) < 0
|
|
||||||
}
|
|
||||||
|
|
||||||
pub const (
|
pub const (
|
||||||
void_type = new_type(void_type_idx)
|
void_type = new_type(void_type_idx)
|
||||||
voidptr_type = new_type(voidptr_type_idx)
|
voidptr_type = new_type(voidptr_type_idx)
|
||||||
|
|
Loading…
Reference in New Issue