mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
v.parser: minor cleanup in parse_type.v (#11047)
This commit is contained in:
parent
8743b616a0
commit
5162c257a2
@ -479,12 +479,12 @@ pub fn (mut p Parser) parse_any_type(language ast.Language, is_ptr bool, check_d
|
|||||||
else {
|
else {
|
||||||
p.next()
|
p.next()
|
||||||
if name.len == 1 && name[0].is_capital() {
|
if name.len == 1 && name[0].is_capital() {
|
||||||
return p.parse_generic_template_type(name)
|
return p.parse_generic_type(name)
|
||||||
}
|
}
|
||||||
if p.tok.kind == .lt {
|
if p.tok.kind == .lt {
|
||||||
return p.parse_generic_struct_inst_type(name)
|
return p.parse_generic_inst_type(name)
|
||||||
}
|
}
|
||||||
return p.parse_enum_or_struct_type(name, language)
|
return p.find_type_or_add_placeholder(name, language)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -494,9 +494,8 @@ pub fn (mut p Parser) parse_any_type(language ast.Language, is_ptr bool, check_d
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut p Parser) parse_enum_or_struct_type(name string, language ast.Language) ast.Type {
|
pub fn (mut p Parser) find_type_or_add_placeholder(name string, language ast.Language) ast.Type {
|
||||||
// struct / enum / placeholder
|
// struct / enum / placeholder
|
||||||
// struct / enum
|
|
||||||
mut idx := p.table.find_type_idx(name)
|
mut idx := p.table.find_type_idx(name)
|
||||||
if idx > 0 {
|
if idx > 0 {
|
||||||
return ast.new_type(idx)
|
return ast.new_type(idx)
|
||||||
@ -507,7 +506,7 @@ pub fn (mut p Parser) parse_enum_or_struct_type(name string, language ast.Langua
|
|||||||
return ast.new_type(idx)
|
return ast.new_type(idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut p Parser) parse_generic_template_type(name string) ast.Type {
|
pub fn (mut p Parser) parse_generic_type(name string) ast.Type {
|
||||||
mut idx := p.table.find_type_idx(name)
|
mut idx := p.table.find_type_idx(name)
|
||||||
if idx > 0 {
|
if idx > 0 {
|
||||||
return ast.new_type(idx).set_flag(.generic)
|
return ast.new_type(idx).set_flag(.generic)
|
||||||
@ -522,7 +521,7 @@ pub fn (mut p Parser) parse_generic_template_type(name string) ast.Type {
|
|||||||
return ast.new_type(idx).set_flag(.generic)
|
return ast.new_type(idx).set_flag(.generic)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut p Parser) parse_generic_struct_inst_type(name string) ast.Type {
|
pub fn (mut p Parser) parse_generic_inst_type(name string) ast.Type {
|
||||||
mut bs_name := name
|
mut bs_name := name
|
||||||
mut bs_cname := name
|
mut bs_cname := name
|
||||||
p.next()
|
p.next()
|
||||||
@ -573,5 +572,5 @@ pub fn (mut p Parser) parse_generic_struct_inst_type(name string) ast.Type {
|
|||||||
})
|
})
|
||||||
return ast.new_type(idx)
|
return ast.new_type(idx)
|
||||||
}
|
}
|
||||||
return p.parse_enum_or_struct_type(name, .v).set_flag(.generic)
|
return p.find_type_or_add_placeholder(name, .v).set_flag(.generic)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user