summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--py/lexer.c4
-rw-r--r--tests/unicode/unicode.py6
2 files changed, 9 insertions, 1 deletions
diff --git a/py/lexer.c b/py/lexer.c
index 1f1eb6caec..c77b459ebf 100644
--- a/py/lexer.c
+++ b/py/lexer.c
@@ -500,7 +500,9 @@ STATIC void mp_lexer_next_token_into(mp_lexer_t *lex, bool first_token) {
}
#endif
else {
- assert(!"TODO: Throw an error, invalid escape code probably");
+ // unicode character out of range
+ // this raises a generic SyntaxError; could provide more info
+ lex->tok_kind = MP_TOKEN_INVALID;
}
}
} else {
diff --git a/tests/unicode/unicode.py b/tests/unicode/unicode.py
index 57075f7e3e..3ed74b7900 100644
--- a/tests/unicode/unicode.py
+++ b/tests/unicode/unicode.py
@@ -20,3 +20,9 @@ print(enc, enc.decode() == s)
# printing of unicode chars using repr
# TODO we don't do this correctly
#print(repr(s))
+
+# test invalid escape code
+try:
+ eval('"\\U00110000"')
+except SyntaxError:
+ print('SyntaxError')