diff --git a/cli/src/tests/query_test.rs b/cli/src/tests/query_test.rs index f1139c6c..3bfa4b68 100644 --- a/cli/src/tests/query_test.rs +++ b/cli/src/tests/query_test.rs @@ -118,6 +118,18 @@ fn test_query_errors_on_invalid_syntax() { ] .join("\n") ); + + // tree-sitter/tree-sitter/issues/968 + assert_eq!( + Query::new(get_language("c"), r#"(parameter_list [ ")" @foo)"#) + .unwrap_err() + .message, + [ + r#"(parameter_list [ ")" @foo)"#, + r#" ^"# + ] + .join("\n") + ); }); } diff --git a/lib/src/query.c b/lib/src/query.c index c3497d8d..cc127079 100644 --- a/lib/src/query.c +++ b/lib/src/query.c @@ -1541,6 +1541,7 @@ static TSQueryError ts_query__parse_pattern( stream_advance(stream); break; } else if (e) { + if (e == PARENT_DONE) e = TSQueryErrorSyntax; array_delete(&branch_step_indices); return e; }