1
1
mirror of https://github.com/kanaka/mal.git synced 2024-10-05 18:08:55 +03:00

cpp: allow keyword argument for keyword core function

This commit is contained in:
Nicolas Boulenguez 2021-08-29 12:00:57 +02:00 committed by Joel Martin
parent b887786c81
commit 66d24858d6

View File

@ -307,8 +307,12 @@ BUILTIN("keys")
BUILTIN("keyword")
{
CHECK_ARGS_IS(1);
ARG(malString, token);
return mal::keyword(":" + token->value());
const malValuePtr arg = *argsBegin++;
if (malKeyword* s = DYNAMIC_CAST(malKeyword, arg))
return s;
if (const malString* s = DYNAMIC_CAST(malString, arg))
return mal::keyword(":" + s->value());
MAL_FAIL("keyword expects a keyword or string");
}
BUILTIN("list")