builtin: add panic_optional_not_set and use it in cgen for fncall()? in main
parent
999b4a47c1
commit
f8f74d8587
|
@ -47,6 +47,10 @@ fn panic_debug(line_no int, file string, mod string, fn_name string, s string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn panic_optional_not_set(s string) {
|
||||||
|
panic('optional not set ($s)')
|
||||||
|
}
|
||||||
|
|
||||||
// panic prints a nice error message, then exits the process with exit code of 1.
|
// panic prints a nice error message, then exits the process with exit code of 1.
|
||||||
// It also shows a backtrace on most platforms.
|
// It also shows a backtrace on most platforms.
|
||||||
pub fn panic(s string) {
|
pub fn panic(s string) {
|
||||||
|
|
|
@ -5570,7 +5570,7 @@ fn (mut g Gen) or_block(var_name string, or_block ast.OrExpr, return_type table.
|
||||||
paline, pafile, pamod, pafn := g.panic_debug_info(or_block.pos)
|
paline, pafile, pamod, pafn := g.panic_debug_info(or_block.pos)
|
||||||
g.writeln('panic_debug($paline, tos3("$pafile"), tos3("$pamod"), tos3("$pafn"), *${cvar_name}.err.msg );')
|
g.writeln('panic_debug($paline, tos3("$pafile"), tos3("$pamod"), tos3("$pafn"), *${cvar_name}.err.msg );')
|
||||||
} else {
|
} else {
|
||||||
g.writeln('\tv_panic(_STR("optional not set (%.*s\\000)", 2, ${cvar_name}.err.msg));')
|
g.writeln('\tpanic_optional_not_set(*${cvar_name}.err.msg);')
|
||||||
}
|
}
|
||||||
} else if !isnil(g.fn_decl) && g.fn_decl.is_test {
|
} else if !isnil(g.fn_decl) && g.fn_decl.is_test {
|
||||||
g.gen_failing_error_propagation_for_test_fn(or_block, cvar_name)
|
g.gen_failing_error_propagation_for_test_fn(or_block, cvar_name)
|
||||||
|
|
|
@ -137,6 +137,7 @@ pub fn mark_used(mut the_table table.Table, pref &pref.Preferences, ast_files []
|
||||||
if pref.is_debug {
|
if pref.is_debug {
|
||||||
all_fn_root_names << 'panic_debug'
|
all_fn_root_names << 'panic_debug'
|
||||||
}
|
}
|
||||||
|
all_fn_root_names << 'panic_optional_not_set'
|
||||||
if pref.is_test {
|
if pref.is_test {
|
||||||
all_fn_root_names << 'main.cb_assertion_ok'
|
all_fn_root_names << 'main.cb_assertion_ok'
|
||||||
all_fn_root_names << 'main.cb_assertion_failed'
|
all_fn_root_names << 'main.cb_assertion_failed'
|
||||||
|
|
Loading…
Reference in New Issue