Merge remote-tracking branch 'origin/master' into query-testy
This commit is contained in:
commit
c9c886d971
19 changed files with 721 additions and 459 deletions
|
|
@ -367,6 +367,30 @@ fn test_query_errors_on_impossible_patterns() {
|
|||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_query_verifies_possible_patterns_with_aliased_parent_nodes() {
|
||||
allocations::record(|| {
|
||||
let ruby = get_language("ruby");
|
||||
|
||||
Query::new(ruby, "(destructured_parameter (identifier))").unwrap();
|
||||
|
||||
assert_eq!(
|
||||
Query::new(ruby, "(destructured_parameter (string))",),
|
||||
Err(QueryError {
|
||||
kind: QueryErrorKind::Structure,
|
||||
row: 0,
|
||||
offset: 24,
|
||||
column: 24,
|
||||
message: [
|
||||
"(destructured_parameter (string))", //
|
||||
" ^",
|
||||
]
|
||||
.join("\n")
|
||||
})
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_query_matches_with_simple_pattern() {
|
||||
allocations::record(|| {
|
||||
|
|
@ -1451,6 +1475,7 @@ fn test_query_matches_with_anonymous_tokens() {
|
|||
r#"
|
||||
";" @punctuation
|
||||
"&&" @operator
|
||||
"\"" @quote
|
||||
"#,
|
||||
)
|
||||
.unwrap();
|
||||
|
|
@ -1458,9 +1483,11 @@ fn test_query_matches_with_anonymous_tokens() {
|
|||
assert_query_matches(
|
||||
language,
|
||||
&query,
|
||||
"foo(a && b);",
|
||||
r#"foo(a && "b");"#,
|
||||
&[
|
||||
(1, vec![("operator", "&&")]),
|
||||
(2, vec![("quote", "\"")]),
|
||||
(2, vec![("quote", "\"")]),
|
||||
(0, vec![("punctuation", ";")]),
|
||||
],
|
||||
);
|
||||
|
|
@ -1808,6 +1835,33 @@ fn test_query_matches_with_no_captures() {
|
|||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_query_matches_with_repeated_fields() {
|
||||
allocations::record(|| {
|
||||
let language = get_language("c");
|
||||
let query = Query::new(
|
||||
language,
|
||||
"(field_declaration declarator: (field_identifier) @field)",
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
assert_query_matches(
|
||||
language,
|
||||
&query,
|
||||
"
|
||||
struct S {
|
||||
int a, b, c;
|
||||
}
|
||||
",
|
||||
&[
|
||||
(0, vec![("field", "a")]),
|
||||
(0, vec![("field", "b")]),
|
||||
(0, vec![("field", "c")]),
|
||||
],
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_query_captures_basic() {
|
||||
allocations::record(|| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue