From b8658547e088f6ee40bf0869dca256be08c7f8ef Mon Sep 17 00:00:00 2001 From: DanielGavin Date: Tue, 30 Mar 2021 12:38:58 +0200 Subject: [PATCH 1/2] Give error if raw literal hits EOF, and stop removing .Using if it exists in flags and allowed_flags. --- core/odin/parser/parser.odin | 4 ---- core/odin/tokenizer/tokenizer.odin | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin index db5d7ade2..2b657f76f 100644 --- a/core/odin/parser/parser.odin +++ b/core/odin/parser/parser.odin @@ -1564,10 +1564,6 @@ check_field_flag_prefixes :: proc(p: ^Parser, name_count: int, allowed_flags, se } } - if .Using in allowed_flags && .Using in flags { - flags &~= {.Using}; - } - return flags; } diff --git a/core/odin/tokenizer/tokenizer.odin b/core/odin/tokenizer/tokenizer.odin index 0e9360166..6721a5e8a 100644 --- a/core/odin/tokenizer/tokenizer.odin +++ b/core/odin/tokenizer/tokenizer.odin @@ -235,8 +235,8 @@ scan_raw_string :: proc(t: ^Tokenizer) -> string { for { ch := t.ch; - if ch == '\n' || ch < 0 { - error(t, offset, "raw string literal was not terminated"); + if ch == utf8.RUNE_EOF { + error(t, offset, "string literal was not terminated"); break; } advance_rune(t); From 02bbac09030ae34ede0853cc8ecdba4e4d995be9 Mon Sep 17 00:00:00 2001 From: DanielGavin Date: Tue, 30 Mar 2021 12:40:40 +0200 Subject: [PATCH 2/2] changed error --- core/odin/tokenizer/tokenizer.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/odin/tokenizer/tokenizer.odin b/core/odin/tokenizer/tokenizer.odin index 6721a5e8a..e00dccde9 100644 --- a/core/odin/tokenizer/tokenizer.odin +++ b/core/odin/tokenizer/tokenizer.odin @@ -236,7 +236,7 @@ scan_raw_string :: proc(t: ^Tokenizer) -> string { for { ch := t.ch; if ch == utf8.RUNE_EOF { - error(t, offset, "string literal was not terminated"); + error(t, offset, "raw string literal was not terminated"); break; } advance_rune(t);