ast: cleanup table.v (#12561)
parent
70ff00efbb
commit
43a1d2cfea
|
@ -92,12 +92,11 @@ pub:
|
|||
pos token.Position
|
||||
return_type_pos token.Position
|
||||
pub mut:
|
||||
return_type Type
|
||||
name string
|
||||
params []Param
|
||||
source_fn voidptr // set in the checker, while processing fn declarations
|
||||
usages int
|
||||
//
|
||||
return_type Type
|
||||
name string
|
||||
params []Param
|
||||
source_fn voidptr // set in the checker, while processing fn declarations
|
||||
usages int
|
||||
generic_names []string
|
||||
attrs []Attr // all fn attributes
|
||||
is_conditional bool // true for `[if abc]fn(){}`
|
||||
|
@ -168,16 +167,6 @@ fn (p []Param) equals(o []Param) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
/*
|
||||
pub struct Var {
|
||||
pub:
|
||||
name string
|
||||
is_mut bool
|
||||
mut:
|
||||
typ Type
|
||||
}
|
||||
*/
|
||||
|
||||
pub fn new_table() &Table {
|
||||
mut t := &Table{
|
||||
type_symbols: []TypeSymbol{cap: 64000}
|
||||
|
@ -301,7 +290,6 @@ pub fn (t &Table) known_fn(name string) bool {
|
|||
}
|
||||
|
||||
pub fn (mut t Table) register_fn(new_fn Fn) {
|
||||
// println('reg fn $new_fn.name nr_args=$new_fn.args.len')
|
||||
t.fns[new_fn.name] = new_fn
|
||||
}
|
||||
|
||||
|
@ -312,7 +300,6 @@ pub fn (mut t Table) register_interface(idecl InterfaceDecl) {
|
|||
pub fn (mut t TypeSymbol) register_method(new_fn Fn) int {
|
||||
// returns a method index, stored in the ast.FnDecl
|
||||
// for faster lookup in the checker's fn_decl method
|
||||
// println('reg me $new_fn.name nr_args=$new_fn.args.len')
|
||||
t.methods << new_fn
|
||||
return t.methods.len - 1
|
||||
}
|
||||
|
@ -344,16 +331,12 @@ pub fn (t &Table) register_aggregate_method(mut sym TypeSymbol, name string) ?Fn
|
|||
}
|
||||
|
||||
pub fn (t &Table) type_has_method(s &TypeSymbol, name string) bool {
|
||||
// println('type_has_method($s.name, $name) types.len=$t.types.len s.parent_idx=$s.parent_idx')
|
||||
if _ := t.type_find_method(s, name) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
t.type_find_method(s, name) or { return false }
|
||||
return true
|
||||
}
|
||||
|
||||
// type_find_method searches from current type up through each parent looking for method
|
||||
pub fn (t &Table) type_find_method(s &TypeSymbol, name string) ?Fn {
|
||||
// println('type_find_method($s.name, $name) types.len=$t.types.len s.parent_idx=$s.parent_idx')
|
||||
mut ts := unsafe { s }
|
||||
for {
|
||||
if method := ts.find_method(name) {
|
||||
|
@ -454,11 +437,8 @@ fn (t &Table) register_aggregate_field(mut sym TypeSymbol, name string) ?StructF
|
|||
}
|
||||
|
||||
pub fn (t &Table) struct_has_field(struct_ &TypeSymbol, name string) bool {
|
||||
// println('struct_has_field($s.name, $name) types.len=$t.types.len s.parent_idx=$s.parent_idx')
|
||||
if _ := t.find_field(struct_, name) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
t.find_field(struct_, name) or { return false }
|
||||
return true
|
||||
}
|
||||
|
||||
// struct_fields returns all fields including fields from embeds
|
||||
|
@ -477,7 +457,6 @@ pub fn (t &Table) struct_fields(sym &TypeSymbol) []StructField {
|
|||
|
||||
// search from current type up through each parent looking for field
|
||||
pub fn (t &Table) find_field(s &TypeSymbol, name string) ?StructField {
|
||||
// println('find_field($s.name, $name) types.len=$t.types.len s.parent_idx=$s.parent_idx')
|
||||
mut ts := unsafe { s }
|
||||
for {
|
||||
match mut ts.info {
|
||||
|
@ -707,7 +686,6 @@ fn (mut t Table) check_for_already_registered_symbol(typ TypeSymbol, existing_id
|
|||
match ex_type.kind {
|
||||
.placeholder {
|
||||
// override placeholder
|
||||
// println('overriding type placeholder `$typ.name`')
|
||||
t.type_symbols[existing_idx] = TypeSymbol{
|
||||
...typ
|
||||
methods: ex_type.methods
|
||||
|
@ -914,7 +892,6 @@ pub fn (t &Table) map_cname(key_type Type, value_type Type) string {
|
|||
value_type_sym := t.get_type_symbol(value_type)
|
||||
suffix := if value_type.is_ptr() { '_ptr' } else { '' }
|
||||
return 'Map_${key_type_sym.cname}_$value_type_sym.cname' + suffix
|
||||
// return 'map_${value_type_sym.name}' + suffix
|
||||
}
|
||||
|
||||
pub fn (mut t Table) find_or_register_chan(elem_type Type, is_mut bool) int {
|
||||
|
@ -1099,7 +1076,6 @@ pub fn (mut t Table) add_placeholder_type(name string, language Language) int {
|
|||
language: language
|
||||
mod: modname
|
||||
}
|
||||
// println('added placeholder: $name - $ph_type.idx')
|
||||
return t.register_type_symbol(ph_type)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue