Skip to content

Commit 18cccb6

Browse files
committed
builtin: show non zero codes on bubbled error_with_code(msg,code) errors
1 parent 66a3cde commit 18cccb6

File tree

4 files changed

+33
-8
lines changed

4 files changed

+33
-8
lines changed

vlib/builtin/option.v

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ pub:
5555

5656
// msg returns the message of MessageError
5757
pub fn (err MessageError) msg() string {
58+
if err.code > 0 {
59+
return '$err.msg; code: $err.code'
60+
}
5861
return err.msg
5962
}
6063

vlib/os/signal_test.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ fn test_signal_opt_invalid_argument() {
2020
assert false
2121
}
2222
os.signal_opt(.kill, default_handler) or {
23-
assert err.msg() == 'Invalid argument'
23+
assert err.msg() == 'Invalid argument; code: 22'
2424
assert err.code() == 22
2525
}
2626
}

vlib/v/tests/option_test.v

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
fn opt_err_with_code() ?string {
2-
return error_with_code('hi', 137)
1+
// TODO: remove this after the deprecation period for `?Type` representing both Result and Option passes.
2+
fn opt_err_with_code(code int) ?string {
3+
return error_with_code('hi', code)
34
}
45

56
fn test_err_with_code() {
6-
if w := opt_err_with_code() {
7+
if w := opt_err_with_code(137) {
78
assert false
89
_ := w
910
} else {
10-
assert err.msg() == 'hi'
11+
assert err.msg() == 'hi; code: 137'
1112
assert err.code() == 137
1213
}
13-
v := opt_err_with_code() or {
14-
assert err.msg() == 'hi'
15-
assert err.code() == 137
14+
v := opt_err_with_code(56) or {
15+
assert err.msg() == 'hi; code: 56'
16+
assert err.code() == 56
1617
return
1718
}
1819
assert false

vlib/v/tests/results_test.v

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,24 @@ fn test_results_if_guard() {
9494
}
9595
assert false
9696
}
97+
98+
fn res_err_with_code(code int) !string {
99+
return error_with_code('hi', code)
100+
}
101+
102+
fn test_err_with_code() {
103+
if w := res_err_with_code(137) {
104+
assert false
105+
_ := w
106+
} else {
107+
assert err.msg() == 'hi; code: 137'
108+
assert err.code() == 137
109+
}
110+
v := res_err_with_code(56) or {
111+
assert err.msg() == 'hi; code: 56'
112+
assert err.code() == 56
113+
return
114+
}
115+
assert false
116+
_ := v
117+
}

0 commit comments

Comments
 (0)