mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-08-15 16:11:01 +00:00
internal: move inline parser tests to parser crate
This commit is contained in:
parent
0f74758fea
commit
b360ea91f2
636 changed files with 11161 additions and 101 deletions
|
@ -1,4 +1,3 @@
|
|||
mod sourcegen_tests;
|
||||
mod sourcegen_ast;
|
||||
mod ast_src;
|
||||
|
||||
|
@ -51,24 +50,13 @@ fn benchmark_parser() {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn parser_tests() {
|
||||
dir_tests(&test_data_dir(), &["parser/inline/ok"], "rast", |text, path| {
|
||||
fn validation_tests() {
|
||||
dir_tests(&test_data_dir(), &["parser/validation"], "rast", |text, path| {
|
||||
let parse = SourceFile::parse(text);
|
||||
let errors = parse.errors();
|
||||
assert_errors_are_absent(errors, path);
|
||||
assert_errors_are_present(errors, path);
|
||||
parse.debug_dump()
|
||||
});
|
||||
dir_tests(
|
||||
&test_data_dir(),
|
||||
&["parser/inline/err", "parser/validation"],
|
||||
"rast",
|
||||
|text, path| {
|
||||
let parse = SourceFile::parse(text);
|
||||
let errors = parse.errors();
|
||||
assert_errors_are_present(errors, path);
|
||||
parse.debug_dump()
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -183,14 +171,6 @@ fn test_data_dir() -> PathBuf {
|
|||
fn assert_errors_are_present(errors: &[SyntaxError], path: &Path) {
|
||||
assert!(!errors.is_empty(), "There should be errors in the file {:?}", path.display());
|
||||
}
|
||||
fn assert_errors_are_absent(errors: &[SyntaxError], path: &Path) {
|
||||
assert_eq!(
|
||||
errors,
|
||||
&[] as &[SyntaxError],
|
||||
"There should be no errors in the file {:?}",
|
||||
path.display(),
|
||||
);
|
||||
}
|
||||
|
||||
fn fragment_parser_dir_test<T, F>(ok_paths: &[&str], err_paths: &[&str], f: F)
|
||||
where
|
||||
|
|
|
@ -1,124 +0,0 @@
|
|||
//! This module greps parser's code for specially formatted comments and turns
|
||||
//! them into tests.
|
||||
|
||||
use std::{
|
||||
fs, iter,
|
||||
path::{Path, PathBuf},
|
||||
};
|
||||
|
||||
use rustc_hash::FxHashMap;
|
||||
|
||||
#[test]
|
||||
fn sourcegen_parser_tests() {
|
||||
let grammar_dir = sourcegen::project_root().join(Path::new("crates/parser/src/grammar"));
|
||||
let tests = tests_from_dir(&grammar_dir);
|
||||
|
||||
install_tests(&tests.ok, "crates/syntax/test_data/parser/inline/ok");
|
||||
install_tests(&tests.err, "crates/syntax/test_data/parser/inline/err");
|
||||
|
||||
fn install_tests(tests: &FxHashMap<String, Test>, into: &str) {
|
||||
let tests_dir = sourcegen::project_root().join(into);
|
||||
if !tests_dir.is_dir() {
|
||||
fs::create_dir_all(&tests_dir).unwrap();
|
||||
}
|
||||
// ok is never actually read, but it needs to be specified to create a Test in existing_tests
|
||||
let existing = existing_tests(&tests_dir, true);
|
||||
for t in existing.keys().filter(|&t| !tests.contains_key(t)) {
|
||||
panic!("Test is deleted: {}", t);
|
||||
}
|
||||
|
||||
let mut new_idx = existing.len() + 1;
|
||||
for (name, test) in tests {
|
||||
let path = match existing.get(name) {
|
||||
Some((path, _test)) => path.clone(),
|
||||
None => {
|
||||
let file_name = format!("{:04}_{}.rs", new_idx, name);
|
||||
new_idx += 1;
|
||||
tests_dir.join(file_name)
|
||||
}
|
||||
};
|
||||
sourcegen::ensure_file_contents(&path, &test.text);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Test {
|
||||
name: String,
|
||||
text: String,
|
||||
ok: bool,
|
||||
}
|
||||
|
||||
#[derive(Default, Debug)]
|
||||
struct Tests {
|
||||
ok: FxHashMap<String, Test>,
|
||||
err: FxHashMap<String, Test>,
|
||||
}
|
||||
|
||||
fn collect_tests(s: &str) -> Vec<Test> {
|
||||
let mut res = Vec::new();
|
||||
for comment_block in sourcegen::CommentBlock::extract_untagged(s) {
|
||||
let first_line = &comment_block.contents[0];
|
||||
let (name, ok) = if let Some(name) = first_line.strip_prefix("test ") {
|
||||
(name.to_string(), true)
|
||||
} else if let Some(name) = first_line.strip_prefix("test_err ") {
|
||||
(name.to_string(), false)
|
||||
} else {
|
||||
continue;
|
||||
};
|
||||
let text: String = comment_block.contents[1..]
|
||||
.iter()
|
||||
.cloned()
|
||||
.chain(iter::once(String::new()))
|
||||
.collect::<Vec<_>>()
|
||||
.join("\n");
|
||||
assert!(!text.trim().is_empty() && text.ends_with('\n'));
|
||||
res.push(Test { name, text, ok })
|
||||
}
|
||||
res
|
||||
}
|
||||
|
||||
fn tests_from_dir(dir: &Path) -> Tests {
|
||||
let mut res = Tests::default();
|
||||
for entry in sourcegen::list_rust_files(dir) {
|
||||
process_file(&mut res, entry.as_path());
|
||||
}
|
||||
let grammar_rs = dir.parent().unwrap().join("grammar.rs");
|
||||
process_file(&mut res, &grammar_rs);
|
||||
return res;
|
||||
|
||||
fn process_file(res: &mut Tests, path: &Path) {
|
||||
let text = fs::read_to_string(path).unwrap();
|
||||
|
||||
for test in collect_tests(&text) {
|
||||
if test.ok {
|
||||
if let Some(old_test) = res.ok.insert(test.name.clone(), test) {
|
||||
panic!("Duplicate test: {}", old_test.name);
|
||||
}
|
||||
} else if let Some(old_test) = res.err.insert(test.name.clone(), test) {
|
||||
panic!("Duplicate test: {}", old_test.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn existing_tests(dir: &Path, ok: bool) -> FxHashMap<String, (PathBuf, Test)> {
|
||||
let mut res = FxHashMap::default();
|
||||
for file in fs::read_dir(dir).unwrap() {
|
||||
let file = file.unwrap();
|
||||
let path = file.path();
|
||||
if path.extension().unwrap_or_default() != "rs" {
|
||||
continue;
|
||||
}
|
||||
let name = {
|
||||
let file_name = path.file_name().unwrap().to_str().unwrap();
|
||||
file_name[5..file_name.len() - 3].to_string()
|
||||
};
|
||||
let text = fs::read_to_string(&path).unwrap();
|
||||
let test = Test { name: name.clone(), text, ok };
|
||||
if let Some(old) = res.insert(name, (path, test)) {
|
||||
println!("Duplicate test: {:?}", old);
|
||||
}
|
||||
}
|
||||
res
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
SOURCE_FILE@0..18
|
||||
TYPE_ALIAS@0..12
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "T"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
SLICE_TYPE@9..12
|
||||
L_BRACK@9..10 "["
|
||||
TUPLE_TYPE@10..12
|
||||
L_PAREN@10..11 "("
|
||||
R_PAREN@11..12 ")"
|
||||
WHITESPACE@12..13 " "
|
||||
ERROR@13..15
|
||||
INT_NUMBER@13..15 "92"
|
||||
ERROR@15..16
|
||||
R_BRACK@15..16 "]"
|
||||
ERROR@16..17
|
||||
SEMICOLON@16..17 ";"
|
||||
WHITESPACE@17..18 "\n"
|
||||
error 12..12: expected `;` or `]`
|
||||
error 12..12: expected SEMICOLON
|
||||
error 13..13: expected an item
|
||||
error 15..15: expected an item
|
||||
error 16..16: expected an item
|
|
@ -1 +0,0 @@
|
|||
type T = [() 92];
|
|
@ -1,28 +0,0 @@
|
|||
SOURCE_FILE@0..30
|
||||
FN@0..29
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..29
|
||||
STMT_LIST@10..29
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
ERROR@16..22
|
||||
LABEL@16..22
|
||||
LIFETIME@16..21
|
||||
LIFETIME_IDENT@16..21 "'loop"
|
||||
COLON@21..22 ":"
|
||||
WHITESPACE@22..23 " "
|
||||
IMPL@23..27
|
||||
IMPL_KW@23..27 "impl"
|
||||
WHITESPACE@27..28 "\n"
|
||||
R_CURLY@28..29 "}"
|
||||
WHITESPACE@29..30 "\n"
|
||||
error 22..22: expected a loop
|
||||
error 27..27: expected type
|
||||
error 27..27: expected `{`
|
|
@ -1,3 +0,0 @@
|
|||
fn main() {
|
||||
'loop: impl
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
SOURCE_FILE@0..14
|
||||
TYPE_ALIAS@0..13
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "T"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
PTR_TYPE@9..12
|
||||
STAR@9..10 "*"
|
||||
TUPLE_TYPE@10..12
|
||||
L_PAREN@10..11 "("
|
||||
R_PAREN@11..12 ")"
|
||||
SEMICOLON@12..13 ";"
|
||||
WHITESPACE@13..14 "\n"
|
||||
error 10..10: expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)
|
|
@ -1 +0,0 @@
|
|||
type T = *();
|
|
@ -1,79 +0,0 @@
|
|||
SOURCE_FILE@0..87
|
||||
IMPL@0..12
|
||||
IMPL_KW@0..4 "impl"
|
||||
WHITESPACE@4..5 " "
|
||||
PATH_TYPE@5..9
|
||||
PATH@5..9
|
||||
PATH_SEGMENT@5..9
|
||||
NAME_REF@5..9
|
||||
IDENT@5..9 "Type"
|
||||
WHITESPACE@9..10 " "
|
||||
ASSOC_ITEM_LIST@10..12
|
||||
L_CURLY@10..11 "{"
|
||||
R_CURLY@11..12 "}"
|
||||
WHITESPACE@12..13 "\n"
|
||||
IMPL@13..33
|
||||
IMPL_KW@13..17 "impl"
|
||||
WHITESPACE@17..18 " "
|
||||
PATH_TYPE@18..24
|
||||
PATH@18..24
|
||||
PATH_SEGMENT@18..24
|
||||
NAME_REF@18..24
|
||||
IDENT@18..24 "Trait1"
|
||||
WHITESPACE@24..25 " "
|
||||
FOR_KW@25..28 "for"
|
||||
WHITESPACE@28..29 " "
|
||||
PATH_TYPE@29..30
|
||||
PATH@29..30
|
||||
PATH_SEGMENT@29..30
|
||||
NAME_REF@29..30
|
||||
IDENT@29..30 "T"
|
||||
WHITESPACE@30..31 " "
|
||||
ASSOC_ITEM_LIST@31..33
|
||||
L_CURLY@31..32 "{"
|
||||
R_CURLY@32..33 "}"
|
||||
WHITESPACE@33..34 "\n"
|
||||
IMPL@34..38
|
||||
IMPL_KW@34..38 "impl"
|
||||
WHITESPACE@38..39 " "
|
||||
IMPL@39..54
|
||||
IMPL_KW@39..43 "impl"
|
||||
WHITESPACE@43..44 " "
|
||||
PATH_TYPE@44..51
|
||||
PATH@44..51
|
||||
PATH_SEGMENT@44..51
|
||||
NAME_REF@44..51
|
||||
IDENT@44..51 "NotType"
|
||||
WHITESPACE@51..52 " "
|
||||
ASSOC_ITEM_LIST@52..54
|
||||
L_CURLY@52..53 "{"
|
||||
R_CURLY@53..54 "}"
|
||||
WHITESPACE@54..55 "\n"
|
||||
IMPL@55..70
|
||||
IMPL_KW@55..59 "impl"
|
||||
WHITESPACE@59..60 " "
|
||||
PATH_TYPE@60..66
|
||||
PATH@60..66
|
||||
PATH_SEGMENT@60..66
|
||||
NAME_REF@60..66
|
||||
IDENT@60..66 "Trait2"
|
||||
WHITESPACE@66..67 " "
|
||||
FOR_KW@67..70 "for"
|
||||
WHITESPACE@70..71 " "
|
||||
IMPL@71..86
|
||||
IMPL_KW@71..75 "impl"
|
||||
WHITESPACE@75..76 " "
|
||||
PATH_TYPE@76..83
|
||||
PATH@76..83
|
||||
PATH_SEGMENT@76..83
|
||||
NAME_REF@76..83
|
||||
IDENT@76..83 "NotType"
|
||||
WHITESPACE@83..84 " "
|
||||
ASSOC_ITEM_LIST@84..86
|
||||
L_CURLY@84..85 "{"
|
||||
R_CURLY@85..86 "}"
|
||||
WHITESPACE@86..87 "\n"
|
||||
error 38..38: expected trait or type
|
||||
error 38..38: expected `{`
|
||||
error 70..70: expected trait or type
|
||||
error 70..70: expected `{`
|
|
@ -1,4 +0,0 @@
|
|||
impl Type {}
|
||||
impl Trait1 for T {}
|
||||
impl impl NotType {}
|
||||
impl Trait2 for impl NotType {}
|
|
@ -1,23 +0,0 @@
|
|||
SOURCE_FILE@0..20
|
||||
TYPE_ALIAS@0..15
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "F"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
UNSAFE_KW@9..15 "unsafe"
|
||||
WHITESPACE@15..16 " "
|
||||
ERROR@16..17
|
||||
L_PAREN@16..17 "("
|
||||
ERROR@17..18
|
||||
R_PAREN@17..18 ")"
|
||||
ERROR@18..19
|
||||
SEMICOLON@18..19 ";"
|
||||
WHITESPACE@19..20 "\n"
|
||||
error 15..15: expected `fn`
|
||||
error 15..15: expected SEMICOLON
|
||||
error 16..16: expected an item
|
||||
error 17..17: expected an item
|
||||
error 18..18: expected an item
|
|
@ -1 +0,0 @@
|
|||
type F = unsafe ();
|
|
@ -1,37 +0,0 @@
|
|||
SOURCE_FILE@0..33
|
||||
FN@0..10
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
BLOCK_EXPR@8..10
|
||||
STMT_LIST@8..10
|
||||
L_CURLY@8..9 "{"
|
||||
R_CURLY@9..10 "}"
|
||||
WHITESPACE@10..11 " "
|
||||
ERROR@11..17
|
||||
UNSAFE_KW@11..17 "unsafe"
|
||||
WHITESPACE@17..18 " "
|
||||
ERROR@18..21
|
||||
L_CURLY@18..19 "{"
|
||||
WHITESPACE@19..20 " "
|
||||
R_CURLY@20..21 "}"
|
||||
WHITESPACE@21..22 " "
|
||||
FN@22..32
|
||||
FN_KW@22..24 "fn"
|
||||
WHITESPACE@24..25 " "
|
||||
NAME@25..28
|
||||
IDENT@25..28 "bar"
|
||||
PARAM_LIST@28..30
|
||||
L_PAREN@28..29 "("
|
||||
R_PAREN@29..30 ")"
|
||||
BLOCK_EXPR@30..32
|
||||
STMT_LIST@30..32
|
||||
L_CURLY@30..31 "{"
|
||||
R_CURLY@31..32 "}"
|
||||
WHITESPACE@32..33 "\n"
|
||||
error 11..11: expected an item
|
||||
error 18..18: expected an item
|
|
@ -1 +0,0 @@
|
|||
fn foo(){} unsafe { } fn bar(){}
|
|
@ -1,32 +0,0 @@
|
|||
SOURCE_FILE@0..30
|
||||
FN@0..29
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..29
|
||||
STMT_LIST@9..29
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..11 " "
|
||||
LET_STMT@11..27
|
||||
LET_KW@11..14 "let"
|
||||
WHITESPACE@14..15 " "
|
||||
WILDCARD_PAT@15..16
|
||||
UNDERSCORE@15..16 "_"
|
||||
WHITESPACE@16..17 " "
|
||||
EQ@17..18 "="
|
||||
WHITESPACE@18..19 " "
|
||||
BLOCK_EXPR@19..27
|
||||
ASYNC_KW@19..24 "async"
|
||||
WHITESPACE@24..25 " "
|
||||
STMT_LIST@25..27
|
||||
L_CURLY@25..26 "{"
|
||||
R_CURLY@26..27 "}"
|
||||
WHITESPACE@27..28 " "
|
||||
R_CURLY@28..29 "}"
|
||||
WHITESPACE@29..30 "\n"
|
||||
error 27..27: expected SEMICOLON
|
|
@ -1 +0,0 @@
|
|||
fn foo() { let _ = async {} }
|
|
@ -1,26 +0,0 @@
|
|||
SOURCE_FILE@0..21
|
||||
FN@0..20
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..20
|
||||
STMT_LIST@9..20
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..11 " "
|
||||
ERROR@11..14
|
||||
VISIBILITY@11..14
|
||||
PUB_KW@11..14 "pub"
|
||||
WHITESPACE@14..15 " "
|
||||
EXPR_STMT@15..18
|
||||
LITERAL@15..17
|
||||
INT_NUMBER@15..17 "92"
|
||||
SEMICOLON@17..18 ";"
|
||||
WHITESPACE@18..19 " "
|
||||
R_CURLY@19..20 "}"
|
||||
WHITESPACE@20..21 "\n"
|
||||
error 14..14: expected an item
|
|
@ -1 +0,0 @@
|
|||
fn foo() { pub 92; }
|
|
@ -1,53 +0,0 @@
|
|||
SOURCE_FILE@0..47
|
||||
FN@0..46
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..46
|
||||
STMT_LIST@9..46
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..20
|
||||
FIELD_EXPR@15..19
|
||||
PATH_EXPR@15..16
|
||||
PATH@15..16
|
||||
PATH_SEGMENT@15..16
|
||||
NAME_REF@15..16
|
||||
IDENT@15..16 "x"
|
||||
DOT@16..17 "."
|
||||
FLOAT_NUMBER@17..19 "0."
|
||||
SEMICOLON@19..20 ";"
|
||||
WHITESPACE@20..25 "\n "
|
||||
EXPR_STMT@25..32
|
||||
FIELD_EXPR@25..31
|
||||
PATH_EXPR@25..26
|
||||
PATH@25..26
|
||||
PATH_SEGMENT@25..26
|
||||
NAME_REF@25..26
|
||||
IDENT@25..26 "x"
|
||||
DOT@26..27 "."
|
||||
NAME_REF@27..31
|
||||
INT_NUMBER@27..31 "1i32"
|
||||
SEMICOLON@31..32 ";"
|
||||
WHITESPACE@32..37 "\n "
|
||||
EXPR_STMT@37..44
|
||||
FIELD_EXPR@37..43
|
||||
PATH_EXPR@37..38
|
||||
PATH@37..38
|
||||
PATH_SEGMENT@37..38
|
||||
NAME_REF@37..38
|
||||
IDENT@37..38 "x"
|
||||
DOT@38..39 "."
|
||||
NAME_REF@39..43
|
||||
INT_NUMBER@39..43 "0x01"
|
||||
SEMICOLON@43..44 ";"
|
||||
WHITESPACE@44..45 "\n"
|
||||
R_CURLY@45..46 "}"
|
||||
WHITESPACE@46..47 "\n"
|
||||
error 27..31: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix
|
||||
error 39..43: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix
|
|
@ -1,5 +0,0 @@
|
|||
fn foo() {
|
||||
x.0.;
|
||||
x.1i32;
|
||||
x.0x01;
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
SOURCE_FILE@0..19
|
||||
STATIC@0..18
|
||||
STATIC_KW@0..6 "static"
|
||||
WHITESPACE@6..7 " "
|
||||
ERROR@7..8
|
||||
UNDERSCORE@7..8 "_"
|
||||
COLON@8..9 ":"
|
||||
WHITESPACE@9..10 " "
|
||||
PATH_TYPE@10..13
|
||||
PATH@10..13
|
||||
PATH_SEGMENT@10..13
|
||||
NAME_REF@10..13
|
||||
IDENT@10..13 "i32"
|
||||
WHITESPACE@13..14 " "
|
||||
EQ@14..15 "="
|
||||
WHITESPACE@15..16 " "
|
||||
LITERAL@16..17
|
||||
INT_NUMBER@16..17 "5"
|
||||
SEMICOLON@17..18 ";"
|
||||
WHITESPACE@18..19 "\n"
|
||||
error 7..7: expected a name
|
|
@ -1 +0,0 @@
|
|||
static _: i32 = 5;
|
|
@ -1,49 +0,0 @@
|
|||
SOURCE_FILE@0..45
|
||||
FN@0..44
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..44
|
||||
STMT_LIST@10..44
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
RECORD_EXPR@16..42
|
||||
PATH@16..17
|
||||
PATH_SEGMENT@16..17
|
||||
NAME_REF@16..17
|
||||
IDENT@16..17 "S"
|
||||
WHITESPACE@17..18 " "
|
||||
RECORD_EXPR_FIELD_LIST@18..42
|
||||
L_CURLY@18..19 "{"
|
||||
WHITESPACE@19..20 " "
|
||||
RECORD_EXPR_FIELD@20..40
|
||||
NAME_REF@20..25
|
||||
IDENT@20..25 "field"
|
||||
WHITESPACE@25..26 " "
|
||||
RANGE_EXPR@26..40
|
||||
DOT2@26..28 ".."
|
||||
CALL_EXPR@28..40
|
||||
PATH_EXPR@28..38
|
||||
PATH@28..38
|
||||
PATH@28..29
|
||||
PATH_SEGMENT@28..29
|
||||
NAME_REF@28..29
|
||||
IDENT@28..29 "S"
|
||||
COLON2@29..31 "::"
|
||||
PATH_SEGMENT@31..38
|
||||
NAME_REF@31..38
|
||||
IDENT@31..38 "default"
|
||||
ARG_LIST@38..40
|
||||
L_PAREN@38..39 "("
|
||||
R_PAREN@39..40 ")"
|
||||
WHITESPACE@40..41 " "
|
||||
R_CURLY@41..42 "}"
|
||||
WHITESPACE@42..43 "\n"
|
||||
R_CURLY@43..44 "}"
|
||||
WHITESPACE@44..45 "\n"
|
||||
error 25..25: expected COLON
|
|
@ -1,3 +0,0 @@
|
|||
fn main() {
|
||||
S { field ..S::default() }
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
SOURCE_FILE@0..25
|
||||
STRUCT@0..24
|
||||
STRUCT_KW@0..6 "struct"
|
||||
WHITESPACE@6..7 " "
|
||||
NAME@7..8
|
||||
IDENT@7..8 "S"
|
||||
WHITESPACE@8..9 " "
|
||||
RECORD_FIELD_LIST@9..24
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..11 " "
|
||||
RECORD_FIELD@11..12
|
||||
NAME@11..12
|
||||
IDENT@11..12 "f"
|
||||
WHITESPACE@12..13 " "
|
||||
RECORD_FIELD@13..22
|
||||
VISIBILITY@13..16
|
||||
PUB_KW@13..16 "pub"
|
||||
WHITESPACE@16..17 " "
|
||||
NAME@17..18
|
||||
IDENT@17..18 "g"
|
||||
COLON@18..19 ":"
|
||||
WHITESPACE@19..20 " "
|
||||
TUPLE_TYPE@20..22
|
||||
L_PAREN@20..21 "("
|
||||
R_PAREN@21..22 ")"
|
||||
WHITESPACE@22..23 " "
|
||||
R_CURLY@23..24 "}"
|
||||
WHITESPACE@24..25 "\n"
|
||||
error 12..12: expected COLON
|
||||
error 12..12: expected type
|
||||
error 12..12: expected COMMA
|
|
@ -1 +0,0 @@
|
|||
struct S { f pub g: () }
|
|
@ -1,14 +0,0 @@
|
|||
SOURCE_FILE@0..13
|
||||
USE@0..12
|
||||
USE_KW@0..3 "use"
|
||||
WHITESPACE@3..4 " "
|
||||
USE_TREE@4..11
|
||||
PATH@4..11
|
||||
PATH@4..9
|
||||
PATH_SEGMENT@4..9
|
||||
NAME_REF@4..9
|
||||
CRATE_KW@4..9 "crate"
|
||||
COLON2@9..11 "::"
|
||||
SEMICOLON@11..12 ";"
|
||||
WHITESPACE@12..13 "\n"
|
||||
error 11..11: expected identifier
|
|
@ -1 +0,0 @@
|
|||
use crate::;
|
|
@ -1,53 +0,0 @@
|
|||
SOURCE_FILE@0..29
|
||||
FN@0..28
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..4
|
||||
IDENT@3..4 "f"
|
||||
PARAM_LIST@4..25
|
||||
L_PAREN@4..5 "("
|
||||
PARAM@5..6
|
||||
IDENT_PAT@5..6
|
||||
NAME@5..6
|
||||
IDENT@5..6 "x"
|
||||
WHITESPACE@6..7 " "
|
||||
PARAM@7..13
|
||||
IDENT_PAT@7..8
|
||||
NAME@7..8
|
||||
IDENT@7..8 "y"
|
||||
COLON@8..9 ":"
|
||||
WHITESPACE@9..10 " "
|
||||
PATH_TYPE@10..13
|
||||
PATH@10..13
|
||||
PATH_SEGMENT@10..13
|
||||
NAME_REF@10..13
|
||||
IDENT@10..13 "i32"
|
||||
COMMA@13..14 ","
|
||||
WHITESPACE@14..15 " "
|
||||
PARAM@15..16
|
||||
IDENT_PAT@15..16
|
||||
NAME@15..16
|
||||
IDENT@15..16 "z"
|
||||
COMMA@16..17 ","
|
||||
WHITESPACE@17..18 " "
|
||||
PARAM@18..24
|
||||
IDENT_PAT@18..19
|
||||
NAME@18..19
|
||||
IDENT@18..19 "t"
|
||||
COLON@19..20 ":"
|
||||
WHITESPACE@20..21 " "
|
||||
PATH_TYPE@21..24
|
||||
PATH@21..24
|
||||
PATH_SEGMENT@21..24
|
||||
NAME_REF@21..24
|
||||
IDENT@21..24 "i32"
|
||||
R_PAREN@24..25 ")"
|
||||
WHITESPACE@25..26 " "
|
||||
BLOCK_EXPR@26..28
|
||||
STMT_LIST@26..28
|
||||
L_CURLY@26..27 "{"
|
||||
R_CURLY@27..28 "}"
|
||||
WHITESPACE@28..29 "\n"
|
||||
error 6..6: missing type for function parameter
|
||||
error 6..6: expected COMMA
|
||||
error 16..16: missing type for function parameter
|
|
@ -1 +0,0 @@
|
|||
fn f(x y: i32, z, t: i32) {}
|
|
@ -1,29 +0,0 @@
|
|||
SOURCE_FILE@0..15
|
||||
USE@0..14
|
||||
USE_KW@0..3 "use"
|
||||
WHITESPACE@3..4 " "
|
||||
USE_TREE@4..13
|
||||
USE_TREE_LIST@4..13
|
||||
L_CURLY@4..5 "{"
|
||||
USE_TREE@5..6
|
||||
PATH@5..6
|
||||
PATH_SEGMENT@5..6
|
||||
NAME_REF@5..6
|
||||
IDENT@5..6 "a"
|
||||
COMMA@6..7 ","
|
||||
WHITESPACE@7..8 " "
|
||||
USE_TREE@8..9
|
||||
PATH@8..9
|
||||
PATH_SEGMENT@8..9
|
||||
NAME_REF@8..9
|
||||
IDENT@8..9 "b"
|
||||
COMMA@9..10 ","
|
||||
WHITESPACE@10..11 " "
|
||||
USE_TREE@11..12
|
||||
PATH@11..12
|
||||
PATH_SEGMENT@11..12
|
||||
NAME_REF@11..12
|
||||
IDENT@11..12 "c"
|
||||
R_CURLY@12..13 "}"
|
||||
SEMICOLON@13..14 ";"
|
||||
WHITESPACE@14..15 "\n"
|
|
@ -1 +0,0 @@
|
|||
use {a, b, c};
|
|
@ -1,63 +0,0 @@
|
|||
SOURCE_FILE@0..54
|
||||
FN@0..53
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..12
|
||||
IDENT@3..12 "for_trait"
|
||||
GENERIC_PARAM_LIST@12..15
|
||||
L_ANGLE@12..13 "<"
|
||||
TYPE_PARAM@13..14
|
||||
NAME@13..14
|
||||
IDENT@13..14 "F"
|
||||
R_ANGLE@14..15 ">"
|
||||
PARAM_LIST@15..17
|
||||
L_PAREN@15..16 "("
|
||||
R_PAREN@16..17 ")"
|
||||
WHITESPACE@17..18 "\n"
|
||||
WHERE_CLAUSE@18..49
|
||||
WHERE_KW@18..23 "where"
|
||||
WHITESPACE@23..27 "\n "
|
||||
WHERE_PRED@27..49
|
||||
FOR_KW@27..30 "for"
|
||||
GENERIC_PARAM_LIST@30..34
|
||||
L_ANGLE@30..31 "<"
|
||||
LIFETIME_PARAM@31..33
|
||||
LIFETIME@31..33
|
||||
LIFETIME_IDENT@31..33 "'a"
|
||||
R_ANGLE@33..34 ">"
|
||||
WHITESPACE@34..35 " "
|
||||
PATH_TYPE@35..36
|
||||
PATH@35..36
|
||||
PATH_SEGMENT@35..36
|
||||
NAME_REF@35..36
|
||||
IDENT@35..36 "F"
|
||||
COLON@36..37 ":"
|
||||
WHITESPACE@37..38 " "
|
||||
TYPE_BOUND_LIST@38..49
|
||||
TYPE_BOUND@38..49
|
||||
PATH_TYPE@38..49
|
||||
PATH@38..49
|
||||
PATH_SEGMENT@38..49
|
||||
NAME_REF@38..40
|
||||
IDENT@38..40 "Fn"
|
||||
PARAM_LIST@40..49
|
||||
L_PAREN@40..41 "("
|
||||
PARAM@41..48
|
||||
REF_TYPE@41..48
|
||||
AMP@41..42 "&"
|
||||
LIFETIME@42..44
|
||||
LIFETIME_IDENT@42..44 "'a"
|
||||
WHITESPACE@44..45 " "
|
||||
PATH_TYPE@45..48
|
||||
PATH@45..48
|
||||
PATH_SEGMENT@45..48
|
||||
NAME_REF@45..48
|
||||
IDENT@45..48 "str"
|
||||
R_PAREN@48..49 ")"
|
||||
WHITESPACE@49..50 "\n"
|
||||
BLOCK_EXPR@50..53
|
||||
STMT_LIST@50..53
|
||||
L_CURLY@50..51 "{"
|
||||
WHITESPACE@51..52 " "
|
||||
R_CURLY@52..53 "}"
|
||||
WHITESPACE@53..54 "\n"
|
|
@ -1,4 +0,0 @@
|
|||
fn for_trait<F>()
|
||||
where
|
||||
for<'a> F: Fn(&'a str)
|
||||
{ }
|
|
@ -1,60 +0,0 @@
|
|||
SOURCE_FILE@0..39
|
||||
TYPE_ALIAS@0..38
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "F"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
PATH_TYPE@9..37
|
||||
PATH@9..37
|
||||
PATH_SEGMENT@9..37
|
||||
NAME_REF@9..12
|
||||
IDENT@9..12 "Box"
|
||||
GENERIC_ARG_LIST@12..37
|
||||
L_ANGLE@12..13 "<"
|
||||
TYPE_ARG@13..36
|
||||
PATH_TYPE@13..36
|
||||
PATH@13..36
|
||||
PATH_SEGMENT@13..36
|
||||
NAME_REF@13..15
|
||||
IDENT@13..15 "Fn"
|
||||
PARAM_LIST@15..36
|
||||
L_PAREN@15..16 "("
|
||||
PARAM@16..19
|
||||
PATH_TYPE@16..19
|
||||
PATH@16..19
|
||||
PATH_SEGMENT@16..19
|
||||
NAME_REF@16..19
|
||||
IDENT@16..19 "i32"
|
||||
COMMA@19..20 ","
|
||||
WHITESPACE@20..21 " "
|
||||
PARAM@21..25
|
||||
REF_TYPE@21..25
|
||||
AMP@21..22 "&"
|
||||
PATH_TYPE@22..25
|
||||
PATH@22..25
|
||||
PATH_SEGMENT@22..25
|
||||
NAME_REF@22..25
|
||||
IDENT@22..25 "i32"
|
||||
COMMA@25..26 ","
|
||||
WHITESPACE@26..27 " "
|
||||
PARAM@27..31
|
||||
REF_TYPE@27..31
|
||||
AMP@27..28 "&"
|
||||
PATH_TYPE@28..31
|
||||
PATH@28..31
|
||||
PATH_SEGMENT@28..31
|
||||
NAME_REF@28..31
|
||||
IDENT@28..31 "i32"
|
||||
COMMA@31..32 ","
|
||||
WHITESPACE@32..33 " "
|
||||
PARAM@33..35
|
||||
TUPLE_TYPE@33..35
|
||||
L_PAREN@33..34 "("
|
||||
R_PAREN@34..35 ")"
|
||||
R_PAREN@35..36 ")"
|
||||
R_ANGLE@36..37 ">"
|
||||
SEMICOLON@37..38 ";"
|
||||
WHITESPACE@38..39 "\n"
|
|
@ -1 +0,0 @@
|
|||
type F = Box<Fn(i32, &i32, &i32, ())>;
|
|
@ -1,38 +0,0 @@
|
|||
SOURCE_FILE@0..28
|
||||
FN@0..27
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
GENERIC_PARAM_LIST@6..23
|
||||
L_ANGLE@6..7 "<"
|
||||
TYPE_PARAM@7..22
|
||||
NAME@7..8
|
||||
IDENT@7..8 "T"
|
||||
COLON@8..9 ":"
|
||||
WHITESPACE@9..10 " "
|
||||
TYPE_BOUND_LIST@10..22
|
||||
TYPE_BOUND@10..15
|
||||
PATH_TYPE@10..15
|
||||
PATH@10..15
|
||||
PATH_SEGMENT@10..15
|
||||
NAME_REF@10..15
|
||||
IDENT@10..15 "Clone"
|
||||
WHITESPACE@15..16 " "
|
||||
PLUS@16..17 "+"
|
||||
WHITESPACE@17..18 " "
|
||||
TYPE_BOUND@18..22
|
||||
PATH_TYPE@18..22
|
||||
PATH@18..22
|
||||
PATH_SEGMENT@18..22
|
||||
NAME_REF@18..22
|
||||
IDENT@18..22 "Copy"
|
||||
R_ANGLE@22..23 ">"
|
||||
PARAM_LIST@23..25
|
||||
L_PAREN@23..24 "("
|
||||
R_PAREN@24..25 ")"
|
||||
BLOCK_EXPR@25..27
|
||||
STMT_LIST@25..27
|
||||
L_CURLY@25..26 "{"
|
||||
R_CURLY@26..27 "}"
|
||||
WHITESPACE@27..28 "\n"
|
|
@ -1 +0,0 @@
|
|||
fn foo<T: Clone + Copy>(){}
|
|
@ -1,128 +0,0 @@
|
|||
SOURCE_FILE@0..128
|
||||
IMPL@0..127
|
||||
IMPL_KW@0..4 "impl"
|
||||
WHITESPACE@4..5 " "
|
||||
PATH_TYPE@5..6
|
||||
PATH@5..6
|
||||
PATH_SEGMENT@5..6
|
||||
NAME_REF@5..6
|
||||
IDENT@5..6 "S"
|
||||
WHITESPACE@6..7 " "
|
||||
ASSOC_ITEM_LIST@7..127
|
||||
L_CURLY@7..8 "{"
|
||||
WHITESPACE@8..13 "\n "
|
||||
FN@13..26
|
||||
FN_KW@13..15 "fn"
|
||||
WHITESPACE@15..16 " "
|
||||
NAME@16..17
|
||||
IDENT@16..17 "a"
|
||||
PARAM_LIST@17..23
|
||||
L_PAREN@17..18 "("
|
||||
SELF_PARAM@18..22
|
||||
NAME@18..22
|
||||
SELF_KW@18..22 "self"
|
||||
R_PAREN@22..23 ")"
|
||||
WHITESPACE@23..24 " "
|
||||
BLOCK_EXPR@24..26
|
||||
STMT_LIST@24..26
|
||||
L_CURLY@24..25 "{"
|
||||
R_CURLY@25..26 "}"
|
||||
WHITESPACE@26..31 "\n "
|
||||
FN@31..46
|
||||
FN_KW@31..33 "fn"
|
||||
WHITESPACE@33..34 " "
|
||||
NAME@34..35
|
||||
IDENT@34..35 "b"
|
||||
PARAM_LIST@35..43
|
||||
L_PAREN@35..36 "("
|
||||
SELF_PARAM@36..41
|
||||
AMP@36..37 "&"
|
||||
NAME@37..41
|
||||
SELF_KW@37..41 "self"
|
||||
COMMA@41..42 ","
|
||||
R_PAREN@42..43 ")"
|
||||
WHITESPACE@43..44 " "
|
||||
BLOCK_EXPR@44..46
|
||||
STMT_LIST@44..46
|
||||
L_CURLY@44..45 "{"
|
||||
R_CURLY@45..46 "}"
|
||||
WHITESPACE@46..51 "\n "
|
||||
FN@51..69
|
||||
FN_KW@51..53 "fn"
|
||||
WHITESPACE@53..54 " "
|
||||
NAME@54..55
|
||||
IDENT@54..55 "c"
|
||||
PARAM_LIST@55..66
|
||||
L_PAREN@55..56 "("
|
||||
SELF_PARAM@56..64
|
||||
AMP@56..57 "&"
|
||||
LIFETIME@57..59
|
||||
LIFETIME_IDENT@57..59 "'a"
|
||||
WHITESPACE@59..60 " "
|
||||
NAME@60..64
|
||||
SELF_KW@60..64 "self"
|
||||
COMMA@64..65 ","
|
||||
R_PAREN@65..66 ")"
|
||||
WHITESPACE@66..67 " "
|
||||
BLOCK_EXPR@67..69
|
||||
STMT_LIST@67..69
|
||||
L_CURLY@67..68 "{"
|
||||
R_CURLY@68..69 "}"
|
||||
WHITESPACE@69..74 "\n "
|
||||
FN@74..103
|
||||
FN_KW@74..76 "fn"
|
||||
WHITESPACE@76..77 " "
|
||||
NAME@77..78
|
||||
IDENT@77..78 "d"
|
||||
PARAM_LIST@78..100
|
||||
L_PAREN@78..79 "("
|
||||
SELF_PARAM@79..91
|
||||
AMP@79..80 "&"
|
||||
LIFETIME@80..82
|
||||
LIFETIME_IDENT@80..82 "'a"
|
||||
WHITESPACE@82..83 " "
|
||||
MUT_KW@83..86 "mut"
|
||||
WHITESPACE@86..87 " "
|
||||
NAME@87..91
|
||||
SELF_KW@87..91 "self"
|
||||
COMMA@91..92 ","
|
||||
WHITESPACE@92..93 " "
|
||||
PARAM@93..99
|
||||
IDENT_PAT@93..94
|
||||
NAME@93..94
|
||||
IDENT@93..94 "x"
|
||||
COLON@94..95 ":"
|
||||
WHITESPACE@95..96 " "
|
||||
PATH_TYPE@96..99
|
||||
PATH@96..99
|
||||
PATH_SEGMENT@96..99
|
||||
NAME_REF@96..99
|
||||
IDENT@96..99 "i32"
|
||||
R_PAREN@99..100 ")"
|
||||
WHITESPACE@100..101 " "
|
||||
BLOCK_EXPR@101..103
|
||||
STMT_LIST@101..103
|
||||
L_CURLY@101..102 "{"
|
||||
R_CURLY@102..103 "}"
|
||||
WHITESPACE@103..108 "\n "
|
||||
FN@108..125
|
||||
FN_KW@108..110 "fn"
|
||||
WHITESPACE@110..111 " "
|
||||
NAME@111..112
|
||||
IDENT@111..112 "e"
|
||||
PARAM_LIST@112..122
|
||||
L_PAREN@112..113 "("
|
||||
SELF_PARAM@113..121
|
||||
MUT_KW@113..116 "mut"
|
||||
WHITESPACE@116..117 " "
|
||||
NAME@117..121
|
||||
SELF_KW@117..121 "self"
|
||||
R_PAREN@121..122 ")"
|
||||
WHITESPACE@122..123 " "
|
||||
BLOCK_EXPR@123..125
|
||||
STMT_LIST@123..125
|
||||
L_CURLY@123..124 "{"
|
||||
R_CURLY@124..125 "}"
|
||||
WHITESPACE@125..126 "\n"
|
||||
R_CURLY@126..127 "}"
|
||||
WHITESPACE@127..128 "\n"
|
|
@ -1,7 +0,0 @@
|
|||
impl S {
|
||||
fn a(self) {}
|
||||
fn b(&self,) {}
|
||||
fn c(&'a self,) {}
|
||||
fn d(&'a mut self, x: i32) {}
|
||||
fn e(mut self) {}
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
SOURCE_FILE@0..49
|
||||
STRUCT@0..48
|
||||
STRUCT_KW@0..6 "struct"
|
||||
WHITESPACE@6..7 " "
|
||||
NAME@7..8
|
||||
IDENT@7..8 "S"
|
||||
GENERIC_PARAM_LIST@8..47
|
||||
L_ANGLE@8..9 "<"
|
||||
TYPE_PARAM@9..46
|
||||
NAME@9..10
|
||||
IDENT@9..10 "T"
|
||||
COLON@10..11 ":"
|
||||
WHITESPACE@11..12 " "
|
||||
TYPE_BOUND_LIST@12..46
|
||||
TYPE_BOUND@12..14
|
||||
LIFETIME@12..14
|
||||
LIFETIME_IDENT@12..14 "'a"
|
||||
WHITESPACE@14..15 " "
|
||||
PLUS@15..16 "+"
|
||||
WHITESPACE@16..17 " "
|
||||
TYPE_BOUND@17..23
|
||||
QUESTION@17..18 "?"
|
||||
PATH_TYPE@18..23
|
||||
PATH@18..23
|
||||
PATH_SEGMENT@18..23
|
||||
NAME_REF@18..23
|
||||
IDENT@18..23 "Sized"
|
||||
WHITESPACE@23..24 " "
|
||||
PLUS@24..25 "+"
|
||||
WHITESPACE@25..26 " "
|
||||
TYPE_BOUND@26..32
|
||||
L_PAREN@26..27 "("
|
||||
PATH_TYPE@27..31
|
||||
PATH@27..31
|
||||
PATH_SEGMENT@27..31
|
||||
NAME_REF@27..31
|
||||
IDENT@27..31 "Copy"
|
||||
R_PAREN@31..32 ")"
|
||||
WHITESPACE@32..33 " "
|
||||
PLUS@33..34 "+"
|
||||
WHITESPACE@34..35 " "
|
||||
TYPE_BOUND@35..46
|
||||
TILDE@35..36 "~"
|
||||
CONST_KW@36..41 "const"
|
||||
WHITESPACE@41..42 " "
|
||||
PATH_TYPE@42..46
|
||||
PATH@42..46
|
||||
PATH_SEGMENT@42..46
|
||||
NAME_REF@42..46
|
||||
IDENT@42..46 "Drop"
|
||||
R_ANGLE@46..47 ">"
|
||||
SEMICOLON@47..48 ";"
|
||||
WHITESPACE@48..49 "\n"
|
|
@ -1 +0,0 @@
|
|||
struct S<T: 'a + ?Sized + (Copy) + ~const Drop>;
|
|
@ -1,98 +0,0 @@
|
|||
SOURCE_FILE@0..103
|
||||
FN@0..102
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..102
|
||||
STMT_LIST@9..102
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
LET_STMT@15..33
|
||||
LET_KW@15..18 "let"
|
||||
WHITESPACE@18..19 " "
|
||||
PATH_PAT@19..27
|
||||
PATH@19..27
|
||||
PATH@19..22
|
||||
PATH_SEGMENT@19..22
|
||||
NAME_REF@19..22
|
||||
IDENT@19..22 "foo"
|
||||
COLON2@22..24 "::"
|
||||
PATH_SEGMENT@24..27
|
||||
NAME_REF@24..27
|
||||
IDENT@24..27 "Bar"
|
||||
WHITESPACE@27..28 " "
|
||||
EQ@28..29 "="
|
||||
WHITESPACE@29..30 " "
|
||||
TUPLE_EXPR@30..32
|
||||
L_PAREN@30..31 "("
|
||||
R_PAREN@31..32 ")"
|
||||
SEMICOLON@32..33 ";"
|
||||
WHITESPACE@33..38 "\n "
|
||||
LET_STMT@38..53
|
||||
LET_KW@38..41 "let"
|
||||
WHITESPACE@41..42 " "
|
||||
PATH_PAT@42..47
|
||||
PATH@42..47
|
||||
PATH_SEGMENT@42..47
|
||||
COLON2@42..44 "::"
|
||||
NAME_REF@44..47
|
||||
IDENT@44..47 "Bar"
|
||||
WHITESPACE@47..48 " "
|
||||
EQ@48..49 "="
|
||||
WHITESPACE@49..50 " "
|
||||
TUPLE_EXPR@50..52
|
||||
L_PAREN@50..51 "("
|
||||
R_PAREN@51..52 ")"
|
||||
SEMICOLON@52..53 ";"
|
||||
WHITESPACE@53..58 "\n "
|
||||
LET_STMT@58..78
|
||||
LET_KW@58..61 "let"
|
||||
WHITESPACE@61..62 " "
|
||||
RECORD_PAT@62..72
|
||||
PATH@62..65
|
||||
PATH_SEGMENT@62..65
|
||||
NAME_REF@62..65
|
||||
IDENT@62..65 "Bar"
|
||||
WHITESPACE@65..66 " "
|
||||
RECORD_PAT_FIELD_LIST@66..72
|
||||
L_CURLY@66..67 "{"
|
||||
WHITESPACE@67..68 " "
|
||||
REST_PAT@68..70
|
||||
DOT2@68..70 ".."
|
||||
WHITESPACE@70..71 " "
|
||||
R_CURLY@71..72 "}"
|
||||
WHITESPACE@72..73 " "
|
||||
EQ@73..74 "="
|
||||
WHITESPACE@74..75 " "
|
||||
TUPLE_EXPR@75..77
|
||||
L_PAREN@75..76 "("
|
||||
R_PAREN@76..77 ")"
|
||||
SEMICOLON@77..78 ";"
|
||||
WHITESPACE@78..83 "\n "
|
||||
LET_STMT@83..100
|
||||
LET_KW@83..86 "let"
|
||||
WHITESPACE@86..87 " "
|
||||
TUPLE_STRUCT_PAT@87..94
|
||||
PATH@87..90
|
||||
PATH_SEGMENT@87..90
|
||||
NAME_REF@87..90
|
||||
IDENT@87..90 "Bar"
|
||||
L_PAREN@90..91 "("
|
||||
REST_PAT@91..93
|
||||
DOT2@91..93 ".."
|
||||
R_PAREN@93..94 ")"
|
||||
WHITESPACE@94..95 " "
|
||||
EQ@95..96 "="
|
||||
WHITESPACE@96..97 " "
|
||||
TUPLE_EXPR@97..99
|
||||
L_PAREN@97..98 "("
|
||||
R_PAREN@98..99 ")"
|
||||
SEMICOLON@99..100 ";"
|
||||
WHITESPACE@100..101 "\n"
|
||||
R_CURLY@101..102 "}"
|
||||
WHITESPACE@102..103 "\n"
|
|
@ -1,6 +0,0 @@
|
|||
fn foo() {
|
||||
let foo::Bar = ();
|
||||
let ::Bar = ();
|
||||
let Bar { .. } = ();
|
||||
let Bar(..) = ();
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
SOURCE_FILE@0..26
|
||||
FN@0..25
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..25
|
||||
STMT_LIST@9..25
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..23
|
||||
LOOP_EXPR@15..22
|
||||
LOOP_KW@15..19 "loop"
|
||||
WHITESPACE@19..20 " "
|
||||
BLOCK_EXPR@20..22
|
||||
STMT_LIST@20..22
|
||||
L_CURLY@20..21 "{"
|
||||
R_CURLY@21..22 "}"
|
||||
SEMICOLON@22..23 ";"
|
||||
WHITESPACE@23..24 "\n"
|
||||
R_CURLY@24..25 "}"
|
||||
WHITESPACE@25..26 "\n"
|
|
@ -1,3 +0,0 @@
|
|||
fn foo() {
|
||||
loop {};
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
SOURCE_FILE@0..31
|
||||
EXTERN_BLOCK@0..20
|
||||
UNSAFE_KW@0..6 "unsafe"
|
||||
WHITESPACE@6..7 " "
|
||||
ABI@7..17
|
||||
EXTERN_KW@7..13 "extern"
|
||||
WHITESPACE@13..14 " "
|
||||
STRING@14..17 "\"C\""
|
||||
WHITESPACE@17..18 " "
|
||||
EXTERN_ITEM_LIST@18..20
|
||||
L_CURLY@18..19 "{"
|
||||
R_CURLY@19..20 "}"
|
||||
WHITESPACE@20..21 "\n"
|
||||
EXTERN_BLOCK@21..30
|
||||
ABI@21..27
|
||||
EXTERN_KW@21..27 "extern"
|
||||
WHITESPACE@27..28 " "
|
||||
EXTERN_ITEM_LIST@28..30
|
||||
L_CURLY@28..29 "{"
|
||||
R_CURLY@29..30 "}"
|
||||
WHITESPACE@30..31 "\n"
|
|
@ -1,2 +0,0 @@
|
|||
unsafe extern "C" {}
|
||||
extern {}
|
|
@ -1,60 +0,0 @@
|
|||
SOURCE_FILE@0..48
|
||||
FN@0..47
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..47
|
||||
STMT_LIST@9..47
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..21
|
||||
FIELD_EXPR@15..20
|
||||
PATH_EXPR@15..16
|
||||
PATH@15..16
|
||||
PATH_SEGMENT@15..16
|
||||
NAME_REF@15..16
|
||||
IDENT@15..16 "x"
|
||||
DOT@16..17 "."
|
||||
NAME_REF@17..20
|
||||
IDENT@17..20 "foo"
|
||||
SEMICOLON@20..21 ";"
|
||||
WHITESPACE@21..26 "\n "
|
||||
EXPR_STMT@26..34
|
||||
FIELD_EXPR@26..33
|
||||
FIELD_EXPR@26..29
|
||||
PATH_EXPR@26..27
|
||||
PATH@26..27
|
||||
PATH_SEGMENT@26..27
|
||||
NAME_REF@26..27
|
||||
IDENT@26..27 "x"
|
||||
DOT@27..28 "."
|
||||
NAME_REF@28..29
|
||||
INT_NUMBER@28..29 "0"
|
||||
DOT@29..30 "."
|
||||
NAME_REF@30..33
|
||||
IDENT@30..33 "bar"
|
||||
SEMICOLON@33..34 ";"
|
||||
WHITESPACE@34..39 "\n "
|
||||
EXPR_STMT@39..45
|
||||
CALL_EXPR@39..44
|
||||
FIELD_EXPR@39..42
|
||||
PATH_EXPR@39..40
|
||||
PATH@39..40
|
||||
PATH_SEGMENT@39..40
|
||||
NAME_REF@39..40
|
||||
IDENT@39..40 "x"
|
||||
DOT@40..41 "."
|
||||
NAME_REF@41..42
|
||||
INT_NUMBER@41..42 "0"
|
||||
ARG_LIST@42..44
|
||||
L_PAREN@42..43 "("
|
||||
R_PAREN@43..44 ")"
|
||||
SEMICOLON@44..45 ";"
|
||||
WHITESPACE@45..46 "\n"
|
||||
R_CURLY@46..47 "}"
|
||||
WHITESPACE@47..48 "\n"
|
|
@ -1,5 +0,0 @@
|
|||
fn foo() {
|
||||
x.foo;
|
||||
x.0.bar;
|
||||
x.0();
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
SOURCE_FILE@0..31
|
||||
TYPE_ALIAS@0..30
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..8
|
||||
IDENT@5..8 "Foo"
|
||||
WHITESPACE@8..9 " "
|
||||
WHERE_CLAUSE@9..24
|
||||
WHERE_KW@9..14 "where"
|
||||
WHITESPACE@14..15 " "
|
||||
WHERE_PRED@15..24
|
||||
PATH_TYPE@15..18
|
||||
PATH@15..18
|
||||
PATH_SEGMENT@15..18
|
||||
NAME_REF@15..18
|
||||
IDENT@15..18 "Foo"
|
||||
COLON@18..19 ":"
|
||||
WHITESPACE@19..20 " "
|
||||
TYPE_BOUND_LIST@20..24
|
||||
TYPE_BOUND@20..24
|
||||
PATH_TYPE@20..24
|
||||
PATH@20..24
|
||||
PATH_SEGMENT@20..24
|
||||
NAME_REF@20..24
|
||||
IDENT@20..24 "Copy"
|
||||
WHITESPACE@24..25 " "
|
||||
EQ@25..26 "="
|
||||
WHITESPACE@26..27 " "
|
||||
TUPLE_TYPE@27..29
|
||||
L_PAREN@27..28 "("
|
||||
R_PAREN@28..29 ")"
|
||||
SEMICOLON@29..30 ";"
|
||||
WHITESPACE@30..31 "\n"
|
|
@ -1 +0,0 @@
|
|||
type Foo where Foo: Copy = ();
|
|
@ -1,35 +0,0 @@
|
|||
SOURCE_FILE@0..36
|
||||
TYPE_ALIAS@0..17
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "M"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
PTR_TYPE@9..16
|
||||
STAR@9..10 "*"
|
||||
MUT_KW@10..13 "mut"
|
||||
WHITESPACE@13..14 " "
|
||||
TUPLE_TYPE@14..16
|
||||
L_PAREN@14..15 "("
|
||||
R_PAREN@15..16 ")"
|
||||
SEMICOLON@16..17 ";"
|
||||
WHITESPACE@17..18 "\n"
|
||||
TYPE_ALIAS@18..35
|
||||
TYPE_KW@18..22 "type"
|
||||
WHITESPACE@22..23 " "
|
||||
NAME@23..24
|
||||
IDENT@23..24 "C"
|
||||
WHITESPACE@24..25 " "
|
||||
EQ@25..26 "="
|
||||
WHITESPACE@26..27 " "
|
||||
PTR_TYPE@27..34
|
||||
STAR@27..28 "*"
|
||||
MUT_KW@28..31 "mut"
|
||||
WHITESPACE@31..32 " "
|
||||
TUPLE_TYPE@32..34
|
||||
L_PAREN@32..33 "("
|
||||
R_PAREN@33..34 ")"
|
||||
SEMICOLON@34..35 ";"
|
||||
WHITESPACE@35..36 "\n"
|
|
@ -1,2 +0,0 @@
|
|||
type M = *mut ();
|
||||
type C = *mut ();
|
|
@ -1,13 +0,0 @@
|
|||
SOURCE_FILE@0..16
|
||||
TYPE_ALIAS@0..15
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..10
|
||||
IDENT@5..10 "Never"
|
||||
WHITESPACE@10..11 " "
|
||||
EQ@11..12 "="
|
||||
WHITESPACE@12..13 " "
|
||||
NEVER_TYPE@13..14
|
||||
BANG@13..14 "!"
|
||||
SEMICOLON@14..15 ";"
|
||||
WHITESPACE@15..16 "\n"
|
|
@ -1 +0,0 @@
|
|||
type Never = !;
|
|
@ -1,38 +0,0 @@
|
|||
SOURCE_FILE@0..69
|
||||
FN@0..68
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..68
|
||||
STMT_LIST@9..68
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
LOOP_EXPR@15..66
|
||||
LOOP_KW@15..19 "loop"
|
||||
WHITESPACE@19..20 " "
|
||||
BLOCK_EXPR@20..66
|
||||
STMT_LIST@20..66
|
||||
L_CURLY@20..21 "{"
|
||||
WHITESPACE@21..30 "\n "
|
||||
EXPR_STMT@30..39
|
||||
CONTINUE_EXPR@30..38
|
||||
CONTINUE_KW@30..38 "continue"
|
||||
SEMICOLON@38..39 ";"
|
||||
WHITESPACE@39..48 "\n "
|
||||
EXPR_STMT@48..60
|
||||
CONTINUE_EXPR@48..59
|
||||
CONTINUE_KW@48..56 "continue"
|
||||
WHITESPACE@56..57 " "
|
||||
LIFETIME@57..59
|
||||
LIFETIME_IDENT@57..59 "'l"
|
||||
SEMICOLON@59..60 ";"
|
||||
WHITESPACE@60..65 "\n "
|
||||
R_CURLY@65..66 "}"
|
||||
WHITESPACE@66..67 "\n"
|
||||
R_CURLY@67..68 "}"
|
||||
WHITESPACE@68..69 "\n"
|
|
@ -1,6 +0,0 @@
|
|||
fn foo() {
|
||||
loop {
|
||||
continue;
|
||||
continue 'l;
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
SOURCE_FILE@0..19
|
||||
TYPE_ALIAS@0..18
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "T"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
ARRAY_TYPE@9..17
|
||||
L_BRACK@9..10 "["
|
||||
TUPLE_TYPE@10..12
|
||||
L_PAREN@10..11 "("
|
||||
R_PAREN@11..12 ")"
|
||||
SEMICOLON@12..13 ";"
|
||||
WHITESPACE@13..14 " "
|
||||
LITERAL@14..16
|
||||
INT_NUMBER@14..16 "92"
|
||||
R_BRACK@16..17 "]"
|
||||
SEMICOLON@17..18 ";"
|
||||
WHITESPACE@18..19 "\n"
|
|
@ -1 +0,0 @@
|
|||
type T = [(); 92];
|
|
@ -1,76 +0,0 @@
|
|||
SOURCE_FILE@0..69
|
||||
IMPL@0..68
|
||||
IMPL_KW@0..4 "impl"
|
||||
WHITESPACE@4..5 " "
|
||||
PATH_TYPE@5..6
|
||||
PATH@5..6
|
||||
PATH_SEGMENT@5..6
|
||||
NAME_REF@5..6
|
||||
IDENT@5..6 "S"
|
||||
WHITESPACE@6..7 " "
|
||||
ASSOC_ITEM_LIST@7..68
|
||||
L_CURLY@7..8 "{"
|
||||
WHITESPACE@8..13 "\n "
|
||||
FN@13..33
|
||||
FN_KW@13..15 "fn"
|
||||
WHITESPACE@15..16 " "
|
||||
NAME@16..17
|
||||
IDENT@16..17 "a"
|
||||
PARAM_LIST@17..30
|
||||
L_PAREN@17..18 "("
|
||||
SELF_PARAM@18..29
|
||||
NAME@18..22
|
||||
SELF_KW@18..22 "self"
|
||||
COLON@22..23 ":"
|
||||
WHITESPACE@23..24 " "
|
||||
REF_TYPE@24..29
|
||||
AMP@24..25 "&"
|
||||
PATH_TYPE@25..29
|
||||
PATH@25..29
|
||||
PATH_SEGMENT@25..29
|
||||
NAME_REF@25..29
|
||||
IDENT@25..29 "Self"
|
||||
R_PAREN@29..30 ")"
|
||||
WHITESPACE@30..31 " "
|
||||
BLOCK_EXPR@31..33
|
||||
STMT_LIST@31..33
|
||||
L_CURLY@31..32 "{"
|
||||
R_CURLY@32..33 "}"
|
||||
WHITESPACE@33..38 "\n "
|
||||
FN@38..66
|
||||
FN_KW@38..40 "fn"
|
||||
WHITESPACE@40..41 " "
|
||||
NAME@41..42
|
||||
IDENT@41..42 "b"
|
||||
PARAM_LIST@42..63
|
||||
L_PAREN@42..43 "("
|
||||
SELF_PARAM@43..62
|
||||
MUT_KW@43..46 "mut"
|
||||
WHITESPACE@46..47 " "
|
||||
NAME@47..51
|
||||
SELF_KW@47..51 "self"
|
||||
COLON@51..52 ":"
|
||||
WHITESPACE@52..53 " "
|
||||
PATH_TYPE@53..62
|
||||
PATH@53..62
|
||||
PATH_SEGMENT@53..62
|
||||
NAME_REF@53..56
|
||||
IDENT@53..56 "Box"
|
||||
GENERIC_ARG_LIST@56..62
|
||||
L_ANGLE@56..57 "<"
|
||||
TYPE_ARG@57..61
|
||||
PATH_TYPE@57..61
|
||||
PATH@57..61
|
||||
PATH_SEGMENT@57..61
|
||||
NAME_REF@57..61
|
||||
IDENT@57..61 "Self"
|
||||
R_ANGLE@61..62 ">"
|
||||
R_PAREN@62..63 ")"
|
||||
WHITESPACE@63..64 " "
|
||||
BLOCK_EXPR@64..66
|
||||
STMT_LIST@64..66
|
||||
L_CURLY@64..65 "{"
|
||||
R_CURLY@65..66 "}"
|
||||
WHITESPACE@66..67 "\n"
|
||||
R_CURLY@67..68 "}"
|
||||
WHITESPACE@68..69 "\n"
|
|
@ -1,4 +0,0 @@
|
|||
impl S {
|
||||
fn a(self: &Self) {}
|
||||
fn b(mut self: Box<Self>) {}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
SOURCE_FILE@0..44
|
||||
FN@0..43
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..43
|
||||
STMT_LIST@9..43
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..20
|
||||
PREFIX_EXPR@15..19
|
||||
STAR@15..16 "*"
|
||||
PREFIX_EXPR@16..19
|
||||
STAR@16..17 "*"
|
||||
REF_EXPR@17..19
|
||||
AMP@17..18 "&"
|
||||
LITERAL@18..19
|
||||
INT_NUMBER@18..19 "1"
|
||||
SEMICOLON@19..20 ";"
|
||||
WHITESPACE@20..25 "\n "
|
||||
EXPR_STMT@25..32
|
||||
PREFIX_EXPR@25..31
|
||||
BANG@25..26 "!"
|
||||
PREFIX_EXPR@26..31
|
||||
BANG@26..27 "!"
|
||||
LITERAL@27..31
|
||||
TRUE_KW@27..31 "true"
|
||||
SEMICOLON@31..32 ";"
|
||||
WHITESPACE@32..37 "\n "
|
||||
EXPR_STMT@37..41
|
||||
PREFIX_EXPR@37..40
|
||||
MINUS@37..38 "-"
|
||||
PREFIX_EXPR@38..40
|
||||
MINUS@38..39 "-"
|
||||
LITERAL@39..40
|
||||
INT_NUMBER@39..40 "1"
|
||||
SEMICOLON@40..41 ";"
|
||||
WHITESPACE@41..42 "\n"
|
||||
R_CURLY@42..43 "}"
|
||||
WHITESPACE@43..44 "\n"
|
|
@ -1,5 +0,0 @@
|
|||
fn foo() {
|
||||
**&1;
|
||||
!!true;
|
||||
--1;
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
SOURCE_FILE@0..89
|
||||
IMPL@0..88
|
||||
IMPL_KW@0..4 "impl"
|
||||
WHITESPACE@4..5 " "
|
||||
PATH_TYPE@5..6
|
||||
PATH@5..6
|
||||
PATH_SEGMENT@5..6
|
||||
NAME_REF@5..6
|
||||
IDENT@5..6 "F"
|
||||
WHITESPACE@6..7 " "
|
||||
ASSOC_ITEM_LIST@7..88
|
||||
L_CURLY@7..8 "{"
|
||||
WHITESPACE@8..13 "\n "
|
||||
TYPE_ALIAS@13..26
|
||||
TYPE_KW@13..17 "type"
|
||||
WHITESPACE@17..18 " "
|
||||
NAME@18..19
|
||||
IDENT@18..19 "A"
|
||||
WHITESPACE@19..20 " "
|
||||
EQ@20..21 "="
|
||||
WHITESPACE@21..22 " "
|
||||
PATH_TYPE@22..25
|
||||
PATH@22..25
|
||||
PATH_SEGMENT@22..25
|
||||
NAME_REF@22..25
|
||||
IDENT@22..25 "i32"
|
||||
SEMICOLON@25..26 ";"
|
||||
WHITESPACE@26..31 "\n "
|
||||
CONST@31..49
|
||||
CONST_KW@31..36 "const"
|
||||
WHITESPACE@36..37 " "
|
||||
NAME@37..38
|
||||
IDENT@37..38 "B"
|
||||
COLON@38..39 ":"
|
||||
WHITESPACE@39..40 " "
|
||||
PATH_TYPE@40..43
|
||||
PATH@40..43
|
||||
PATH_SEGMENT@40..43
|
||||
NAME_REF@40..43
|
||||
IDENT@40..43 "i32"
|
||||
WHITESPACE@43..44 " "
|
||||
EQ@44..45 "="
|
||||
WHITESPACE@45..46 " "
|
||||
LITERAL@46..48
|
||||
INT_NUMBER@46..48 "92"
|
||||
SEMICOLON@48..49 ";"
|
||||
WHITESPACE@49..54 "\n "
|
||||
FN@54..65
|
||||
FN_KW@54..56 "fn"
|
||||
WHITESPACE@56..57 " "
|
||||
NAME@57..60
|
||||
IDENT@57..60 "foo"
|
||||
PARAM_LIST@60..62
|
||||
L_PAREN@60..61 "("
|
||||
R_PAREN@61..62 ")"
|
||||
WHITESPACE@62..63 " "
|
||||
BLOCK_EXPR@63..65
|
||||
STMT_LIST@63..65
|
||||
L_CURLY@63..64 "{"
|
||||
R_CURLY@64..65 "}"
|
||||
WHITESPACE@65..70 "\n "
|
||||
FN@70..86
|
||||
FN_KW@70..72 "fn"
|
||||
WHITESPACE@72..73 " "
|
||||
NAME@73..76
|
||||
IDENT@73..76 "bar"
|
||||
PARAM_LIST@76..83
|
||||
L_PAREN@76..77 "("
|
||||
SELF_PARAM@77..82
|
||||
AMP@77..78 "&"
|
||||
NAME@78..82
|
||||
SELF_KW@78..82 "self"
|
||||
R_PAREN@82..83 ")"
|
||||
WHITESPACE@83..84 " "
|
||||
BLOCK_EXPR@84..86
|
||||
STMT_LIST@84..86
|
||||
L_CURLY@84..85 "{"
|
||||
R_CURLY@85..86 "}"
|
||||
WHITESPACE@86..87 "\n"
|
||||
R_CURLY@87..88 "}"
|
||||
WHITESPACE@88..89 "\n"
|
|
@ -1,6 +0,0 @@
|
|||
impl F {
|
||||
type A = i32;
|
||||
const B: i32 = 92;
|
||||
fn foo() {}
|
||||
fn bar(&self) {}
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
SOURCE_FILE@0..62
|
||||
STRUCT@0..20
|
||||
VISIBILITY@0..10
|
||||
PUB_KW@0..3 "pub"
|
||||
L_PAREN@3..4 "("
|
||||
PATH@4..9
|
||||
PATH_SEGMENT@4..9
|
||||
NAME_REF@4..9
|
||||
CRATE_KW@4..9 "crate"
|
||||
R_PAREN@9..10 ")"
|
||||
WHITESPACE@10..11 " "
|
||||
STRUCT_KW@11..17 "struct"
|
||||
WHITESPACE@17..18 " "
|
||||
NAME@18..19
|
||||
IDENT@18..19 "S"
|
||||
SEMICOLON@19..20 ";"
|
||||
WHITESPACE@20..21 "\n"
|
||||
STRUCT@21..40
|
||||
VISIBILITY@21..30
|
||||
PUB_KW@21..24 "pub"
|
||||
L_PAREN@24..25 "("
|
||||
PATH@25..29
|
||||
PATH_SEGMENT@25..29
|
||||
NAME_REF@25..29
|
||||
SELF_KW@25..29 "self"
|
||||
R_PAREN@29..30 ")"
|
||||
WHITESPACE@30..31 " "
|
||||
STRUCT_KW@31..37 "struct"
|
||||
WHITESPACE@37..38 " "
|
||||
NAME@38..39
|
||||
IDENT@38..39 "S"
|
||||
SEMICOLON@39..40 ";"
|
||||
WHITESPACE@40..41 "\n"
|
||||
STRUCT@41..61
|
||||
VISIBILITY@41..51
|
||||
PUB_KW@41..44 "pub"
|
||||
L_PAREN@44..45 "("
|
||||
PATH@45..50
|
||||
PATH_SEGMENT@45..50
|
||||
NAME_REF@45..50
|
||||
SUPER_KW@45..50 "super"
|
||||
R_PAREN@50..51 ")"
|
||||
WHITESPACE@51..52 " "
|
||||
STRUCT_KW@52..58 "struct"
|
||||
WHITESPACE@58..59 " "
|
||||
NAME@59..60
|
||||
IDENT@59..60 "S"
|
||||
SEMICOLON@60..61 ";"
|
||||
WHITESPACE@61..62 "\n"
|
|
@ -1,3 +0,0 @@
|
|||
pub(crate) struct S;
|
||||
pub(self) struct S;
|
||||
pub(super) struct S;
|
|
@ -1,13 +0,0 @@
|
|||
SOURCE_FILE@0..22
|
||||
TYPE_ALIAS@0..21
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..16
|
||||
IDENT@5..16 "Placeholder"
|
||||
WHITESPACE@16..17 " "
|
||||
EQ@17..18 "="
|
||||
WHITESPACE@18..19 " "
|
||||
INFER_TYPE@19..20
|
||||
UNDERSCORE@19..20 "_"
|
||||
SEMICOLON@20..21 ";"
|
||||
WHITESPACE@21..22 "\n"
|
|
@ -1 +0,0 @@
|
|||
type Placeholder = _;
|
|
@ -1,42 +0,0 @@
|
|||
SOURCE_FILE@0..39
|
||||
FN@0..38
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..38
|
||||
STMT_LIST@10..38
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
LET_STMT@16..36
|
||||
LET_KW@16..19 "let"
|
||||
WHITESPACE@19..20 " "
|
||||
SLICE_PAT@20..30
|
||||
L_BRACK@20..21 "["
|
||||
IDENT_PAT@21..22
|
||||
NAME@21..22
|
||||
IDENT@21..22 "a"
|
||||
COMMA@22..23 ","
|
||||
WHITESPACE@23..24 " "
|
||||
IDENT_PAT@24..25
|
||||
NAME@24..25
|
||||
IDENT@24..25 "b"
|
||||
COMMA@25..26 ","
|
||||
WHITESPACE@26..27 " "
|
||||
REST_PAT@27..29
|
||||
DOT2@27..29 ".."
|
||||
R_BRACK@29..30 "]"
|
||||
WHITESPACE@30..31 " "
|
||||
EQ@31..32 "="
|
||||
WHITESPACE@32..33 " "
|
||||
ARRAY_EXPR@33..35
|
||||
L_BRACK@33..34 "["
|
||||
R_BRACK@34..35 "]"
|
||||
SEMICOLON@35..36 ";"
|
||||
WHITESPACE@36..37 "\n"
|
||||
R_CURLY@37..38 "}"
|
||||
WHITESPACE@38..39 "\n"
|
|
@ -1,3 +0,0 @@
|
|||
fn main() {
|
||||
let [a, b, ..] = [];
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
SOURCE_FILE@0..15
|
||||
TYPE_ALIAS@0..14
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "T"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
SLICE_TYPE@9..13
|
||||
L_BRACK@9..10 "["
|
||||
TUPLE_TYPE@10..12
|
||||
L_PAREN@10..11 "("
|
||||
R_PAREN@11..12 ")"
|
||||
R_BRACK@12..13 "]"
|
||||
SEMICOLON@13..14 ";"
|
||||
WHITESPACE@14..15 "\n"
|
|
@ -1 +0,0 @@
|
|||
type T = [()];
|
|
@ -1,105 +0,0 @@
|
|||
SOURCE_FILE@0..97
|
||||
FN@0..96
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..96
|
||||
STMT_LIST@9..96
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
LET_STMT@15..28
|
||||
LET_KW@15..18 "let"
|
||||
WHITESPACE@18..19 " "
|
||||
TUPLE_STRUCT_PAT@19..22
|
||||
PATH@19..20
|
||||
PATH_SEGMENT@19..20
|
||||
NAME_REF@19..20
|
||||
IDENT@19..20 "S"
|
||||
L_PAREN@20..21 "("
|
||||
R_PAREN@21..22 ")"
|
||||
WHITESPACE@22..23 " "
|
||||
EQ@23..24 "="
|
||||
WHITESPACE@24..25 " "
|
||||
TUPLE_EXPR@25..27
|
||||
L_PAREN@25..26 "("
|
||||
R_PAREN@26..27 ")"
|
||||
SEMICOLON@27..28 ";"
|
||||
WHITESPACE@28..33 "\n "
|
||||
LET_STMT@33..47
|
||||
LET_KW@33..36 "let"
|
||||
WHITESPACE@36..37 " "
|
||||
TUPLE_STRUCT_PAT@37..41
|
||||
PATH@37..38
|
||||
PATH_SEGMENT@37..38
|
||||
NAME_REF@37..38
|
||||
IDENT@37..38 "S"
|
||||
L_PAREN@38..39 "("
|
||||
WILDCARD_PAT@39..40
|
||||
UNDERSCORE@39..40 "_"
|
||||
R_PAREN@40..41 ")"
|
||||
WHITESPACE@41..42 " "
|
||||
EQ@42..43 "="
|
||||
WHITESPACE@43..44 " "
|
||||
TUPLE_EXPR@44..46
|
||||
L_PAREN@44..45 "("
|
||||
R_PAREN@45..46 ")"
|
||||
SEMICOLON@46..47 ";"
|
||||
WHITESPACE@47..52 "\n "
|
||||
LET_STMT@52..67
|
||||
LET_KW@52..55 "let"
|
||||
WHITESPACE@55..56 " "
|
||||
TUPLE_STRUCT_PAT@56..61
|
||||
PATH@56..57
|
||||
PATH_SEGMENT@56..57
|
||||
NAME_REF@56..57
|
||||
IDENT@56..57 "S"
|
||||
L_PAREN@57..58 "("
|
||||
WILDCARD_PAT@58..59
|
||||
UNDERSCORE@58..59 "_"
|
||||
COMMA@59..60 ","
|
||||
R_PAREN@60..61 ")"
|
||||
WHITESPACE@61..62 " "
|
||||
EQ@62..63 "="
|
||||
WHITESPACE@63..64 " "
|
||||
TUPLE_EXPR@64..66
|
||||
L_PAREN@64..65 "("
|
||||
R_PAREN@65..66 ")"
|
||||
SEMICOLON@66..67 ";"
|
||||
WHITESPACE@67..72 "\n "
|
||||
LET_STMT@72..94
|
||||
LET_KW@72..75 "let"
|
||||
WHITESPACE@75..76 " "
|
||||
TUPLE_STRUCT_PAT@76..88
|
||||
PATH@76..77
|
||||
PATH_SEGMENT@76..77
|
||||
NAME_REF@76..77
|
||||
IDENT@76..77 "S"
|
||||
L_PAREN@77..78 "("
|
||||
WILDCARD_PAT@78..79
|
||||
UNDERSCORE@78..79 "_"
|
||||
COMMA@79..80 ","
|
||||
WHITESPACE@80..81 " "
|
||||
REST_PAT@81..83
|
||||
DOT2@81..83 ".."
|
||||
WHITESPACE@83..84 " "
|
||||
COMMA@84..85 ","
|
||||
WHITESPACE@85..86 " "
|
||||
IDENT_PAT@86..87
|
||||
NAME@86..87
|
||||
IDENT@86..87 "x"
|
||||
R_PAREN@87..88 ")"
|
||||
WHITESPACE@88..89 " "
|
||||
EQ@89..90 "="
|
||||
WHITESPACE@90..91 " "
|
||||
TUPLE_EXPR@91..93
|
||||
L_PAREN@91..92 "("
|
||||
R_PAREN@92..93 ")"
|
||||
SEMICOLON@93..94 ";"
|
||||
WHITESPACE@94..95 "\n"
|
||||
R_CURLY@95..96 "}"
|
||||
WHITESPACE@96..97 "\n"
|
|
@ -1,6 +0,0 @@
|
|||
fn foo() {
|
||||
let S() = ();
|
||||
let S(_) = ();
|
||||
let S(_,) = ();
|
||||
let S(_, .. , x) = ();
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
SOURCE_FILE@0..52
|
||||
FN@0..51
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..51
|
||||
STMT_LIST@10..51
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
LET_STMT@16..28
|
||||
LET_KW@16..19 "let"
|
||||
WHITESPACE@19..20 " "
|
||||
REF_PAT@20..22
|
||||
AMP@20..21 "&"
|
||||
IDENT_PAT@21..22
|
||||
NAME@21..22
|
||||
IDENT@21..22 "a"
|
||||
WHITESPACE@22..23 " "
|
||||
EQ@23..24 "="
|
||||
WHITESPACE@24..25 " "
|
||||
TUPLE_EXPR@25..27
|
||||
L_PAREN@25..26 "("
|
||||
R_PAREN@26..27 ")"
|
||||
SEMICOLON@27..28 ";"
|
||||
WHITESPACE@28..33 "\n "
|
||||
LET_STMT@33..49
|
||||
LET_KW@33..36 "let"
|
||||
WHITESPACE@36..37 " "
|
||||
REF_PAT@37..43
|
||||
AMP@37..38 "&"
|
||||
MUT_KW@38..41 "mut"
|
||||
WHITESPACE@41..42 " "
|
||||
IDENT_PAT@42..43
|
||||
NAME@42..43
|
||||
IDENT@42..43 "b"
|
||||
WHITESPACE@43..44 " "
|
||||
EQ@44..45 "="
|
||||
WHITESPACE@45..46 " "
|
||||
TUPLE_EXPR@46..48
|
||||
L_PAREN@46..47 "("
|
||||
R_PAREN@47..48 ")"
|
||||
SEMICOLON@48..49 ";"
|
||||
WHITESPACE@49..50 "\n"
|
||||
R_CURLY@50..51 "}"
|
||||
WHITESPACE@51..52 "\n"
|
|
@ -1,4 +0,0 @@
|
|||
fn main() {
|
||||
let &a = ();
|
||||
let &mut b = ();
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
SOURCE_FILE@0..43
|
||||
TYPE_ALIAS@0..42
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "A"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
IMPL_TRAIT_TYPE@9..41
|
||||
IMPL_KW@9..13 "impl"
|
||||
WHITESPACE@13..14 " "
|
||||
TYPE_BOUND_LIST@14..41
|
||||
TYPE_BOUND@14..36
|
||||
PATH_TYPE@14..36
|
||||
PATH@14..36
|
||||
PATH_SEGMENT@14..36
|
||||
NAME_REF@14..22
|
||||
IDENT@14..22 "Iterator"
|
||||
GENERIC_ARG_LIST@22..36
|
||||
L_ANGLE@22..23 "<"
|
||||
ASSOC_TYPE_ARG@23..35
|
||||
NAME_REF@23..27
|
||||
IDENT@23..27 "Item"
|
||||
EQ@27..28 "="
|
||||
PATH_TYPE@28..35
|
||||
PATH@28..35
|
||||
PATH_SEGMENT@28..35
|
||||
NAME_REF@28..31
|
||||
IDENT@28..31 "Foo"
|
||||
GENERIC_ARG_LIST@31..35
|
||||
L_ANGLE@31..32 "<"
|
||||
LIFETIME_ARG@32..34
|
||||
LIFETIME@32..34
|
||||
LIFETIME_IDENT@32..34 "'a"
|
||||
R_ANGLE@34..35 ">"
|
||||
R_ANGLE@35..36 ">"
|
||||
WHITESPACE@36..37 " "
|
||||
PLUS@37..38 "+"
|
||||
WHITESPACE@38..39 " "
|
||||
TYPE_BOUND@39..41
|
||||
LIFETIME@39..41
|
||||
LIFETIME_IDENT@39..41 "'a"
|
||||
SEMICOLON@41..42 ";"
|
||||
WHITESPACE@42..43 "\n"
|
|
@ -1 +0,0 @@
|
|||
type A = impl Iterator<Item=Foo<'a>> + 'a;
|
|
@ -1,90 +0,0 @@
|
|||
SOURCE_FILE@0..89
|
||||
FN@0..88
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..88
|
||||
STMT_LIST@9..88
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..25
|
||||
CAST_EXPR@15..24
|
||||
LITERAL@15..17
|
||||
INT_NUMBER@15..17 "82"
|
||||
WHITESPACE@17..18 " "
|
||||
AS_KW@18..20 "as"
|
||||
WHITESPACE@20..21 " "
|
||||
PATH_TYPE@21..24
|
||||
PATH@21..24
|
||||
PATH_SEGMENT@21..24
|
||||
NAME_REF@21..24
|
||||
IDENT@21..24 "i32"
|
||||
SEMICOLON@24..25 ";"
|
||||
WHITESPACE@25..30 "\n "
|
||||
EXPR_STMT@30..43
|
||||
BIN_EXPR@30..42
|
||||
CAST_EXPR@30..38
|
||||
LITERAL@30..32
|
||||
INT_NUMBER@30..32 "81"
|
||||
WHITESPACE@32..33 " "
|
||||
AS_KW@33..35 "as"
|
||||
WHITESPACE@35..36 " "
|
||||
PATH_TYPE@36..38
|
||||
PATH@36..38
|
||||
PATH_SEGMENT@36..38
|
||||
NAME_REF@36..38
|
||||
IDENT@36..38 "i8"
|
||||
WHITESPACE@38..39 " "
|
||||
PLUS@39..40 "+"
|
||||
WHITESPACE@40..41 " "
|
||||
LITERAL@41..42
|
||||
INT_NUMBER@41..42 "1"
|
||||
SEMICOLON@42..43 ";"
|
||||
WHITESPACE@43..48 "\n "
|
||||
EXPR_STMT@48..62
|
||||
BIN_EXPR@48..61
|
||||
CAST_EXPR@48..57
|
||||
LITERAL@48..50
|
||||
INT_NUMBER@48..50 "79"
|
||||
WHITESPACE@50..51 " "
|
||||
AS_KW@51..53 "as"
|
||||
WHITESPACE@53..54 " "
|
||||
PATH_TYPE@54..57
|
||||
PATH@54..57
|
||||
PATH_SEGMENT@54..57
|
||||
NAME_REF@54..57
|
||||
IDENT@54..57 "i16"
|
||||
WHITESPACE@57..58 " "
|
||||
MINUS@58..59 "-"
|
||||
WHITESPACE@59..60 " "
|
||||
LITERAL@60..61
|
||||
INT_NUMBER@60..61 "1"
|
||||
SEMICOLON@61..62 ";"
|
||||
WHITESPACE@62..67 "\n "
|
||||
EXPR_STMT@67..86
|
||||
BIN_EXPR@67..85
|
||||
CAST_EXPR@67..77
|
||||
LITERAL@67..71
|
||||
INT_NUMBER@67..71 "0x36"
|
||||
WHITESPACE@71..72 " "
|
||||
AS_KW@72..74 "as"
|
||||
WHITESPACE@74..75 " "
|
||||
PATH_TYPE@75..77
|
||||
PATH@75..77
|
||||
PATH_SEGMENT@75..77
|
||||
NAME_REF@75..77
|
||||
IDENT@75..77 "u8"
|
||||
WHITESPACE@77..78 " "
|
||||
LTEQ@78..80 "<="
|
||||
WHITESPACE@80..81 " "
|
||||
LITERAL@81..85
|
||||
INT_NUMBER@81..85 "0x37"
|
||||
SEMICOLON@85..86 ";"
|
||||
WHITESPACE@86..87 "\n"
|
||||
R_CURLY@87..88 "}"
|
||||
WHITESPACE@88..89 "\n"
|
|
@ -1,6 +0,0 @@
|
|||
fn foo() {
|
||||
82 as i32;
|
||||
81 as i8 + 1;
|
||||
79 as i16 - 1;
|
||||
0x36 as u8 <= 0x37;
|
||||
}
|
|
@ -1,209 +0,0 @@
|
|||
SOURCE_FILE@0..197
|
||||
FN@0..37
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..37
|
||||
STMT_LIST@9..37
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..11 " "
|
||||
IF_EXPR@11..35
|
||||
IF_KW@11..13 "if"
|
||||
WHITESPACE@13..14 " "
|
||||
CONDITION@14..32
|
||||
LET_KW@14..17 "let"
|
||||
WHITESPACE@17..18 " "
|
||||
TUPLE_STRUCT_PAT@18..25
|
||||
PATH@18..22
|
||||
PATH_SEGMENT@18..22
|
||||
NAME_REF@18..22
|
||||
IDENT@18..22 "Some"
|
||||
L_PAREN@22..23 "("
|
||||
WILDCARD_PAT@23..24
|
||||
UNDERSCORE@23..24 "_"
|
||||
R_PAREN@24..25 ")"
|
||||
WHITESPACE@25..26 " "
|
||||
EQ@26..27 "="
|
||||
WHITESPACE@27..28 " "
|
||||
PATH_EXPR@28..32
|
||||
PATH@28..32
|
||||
PATH_SEGMENT@28..32
|
||||
NAME_REF@28..32
|
||||
IDENT@28..32 "None"
|
||||
WHITESPACE@32..33 " "
|
||||
BLOCK_EXPR@33..35
|
||||
STMT_LIST@33..35
|
||||
L_CURLY@33..34 "{"
|
||||
R_CURLY@34..35 "}"
|
||||
WHITESPACE@35..36 " "
|
||||
R_CURLY@36..37 "}"
|
||||
WHITESPACE@37..38 "\n"
|
||||
FN@38..196
|
||||
FN_KW@38..40 "fn"
|
||||
WHITESPACE@40..41 " "
|
||||
NAME@41..44
|
||||
IDENT@41..44 "bar"
|
||||
PARAM_LIST@44..46
|
||||
L_PAREN@44..45 "("
|
||||
R_PAREN@45..46 ")"
|
||||
WHITESPACE@46..47 " "
|
||||
BLOCK_EXPR@47..196
|
||||
STMT_LIST@47..196
|
||||
L_CURLY@47..48 "{"
|
||||
WHITESPACE@48..53 "\n "
|
||||
EXPR_STMT@53..87
|
||||
IF_EXPR@53..87
|
||||
IF_KW@53..55 "if"
|
||||
WHITESPACE@55..56 " "
|
||||
CONDITION@56..84
|
||||
LET_KW@56..59 "let"
|
||||
WHITESPACE@59..60 " "
|
||||
OR_PAT@60..77
|
||||
TUPLE_STRUCT_PAT@60..67
|
||||
PATH@60..64
|
||||
PATH_SEGMENT@60..64
|
||||
NAME_REF@60..64
|
||||
IDENT@60..64 "Some"
|
||||
L_PAREN@64..65 "("
|
||||
WILDCARD_PAT@65..66
|
||||
UNDERSCORE@65..66 "_"
|
||||
R_PAREN@66..67 ")"
|
||||
WHITESPACE@67..68 " "
|
||||
PIPE@68..69 "|"
|
||||
WHITESPACE@69..70 " "
|
||||
TUPLE_STRUCT_PAT@70..77
|
||||
PATH@70..74
|
||||
PATH_SEGMENT@70..74
|
||||
NAME_REF@70..74
|
||||
IDENT@70..74 "Some"
|
||||
L_PAREN@74..75 "("
|
||||
WILDCARD_PAT@75..76
|
||||
UNDERSCORE@75..76 "_"
|
||||
R_PAREN@76..77 ")"
|
||||
WHITESPACE@77..78 " "
|
||||
EQ@78..79 "="
|
||||
WHITESPACE@79..80 " "
|
||||
PATH_EXPR@80..84
|
||||
PATH@80..84
|
||||
PATH_SEGMENT@80..84
|
||||
NAME_REF@80..84
|
||||
IDENT@80..84 "None"
|
||||
WHITESPACE@84..85 " "
|
||||
BLOCK_EXPR@85..87
|
||||
STMT_LIST@85..87
|
||||
L_CURLY@85..86 "{"
|
||||
R_CURLY@86..87 "}"
|
||||
WHITESPACE@87..92 "\n "
|
||||
EXPR_STMT@92..118
|
||||
IF_EXPR@92..118
|
||||
IF_KW@92..94 "if"
|
||||
WHITESPACE@94..95 " "
|
||||
CONDITION@95..115
|
||||
LET_KW@95..98 "let"
|
||||
WHITESPACE@98..99 " "
|
||||
PIPE@99..100 "|"
|
||||
WHITESPACE@100..101 " "
|
||||
TUPLE_STRUCT_PAT@101..108
|
||||
PATH@101..105
|
||||
PATH_SEGMENT@101..105
|
||||
NAME_REF@101..105
|
||||
IDENT@101..105 "Some"
|
||||
L_PAREN@105..106 "("
|
||||
WILDCARD_PAT@106..107
|
||||
UNDERSCORE@106..107 "_"
|
||||
R_PAREN@107..108 ")"
|
||||
WHITESPACE@108..109 " "
|
||||
EQ@109..110 "="
|
||||
WHITESPACE@110..111 " "
|
||||
PATH_EXPR@111..115
|
||||
PATH@111..115
|
||||
PATH_SEGMENT@111..115
|
||||
NAME_REF@111..115
|
||||
IDENT@111..115 "None"
|
||||
WHITESPACE@115..116 " "
|
||||
BLOCK_EXPR@116..118
|
||||
STMT_LIST@116..118
|
||||
L_CURLY@116..117 "{"
|
||||
R_CURLY@117..118 "}"
|
||||
WHITESPACE@118..123 "\n "
|
||||
EXPR_STMT@123..160
|
||||
WHILE_EXPR@123..160
|
||||
WHILE_KW@123..128 "while"
|
||||
WHITESPACE@128..129 " "
|
||||
CONDITION@129..157
|
||||
LET_KW@129..132 "let"
|
||||
WHITESPACE@132..133 " "
|
||||
OR_PAT@133..150
|
||||
TUPLE_STRUCT_PAT@133..140
|
||||
PATH@133..137
|
||||
PATH_SEGMENT@133..137
|
||||
NAME_REF@133..137
|
||||
IDENT@133..137 "Some"
|
||||
L_PAREN@137..138 "("
|
||||
WILDCARD_PAT@138..139
|
||||
UNDERSCORE@138..139 "_"
|
||||
R_PAREN@139..140 ")"
|
||||
WHITESPACE@140..141 " "
|
||||
PIPE@141..142 "|"
|
||||
WHITESPACE@142..143 " "
|
||||
TUPLE_STRUCT_PAT@143..150
|
||||
PATH@143..147
|
||||
PATH_SEGMENT@143..147
|
||||
NAME_REF@143..147
|
||||
IDENT@143..147 "Some"
|
||||
L_PAREN@147..148 "("
|
||||
WILDCARD_PAT@148..149
|
||||
UNDERSCORE@148..149 "_"
|
||||
R_PAREN@149..150 ")"
|
||||
WHITESPACE@150..151 " "
|
||||
EQ@151..152 "="
|
||||
WHITESPACE@152..153 " "
|
||||
PATH_EXPR@153..157
|
||||
PATH@153..157
|
||||
PATH_SEGMENT@153..157
|
||||
NAME_REF@153..157
|
||||
IDENT@153..157 "None"
|
||||
WHITESPACE@157..158 " "
|
||||
BLOCK_EXPR@158..160
|
||||
STMT_LIST@158..160
|
||||
L_CURLY@158..159 "{"
|
||||
R_CURLY@159..160 "}"
|
||||
WHITESPACE@160..165 "\n "
|
||||
WHILE_EXPR@165..194
|
||||
WHILE_KW@165..170 "while"
|
||||
WHITESPACE@170..171 " "
|
||||
CONDITION@171..191
|
||||
LET_KW@171..174 "let"
|
||||
WHITESPACE@174..175 " "
|
||||
PIPE@175..176 "|"
|
||||
WHITESPACE@176..177 " "
|
||||
TUPLE_STRUCT_PAT@177..184
|
||||
PATH@177..181
|
||||
PATH_SEGMENT@177..181
|
||||
NAME_REF@177..181
|
||||
IDENT@177..181 "Some"
|
||||
L_PAREN@181..182 "("
|
||||
WILDCARD_PAT@182..183
|
||||
UNDERSCORE@182..183 "_"
|
||||
R_PAREN@183..184 ")"
|
||||
WHITESPACE@184..185 " "
|
||||
EQ@185..186 "="
|
||||
WHITESPACE@186..187 " "
|
||||
PATH_EXPR@187..191
|
||||
PATH@187..191
|
||||
PATH_SEGMENT@187..191
|
||||
NAME_REF@187..191
|
||||
IDENT@187..191 "None"
|
||||
WHITESPACE@191..192 " "
|
||||
BLOCK_EXPR@192..194
|
||||
STMT_LIST@192..194
|
||||
L_CURLY@192..193 "{"
|
||||
R_CURLY@193..194 "}"
|
||||
WHITESPACE@194..195 "\n"
|
||||
R_CURLY@195..196 "}"
|
||||
WHITESPACE@196..197 "\n"
|
|
@ -1,7 +0,0 @@
|
|||
fn foo() { if let Some(_) = None {} }
|
||||
fn bar() {
|
||||
if let Some(_) | Some(_) = None {}
|
||||
if let | Some(_) = None {}
|
||||
while let Some(_) | Some(_) = None {}
|
||||
while let | Some(_) = None {}
|
||||
}
|
|
@ -1,89 +0,0 @@
|
|||
SOURCE_FILE@0..93
|
||||
FN@0..92
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..92
|
||||
STMT_LIST@9..92
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..29
|
||||
WHILE_EXPR@15..28
|
||||
WHILE_KW@15..20 "while"
|
||||
WHITESPACE@20..21 " "
|
||||
CONDITION@21..25
|
||||
LITERAL@21..25
|
||||
TRUE_KW@21..25 "true"
|
||||
WHITESPACE@25..26 " "
|
||||
BLOCK_EXPR@26..28
|
||||
STMT_LIST@26..28
|
||||
L_CURLY@26..27 "{"
|
||||
R_CURLY@27..28 "}"
|
||||
SEMICOLON@28..29 ";"
|
||||
WHITESPACE@29..34 "\n "
|
||||
EXPR_STMT@34..67
|
||||
WHILE_EXPR@34..66
|
||||
WHILE_KW@34..39 "while"
|
||||
WHITESPACE@39..40 " "
|
||||
CONDITION@40..63
|
||||
LET_KW@40..43 "let"
|
||||
WHITESPACE@43..44 " "
|
||||
TUPLE_STRUCT_PAT@44..51
|
||||
PATH@44..48
|
||||
PATH_SEGMENT@44..48
|
||||
NAME_REF@44..48
|
||||
IDENT@44..48 "Some"
|
||||
L_PAREN@48..49 "("
|
||||
IDENT_PAT@49..50
|
||||
NAME@49..50
|
||||
IDENT@49..50 "x"
|
||||
R_PAREN@50..51 ")"
|
||||
WHITESPACE@51..52 " "
|
||||
EQ@52..53 "="
|
||||
WHITESPACE@53..54 " "
|
||||
METHOD_CALL_EXPR@54..63
|
||||
PATH_EXPR@54..56
|
||||
PATH@54..56
|
||||
PATH_SEGMENT@54..56
|
||||
NAME_REF@54..56
|
||||
IDENT@54..56 "it"
|
||||
DOT@56..57 "."
|
||||
NAME_REF@57..61
|
||||
IDENT@57..61 "next"
|
||||
ARG_LIST@61..63
|
||||
L_PAREN@61..62 "("
|
||||
R_PAREN@62..63 ")"
|
||||
WHITESPACE@63..64 " "
|
||||
BLOCK_EXPR@64..66
|
||||
STMT_LIST@64..66
|
||||
L_CURLY@64..65 "{"
|
||||
R_CURLY@65..66 "}"
|
||||
SEMICOLON@66..67 ";"
|
||||
WHITESPACE@67..72 "\n "
|
||||
EXPR_STMT@72..90
|
||||
WHILE_EXPR@72..89
|
||||
WHILE_KW@72..77 "while"
|
||||
WHITESPACE@77..78 " "
|
||||
CONDITION@78..86
|
||||
BLOCK_EXPR@78..86
|
||||
STMT_LIST@78..86
|
||||
L_CURLY@78..79 "{"
|
||||
WHITESPACE@79..80 " "
|
||||
LITERAL@80..84
|
||||
TRUE_KW@80..84 "true"
|
||||
WHITESPACE@84..85 " "
|
||||
R_CURLY@85..86 "}"
|
||||
WHITESPACE@86..87 " "
|
||||
BLOCK_EXPR@87..89
|
||||
STMT_LIST@87..89
|
||||
L_CURLY@87..88 "{"
|
||||
R_CURLY@88..89 "}"
|
||||
SEMICOLON@89..90 ";"
|
||||
WHITESPACE@90..91 "\n"
|
||||
R_CURLY@91..92 "}"
|
||||
WHITESPACE@92..93 "\n"
|
|
@ -1,5 +0,0 @@
|
|||
fn foo() {
|
||||
while true {};
|
||||
while let Some(x) = it.next() {};
|
||||
while { true } {};
|
||||
}
|
|
@ -1,98 +0,0 @@
|
|||
SOURCE_FILE@0..113
|
||||
TYPE_ALIAS@0..14
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "A"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
FN_PTR_TYPE@9..13
|
||||
FN_KW@9..11 "fn"
|
||||
PARAM_LIST@11..13
|
||||
L_PAREN@11..12 "("
|
||||
R_PAREN@12..13 ")"
|
||||
SEMICOLON@13..14 ";"
|
||||
WHITESPACE@14..15 "\n"
|
||||
TYPE_ALIAS@15..36
|
||||
TYPE_KW@15..19 "type"
|
||||
WHITESPACE@19..20 " "
|
||||
NAME@20..21
|
||||
IDENT@20..21 "B"
|
||||
WHITESPACE@21..22 " "
|
||||
EQ@22..23 "="
|
||||
WHITESPACE@23..24 " "
|
||||
FN_PTR_TYPE@24..35
|
||||
UNSAFE_KW@24..30 "unsafe"
|
||||
WHITESPACE@30..31 " "
|
||||
FN_KW@31..33 "fn"
|
||||
PARAM_LIST@33..35
|
||||
L_PAREN@33..34 "("
|
||||
R_PAREN@34..35 ")"
|
||||
SEMICOLON@35..36 ";"
|
||||
WHITESPACE@36..37 "\n"
|
||||
TYPE_ALIAS@37..69
|
||||
TYPE_KW@37..41 "type"
|
||||
WHITESPACE@41..42 " "
|
||||
NAME@42..43
|
||||
IDENT@42..43 "C"
|
||||
WHITESPACE@43..44 " "
|
||||
EQ@44..45 "="
|
||||
WHITESPACE@45..46 " "
|
||||
FN_PTR_TYPE@46..68
|
||||
UNSAFE_KW@46..52 "unsafe"
|
||||
WHITESPACE@52..53 " "
|
||||
ABI@53..63
|
||||
EXTERN_KW@53..59 "extern"
|
||||
WHITESPACE@59..60 " "
|
||||
STRING@60..63 "\"C\""
|
||||
WHITESPACE@63..64 " "
|
||||
FN_KW@64..66 "fn"
|
||||
PARAM_LIST@66..68
|
||||
L_PAREN@66..67 "("
|
||||
R_PAREN@67..68 ")"
|
||||
SEMICOLON@68..69 ";"
|
||||
WHITESPACE@69..70 "\n"
|
||||
TYPE_ALIAS@70..112
|
||||
TYPE_KW@70..74 "type"
|
||||
WHITESPACE@74..75 " "
|
||||
NAME@75..76
|
||||
IDENT@75..76 "D"
|
||||
WHITESPACE@76..77 " "
|
||||
EQ@77..78 "="
|
||||
WHITESPACE@78..79 " "
|
||||
FN_PTR_TYPE@79..111
|
||||
ABI@79..89
|
||||
EXTERN_KW@79..85 "extern"
|
||||
WHITESPACE@85..86 " "
|
||||
STRING@86..89 "\"C\""
|
||||
WHITESPACE@89..90 " "
|
||||
FN_KW@90..92 "fn"
|
||||
WHITESPACE@92..93 " "
|
||||
PARAM_LIST@93..105
|
||||
L_PAREN@93..94 "("
|
||||
WHITESPACE@94..95 " "
|
||||
PARAM@95..97
|
||||
PATH_TYPE@95..97
|
||||
PATH@95..97
|
||||
PATH_SEGMENT@95..97
|
||||
NAME_REF@95..97
|
||||
IDENT@95..97 "u8"
|
||||
WHITESPACE@97..98 " "
|
||||
COMMA@98..99 ","
|
||||
WHITESPACE@99..100 " "
|
||||
PARAM@100..103
|
||||
DOT3@100..103 "..."
|
||||
WHITESPACE@103..104 " "
|
||||
R_PAREN@104..105 ")"
|
||||
WHITESPACE@105..106 " "
|
||||
RET_TYPE@106..111
|
||||
THIN_ARROW@106..108 "->"
|
||||
WHITESPACE@108..109 " "
|
||||
PATH_TYPE@109..111
|
||||
PATH@109..111
|
||||
PATH_SEGMENT@109..111
|
||||
NAME_REF@109..111
|
||||
IDENT@109..111 "u8"
|
||||
SEMICOLON@111..112 ";"
|
||||
WHITESPACE@112..113 "\n"
|
|
@ -1,4 +0,0 @@
|
|||
type A = fn();
|
||||
type B = unsafe fn();
|
||||
type C = unsafe extern "C" fn();
|
||||
type D = extern "C" fn ( u8 , ... ) -> u8;
|
|
@ -1,51 +0,0 @@
|
|||
SOURCE_FILE@0..54
|
||||
TYPE_ALIAS@0..13
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "A"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
REF_TYPE@9..12
|
||||
AMP@9..10 "&"
|
||||
TUPLE_TYPE@10..12
|
||||
L_PAREN@10..11 "("
|
||||
R_PAREN@11..12 ")"
|
||||
SEMICOLON@12..13 ";"
|
||||
WHITESPACE@13..14 "\n"
|
||||
TYPE_ALIAS@14..35
|
||||
TYPE_KW@14..18 "type"
|
||||
WHITESPACE@18..19 " "
|
||||
NAME@19..20
|
||||
IDENT@19..20 "B"
|
||||
WHITESPACE@20..21 " "
|
||||
EQ@21..22 "="
|
||||
WHITESPACE@22..23 " "
|
||||
REF_TYPE@23..34
|
||||
AMP@23..24 "&"
|
||||
LIFETIME@24..31
|
||||
LIFETIME_IDENT@24..31 "'static"
|
||||
WHITESPACE@31..32 " "
|
||||
TUPLE_TYPE@32..34
|
||||
L_PAREN@32..33 "("
|
||||
R_PAREN@33..34 ")"
|
||||
SEMICOLON@34..35 ";"
|
||||
WHITESPACE@35..36 "\n"
|
||||
TYPE_ALIAS@36..53
|
||||
TYPE_KW@36..40 "type"
|
||||
WHITESPACE@40..41 " "
|
||||
NAME@41..42
|
||||
IDENT@41..42 "C"
|
||||
WHITESPACE@42..43 " "
|
||||
EQ@43..44 "="
|
||||
WHITESPACE@44..45 " "
|
||||
REF_TYPE@45..52
|
||||
AMP@45..46 "&"
|
||||
MUT_KW@46..49 "mut"
|
||||
WHITESPACE@49..50 " "
|
||||
TUPLE_TYPE@50..52
|
||||
L_PAREN@50..51 "("
|
||||
R_PAREN@51..52 ")"
|
||||
SEMICOLON@52..53 ";"
|
||||
WHITESPACE@53..54 "\n"
|
|
@ -1,3 +0,0 @@
|
|||
type A = &();
|
||||
type B = &'static ();
|
||||
type C = &mut ();
|
|
@ -1,57 +0,0 @@
|
|||
SOURCE_FILE@0..102
|
||||
FN@0..101
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..101
|
||||
STMT_LIST@9..101
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
LOOP_EXPR@15..99
|
||||
LOOP_KW@15..19 "loop"
|
||||
WHITESPACE@19..20 " "
|
||||
BLOCK_EXPR@20..99
|
||||
STMT_LIST@20..99
|
||||
L_CURLY@20..21 "{"
|
||||
WHITESPACE@21..30 "\n "
|
||||
EXPR_STMT@30..36
|
||||
BREAK_EXPR@30..35
|
||||
BREAK_KW@30..35 "break"
|
||||
SEMICOLON@35..36 ";"
|
||||
WHITESPACE@36..45 "\n "
|
||||
EXPR_STMT@45..54
|
||||
BREAK_EXPR@45..53
|
||||
BREAK_KW@45..50 "break"
|
||||
WHITESPACE@50..51 " "
|
||||
LIFETIME@51..53
|
||||
LIFETIME_IDENT@51..53 "'l"
|
||||
SEMICOLON@53..54 ";"
|
||||
WHITESPACE@54..63 "\n "
|
||||
EXPR_STMT@63..72
|
||||
BREAK_EXPR@63..71
|
||||
BREAK_KW@63..68 "break"
|
||||
WHITESPACE@68..69 " "
|
||||
LITERAL@69..71
|
||||
INT_NUMBER@69..71 "92"
|
||||
SEMICOLON@71..72 ";"
|
||||
WHITESPACE@72..81 "\n "
|
||||
EXPR_STMT@81..93
|
||||
BREAK_EXPR@81..92
|
||||
BREAK_KW@81..86 "break"
|
||||
WHITESPACE@86..87 " "
|
||||
LIFETIME@87..89
|
||||
LIFETIME_IDENT@87..89 "'l"
|
||||
WHITESPACE@89..90 " "
|
||||
LITERAL@90..92
|
||||
INT_NUMBER@90..92 "92"
|
||||
SEMICOLON@92..93 ";"
|
||||
WHITESPACE@93..98 "\n "
|
||||
R_CURLY@98..99 "}"
|
||||
WHITESPACE@99..100 "\n"
|
||||
R_CURLY@100..101 "}"
|
||||
WHITESPACE@101..102 "\n"
|
|
@ -1,8 +0,0 @@
|
|||
fn foo() {
|
||||
loop {
|
||||
break;
|
||||
break 'l;
|
||||
break 92;
|
||||
break 'l 92;
|
||||
}
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
SOURCE_FILE@0..71
|
||||
TYPE_ALIAS@0..26
|
||||
TYPE_KW@0..4 "type"
|
||||
WHITESPACE@4..5 " "
|
||||
NAME@5..6
|
||||
IDENT@5..6 "X"
|
||||
WHITESPACE@6..7 " "
|
||||
EQ@7..8 "="
|
||||
WHITESPACE@8..9 " "
|
||||
PATH_TYPE@9..25
|
||||
PATH@9..25
|
||||
PATH@9..17
|
||||
PATH_SEGMENT@9..17
|
||||
L_ANGLE@9..10 "<"
|
||||
PATH_TYPE@10..11
|
||||
PATH@10..11
|
||||
PATH_SEGMENT@10..11
|
||||
NAME_REF@10..11
|
||||
IDENT@10..11 "A"
|
||||
WHITESPACE@11..12 " "
|
||||
AS_KW@12..14 "as"
|
||||
WHITESPACE@14..15 " "
|
||||
PATH_TYPE@15..16
|
||||
PATH@15..16
|
||||
PATH_SEGMENT@15..16
|
||||
NAME_REF@15..16
|
||||
IDENT@15..16 "B"
|
||||
R_ANGLE@16..17 ">"
|
||||
COLON2@17..19 "::"
|
||||
PATH_SEGMENT@19..25
|
||||
NAME_REF@19..25
|
||||
IDENT@19..25 "Output"
|
||||
SEMICOLON@25..26 ";"
|
||||
WHITESPACE@26..27 "\n"
|
||||
FN@27..70
|
||||
FN_KW@27..29 "fn"
|
||||
WHITESPACE@29..30 " "
|
||||
NAME@30..33
|
||||
IDENT@30..33 "foo"
|
||||
PARAM_LIST@33..35
|
||||
L_PAREN@33..34 "("
|
||||
R_PAREN@34..35 ")"
|
||||
WHITESPACE@35..36 " "
|
||||
BLOCK_EXPR@36..70
|
||||
STMT_LIST@36..70
|
||||
L_CURLY@36..37 "{"
|
||||
WHITESPACE@37..38 " "
|
||||
EXPR_STMT@38..68
|
||||
CALL_EXPR@38..67
|
||||
PATH_EXPR@38..65
|
||||
PATH@38..65
|
||||
PATH@38..56
|
||||
PATH_SEGMENT@38..56
|
||||
L_ANGLE@38..39 "<"
|
||||
PATH_TYPE@39..44
|
||||
PATH@39..44
|
||||
PATH_SEGMENT@39..44
|
||||
NAME_REF@39..44
|
||||
IDENT@39..44 "usize"
|
||||
WHITESPACE@44..45 " "
|
||||
AS_KW@45..47 "as"
|
||||
WHITESPACE@47..48 " "
|
||||
PATH_TYPE@48..55
|
||||
PATH@48..55
|
||||
PATH_SEGMENT@48..55
|
||||
NAME_REF@48..55
|
||||
IDENT@48..55 "Default"
|
||||
R_ANGLE@55..56 ">"
|
||||
COLON2@56..58 "::"
|
||||
PATH_SEGMENT@58..65
|
||||
NAME_REF@58..65
|
||||
IDENT@58..65 "default"
|
||||
ARG_LIST@65..67
|
||||
L_PAREN@65..66 "("
|
||||
R_PAREN@66..67 ")"
|
||||
SEMICOLON@67..68 ";"
|
||||
WHITESPACE@68..69 " "
|
||||
R_CURLY@69..70 "}"
|
||||
WHITESPACE@70..71 "\n"
|
|
@ -1,2 +0,0 @@
|
|||
type X = <A as B>::Output;
|
||||
fn foo() { <usize as Default>::default(); }
|
|
@ -1,29 +0,0 @@
|
|||
SOURCE_FILE@0..21
|
||||
FN@0..20
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..20
|
||||
STMT_LIST@9..20
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..11 " "
|
||||
EXPR_STMT@11..18
|
||||
INDEX_EXPR@11..17
|
||||
PATH_EXPR@11..13
|
||||
PATH@11..13
|
||||
PATH_SEGMENT@11..13
|
||||
NAME_REF@11..13
|
||||
IDENT@11..13 "xs"
|
||||
L_BRACK@13..14 "["
|
||||
RANGE_EXPR@14..16
|
||||
DOT2@14..16 ".."
|
||||
R_BRACK@16..17 "]"
|
||||
SEMICOLON@17..18 ";"
|
||||
WHITESPACE@18..19 " "
|
||||
R_CURLY@19..20 "}"
|
||||
WHITESPACE@20..21 "\n"
|
|
@ -1 +0,0 @@
|
|||
fn foo() { xs[..]; }
|
|
@ -1,63 +0,0 @@
|
|||
SOURCE_FILE@0..71
|
||||
FN@0..19
|
||||
VISIBILITY@0..5
|
||||
CRATE_KW@0..5 "crate"
|
||||
WHITESPACE@5..6 " "
|
||||
FN_KW@6..8 "fn"
|
||||
WHITESPACE@8..9 " "
|
||||
NAME@9..13
|
||||
IDENT@9..13 "main"
|
||||
PARAM_LIST@13..15
|
||||
L_PAREN@13..14 "("
|
||||
R_PAREN@14..15 ")"
|
||||
WHITESPACE@15..16 " "
|
||||
BLOCK_EXPR@16..19
|
||||
STMT_LIST@16..19
|
||||
L_CURLY@16..17 "{"
|
||||
WHITESPACE@17..18 " "
|
||||
R_CURLY@18..19 "}"
|
||||
WHITESPACE@19..20 "\n"
|
||||
STRUCT@20..49
|
||||
STRUCT_KW@20..26 "struct"
|
||||
WHITESPACE@26..27 " "
|
||||
NAME@27..28
|
||||
IDENT@27..28 "S"
|
||||
WHITESPACE@28..29 " "
|
||||
RECORD_FIELD_LIST@29..49
|
||||
L_CURLY@29..30 "{"
|
||||
WHITESPACE@30..31 " "
|
||||
RECORD_FIELD@31..47
|
||||
VISIBILITY@31..36
|
||||
CRATE_KW@31..36 "crate"
|
||||
WHITESPACE@36..37 " "
|
||||
NAME@37..42
|
||||
IDENT@37..42 "field"
|
||||
COLON@42..43 ":"
|
||||
WHITESPACE@43..44 " "
|
||||
PATH_TYPE@44..47
|
||||
PATH@44..47
|
||||
PATH_SEGMENT@44..47
|
||||
NAME_REF@44..47
|
||||
IDENT@44..47 "u32"
|
||||
WHITESPACE@47..48 " "
|
||||
R_CURLY@48..49 "}"
|
||||
WHITESPACE@49..50 "\n"
|
||||
STRUCT@50..70
|
||||
STRUCT_KW@50..56 "struct"
|
||||
WHITESPACE@56..57 " "
|
||||
NAME@57..58
|
||||
IDENT@57..58 "T"
|
||||
TUPLE_FIELD_LIST@58..69
|
||||
L_PAREN@58..59 "("
|
||||
TUPLE_FIELD@59..68
|
||||
VISIBILITY@59..64
|
||||
CRATE_KW@59..64 "crate"
|
||||
WHITESPACE@64..65 " "
|
||||
PATH_TYPE@65..68
|
||||
PATH@65..68
|
||||
PATH_SEGMENT@65..68
|
||||
NAME_REF@65..68
|
||||
IDENT@65..68 "u32"
|
||||
R_PAREN@68..69 ")"
|
||||
SEMICOLON@69..70 ";"
|
||||
WHITESPACE@70..71 "\n"
|
|
@ -1,3 +0,0 @@
|
|||
crate fn main() { }
|
||||
struct S { crate field: u32 }
|
||||
struct T(crate u32);
|
|
@ -1,31 +0,0 @@
|
|||
SOURCE_FILE@0..30
|
||||
TRAIT@0..29
|
||||
TRAIT_KW@0..5 "trait"
|
||||
WHITESPACE@5..6 " "
|
||||
NAME@6..7
|
||||
IDENT@6..7 "T"
|
||||
WHITESPACE@7..8 " "
|
||||
ASSOC_ITEM_LIST@8..29
|
||||
L_CURLY@8..9 "{"
|
||||
WHITESPACE@9..10 " "
|
||||
FN@10..27
|
||||
FN_KW@10..12 "fn"
|
||||
WHITESPACE@12..13 " "
|
||||
NAME@13..16
|
||||
IDENT@13..16 "new"
|
||||
PARAM_LIST@16..18
|
||||
L_PAREN@16..17 "("
|
||||
R_PAREN@17..18 ")"
|
||||
WHITESPACE@18..19 " "
|
||||
RET_TYPE@19..26
|
||||
THIN_ARROW@19..21 "->"
|
||||
WHITESPACE@21..22 " "
|
||||
PATH_TYPE@22..26
|
||||
PATH@22..26
|
||||
PATH_SEGMENT@22..26
|
||||
NAME_REF@22..26
|
||||
IDENT@22..26 "Self"
|
||||
SEMICOLON@26..27 ";"
|
||||
WHITESPACE@27..28 " "
|
||||
R_CURLY@28..29 "}"
|
||||
WHITESPACE@29..30 "\n"
|
|
@ -1 +0,0 @@
|
|||
trait T { fn new() -> Self; }
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue