Skip to content

Commit a16d1a5

Browse files
committed
feat!: using the new type error message generation: throw instead of calling an helper function
1 parent f2463ce commit a16d1a5

File tree

6 files changed

+35
-33
lines changed

6 files changed

+35
-33
lines changed

draft/database/src/sqlite3.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Database
77
Value database_sqlite_open(std::vector<Value>& args, VM* vm [[maybe_unused]])
88
{
99
if (!types::check(args, ValueType::String))
10-
types::generateError(
10+
throw types::TypeCheckingError(
1111
"database:sqlite:open",
1212
{ { types::Contract { { types::Typedef("database_filename", ValueType::String) } } } },
1313
args);
@@ -24,7 +24,7 @@ namespace Database
2424
Value database_sqlite_close(std::vector<Value>& args, VM* vm [[maybe_unused]])
2525
{
2626
if (!types::check(args, ValueType::User) || !args[0].usertype().is<sqlite3>())
27-
types::generateError(
27+
throw types::TypeCheckingError(
2828
"database:sqlite:close",
2929
{ { types::Contract { { types::Typedef("database", ValueType::User) } } } },
3030
args);
@@ -36,7 +36,7 @@ namespace Database
3636
Value database_sqlite_exec(std::vector<Value>& args, VM* vm [[maybe_unused]])
3737
{
3838
if (!types::check(args, ValueType::User, ValueType::String) || !args[0].usertype().is<sqlite3>())
39-
types::generateError(
39+
throw types::TypeCheckingError(
4040
"database:sqlite:exec",
4141
{ { types::Contract { { types::Typedef("database", ValueType::User),
4242
types::Typedef("sql", ValueType::String) } } } },
@@ -61,7 +61,7 @@ namespace Database
6161
Value database_sqlite_exec_with_callback(std::vector<Value>& args, VM* vm [[maybe_unused]])
6262
{
6363
if (args.size() != 3 || args[0].valueType() != ValueType::User || !args[0].usertype().is<sqlite3>() || args[1].valueType() != ValueType::String || !args[2].isFunction())
64-
types::generateError(
64+
throw types::TypeCheckingError(
6565
"database:sqlite:exec_with_callback",
6666
{ { types::Contract { { types::Typedef("database", ValueType::User),
6767
types::Typedef("sql", ValueType::String),
@@ -111,7 +111,7 @@ namespace Database
111111
Value database_sqlite_last_insert_row_id(std::vector<Value>& args, VM* vm [[maybe_unused]])
112112
{
113113
if (!types::check(args, ValueType::User) || !args[0].usertype().is<sqlite3>())
114-
types::generateError(
114+
throw types::TypeCheckingError(
115115
"database:sqlite:last_insert_row_id",
116116
{ { types::Contract { { types::Typedef("database", ValueType::User) } } } },
117117
args);

draft/http/src/client.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Value http_create_headers(std::vector<Value>& n, VM* vm [[maybe_unused]])
2929
Value http_create_client(std::vector<Value>& n, VM* vm [[maybe_unused]])
3030
{
3131
if (!types::check(n, ValueType::String, ValueType::Number))
32-
types::generateError(
32+
throw types::TypeCheckingError(
3333
"http:client",
3434
{ { types::Contract { { types::Typedef("host", ValueType::String), types::Typedef("port", ValueType::Number) } } } },
3535
n);
@@ -189,7 +189,7 @@ Value http_client_patch(std::vector<Value>& n, VM* vm [[maybe_unused]])
189189
Value http_client_set_follow_location(std::vector<Value>& n, VM* vm [[maybe_unused]])
190190
{
191191
if ((!types::check(n, ValueType::User, ValueType::True) && !types::check(n, ValueType::User, ValueType::False)) || !n[0].usertypeRef().is<Client>())
192-
types::generateError(
192+
throw types::TypeCheckingError(
193193
"http:setFollowLocation",
194194
{ { types::Contract { { types::Typedef("httpClient", ValueType::User), types::Typedef("value", ValueType::True) } },
195195
types::Contract { { types::Typedef("httpClient", ValueType::User), types::Typedef("value", ValueType::False) } } } },
@@ -202,7 +202,7 @@ Value http_client_set_follow_location(std::vector<Value>& n, VM* vm [[maybe_unus
202202
Value http_client_set_co_timeout(std::vector<Value>& n, VM* vm [[maybe_unused]])
203203
{
204204
if (!types::check(n, ValueType::User, ValueType::Number, ValueType::Number) || !n[0].usertype().is<Client>())
205-
types::generateError(
205+
throw types::TypeCheckingError(
206206
"http:setConnectionTimeout",
207207
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
208208
types::Typedef("seconds", ValueType::Number),
@@ -219,7 +219,7 @@ Value http_client_set_co_timeout(std::vector<Value>& n, VM* vm [[maybe_unused]])
219219
Value http_client_set_read_timeout(std::vector<Value>& n, VM* vm [[maybe_unused]])
220220
{
221221
if (!types::check(n, ValueType::User, ValueType::Number, ValueType::Number) || !n[0].usertype().is<Client>())
222-
types::generateError(
222+
throw types::TypeCheckingError(
223223
"http:setReadTimeout",
224224
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
225225
types::Typedef("seconds", ValueType::Number),
@@ -236,7 +236,7 @@ Value http_client_set_read_timeout(std::vector<Value>& n, VM* vm [[maybe_unused]
236236
Value http_client_set_write_timeout(std::vector<Value>& n, VM* vm [[maybe_unused]])
237237
{
238238
if (!types::check(n, ValueType::User, ValueType::Number, ValueType::Number) || !n[0].usertype().is<Client>())
239-
types::generateError(
239+
throw types::TypeCheckingError(
240240
"http:setWriteTimeout",
241241
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
242242
types::Typedef("seconds", ValueType::Number),
@@ -253,7 +253,7 @@ Value http_client_set_write_timeout(std::vector<Value>& n, VM* vm [[maybe_unused
253253
Value http_client_set_basic_auth(std::vector<Value>& n, VM* vm [[maybe_unused]])
254254
{
255255
if (!types::check(n, ValueType::User, ValueType::String, ValueType::String) || !n[0].usertype().is<Client>())
256-
types::generateError(
256+
throw types::TypeCheckingError(
257257
"http:setBasicAuth",
258258
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
259259
types::Typedef("username", ValueType::String),
@@ -269,7 +269,7 @@ Value http_client_set_basic_auth(std::vector<Value>& n, VM* vm [[maybe_unused]])
269269
Value http_client_set_bearer_token_auth(std::vector<Value>& n, VM* vm [[maybe_unused]])
270270
{
271271
if (!types::check(n, ValueType::User, ValueType::String) || !n[0].usertype().is<Client>())
272-
types::generateError(
272+
throw types::TypeCheckingError(
273273
"http:setBearerTokenAuth",
274274
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
275275
types::Typedef("token", ValueType::String) } } } },
@@ -282,7 +282,7 @@ Value http_client_set_bearer_token_auth(std::vector<Value>& n, VM* vm [[maybe_un
282282
Value http_client_set_keep_alive(std::vector<Value>& n, VM* vm [[maybe_unused]])
283283
{
284284
if ((!types::check(n, ValueType::User, ValueType::True) && !types::check(n, ValueType::User, ValueType::False)) || !n[0].usertype().is<Client>())
285-
types::generateError(
285+
throw types::TypeCheckingError(
286286
"http:setKeepAlive",
287287
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
288288
types::Typedef("toggle", ValueType::True) } },
@@ -297,7 +297,7 @@ Value http_client_set_keep_alive(std::vector<Value>& n, VM* vm [[maybe_unused]])
297297
Value http_client_set_proxy(std::vector<Value>& n, VM* vm [[maybe_unused]])
298298
{
299299
if (!types::check(n, ValueType::User, ValueType::String, ValueType::Number) || !n[0].usertype().is<Client>())
300-
types::generateError(
300+
throw types::TypeCheckingError(
301301
"http:setProxy",
302302
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
303303
types::Typedef("host", ValueType::String),
@@ -311,7 +311,7 @@ Value http_client_set_proxy(std::vector<Value>& n, VM* vm [[maybe_unused]])
311311
Value http_client_set_proxy_basic_auth(std::vector<Value>& n, VM* vm [[maybe_unused]])
312312
{
313313
if (!types::check(n, ValueType::User, ValueType::String, ValueType::String) || !n[0].usertype().is<Client>())
314-
types::generateError(
314+
throw types::TypeCheckingError(
315315
"http:setProxyBasicAuth",
316316
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
317317
types::Typedef("username", ValueType::String),
@@ -328,7 +328,7 @@ Value http_client_set_proxy_basic_auth(std::vector<Value>& n, VM* vm [[maybe_unu
328328
Value http_client_set_proxy_bearer_token_auth(std::vector<Value>& n, VM* vm [[maybe_unused]])
329329
{
330330
if (!types::check(n, ValueType::User, ValueType::String) || !n[0].usertype().is<Client>())
331-
types::generateError(
331+
throw types::TypeCheckingError(
332332
"http:setProxyBearerTokenAuth",
333333
{ { types::Contract { { types::Typedef("httpClient", ValueType::User),
334334
types::Typedef("token", ValueType::String) } } } },

draft/json/src/main.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ namespace json
3434
Value open(std::vector<Value>& args, VM* vm [[maybe_unused]])
3535
{
3636
if (!types::check(args, ValueType::String))
37-
types::generateError(
37+
throw types::TypeCheckingError(
3838
"json:open",
3939
{ { types::Contract { { types::Typedef("filename", ValueType::String) } } } },
4040
args);
@@ -54,7 +54,7 @@ namespace json
5454
Value fromString(std::vector<Value>& args, VM* vm [[maybe_unused]])
5555
{
5656
if (!types::check(args, ValueType::String))
57-
types::generateError(
57+
throw types::TypeCheckingError(
5858
"json:fromString",
5959
{ { types::Contract { { types::Typedef("jsonObject", ValueType::String) } } } },
6060
args);
@@ -97,7 +97,7 @@ namespace json
9797
Value get(std::vector<Value>& args, VM* vm [[maybe_unused]])
9898
{
9999
if (args.size() < 2 || !args[0].usertype().is<nlohmann::json>())
100-
types::generateError(
100+
throw types::TypeCheckingError(
101101
"json:get",
102102
{ { types::Contract { { types::Typedef("json", ValueType::User), types::Typedef("key", ValueType::Number) } },
103103
types::Contract { { types::Typedef("json", ValueType::User), types::Typedef("key", ValueType::String) } } } },
@@ -126,7 +126,7 @@ namespace json
126126
return Nil;
127127
}
128128

129-
types::generateError(
129+
throw types::TypeCheckingError(
130130
"json:get",
131131
{ { types::Contract { { types::Typedef("json", ValueType::User), types::Typedef("key", ValueType::Number) } },
132132
types::Contract { { types::Typedef("json", ValueType::User), types::Typedef("key", ValueType::String) } } } },
@@ -137,7 +137,7 @@ namespace json
137137
Value toString(std::vector<Value>& args, VM* vm [[maybe_unused]])
138138
{
139139
if (!types::check(args, ValueType::User))
140-
types::generateError(
140+
throw types::TypeCheckingError(
141141
"json:toString",
142142
{ { types::Contract { { types::Typedef("jsonObject", ValueType::User) } } } },
143143
args);
@@ -190,7 +190,7 @@ namespace json
190190
Value jset(std::vector<Value>& args, VM* vm [[maybe_unused]])
191191
{
192192
if (!types::check(args, ValueType::User, ValueType::String, ValueType::Any) || !args[0].usertype().is<nlohmann::json>())
193-
types::generateError(
193+
throw types::TypeCheckingError(
194194
"json:set",
195195
{ { types::Contract { { types::Typedef("jsonObject", ValueType::User),
196196
types::Typedef("key", ValueType::String),
@@ -215,6 +215,7 @@ namespace json
215215
}
216216

217217
case ValueType::False:
218+
[[fallthrough]];
218219
case ValueType::True:
219220
{
220221
json_object[args[1].stringRef().c_str()] = (args[2] == True);
@@ -247,7 +248,7 @@ namespace json
247248
Value write(std::vector<Value>& args, VM* vm [[maybe_unused]])
248249
{
249250
if (!types::check(args, ValueType::User, ValueType::String) || !args[0].usertype().is<nlohmann::json>())
250-
types::generateError(
251+
throw types::TypeCheckingError(
251252
"json:write",
252253
{ { types::Contract { { types::Typedef("jsonObject", ValueType::User),
253254
types::Typedef("filename", ValueType::String) } } } },
@@ -264,7 +265,7 @@ namespace json
264265
Value fromList(std::vector<Value>& args, VM* vm [[maybe_unused]])
265266
{
266267
if (!types::check(args, ValueType::List))
267-
types::generateError(
268+
throw types::TypeCheckingError(
268269
"json:fromList",
269270
{ { types::Contract { { types::Typedef("jsonAsList", ValueType::List) } } } },
270271
args);
@@ -292,6 +293,7 @@ namespace json
292293
break;
293294

294295
case ValueType::True:
296+
[[fallthrough]];
295297
case ValueType::False:
296298
(*ptr)[ark_list[i].stringRef().c_str()] = (ark_list[i + 1] == True);
297299
break;
@@ -318,7 +320,7 @@ namespace json
318320
Value len(std::vector<Value>& args, VM* vm [[maybe_unused]])
319321
{
320322
if (!types::check(args, ValueType::User) || !args[0].usertype().is<nlohmann::json>())
321-
types::generateError(
323+
throw types::TypeCheckingError(
322324
"json:len",
323325
{ { types::Contract { { types::Typedef("jsonObject", ValueType::User) } } } },
324326
args);

src/bitwise/src/main.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace ArkBitwise
88
Value rshift(std::vector<Value>& n, VM* vm [[maybe_unused]])
99
{
1010
if (!types::check(n, ValueType::Number, ValueType::Number))
11-
types::generateError(
11+
throw types::TypeCheckingError(
1212
"bitwise:rshift",
1313
{ { types::Contract { { types::Typedef("number", ValueType::Number), types::Typedef("shift", ValueType::Number) } } } },
1414
n);
@@ -22,7 +22,7 @@ namespace ArkBitwise
2222
Value lshift(std::vector<Value>& n, VM* vm [[maybe_unused]])
2323
{
2424
if (!types::check(n, ValueType::Number, ValueType::Number))
25-
types::generateError(
25+
throw types::TypeCheckingError(
2626
"bitwise:lshift",
2727
{ { types::Contract { { types::Typedef("number", ValueType::Number), types::Typedef("shift", ValueType::Number) } } } },
2828
n);
@@ -36,7 +36,7 @@ namespace ArkBitwise
3636
Value xor_(std::vector<Value>& n, VM* vm [[maybe_unused]])
3737
{
3838
if (!types::check(n, ValueType::Number, ValueType::Number))
39-
types::generateError(
39+
throw types::TypeCheckingError(
4040
"bitwise:xor",
4141
{ { types::Contract { { types::Typedef("number", ValueType::Number), types::Typedef("mask", ValueType::Number) } } } },
4242
n);
@@ -50,7 +50,7 @@ namespace ArkBitwise
5050
Value or_(std::vector<Value>& n, VM* vm [[maybe_unused]])
5151
{
5252
if (!types::check(n, ValueType::Number, ValueType::Number))
53-
types::generateError(
53+
throw types::TypeCheckingError(
5454
"bitwise:or",
5555
{ { types::Contract { { types::Typedef("a", ValueType::Number), types::Typedef("b", ValueType::Number) } } } },
5656
n);
@@ -64,7 +64,7 @@ namespace ArkBitwise
6464
Value and_(std::vector<Value>& n, VM* vm [[maybe_unused]])
6565
{
6666
if (!types::check(n, ValueType::Number, ValueType::Number))
67-
types::generateError(
67+
throw types::TypeCheckingError(
6868
"bitwise:and",
6969
{ { types::Contract { { types::Typedef("a", ValueType::Number), types::Typedef("b", ValueType::Number) } } } },
7070
n);

src/console/src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ namespace ArkConsole
3131
Value color(std::vector<Value>& n, VM* vm [[maybe_unused]])
3232
{
3333
if (!types::check(n, ValueType::String))
34-
types::generateError(
34+
throw types::TypeCheckingError(
3535
"console:color",
3636
{ { types::Contract { { types::Typedef("color_name", ValueType::String) } } } },
3737
n);

src/hash/src/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace ArkHash
1010
Value sha2(std::vector<Value>& n, VM* vm [[maybe_unused]])
1111
{
1212
if (!types::check(n, ValueType::String))
13-
types::generateError(
13+
throw types::TypeCheckingError(
1414
"hash:sha256",
1515
{ { types::Contract { { types::Typedef("data", ValueType::String) } } } },
1616
n);
@@ -25,7 +25,7 @@ namespace ArkHash
2525
Value md5(std::vector<Value>& n, VM* vm [[maybe_unused]])
2626
{
2727
if (!types::check(n, ValueType::String))
28-
types::generateError(
28+
throw types::TypeCheckingError(
2929
"hash:md5",
3030
{ { types::Contract { { types::Typedef("data", ValueType::String) } } } },
3131
n);

0 commit comments

Comments
 (0)