mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
checker: do not allow nil sum types init
This commit is contained in:
60
vlib/builtin/linux_bare/builtin_bare.v
Normal file
60
vlib/builtin/linux_bare/builtin_bare.v
Normal file
@ -0,0 +1,60 @@
|
||||
module builtin
|
||||
|
||||
// called by the generated main/init
|
||||
fn init() {
|
||||
}
|
||||
|
||||
pub fn isnil(p voidptr) bool {
|
||||
return p == 0
|
||||
}
|
||||
|
||||
pub fn print(s string) {
|
||||
sys_write(1, s.str, u64(s.len))
|
||||
}
|
||||
|
||||
pub fn println(s string) {
|
||||
print(s)
|
||||
print('\n')
|
||||
}
|
||||
|
||||
pub fn panic(s string) {
|
||||
eprint('V panic: ')
|
||||
eprintln(s)
|
||||
sys_exit(1)
|
||||
}
|
||||
|
||||
// replaces panic when -debug arg is passed
|
||||
fn panic_debug(line_no int, file string, mod string, fn_name string, s string) {
|
||||
eprintln('================ V panic ================')
|
||||
eprint(' module: ')
|
||||
eprintln('mod')
|
||||
eprint(' function: ')
|
||||
eprint(fn_name)
|
||||
eprintln('()')
|
||||
eprintln(' file: ')
|
||||
eprintln(file)
|
||||
// println(' line: ${line_no}')
|
||||
eprint(' message: ')
|
||||
eprintln(s)
|
||||
eprintln('=========================================')
|
||||
sys_exit(1)
|
||||
}
|
||||
|
||||
pub fn eprint(s string) {
|
||||
if isnil(s.str) {
|
||||
panic('eprint(NIL)')
|
||||
}
|
||||
sys_write(2, s.str, u64(s.len))
|
||||
}
|
||||
|
||||
pub fn eprint_ln(s string) {
|
||||
eprint(s)
|
||||
eprint('\n')
|
||||
}
|
||||
|
||||
pub fn eprintln(s string) {
|
||||
if isnil(s.str) {
|
||||
panic('eprintln(NIL)')
|
||||
}
|
||||
eprint_ln(s)
|
||||
}
|
Reference in New Issue
Block a user