mirror of
https://github.com/vlang/v.git
synced 2025-09-24 21:36:27 -04:00
v.ast: fix type_size for hardcode map and array (preparing for new_int) (#25350)
This commit is contained in:
parent
1361002adc
commit
7b07f27774
@ -12,6 +12,7 @@ type T02 = string
|
||||
type T03 = int | string
|
||||
type T04 = []T03
|
||||
type T05 = [47]T03
|
||||
type T09 = map[string]string
|
||||
|
||||
interface T06 {
|
||||
a int
|
||||
@ -57,6 +58,8 @@ fn test_type_size() {
|
||||
assert sizeof(T07) == size07
|
||||
size08, _ := t.type_size(t.type_idxs['main.T08']!)
|
||||
assert sizeof(T08) == size08
|
||||
size09, _ := t.type_size(t.type_idxs['main.T09']!)
|
||||
assert sizeof(T09) == size09
|
||||
|
||||
println('done')
|
||||
}
|
||||
|
@ -1320,11 +1320,19 @@ pub fn (t &Table) type_size(typ Type) (int, int) {
|
||||
}
|
||||
// TODO: hardcoded:
|
||||
.map {
|
||||
size = if t.pointer_size == 8 { 120 } else { 80 }
|
||||
size = if t.pointer_size == 8 {
|
||||
$if new_int ? && x64 { 144 } $else { 120 }
|
||||
} else {
|
||||
80
|
||||
}
|
||||
align = t.pointer_size
|
||||
}
|
||||
.array {
|
||||
size = if t.pointer_size == 8 { 32 } else { 24 }
|
||||
size = if t.pointer_size == 8 {
|
||||
$if new_int ? && x64 { 48 } $else { 32 }
|
||||
} else {
|
||||
24
|
||||
}
|
||||
align = t.pointer_size
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user