From 310ba62c846379ad914942e36b9111084a364899 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 23 Jul 2013 11:46:07 -0400 Subject: actually, throw an exception on parse errors --- Keyword.xs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Keyword.xs') diff --git a/Keyword.xs b/Keyword.xs index a68af05..8cfb87a 100644 --- a/Keyword.xs +++ b/Keyword.xs @@ -23,16 +23,21 @@ static SV *parser_fn(OP *(fn)(pTHX_ U32), bool named) { I32 floor; CV *code; + U8 errors; REENTER_PARSER; + SAVEI8(PL_parser->error_count); + PL_parser->error_count = 0; floor = start_subparse(0, named ? 0 : CVf_ANON); code = newATTRSUB(floor, NULL, NULL, NULL, fn(aTHX_ 0)); + errors = PL_parser->error_count; + LEAVE_PARSER; - if (PL_parser->error_count) { - return newSV(0); + if (errors) { + croak_sv(ERRSV); } else { if (CvCLONE(code)) { -- cgit v1.2.3-54-g00ecf