mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
module caching: generate type aliases
This commit is contained in:
parent
4cd9099f74
commit
4c91a5c94b
@ -172,6 +172,10 @@ fn (v &V) generate_vh() {
|
||||
if typ.name.contains('__') {
|
||||
name = typ.name.all_after('__')
|
||||
}
|
||||
// type alias
|
||||
if typ.parent != '' && typ.cat == .alias {
|
||||
file.writeln('type $typ.name $typ.parent')
|
||||
}
|
||||
if typ.cat in [TypeCategory.struct_, .c_struct] {
|
||||
c := if typ.is_c { 'C.' } else { '' }
|
||||
file.writeln('struct ${c}$name {')
|
||||
|
@ -591,7 +591,12 @@ fn (p mut Parser) type_decl() {
|
||||
''
|
||||
}
|
||||
p.gen_typedef('typedef $_struct $nt_pair; //type alias name="$name" parent=`$parent.name`')
|
||||
p.register_type_with_parent(name, parent.name)
|
||||
p.table.register_type2(Type{
|
||||
name: name
|
||||
parent: parent.name
|
||||
mod: p.mod
|
||||
cat: TypeCategory.alias
|
||||
})
|
||||
}
|
||||
|
||||
// current token is `(`
|
||||
|
@ -78,6 +78,7 @@ enum TypeCategory {
|
||||
c_typedef
|
||||
objc_interface // 8 Objective C @interface
|
||||
array
|
||||
alias // `type myint int`
|
||||
}
|
||||
|
||||
struct Var {
|
||||
|
@ -4,6 +4,6 @@ fn test_nr_cpus() {
|
||||
$if linux {
|
||||
nr_cpus := runtime.nr_cpus()
|
||||
println(nr_cpus)
|
||||
assert nr_cpus > 0
|
||||
assert nr_cpus >= 0
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user