diff --git a/src/exact_value.cpp b/src/exact_value.cpp index 7d5f71d78..ff940aabb 100644 --- a/src/exact_value.cpp +++ b/src/exact_value.cpp @@ -342,9 +342,6 @@ gb_internal ExactValue exact_value_from_basic_literal(TokenKind kind, String con utf8_decode(string.text, string.len, &r); return exact_value_i64(r); } - default: - GB_PANIC("Invalid token for basic literal"); - break; } ExactValue result = {ExactValue_Invalid}; diff --git a/src/parser.cpp b/src/parser.cpp index c19e3f859..883342b21 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -666,7 +666,11 @@ gb_internal ExactValue exact_value_from_token(AstFile *f, Token const &token) { } break; } - return exact_value_from_basic_literal(token.kind, s); + ExactValue value = exact_value_from_basic_literal(token.kind, s); + if (value.kind == ExactValue_Invalid) { + syntax_error(token, "Invalid token literal"); + } + return value; } gb_internal String string_value_from_token(AstFile *f, Token const &token) {