fmt: add a space around single-line `unsafe` expressions (#7505)

pull/7525/head
spaceface 2020-12-23 19:13:42 +01:00 committed by GitHub
parent b27f5c378c
commit 214290d55b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 108 additions and 108 deletions

View File

@ -39,7 +39,7 @@ fn __new_array_with_default(mylen int, cap int, elm_size int, val voidptr) array
} }
if val != 0 { if val != 0 {
for i in 0 .. arr.len { for i in 0 .. arr.len {
unsafe {arr.set_unsafe(i, val)} unsafe { arr.set_unsafe(i, val) }
} }
} }
return arr return arr
@ -55,7 +55,7 @@ fn __new_array_with_array_default(mylen int, cap int, elm_size int, val array) a
} }
for i in 0 .. arr.len { for i in 0 .. arr.len {
val_clone := val.clone() val_clone := val.clone()
unsafe {arr.set_unsafe(i, &val_clone)} unsafe { arr.set_unsafe(i, &val_clone) }
} }
return arr return arr
} }
@ -70,7 +70,7 @@ fn new_array_from_c_array(len int, cap int, elm_size int, c_array voidptr) array
cap: cap_ cap: cap_
} }
// TODO Write all memory functions (like memcpy) in V // TODO Write all memory functions (like memcpy) in V
unsafe {C.memcpy(arr.data, c_array, len * elm_size)} unsafe { C.memcpy(arr.data, c_array, len * elm_size) }
return arr return arr
} }
@ -125,11 +125,11 @@ pub fn (a array) repeat(count int) array {
for i in 0 .. count { for i in 0 .. count {
if a.len > 0 && a.element_size == size_of_array { if a.len > 0 && a.element_size == size_of_array {
ary := array{} ary := array{}
unsafe {C.memcpy(&ary, a.data, size_of_array)} unsafe { C.memcpy(&ary, a.data, size_of_array) }
ary_clone := ary.clone() ary_clone := ary.clone()
unsafe {C.memcpy(arr.get_unsafe(i * a.len), &ary_clone, a.len * a.element_size)} unsafe { C.memcpy(arr.get_unsafe(i * a.len), &ary_clone, a.len * a.element_size) }
} else { } else {
unsafe {C.memcpy(arr.get_unsafe(i * a.len), byteptr(a.data), a.len * a.element_size)} unsafe { C.memcpy(arr.get_unsafe(i * a.len), byteptr(a.data), a.len * a.element_size) }
} }
} }
return arr return arr
@ -191,7 +191,7 @@ pub fn (mut a array) delete(i int) {
} }
// NB: if a is [12,34], a.len = 2, a.delete(0) // NB: if a is [12,34], a.len = 2, a.delete(0)
// should move (2-0-1) elements = 1 element (the 34) forward // should move (2-0-1) elements = 1 element (the 34) forward
unsafe {C.memmove(a.get_unsafe(i), a.get_unsafe(i + 1), (a.len - i - 1) * a.element_size)} unsafe { C.memmove(a.get_unsafe(i), a.get_unsafe(i + 1), (a.len - i - 1) * a.element_size) }
a.len-- a.len--
} }
@ -260,7 +260,7 @@ pub fn (mut a array) pop() voidptr {
} }
} }
new_len := a.len - 1 new_len := a.len - 1
last_elem := unsafe {byteptr(a.data) + (new_len) * a.element_size} last_elem := unsafe { byteptr(a.data) + (new_len) * a.element_size }
a.len = new_len a.len = new_len
// NB: a.cap is not changed here *on purpose*, so that // NB: a.cap is not changed here *on purpose*, so that
// further << ops on that array will be more efficient. // further << ops on that array will be more efficient.
@ -338,13 +338,13 @@ pub fn (a &array) clone() array {
if a.element_size == size_of_array { if a.element_size == size_of_array {
for i in 0 .. a.len { for i in 0 .. a.len {
ar := array{} ar := array{}
unsafe {C.memcpy(&ar, a.get_unsafe(i), size_of_array)} unsafe { C.memcpy(&ar, a.get_unsafe(i), size_of_array) }
ar_clone := ar.clone() ar_clone := ar.clone()
unsafe {arr.set_unsafe(i, &ar_clone)} unsafe { arr.set_unsafe(i, &ar_clone) }
} }
} else { } else {
if !isnil(a.data) { if !isnil(a.data) {
unsafe {C.memcpy(byteptr(arr.data), a.data, a.cap * a.element_size)} unsafe { C.memcpy(byteptr(arr.data), a.data, a.cap * a.element_size) }
} }
} }
return arr return arr
@ -381,7 +381,7 @@ fn (a &array) slice_clone(start int, _end int) array {
[inline] [inline]
[unsafe] [unsafe]
fn (mut a array) set_unsafe(i int, val voidptr) { fn (mut a array) set_unsafe(i int, val voidptr) {
unsafe {C.memcpy(byteptr(a.data) + a.element_size * i, val, a.element_size)} unsafe { C.memcpy(byteptr(a.data) + a.element_size * i, val, a.element_size) }
} }
// Private function. Used to implement assigment to the array element. // Private function. Used to implement assigment to the array element.
@ -391,12 +391,12 @@ fn (mut a array) set(i int, val voidptr) {
panic('array.set: index out of range (i == $i, a.len == $a.len)') panic('array.set: index out of range (i == $i, a.len == $a.len)')
} }
} }
unsafe {C.memcpy(byteptr(a.data) + a.element_size * i, val, a.element_size)} unsafe { C.memcpy(byteptr(a.data) + a.element_size * i, val, a.element_size) }
} }
fn (mut a array) push(val voidptr) { fn (mut a array) push(val voidptr) {
a.ensure_cap(a.len + 1) a.ensure_cap(a.len + 1)
unsafe {C.memmove(byteptr(a.data) + a.element_size * a.len, val, a.element_size)} unsafe { C.memmove(byteptr(a.data) + a.element_size * a.len, val, a.element_size) }
a.len++ a.len++
} }
@ -414,7 +414,7 @@ pub fn (mut a3 array) push_many(val voidptr, size int) {
} else { } else {
a3.ensure_cap(a3.len + size) a3.ensure_cap(a3.len + size)
if !isnil(a3.data) && !isnil(val) { if !isnil(a3.data) && !isnil(val) {
unsafe {C.memcpy(a3.get_unsafe(a3.len), val, a3.element_size * size)} unsafe { C.memcpy(a3.get_unsafe(a3.len), val, a3.element_size * size) }
} }
} }
a3.len += size a3.len += size
@ -449,7 +449,7 @@ pub fn (a array) reverse() array {
cap: a.cap cap: a.cap
} }
for i in 0 .. a.len { for i in 0 .. a.len {
unsafe {arr.set_unsafe(i, a.get_unsafe(a.len - 1 - i))} unsafe { arr.set_unsafe(i, a.get_unsafe(a.len - 1 - i)) }
} }
return arr return arr
} }
@ -514,7 +514,7 @@ pub fn copy(dst []byte, src []byte) int {
if dst.len > 0 && src.len > 0 { if dst.len > 0 && src.len > 0 {
mut min := 0 mut min := 0
min = if dst.len < src.len { dst.len } else { src.len } min = if dst.len < src.len { dst.len } else { src.len }
unsafe {C.memcpy(byteptr(dst.data), src[..min].data, dst.element_size * min)} unsafe { C.memcpy(byteptr(dst.data), src[..min].data, dst.element_size * min) }
return min return min
} }
return 0 return 0
@ -757,7 +757,7 @@ pub fn compare_f32(a &f32, b &f32) int {
pub fn (a array) pointers() []voidptr { pub fn (a array) pointers() []voidptr {
mut res := []voidptr{} mut res := []voidptr{}
for i in 0 .. a.len { for i in 0 .. a.len {
unsafe {res << a.get_unsafe(i)} unsafe { res << a.get_unsafe(i) }
} }
return res return res
} }
@ -777,5 +777,5 @@ pub fn (data voidptr) vbytes(len int) []byte {
// byteptr.vbytes() - makes a V []byte structure from a C style memory buffer. NB: the data is reused, NOT copied! // byteptr.vbytes() - makes a V []byte structure from a C style memory buffer. NB: the data is reused, NOT copied!
[unsafe] [unsafe]
pub fn (data byteptr) vbytes(len int) []byte { pub fn (data byteptr) vbytes(len int) []byte {
return unsafe {voidptr(data).vbytes(len)} return unsafe { voidptr(data).vbytes(len) }
} }

View File

@ -125,18 +125,18 @@ fn new_dense_array(key_bytes int, value_bytes int) DenseArray {
[inline] [inline]
fn (d &DenseArray) key(i int) voidptr { fn (d &DenseArray) key(i int) voidptr {
return unsafe {d.data + i * d.slot_bytes} return unsafe { d.data + i * d.slot_bytes }
} }
// for cgen // for cgen
[inline] [inline]
fn (d &DenseArray) value(i int) voidptr { fn (d &DenseArray) value(i int) voidptr {
return unsafe {d.data + i * d.slot_bytes + d.key_bytes} return unsafe { d.data + i * d.slot_bytes + d.key_bytes }
} }
[inline] [inline]
fn (d &DenseArray) has_index(i int) bool { fn (d &DenseArray) has_index(i int) bool {
return d.deletes == 0 || unsafe {d.all_deleted[i]} == 0 return d.deletes == 0 || unsafe { d.all_deleted[i] } == 0
} }
[inline] [inline]
@ -289,7 +289,7 @@ fn (m &map) free_key(pkey voidptr) {
fn (m &map) meta_less(_index u32, _metas u32) (u32, u32) { fn (m &map) meta_less(_index u32, _metas u32) (u32, u32) {
mut index := _index mut index := _index
mut meta := _metas mut meta := _metas
for meta < unsafe {m.metas[index]} { for meta < unsafe { m.metas[index] } {
index += 2 index += 2
meta += probe_inc meta += probe_inc
} }
@ -301,8 +301,8 @@ fn (mut m map) meta_greater(_index u32, _metas u32, kvi u32) {
mut meta := _metas mut meta := _metas
mut index := _index mut index := _index
mut kv_index := kvi mut kv_index := kvi
for unsafe {m.metas[index]} != 0 { for unsafe { m.metas[index] } != 0 {
if meta > unsafe {m.metas[index]} { if meta > unsafe { m.metas[index] } {
unsafe { unsafe {
tmp_meta := m.metas[index] tmp_meta := m.metas[index]
m.metas[index] = meta m.metas[index] = meta
@ -356,9 +356,9 @@ fn (mut m map) set_1(key voidptr, value voidptr) {
mut index, mut meta := m.key_to_index(key) mut index, mut meta := m.key_to_index(key)
index, meta = m.meta_less(index, meta) index, meta = m.meta_less(index, meta)
// While we might have a match // While we might have a match
for meta == unsafe {m.metas[index]} { for meta == unsafe { m.metas[index] } {
kv_index := int(unsafe {m.metas[index + 1]}) kv_index := int(unsafe { m.metas[index + 1] })
pkey := unsafe {m.key_values.key(kv_index)} pkey := unsafe { m.key_values.key(kv_index) }
if m.keys_eq(key, pkey) { if m.keys_eq(key, pkey) {
unsafe { unsafe {
pval := byteptr(pkey) + m.key_bytes pval := byteptr(pkey) + m.key_bytes
@ -405,7 +405,7 @@ fn (mut m map) rehash() {
if !m.key_values.has_index(i) { if !m.key_values.has_index(i) {
continue continue
} }
pkey := unsafe {m.key_values.key(i)} pkey := unsafe { m.key_values.key(i) }
mut index, mut meta := m.key_to_index(pkey) mut index, mut meta := m.key_to_index(pkey)
index, meta = m.meta_less(index, meta) index, meta = m.meta_less(index, meta)
m.meta_greater(index, meta, u32(i)) m.meta_greater(index, meta, u32(i))
@ -420,19 +420,19 @@ fn (mut m map) cached_rehash(old_cap u32) {
m.metas = &u32(vcalloc(metasize)) m.metas = &u32(vcalloc(metasize))
old_extra_metas := m.extra_metas old_extra_metas := m.extra_metas
for i := u32(0); i <= old_cap + old_extra_metas; i += 2 { for i := u32(0); i <= old_cap + old_extra_metas; i += 2 {
if unsafe {old_metas[i]} == 0 { if unsafe { old_metas[i] } == 0 {
continue continue
} }
old_meta := unsafe {old_metas[i]} old_meta := unsafe { old_metas[i] }
old_probe_count := ((old_meta >> hashbits) - 1) << 1 old_probe_count := ((old_meta >> hashbits) - 1) << 1
old_index := (i - old_probe_count) & (m.even_index >> 1) old_index := (i - old_probe_count) & (m.even_index >> 1)
mut index := (old_index | (old_meta << m.shift)) & m.even_index mut index := (old_index | (old_meta << m.shift)) & m.even_index
mut meta := (old_meta & hash_mask) | probe_inc mut meta := (old_meta & hash_mask) | probe_inc
index, meta = m.meta_less(index, meta) index, meta = m.meta_less(index, meta)
kv_index := unsafe {old_metas[i + 1]} kv_index := unsafe { old_metas[i + 1] }
m.meta_greater(index, meta, kv_index) m.meta_greater(index, meta, kv_index)
} }
unsafe {free(old_metas)} unsafe { free(old_metas) }
} }
fn (mut m map) get_and_set(key string, zero voidptr) voidptr { fn (mut m map) get_and_set(key string, zero voidptr) voidptr {
@ -446,16 +446,16 @@ fn (mut m map) get_and_set_1(key voidptr, zero voidptr) voidptr {
for { for {
mut index, mut meta := m.key_to_index(key) mut index, mut meta := m.key_to_index(key)
for { for {
if meta == unsafe {m.metas[index]} { if meta == unsafe { m.metas[index] } {
kv_index := int(unsafe {m.metas[index + 1]}) kv_index := int(unsafe { m.metas[index + 1] })
pkey := unsafe {m.key_values.key(kv_index)} pkey := unsafe { m.key_values.key(kv_index) }
if m.keys_eq(key, pkey) { if m.keys_eq(key, pkey) {
return unsafe {byteptr(pkey) + m.key_values.key_bytes} return unsafe { byteptr(pkey) + m.key_values.key_bytes }
} }
} }
index += 2 index += 2
meta += probe_inc meta += probe_inc
if meta > unsafe {m.metas[index]} { if meta > unsafe { m.metas[index] } {
break break
} }
} }
@ -476,16 +476,16 @@ fn (m map) get(key string, zero voidptr) voidptr {
fn (m &map) get_1(key voidptr, zero voidptr) voidptr { fn (m &map) get_1(key voidptr, zero voidptr) voidptr {
mut index, mut meta := m.key_to_index(key) mut index, mut meta := m.key_to_index(key)
for { for {
if meta == unsafe {m.metas[index]} { if meta == unsafe { m.metas[index] } {
kv_index := int(unsafe {m.metas[index + 1]}) kv_index := int(unsafe { m.metas[index + 1] })
pkey := unsafe {m.key_values.key(kv_index)} pkey := unsafe { m.key_values.key(kv_index) }
if m.keys_eq(key, pkey) { if m.keys_eq(key, pkey) {
return unsafe {byteptr(pkey) + m.key_values.key_bytes} return unsafe { byteptr(pkey) + m.key_values.key_bytes }
} }
} }
index += 2 index += 2
meta += probe_inc meta += probe_inc
if meta > unsafe {m.metas[index]} { if meta > unsafe { m.metas[index] } {
break break
} }
} }
@ -500,16 +500,16 @@ fn (m map) exists(key string) bool {
fn (m &map) exists_1(key voidptr) bool { fn (m &map) exists_1(key voidptr) bool {
mut index, mut meta := m.key_to_index(key) mut index, mut meta := m.key_to_index(key)
for { for {
if meta == unsafe {m.metas[index]} { if meta == unsafe { m.metas[index] } {
kv_index := int(unsafe {m.metas[index + 1]}) kv_index := int(unsafe { m.metas[index + 1] })
pkey := unsafe {m.key_values.key(kv_index)} pkey := unsafe { m.key_values.key(kv_index) }
if m.keys_eq(key, pkey) { if m.keys_eq(key, pkey) {
return true return true
} }
} }
index += 2 index += 2
meta += probe_inc meta += probe_inc
if meta > unsafe {m.metas[index]} { if meta > unsafe { m.metas[index] } {
break break
} }
} }
@ -536,11 +536,11 @@ pub fn (mut m map) delete_1(key voidptr) {
mut index, mut meta := m.key_to_index(key) mut index, mut meta := m.key_to_index(key)
index, meta = m.meta_less(index, meta) index, meta = m.meta_less(index, meta)
// Perform backwards shifting // Perform backwards shifting
for meta == unsafe {m.metas[index]} { for meta == unsafe { m.metas[index] } {
kv_index := int(unsafe {m.metas[index + 1]}) kv_index := int(unsafe { m.metas[index + 1] })
pkey := unsafe {m.key_values.key(kv_index)} pkey := unsafe { m.key_values.key(kv_index) }
if m.keys_eq(key, pkey) { if m.keys_eq(key, pkey) {
for (unsafe {m.metas[index + 2]} >> hashbits) > 1 { for (unsafe { m.metas[index + 2] } >> hashbits) > 1 {
unsafe { unsafe {
m.metas[index] = m.metas[index + 2] - probe_inc m.metas[index] = m.metas[index + 2] - probe_inc
m.metas[index + 1] = m.metas[index + 3] m.metas[index + 1] = m.metas[index + 3]
@ -573,7 +573,7 @@ pub fn (mut m map) delete_1(key voidptr) {
// bootstrap // bootstrap
pub fn (m &map) keys() []string { pub fn (m &map) keys() []string {
mut keys := []string{len: m.len} mut keys := []string{len: m.len}
mut item := unsafe {byteptr(keys.data)} mut item := unsafe { byteptr(keys.data) }
for i := 0; i < m.key_values.len; i++ { for i := 0; i < m.key_values.len; i++ {
if !m.key_values.has_index(i) { if !m.key_values.has_index(i) {
continue continue
@ -590,7 +590,7 @@ pub fn (m &map) keys() []string {
// Returns all keys in the map. // Returns all keys in the map.
pub fn (m &map) keys_1() array { pub fn (m &map) keys_1() array {
mut keys := __new_array(m.len, 0, m.key_bytes) mut keys := __new_array(m.len, 0, m.key_bytes)
mut item := unsafe {byteptr(keys.data)} mut item := unsafe { byteptr(keys.data) }
if m.key_values.deletes == 0 { if m.key_values.deletes == 0 {
for i := 0; i < m.key_values.len; i++ { for i := 0; i < m.key_values.len; i++ {
unsafe { unsafe {
@ -645,18 +645,18 @@ pub fn (m &map) clone() map {
even_index: m.even_index even_index: m.even_index
cached_hashbits: m.cached_hashbits cached_hashbits: m.cached_hashbits
shift: m.shift shift: m.shift
key_values: unsafe {m.key_values.clone()} key_values: unsafe { m.key_values.clone() }
metas: &u32(malloc(metasize)) metas: &u32(malloc(metasize))
extra_metas: m.extra_metas extra_metas: m.extra_metas
len: m.len len: m.len
} }
unsafe {C.memcpy(res.metas, m.metas, metasize)} unsafe { C.memcpy(res.metas, m.metas, metasize) }
return res return res
} }
[unsafe] [unsafe]
pub fn (m &map) free() { pub fn (m &map) free() {
unsafe {free(m.metas)} unsafe { free(m.metas) }
if m.key_values.deletes == 0 { if m.key_values.deletes == 0 {
for i := 0; i < m.key_values.len; i++ { for i := 0; i < m.key_values.len; i++ {
unsafe { unsafe {
@ -674,7 +674,7 @@ pub fn (m &map) free() {
m.free_key(pkey) m.free_key(pkey)
} }
} }
unsafe {free(m.key_values.all_deleted)} unsafe { free(m.key_values.all_deleted) }
} }
unsafe {free(m.key_values.data)} unsafe { free(m.key_values.data) }
} }

View File

@ -142,7 +142,7 @@ fn gg_init_sokol_window(user_data voidptr) {
} }
// //
mut pipdesc := C.sg_pipeline_desc{} mut pipdesc := C.sg_pipeline_desc{}
unsafe {C.memset(&pipdesc, 0, sizeof(pipdesc))} unsafe { C.memset(&pipdesc, 0, sizeof(pipdesc)) }
pipdesc.blend.enabled = true pipdesc.blend.enabled = true
pipdesc.blend.src_factor_rgb = C.SG_BLENDFACTOR_SRC_ALPHA pipdesc.blend.src_factor_rgb = C.SG_BLENDFACTOR_SRC_ALPHA
pipdesc.blend.dst_factor_rgb = C.SG_BLENDFACTOR_ONE_MINUS_SRC_ALPHA pipdesc.blend.dst_factor_rgb = C.SG_BLENDFACTOR_ONE_MINUS_SRC_ALPHA

View File

@ -82,8 +82,8 @@ pub fn environ() map[string]string {
C.FreeEnvironmentStringsW(estrings) C.FreeEnvironmentStringsW(estrings)
} $else { } $else {
e := &charptr(C.environ) e := &charptr(C.environ)
for i := 0; !isnil(unsafe {e[i]}); i++ { for i := 0; !isnil(unsafe { e[i] }); i++ {
eline := unsafe {cstring_to_vstring(byteptr(e[i]))} eline := unsafe { cstring_to_vstring(byteptr(e[i])) }
eq_index := eline.index_byte(`=`) eq_index := eline.index_byte(`=`)
if eq_index > 0 { if eq_index > 0 {
res[eline[0..eq_index]] = eline[eq_index + 1..] res[eline[0..eq_index]] = eline[eq_index + 1..]

View File

@ -14,7 +14,7 @@ pub fn fd_write(fd int, s string) {
return return
} }
remaining = remaining - written remaining = remaining - written
sp = unsafe {sp + written} sp = unsafe { sp + written }
} }
} }

View File

@ -32,7 +32,7 @@ pub:
// it supports windows for regular files but it doesn't matter if you use owner, group or others when checking permissions on windows // it supports windows for regular files but it doesn't matter if you use owner, group or others when checking permissions on windows
pub fn inode(path string) FileMode { pub fn inode(path string) FileMode {
mut attr := C.stat{} mut attr := C.stat{}
unsafe {C.stat(charptr(path.str), &attr)} unsafe { C.stat(charptr(path.str), &attr) }
mut typ := FileType.regular mut typ := FileType.regular
if attr.st_mode & u32(C.S_IFMT) == u32(C.S_IFDIR) { if attr.st_mode & u32(C.S_IFMT) == u32(C.S_IFDIR) {
typ = .directory typ = .directory

View File

@ -160,7 +160,7 @@ pub fn cp(src string, dst string) ? {
} }
} }
from_attr := C.stat{} from_attr := C.stat{}
unsafe {C.stat(charptr(src.str), &from_attr)} unsafe { C.stat(charptr(src.str), &from_attr) }
if C.chmod(charptr(dst.str), from_attr.st_mode) < 0 { if C.chmod(charptr(dst.str), from_attr.st_mode) < 0 {
return error_with_code('failed to set permissions for $dst', int(-1)) return error_with_code('failed to set permissions for $dst', int(-1))
} }
@ -580,7 +580,7 @@ pub fn executable() string {
eprintln('os.executable() failed at reading /proc/self/exe to get exe path') eprintln('os.executable() failed at reading /proc/self/exe to get exe path')
return executable_fallback() return executable_fallback()
} }
return unsafe {result.vstring()} return unsafe { result.vstring() }
} }
$if windows { $if windows {
max := 512 max := 512
@ -617,14 +617,14 @@ pub fn executable() string {
eprintln('os.executable() failed at calling proc_pidpath with pid: $pid . proc_pidpath returned $ret ') eprintln('os.executable() failed at calling proc_pidpath with pid: $pid . proc_pidpath returned $ret ')
return executable_fallback() return executable_fallback()
} }
return unsafe {result.vstring()} return unsafe { result.vstring() }
} }
$if freebsd { $if freebsd {
mut result := vcalloc(max_path_len) mut result := vcalloc(max_path_len)
mib := [1 /* CTL_KERN */, 14 /* KERN_PROC */, 12 /* KERN_PROC_PATHNAME */, -1] mib := [1 /* CTL_KERN */, 14 /* KERN_PROC */, 12 /* KERN_PROC_PATHNAME */, -1]
size := max_path_len size := max_path_len
unsafe {C.sysctl(mib.data, 4, result, &size, 0, 0)} unsafe { C.sysctl(mib.data, 4, result, &size, 0, 0) }
return unsafe {result.vstring()} return unsafe { result.vstring() }
} }
// "Sadly there is no way to get the full path of the executed file in OpenBSD." // "Sadly there is no way to get the full path of the executed file in OpenBSD."
$if openbsd { $if openbsd {
@ -640,7 +640,7 @@ pub fn executable() string {
eprintln('os.executable() failed at reading /proc/curproc/exe to get exe path') eprintln('os.executable() failed at reading /proc/curproc/exe to get exe path')
return executable_fallback() return executable_fallback()
} }
return unsafe {result.vstring_with_len(count)} return unsafe { result.vstring_with_len(count) }
} }
$if dragonfly { $if dragonfly {
mut result := vcalloc(max_path_len) mut result := vcalloc(max_path_len)
@ -649,7 +649,7 @@ pub fn executable() string {
eprintln('os.executable() failed at reading /proc/curproc/file to get exe path') eprintln('os.executable() failed at reading /proc/curproc/file to get exe path')
return executable_fallback() return executable_fallback()
} }
return unsafe {result.vstring_with_len(count)} return unsafe { result.vstring_with_len(count) }
} }
return executable_fallback() return executable_fallback()
} }
@ -668,7 +668,7 @@ pub fn is_dir(path string) bool {
return false return false
} $else { } $else {
statbuf := C.stat{} statbuf := C.stat{}
if unsafe {C.stat(charptr(path.str), &statbuf)} != 0 { if unsafe { C.stat(charptr(path.str), &statbuf) } != 0 {
return false return false
} }
// ref: https://code.woboq.org/gcc/include/sys/stat.h.html // ref: https://code.woboq.org/gcc/include/sys/stat.h.html
@ -713,7 +713,7 @@ pub fn getwd() string {
if C.getcwd(charptr(buf), 512) == 0 { if C.getcwd(charptr(buf), 512) == 0 {
return '' return ''
} }
return unsafe {buf.vstring()} return unsafe { buf.vstring() }
} }
} }
@ -736,7 +736,7 @@ pub fn real_path(fpath string) string {
return fpath return fpath
} }
} }
res := unsafe {fullpath.vstring()} res := unsafe { fullpath.vstring() }
return normalize_drive_letter(res) return normalize_drive_letter(res)
} }
@ -759,7 +759,7 @@ fn normalize_drive_letter(path string) string {
// signal will assign `handler` callback to be called when `signum` signal is recieved. // signal will assign `handler` callback to be called when `signum` signal is recieved.
pub fn signal(signum int, handler voidptr) { pub fn signal(signum int, handler voidptr) {
unsafe {C.signal(signum, handler)} unsafe { C.signal(signum, handler) }
} }
// fork will fork the current system process and return the pid of the fork. // fork will fork the current system process and return the pid of the fork.
@ -791,7 +791,7 @@ pub fn wait() int {
pub fn file_last_mod_unix(path string) int { pub fn file_last_mod_unix(path string) int {
attr := C.stat{} attr := C.stat{}
// # struct stat attr; // # struct stat attr;
unsafe {C.stat(charptr(path.str), &attr)} unsafe { C.stat(charptr(path.str), &attr) }
// # stat(path.str, &attr); // # stat(path.str, &attr);
return attr.st_mtime return attr.st_mtime
// # return attr.st_mtime ; // # return attr.st_mtime ;

View File

@ -52,7 +52,7 @@ fn init_os_args(argc int, argv &&byte) []string {
// mut args := []string{len:argc} // mut args := []string{len:argc}
for i in 0 .. argc { for i in 0 .. argc {
// args [i] = argv[i].vstring() // args [i] = argv[i].vstring()
unsafe {args << byteptr(argv[i]).vstring()} unsafe { args << byteptr(argv[i]).vstring() }
} }
return args return args
} }
@ -122,7 +122,7 @@ pub fn mkdir(path string) ?bool {
} }
} }
*/ */
r := unsafe {C.mkdir(charptr(apath.str), 511)} r := unsafe { C.mkdir(charptr(apath.str), 511) }
if r == -1 { if r == -1 {
return error(posix_get_error_msg(C.errno)) return error(posix_get_error_msg(C.errno))
} }

View File

@ -78,7 +78,7 @@ mut:
fn init_os_args_wide(argc int, argv &byteptr) []string { fn init_os_args_wide(argc int, argv &byteptr) []string {
mut args := []string{} mut args := []string{}
for i in 0 .. argc { for i in 0 .. argc {
args << string_from_wide(unsafe {&u16(argv[i])}) args << string_from_wide(unsafe { &u16(argv[i]) })
} }
return args return args
} }

View File

@ -37,7 +37,7 @@ pub fn (mut b Builder) writeln(s string) {
} }
pub fn (b Builder) str() string { pub fn (b Builder) str() string {
return unsafe {byteptr(b.buf.data).vstring_with_len(b.len)} return unsafe { byteptr(b.buf.data).vstring_with_len(b.len) }
} }
pub fn (mut b Builder) cut(n int) { pub fn (mut b Builder) cut(n int) {

View File

@ -137,7 +137,7 @@ pub fn (mut b Builder) str() string {
// manually free the contents of the buffer // manually free the contents of the buffer
pub fn (mut b Builder) free() { pub fn (mut b Builder) free() {
unsafe {free(b.buf.data)} unsafe { free(b.buf.data) }
// b.buf = []byte{cap: b.initial_size} // b.buf = []byte{cap: b.initial_size}
b.len = 0 b.len = 0
b.str_calls = 0 b.str_calls = 0

View File

@ -5,12 +5,12 @@ pub fn repeat(c byte, n int) string {
if n <= 0 { if n <= 0 {
return '' return ''
} }
mut bytes := unsafe {malloc(n + 1)} mut bytes := unsafe { malloc(n + 1) }
unsafe { unsafe {
C.memset(bytes, c, n) C.memset(bytes, c, n)
bytes[n] = `0` bytes[n] = `0`
} }
return unsafe {bytes.vstring_with_len(n)} return unsafe { bytes.vstring_with_len(n) }
} }
// strings.repeat_string - gives you `n` repetitions of the substring `s` // strings.repeat_string - gives you `n` repetitions of the substring `s`
@ -22,7 +22,7 @@ pub fn repeat_string(s string, n int) string {
} }
slen := s.len slen := s.len
blen := slen * n blen := slen * n
mut bytes := unsafe {malloc(blen + 1)} mut bytes := unsafe { malloc(blen + 1) }
for bi in 0 .. n { for bi in 0 .. n {
bislen := bi * slen bislen := bi * slen
for si in 0 .. slen { for si in 0 .. slen {
@ -34,5 +34,5 @@ pub fn repeat_string(s string, n int) string {
unsafe { unsafe {
bytes[blen] = `0` bytes[blen] = `0`
} }
return unsafe {bytes.vstring_with_len(blen)} return unsafe { bytes.vstring_with_len(blen) }
} }

View File

@ -39,8 +39,8 @@ pub fn parse_rfc2822(s string) ?Time {
unsafe { unsafe {
tmstr = malloc(s.len * 2) tmstr = malloc(s.len * 2)
} }
count := unsafe {C.snprintf(charptr(tmstr), (s.len * 2), '%s-%02d-%s %s', fields[3].str, count := unsafe { C.snprintf(charptr(tmstr), (s.len * 2), '%s-%02d-%s %s', fields[3].str,
mm, fields[1].str, fields[4].str)} mm, fields[1].str, fields[4].str) }
return parse(tos(tmstr, count)) return parse(tos(tmstr, count))
} }
@ -51,7 +51,7 @@ const (
fn parse_iso8601_date(s string) ?(int, int, int) { fn parse_iso8601_date(s string) ?(int, int, int) {
year, month, day, dummy := 0, 0, 0, byte(0) year, month, day, dummy := 0, 0, 0, byte(0)
count := unsafe {C.sscanf(charptr(s.str), '%4d-%2d-%2d%c', &year, &month, &day, &dummy)} count := unsafe { C.sscanf(charptr(s.str), '%4d-%2d-%2d%c', &year, &month, &day, &dummy) }
if count != 3 { if count != 3 {
return err_invalid_8601 return err_invalid_8601
} }
@ -66,12 +66,12 @@ fn parse_iso8601_time(s string) ?(int, int, int, int, i64, bool) {
plus_min_z := `a` plus_min_z := `a`
offset_hour := 0 offset_hour := 0
offset_minute := 0 offset_minute := 0
mut count := unsafe {C.sscanf(charptr(s.str), '%2d:%2d:%2d.%6d%c%2d:%2d', &hour, &minute, mut count := unsafe { C.sscanf(charptr(s.str), '%2d:%2d:%2d.%6d%c%2d:%2d', &hour,
&second, &microsecond, charptr(&plus_min_z), &offset_hour, &offset_minute)} &minute, &second, &microsecond, charptr(&plus_min_z), &offset_hour, &offset_minute) }
// Missread microsecond ([Sec Hour Minute].len == 3 < 4) // Missread microsecond ([Sec Hour Minute].len == 3 < 4)
if count < 4 { if count < 4 {
count = unsafe {C.sscanf(charptr(s.str), '%2d:%2d:%2d%c%2d:%2d', &hour, &minute, count = unsafe { C.sscanf(charptr(s.str), '%2d:%2d:%2d%c%2d:%2d', &hour, &minute,
&second, charptr(&plus_min_z), &offset_hour, &offset_minute)} &second, charptr(&plus_min_z), &offset_hour, &offset_minute) }
count++ // Increment count because skipped microsecond count++ // Increment count because skipped microsecond
} }
if count < 4 { if count < 4 {

View File

@ -1209,12 +1209,12 @@ pub fn (stmt Stmt) position() token.Position {
// field table.Field.default_expr, which should be ast.Expr // field table.Field.default_expr, which should be ast.Expr
pub fn fe2ex(x table.FExpr) Expr { pub fn fe2ex(x table.FExpr) Expr {
res := Expr{} res := Expr{}
unsafe {C.memcpy(&res, &x, sizeof(Expr))} unsafe { C.memcpy(&res, &x, sizeof(Expr)) }
return res return res
} }
pub fn ex2fe(x Expr) table.FExpr { pub fn ex2fe(x Expr) table.FExpr {
res := table.FExpr{} res := table.FExpr{}
unsafe {C.memcpy(&res, &x, sizeof(table.FExpr))} unsafe { C.memcpy(&res, &x, sizeof(table.FExpr)) }
return res return res
} }

View File

@ -61,7 +61,7 @@ pub fn compile(command string, pref &pref.Preferences) {
} }
b.exit_on_invalid_syntax() b.exit_on_invalid_syntax()
// running does not require the parsers anymore // running does not require the parsers anymore
unsafe {b.myfree()} unsafe { b.myfree() }
if pref.is_test || pref.is_run { if pref.is_test || pref.is_run {
b.run_compiled_executable_and_exit() b.run_compiled_executable_and_exit()
} }
@ -72,7 +72,7 @@ pub fn compile(command string, pref &pref.Preferences) {
fn (mut b Builder) myfree() { fn (mut b Builder) myfree() {
// for file in b.parsed_files { // for file in b.parsed_files {
// } // }
unsafe {b.parsed_files.free()} unsafe { b.parsed_files.free() }
} }
fn (b &Builder) exit_on_invalid_syntax() { fn (b &Builder) exit_on_invalid_syntax() {

View File

@ -8,7 +8,7 @@ import v.table
// generic struct instantiations to concrete types // generic struct instantiations to concrete types
pub fn (b &Builder) generic_struct_insts_to_concrete() { pub fn (b &Builder) generic_struct_insts_to_concrete() {
for idx, _ in b.table.types { for idx, _ in b.table.types {
mut typ := unsafe {&b.table.types[idx]} mut typ := unsafe { &b.table.types[idx] }
if typ.kind == .generic_struct_inst { if typ.kind == .generic_struct_inst {
info := typ.info as table.GenericStructInst info := typ.info as table.GenericStructInst
parent := b.table.types[info.parent_idx] parent := b.table.types[info.parent_idx]

View File

@ -135,7 +135,7 @@ pub fn (mut c Checker) check_files(ast_files []ast.File) {
mut has_main_fn := false mut has_main_fn := false
mut files_from_main_module := []&ast.File{} mut files_from_main_module := []&ast.File{}
for i in 0 .. ast_files.len { for i in 0 .. ast_files.len {
file := unsafe {&ast_files[i]} file := unsafe { &ast_files[i] }
c.timers.start('checker_check $file.path') c.timers.start('checker_check $file.path')
c.check(file) c.check(file)
if file.mod.name == 'main' { if file.mod.name == 'main' {
@ -167,7 +167,7 @@ pub fn (mut c Checker) check_files(ast_files []ast.File) {
// checked, to eunsure all generic calls are processed as this information // checked, to eunsure all generic calls are processed as this information
// is needed when the generic type is auto inferred from the call argument // is needed when the generic type is auto inferred from the call argument
for i in 0 .. ast_files.len { for i in 0 .. ast_files.len {
file := unsafe {&ast_files[i]} file := unsafe { &ast_files[i] }
if file.generic_fns.len > 0 { if file.generic_fns.len > 0 {
c.file = file c.file = file
c.mod = file.mod.name c.mod = file.mod.name

View File

@ -1111,9 +1111,9 @@ pub fn (mut f Fmt) expr(node ast.Expr) {
f.write(')') f.write(')')
} }
ast.UnsafeExpr { ast.UnsafeExpr {
f.write('unsafe {') f.write('unsafe { ')
f.expr(node.expr) f.expr(node.expr)
f.write('}') f.write(' }')
} }
} }
} }

View File

@ -608,7 +608,7 @@ typedef struct {
for typ in g.table.types { for typ in g.table.types {
match typ.kind { match typ.kind {
.alias { .alias {
parent := unsafe {&g.table.types[typ.parent_idx]} parent := unsafe { &g.table.types[typ.parent_idx] }
is_c_parent := parent.name.len > 2 && parent.name[0] == `C` && parent.name[1] == `.` is_c_parent := parent.name.len > 2 && parent.name[0] == `C` && parent.name[1] == `.`
parent_styp := if is_c_parent { 'struct ' + parent.cname[3..] } else { parent.cname } parent_styp := if is_c_parent { 'struct ' + parent.cname[3..] } else { parent.cname }
g.type_definitions.writeln('typedef $parent_styp $typ.cname;') g.type_definitions.writeln('typedef $parent_styp $typ.cname;')

View File

@ -626,7 +626,7 @@ fn (mut g Gen) stmt(node ast.Stmt) {
if word.len != 2 { if word.len != 2 {
verror('opcodes format: xx xx xx xx') verror('opcodes format: xx xx xx xx')
} }
b := unsafe {C.strtol(charptr(word.str), 0, 16)} b := unsafe { C.strtol(charptr(word.str), 0, 16) }
// b := word.byte() // b := word.byte()
// println('"$word" $b') // println('"$word" $b')
g.write8(b) g.write8(b)

View File

@ -220,7 +220,7 @@ pub fn (t &Table) type_find_method(s &TypeSymbol, name string) ?Fn {
if ts.parent_idx == 0 { if ts.parent_idx == 0 {
break break
} }
ts = unsafe {&t.types[ts.parent_idx]} ts = unsafe { &t.types[ts.parent_idx] }
} }
return none return none
} }
@ -277,7 +277,7 @@ pub fn (t &Table) struct_find_field(s &TypeSymbol, name string) ?Field {
if ts.parent_idx == 0 { if ts.parent_idx == 0 {
break break
} }
ts = unsafe {&t.types[ts.parent_idx]} ts = unsafe { &t.types[ts.parent_idx] }
} }
return none return none
} }
@ -301,7 +301,7 @@ pub fn (t &Table) get_type_symbol(typ Type) &TypeSymbol {
// println('get_type_symbol $typ') // println('get_type_symbol $typ')
idx := typ.idx() idx := typ.idx()
if idx > 0 { if idx > 0 {
return unsafe {&t.types[idx]} return unsafe { &t.types[idx] }
} }
// this should never happen // this should never happen
panic('get_type_symbol: invalid type (typ=$typ idx=$idx). Compiler bug. This should never happen. Please create a GitHub issue. panic('get_type_symbol: invalid type (typ=$typ idx=$idx). Compiler bug. This should never happen. Please create a GitHub issue.
@ -318,7 +318,7 @@ pub fn (t &Table) get_final_type_symbol(typ Type) &TypeSymbol {
alias_info := current_type.info as Alias alias_info := current_type.info as Alias
return t.get_final_type_symbol(alias_info.parent_type) return t.get_final_type_symbol(alias_info.parent_type)
} }
return unsafe {&t.types[idx]} return unsafe { &t.types[idx] }
} }
// this should never happen // this should never happen
panic('get_final_type_symbol: invalid type (typ=$typ idx=$idx). Compiler bug. This should never happen. Please create a GitHub issue.') panic('get_final_type_symbol: invalid type (typ=$typ idx=$idx). Compiler bug. This should never happen. Please create a GitHub issue.')

View File

@ -28,7 +28,7 @@ pub const (
pub fn vhash() string { pub fn vhash() string {
mut buf := [50]byte{} mut buf := [50]byte{}
buf[0] = 0 buf[0] = 0
unsafe {C.snprintf(charptr(buf), 50, '%s', C.V_COMMIT_HASH)} unsafe { C.snprintf(charptr(buf), 50, '%s', C.V_COMMIT_HASH) }
return tos_clone(buf) return tos_clone(buf)
} }
@ -94,7 +94,7 @@ pub fn githash(should_get_from_filesystem bool) string {
} }
mut buf := [50]byte{} mut buf := [50]byte{}
buf[0] = 0 buf[0] = 0
unsafe {C.snprintf(charptr(buf), 50, '%s', C.V_CURRENT_COMMIT_HASH)} unsafe { C.snprintf(charptr(buf), 50, '%s', C.V_CURRENT_COMMIT_HASH) }
return tos_clone(buf) return tos_clone(buf)
} }