1752: Always wrap blocks into block expressions r=flodiebold a=matklad

This way, things like function bodies are expressions, and we don't have to single them out

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2019-09-02 19:20:24 +00:00 committed by GitHub
commit 7faec1c300
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
174 changed files with 9432 additions and 9105 deletions
crates
ra_assists/src
ra_fmt/src
ra_hir/src
ra_ide_api/src
ra_mbe/src
ra_parser/src
ra_syntax
src
test_data/parser
err
inline

View File

@ -274,7 +274,7 @@ impl AstBuilder<ast::Block> {
impl AstBuilder<ast::Expr> {
fn from_text(text: &str) -> ast::Expr {
ast_node_from_file_text(&format!("fn f() {{ {}; }}", text))
ast_node_from_file_text(&format!("const C: () = {};", text))
}
pub fn unit() -> ast::Expr {

View File

@ -3,7 +3,8 @@ use hir::db::HirDatabase;
use ra_syntax::{
ast::{self, AstNode},
SyntaxKind::{
BREAK_EXPR, COMMENT, LAMBDA_EXPR, LOOP_EXPR, MATCH_ARM, PATH_EXPR, RETURN_EXPR, WHITESPACE,
BLOCK_EXPR, BREAK_EXPR, COMMENT, LAMBDA_EXPR, LOOP_EXPR, MATCH_ARM, PATH_EXPR, RETURN_EXPR,
WHITESPACE,
},
SyntaxNode, TextUnit,
};
@ -80,10 +81,12 @@ pub(crate) fn introduce_variable(mut ctx: AssistCtx<impl HirDatabase>) -> Option
/// In general that's true for any expression, but in some cases that would produce invalid code.
fn valid_target_expr(node: SyntaxNode) -> Option<ast::Expr> {
match node.kind() {
PATH_EXPR => None,
PATH_EXPR | LOOP_EXPR => None,
BREAK_EXPR => ast::BreakExpr::cast(node).and_then(|e| e.expr()),
RETURN_EXPR => ast::ReturnExpr::cast(node).and_then(|e| e.expr()),
LOOP_EXPR => ast::ReturnExpr::cast(node).and_then(|e| e.expr()),
BLOCK_EXPR => {
ast::BlockExpr::cast(node).filter(|it| it.is_standalone()).map(ast::Expr::from)
}
_ => ast::Expr::cast(node),
}
}

View File

@ -65,9 +65,9 @@ pub(crate) fn move_arm_cond_to_match_guard(mut ctx: AssistCtx<impl HirDatabase>)
"move condition to match guard",
|edit| {
edit.target(if_expr.syntax().text_range());
let then_only_expr = then_block.statements().next().is_none();
let then_only_expr = then_block.block().and_then(|it| it.statements().next()).is_none();
match &then_block.expr() {
match &then_block.block().and_then(|it| it.expr()) {
Some(then_expr) if then_only_expr => {
edit.replace(if_expr.syntax().text_range(), then_expr.syntax().text())
}

View File

@ -1,3 +1,4 @@
use format_buf::format;
use hir::db::HirDatabase;
use ra_fmt::extract_trivial_expression;
use ra_syntax::{ast, AstNode};
@ -25,16 +26,21 @@ pub(crate) fn replace_if_let_with_match(mut ctx: AssistCtx<impl HirDatabase>) ->
ctx.build()
}
fn build_match_expr(expr: ast::Expr, pat1: ast::Pat, arm1: ast::Block, arm2: ast::Block) -> String {
fn build_match_expr(
expr: ast::Expr,
pat1: ast::Pat,
arm1: ast::BlockExpr,
arm2: ast::BlockExpr,
) -> String {
let mut buf = String::new();
buf.push_str(&format!("match {} {{\n", expr.syntax().text()));
buf.push_str(&format!(" {} => {}\n", pat1.syntax().text(), format_arm(&arm1)));
buf.push_str(&format!(" _ => {}\n", format_arm(&arm2)));
format!(buf, "match {} {{\n", expr.syntax().text());
format!(buf, " {} => {}\n", pat1.syntax().text(), format_arm(&arm1));
format!(buf, " _ => {}\n", format_arm(&arm2));
buf.push_str("}");
buf
}
fn format_arm(block: &ast::Block) -> String {
fn format_arm(block: &ast::BlockExpr) -> String {
match extract_trivial_expression(block) {
None => block.syntax().text().to_string(),
Some(e) => format!("{},", e.syntax().text()),

View File

@ -34,7 +34,8 @@ fn prev_tokens(token: SyntaxToken) -> impl Iterator<Item = SyntaxToken> {
successors(token.prev_token(), |token| token.prev_token())
}
pub fn extract_trivial_expression(block: &ast::Block) -> Option<ast::Expr> {
pub fn extract_trivial_expression(expr: &ast::BlockExpr) -> Option<ast::Expr> {
let block = expr.block()?;
let expr = block.expr()?;
if expr.syntax().text().contains_char('\n') {
return None;

View File

@ -119,10 +119,10 @@ where
expr_id: crate::expr::ExprId,
) -> Option<Source<ast::Expr>> {
let source_map = self.body_source_map(db);
let expr_syntax = source_map.expr_syntax(expr_id)?;
let expr_syntax = source_map.expr_syntax(expr_id)?.a()?;
let source = self.source(db);
let node = expr_syntax.to_node(&source.ast.syntax());
ast::Expr::cast(node).map(|ast| Source { file_id: source.file_id, ast })
let ast = expr_syntax.to_node(&source.ast.syntax());
Some(Source { file_id: source.file_id, ast })
}
}

View File

@ -9,7 +9,7 @@ use ra_syntax::{
self, ArgListOwner, ArrayExprKind, LiteralKind, LoopBodyOwner, NameOwner,
TypeAscriptionOwner,
},
AstNode, AstPtr, SyntaxNodePtr,
AstNode, AstPtr,
};
use test_utils::tested_by;
@ -56,13 +56,14 @@ pub struct Body {
/// file, so that we don't recompute types whenever some whitespace is typed.
#[derive(Default, Debug, Eq, PartialEq)]
pub struct BodySourceMap {
expr_map: FxHashMap<SyntaxNodePtr, ExprId>,
expr_map_back: ArenaMap<ExprId, SyntaxNodePtr>,
expr_map: FxHashMap<ExprPtr, ExprId>,
expr_map_back: ArenaMap<ExprId, ExprPtr>,
pat_map: FxHashMap<PatPtr, PatId>,
pat_map_back: ArenaMap<PatId, PatPtr>,
field_map: FxHashMap<(ExprId, usize), AstPtr<ast::RecordField>>,
}
type ExprPtr = Either<AstPtr<ast::Expr>, AstPtr<ast::RecordField>>;
type PatPtr = Either<AstPtr<ast::Pat>, AstPtr<ast::SelfParam>>;
impl Body {
@ -128,16 +129,12 @@ impl Index<PatId> for Body {
}
impl BodySourceMap {
pub(crate) fn expr_syntax(&self, expr: ExprId) -> Option<SyntaxNodePtr> {
pub(crate) fn expr_syntax(&self, expr: ExprId) -> Option<ExprPtr> {
self.expr_map_back.get(expr).cloned()
}
pub(crate) fn syntax_expr(&self, ptr: SyntaxNodePtr) -> Option<ExprId> {
self.expr_map.get(&ptr).cloned()
}
pub(crate) fn node_expr(&self, node: &ast::Expr) -> Option<ExprId> {
self.expr_map.get(&SyntaxNodePtr::new(node.syntax())).cloned()
self.expr_map.get(&Either::A(AstPtr::new(node))).cloned()
}
pub(crate) fn pat_syntax(&self, pat: PatId) -> Option<PatPtr> {
@ -575,11 +572,12 @@ where
current_file_id: file_id,
}
}
fn alloc_expr(&mut self, expr: Expr, syntax_ptr: SyntaxNodePtr) -> ExprId {
fn alloc_expr(&mut self, expr: Expr, ptr: AstPtr<ast::Expr>) -> ExprId {
let ptr = Either::A(ptr);
let id = self.exprs.alloc(expr);
if self.current_file_id == self.original_file_id {
self.source_map.expr_map.insert(syntax_ptr, id);
self.source_map.expr_map_back.insert(id, syntax_ptr);
self.source_map.expr_map.insert(ptr, id);
self.source_map.expr_map_back.insert(id, ptr);
}
id
}
@ -601,7 +599,7 @@ where
}
fn collect_expr(&mut self, expr: ast::Expr) -> ExprId {
let syntax_ptr = SyntaxNodePtr::new(expr.syntax());
let syntax_ptr = AstPtr::new(&expr);
match expr {
ast::Expr::IfExpr(e) => {
let then_branch = self.collect_block_opt(e.then_branch());
@ -640,10 +638,10 @@ where
self.alloc_expr(Expr::If { condition, then_branch, else_branch }, syntax_ptr)
}
ast::Expr::TryBlockExpr(e) => {
let body = self.collect_block_opt(e.block());
let body = self.collect_block_opt(e.body());
self.alloc_expr(Expr::TryBlock { body }, syntax_ptr)
}
ast::Expr::BlockExpr(e) => self.collect_block_opt(e.block()),
ast::Expr::BlockExpr(e) => self.collect_block(e),
ast::Expr::LoopExpr(e) => {
let body = self.collect_block_opt(e.loop_body());
self.alloc_expr(Expr::Loop { body }, syntax_ptr)
@ -739,7 +737,7 @@ where
ast::Expr::ParenExpr(e) => {
let inner = self.collect_expr_opt(e.expr());
// make the paren expr point to the inner expression as well
self.source_map.expr_map.insert(syntax_ptr, inner);
self.source_map.expr_map.insert(Either::A(syntax_ptr), inner);
inner
}
ast::Expr::ReturnExpr(e) => {
@ -763,12 +761,9 @@ where
} else if let Some(nr) = field.name_ref() {
// field shorthand
let id = self.exprs.alloc(Expr::Path(Path::from_name_ref(&nr)));
self.source_map
.expr_map
.insert(SyntaxNodePtr::new(nr.syntax()), id);
self.source_map
.expr_map_back
.insert(id, SyntaxNodePtr::new(nr.syntax()));
let ptr = Either::B(AstPtr::new(&field));
self.source_map.expr_map.insert(ptr, id);
self.source_map.expr_map_back.insert(id, ptr);
id
} else {
self.exprs.alloc(Expr::Missing)
@ -942,7 +937,12 @@ where
}
}
fn collect_block(&mut self, block: ast::Block) -> ExprId {
fn collect_block(&mut self, expr: ast::BlockExpr) -> ExprId {
let syntax_node_ptr = AstPtr::new(&expr.clone().into());
let block = match expr.block() {
Some(block) => block,
None => return self.alloc_expr(Expr::Missing, syntax_node_ptr),
};
let statements = block
.statements()
.map(|s| match s {
@ -956,11 +956,11 @@ where
})
.collect();
let tail = block.expr().map(|e| self.collect_expr(e));
self.alloc_expr(Expr::Block { statements, tail }, SyntaxNodePtr::new(block.syntax()))
self.alloc_expr(Expr::Block { statements, tail }, syntax_node_ptr)
}
fn collect_block_opt(&mut self, block: Option<ast::Block>) -> ExprId {
if let Some(block) = block {
fn collect_block_opt(&mut self, expr: Option<ast::BlockExpr>) -> ExprId {
if let Some(block) = expr {
self.collect_block(block)
} else {
self.exprs.alloc(Expr::Missing)

View File

@ -172,7 +172,7 @@ fn compute_expr_scopes(expr: ExprId, body: &Body, scopes: &mut ExprScopes, scope
#[cfg(test)]
mod tests {
use ra_db::SourceDatabase;
use ra_syntax::{algo::find_node_at_offset, ast, AstNode, SyntaxNodePtr};
use ra_syntax::{algo::find_node_at_offset, ast, AstNode};
use test_utils::{assert_eq_text, extract_offset};
use crate::{mock::MockDatabase, source_binder::SourceAnalyzer};
@ -194,8 +194,7 @@ mod tests {
let analyzer = SourceAnalyzer::new(&db, file_id, marker.syntax(), None);
let scopes = analyzer.scopes();
let expr_id =
analyzer.body_source_map().syntax_expr(SyntaxNodePtr::new(marker.syntax())).unwrap();
let expr_id = analyzer.body_source_map().node_expr(&marker.into()).unwrap();
let scope = scopes.scope_for(expr_id);
let actual = scopes

View File

@ -1,7 +1,7 @@
use rustc_hash::FxHashSet;
use std::sync::Arc;
use ra_syntax::ast::{AstNode, RecordLit};
use ra_syntax::ast::{self, AstNode};
use rustc_hash::FxHashSet;
use super::{Expr, ExprId, RecordLitField};
use crate::{
@ -13,7 +13,6 @@ use crate::{
ty::{ApplicationTy, InferenceResult, Ty, TypeCtor},
Function, HasSource, HirDatabase, ModuleDef, Name, Path, PerNs, Resolution,
};
use ra_syntax::ast;
pub(crate) struct ExprValidator<'a, 'b: 'a> {
func: Function,
@ -84,8 +83,12 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
let source_file = parse.tree();
if let Some(field_list_node) = source_map
.expr_syntax(id)
.and_then(|ptr| ptr.a())
.map(|ptr| ptr.to_node(source_file.syntax()))
.and_then(RecordLit::cast)
.and_then(|expr| match expr {
ast::Expr::RecordLit(it) => Some(it),
_ => None,
})
.and_then(|lit| lit.record_field_list())
{
let field_list_ptr = AstPtr::new(&field_list_node);
@ -135,7 +138,7 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
let source_map = self.func.body_source_map(db);
let file_id = self.func.source(db).file_id;
if let Some(expr) = source_map.expr_syntax(id).and_then(|n| n.cast::<ast::Expr>()) {
if let Some(expr) = source_map.expr_syntax(id).and_then(|n| n.a()) {
self.sink.push(MissingOkInTailExpr { file: file_id, expr });
}
}

View File

@ -462,8 +462,8 @@ fn scope_for(
node: &SyntaxNode,
) -> Option<ScopeId> {
node.ancestors()
.map(|it| SyntaxNodePtr::new(&it))
.filter_map(|ptr| source_map.syntax_expr(ptr))
.filter_map(ast::Expr::cast)
.filter_map(|it| source_map.node_expr(&it))
.find_map(|it| scopes.scope_for(it))
}
@ -475,7 +475,10 @@ fn scope_for_offset(
scopes
.scope_by_expr()
.iter()
.filter_map(|(id, scope)| Some((source_map.expr_syntax(*id)?, scope)))
.filter_map(|(id, scope)| {
let ast_ptr = source_map.expr_syntax(*id)?.a()?;
Some((ast_ptr.syntax_node_ptr(), scope))
})
// find containing scope
.min_by_key(|(ptr, _scope)| {
(!(ptr.range().start() <= offset && offset <= ptr.range().end()), ptr.range().len())
@ -495,7 +498,10 @@ fn adjust(
let child_scopes = scopes
.scope_by_expr()
.iter()
.filter_map(|(id, scope)| Some((source_map.expr_syntax(*id)?, scope)))
.filter_map(|(id, scope)| {
let ast_ptr = source_map.expr_syntax(*id)?.a()?;
Some((ast_ptr.syntax_node_ptr(), scope))
})
.map(|(ptr, scope)| (ptr.range(), scope))
.filter(|(range, _)| range.start() <= offset && range.is_subrange(&r) && *range != r);

View File

@ -3582,7 +3582,7 @@ fn infer(content: &str) -> String {
for (expr, ty) in inference_result.type_of_expr.iter() {
let syntax_ptr = match body_source_map.expr_syntax(expr) {
Some(sp) => sp,
Some(sp) => sp.either(|it| it.syntax_node_ptr(), |it| it.syntax_node_ptr()),
None => continue,
};
types.push((syntax_ptr, ty));

View File

@ -123,7 +123,7 @@ fn has_comma_after(node: &SyntaxNode) -> bool {
fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Option<()> {
let block = ast::Block::cast(token.parent())?;
let block_expr = ast::BlockExpr::cast(block.syntax().parent()?)?;
let expr = extract_trivial_expression(&block)?;
let expr = extract_trivial_expression(&block_expr)?;
let block_range = block_expr.syntax().text_range();
let mut buf = expr.syntax().text().to_string();

View File

@ -116,9 +116,10 @@ SOURCE_FILE@[0; 11)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 11)
L_CURLY@[9; 10) "{"
R_CURLY@[10; 11) "}"
BLOCK_EXPR@[9; 11)
BLOCK@[9; 11)
L_CURLY@[9; 10) "{"
R_CURLY@[10; 11) "}"
"#
.trim()
);
@ -148,26 +149,27 @@ SOURCE_FILE@[0; 60)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 60)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
EXPR_STMT@[16; 58)
MACRO_CALL@[16; 57)
PATH@[16; 22)
PATH_SEGMENT@[16; 22)
NAME_REF@[16; 22)
IDENT@[16; 22) "assert"
EXCL@[22; 23) "!"
TOKEN_TREE@[23; 57)
L_PAREN@[23; 24) "("
STRING@[24; 52) "\"\n fn foo() {\n ..."
COMMA@[52; 53) ","
WHITESPACE@[53; 54) " "
STRING@[54; 56) "\"\""
R_PAREN@[56; 57) ")"
SEMI@[57; 58) ";"
WHITESPACE@[58; 59) "\n"
R_CURLY@[59; 60) "}"
BLOCK_EXPR@[10; 60)
BLOCK@[10; 60)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
EXPR_STMT@[16; 58)
MACRO_CALL@[16; 57)
PATH@[16; 22)
PATH_SEGMENT@[16; 22)
NAME_REF@[16; 22)
IDENT@[16; 22) "assert"
EXCL@[22; 23) "!"
TOKEN_TREE@[23; 57)
L_PAREN@[23; 24) "("
STRING@[24; 52) "\"\n fn foo() {\n ..."
COMMA@[52; 53) ","
WHITESPACE@[53; 54) " "
STRING@[54; 56) "\"\""
R_PAREN@[56; 57) ")"
SEMI@[57; 58) ";"
WHITESPACE@[58; 59) "\n"
R_CURLY@[59; 60) "}"
"#
.trim()
);
@ -190,9 +192,10 @@ FN_DEF@[0; 11)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 11)
L_CURLY@[9; 10) "{"
R_CURLY@[10; 11) "}"
BLOCK_EXPR@[9; 11)
BLOCK@[9; 11)
L_CURLY@[9; 10) "{"
R_CURLY@[10; 11) "}"
"#
.trim()
);
@ -258,10 +261,11 @@ SOURCE_FILE@[0; 12)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
BLOCK_EXPR@[9; 12)
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
"#
.trim()
);
@ -292,10 +296,11 @@ SOURCE_FILE@[0; 12)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
BLOCK_EXPR@[9; 12)
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
"#
.trim()
);
@ -325,10 +330,11 @@ SOURCE_FILE@[0; 25)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
BLOCK_EXPR@[9; 12)
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
WHITESPACE@[12; 13) "\n"
FN_DEF@[13; 25)
FN_KW@[13; 15) "fn"
@ -339,10 +345,11 @@ SOURCE_FILE@[0; 25)
L_PAREN@[19; 20) "("
R_PAREN@[20; 21) ")"
WHITESPACE@[21; 22) " "
BLOCK@[22; 25)
L_CURLY@[22; 23) "{"
WHITESPACE@[23; 24) "\n"
R_CURLY@[24; 25) "}"
BLOCK_EXPR@[22; 25)
BLOCK@[22; 25)
L_CURLY@[22; 23) "{"
WHITESPACE@[23; 24) "\n"
R_CURLY@[24; 25) "}"
"#
.trim()
);

View File

@ -678,21 +678,22 @@ fn test_expr_order() {
PARAM_LIST@[5; 7)
L_PAREN@[5; 6) "("
R_PAREN@[6; 7) ")"
BLOCK@[7; 15)
L_CURLY@[7; 8) "{"
EXPR_STMT@[8; 14)
BIN_EXPR@[8; 13)
BIN_EXPR@[8; 11)
LITERAL@[8; 9)
INT_NUMBER@[8; 9) "1"
PLUS@[9; 10) "+"
LITERAL@[10; 11)
INT_NUMBER@[10; 11) "1"
STAR@[11; 12) "*"
LITERAL@[12; 13)
INT_NUMBER@[12; 13) "2"
SEMI@[13; 14) ";"
R_CURLY@[14; 15) "}""#,
BLOCK_EXPR@[7; 15)
BLOCK@[7; 15)
L_CURLY@[7; 8) "{"
EXPR_STMT@[8; 14)
BIN_EXPR@[8; 13)
BIN_EXPR@[8; 11)
LITERAL@[8; 9)
INT_NUMBER@[8; 9) "1"
PLUS@[9; 10) "+"
LITERAL@[10; 11)
INT_NUMBER@[10; 11) "1"
STAR@[11; 12) "*"
LITERAL@[12; 13)
INT_NUMBER@[12; 13) "2"
SEMI@[13; 14) ";"
R_CURLY@[14; 15) "}""#,
);
}

View File

@ -144,7 +144,7 @@ pub(crate) fn reparser(
parent: Option<SyntaxKind>,
) -> Option<fn(&mut Parser)> {
let res = match node {
BLOCK => expressions::block,
BLOCK => expressions::naked_block,
RECORD_FIELD_DEF_LIST => items::record_field_def_list,
RECORD_FIELD_LIST => items::record_field_list,
ENUM_VARIANT_LIST => items::enum_variant_list,

View File

@ -40,6 +40,11 @@ pub(crate) fn block(p: &mut Parser) {
p.error("expected a block");
return;
}
atom::block_expr(p, None);
}
pub(crate) fn naked_block(p: &mut Parser) {
assert!(p.at(T!['{']));
let m = p.start();
p.bump();
expr_block_contents(p);

View File

@ -463,10 +463,10 @@ fn match_guard(p: &mut Parser) -> CompletedMarker {
// unsafe {};
// 'label: {};
// }
fn block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
pub(super) fn block_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
assert!(p.at(T!['{']));
let m = m.unwrap_or_else(|| p.start());
block(p);
naked_block(p);
m.complete(p, BLOCK_EXPR)
}

View File

@ -9,12 +9,12 @@ use crate::{
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ElseBranch {
Block(ast::Block),
Block(ast::BlockExpr),
IfExpr(ast::IfExpr),
}
impl ast::IfExpr {
pub fn then_branch(&self) -> Option<ast::Block> {
pub fn then_branch(&self) -> Option<ast::BlockExpr> {
self.blocks().nth(0)
}
pub fn else_branch(&self) -> Option<ElseBranch> {
@ -28,7 +28,7 @@ impl ast::IfExpr {
Some(res)
}
fn blocks(&self) -> AstChildren<ast::Block> {
fn blocks(&self) -> AstChildren<ast::BlockExpr> {
children(self)
}
}
@ -289,6 +289,26 @@ impl ast::Literal {
}
}
impl ast::BlockExpr {
/// false if the block is an intrinsic part of the syntax and can't be
/// replaced with arbitrary expression.
///
/// ```not_rust
/// fn foo() { not_stand_alone }
/// const FOO: () = { stand_alone };
/// ```
pub fn is_standalone(&self) -> bool {
let kind = match self.syntax().parent() {
None => return true,
Some(it) => it.kind(),
};
match kind {
FN_DEF | MATCH_ARM | IF_EXPR | WHILE_EXPR | LOOP_EXPR | TRY_BLOCK_EXPR => false,
_ => true,
}
}
}
#[test]
fn test_literal_with_attr() {
let parse = ast::SourceFile::parse(r#"const _: &str = { #[attr] "Hello" };"#);

View File

@ -1003,7 +1003,7 @@ impl FnDef {
pub fn param_list(&self) -> Option<ParamList> {
AstChildren::new(&self.syntax).next()
}
pub fn body(&self) -> Option<Block> {
pub fn body(&self) -> Option<BlockExpr> {
AstChildren::new(&self.syntax).next()
}
pub fn ret_type(&self) -> Option<RetType> {
@ -3135,7 +3135,7 @@ impl AstNode for TryBlockExpr {
}
}
impl TryBlockExpr {
pub fn block(&self) -> Option<Block> {
pub fn body(&self) -> Option<BlockExpr> {
AstChildren::new(&self.syntax).next()
}
}

View File

@ -28,7 +28,7 @@ pub trait VisibilityOwner: AstNode {
}
pub trait LoopBodyOwner: AstNode {
fn loop_body(&self) -> Option<ast::Block> {
fn loop_body(&self) -> Option<ast::BlockExpr> {
child_opt(self)
}
}

View File

@ -275,7 +275,7 @@ Grammar(
"AttrsOwner",
"DocCommentsOwner"
],
options: [ "ParamList", ["body", "Block"], "RetType" ],
options: [ "ParamList", ["body", "BlockExpr"], "RetType" ],
),
"RetType": (options: ["TypeRef"]),
"StructDef": (
@ -426,7 +426,7 @@ Grammar(
traits: ["LoopBodyOwner"],
),
"TryBlockExpr": (
options: ["Block"],
options: [["body", "BlockExpr"]],
),
"ForExpr": (
traits: ["LoopBodyOwner"],

View File

@ -203,7 +203,8 @@ fn api_walkthrough() {
assert_eq!(name.text(), "foo");
// Let's get the `1 + 1` expression!
let block: ast::Block = func.body().unwrap();
let body: ast::BlockExpr = func.body().unwrap();
let block = body.block().unwrap();
let expr: ast::Expr = block.expr().unwrap();
// Enums are used to group related ast nodes together, and can be used for

View File

@ -97,7 +97,7 @@ pub(crate) fn validate(root: &SyntaxNode) -> Vec<SyntaxError> {
for node in root.descendants() {
let _ = visitor_ctx(&mut errors)
.visit::<ast::Literal, _>(validate_literal)
.visit::<ast::Block, _>(block::validate_block_node)
.visit::<ast::BlockExpr, _>(block::validate_block_expr)
.visit::<ast::FieldExpr, _>(|it, errors| validate_numeric_name(it.name_ref(), errors))
.visit::<ast::RecordField, _>(|it, errors| validate_numeric_name(it.name_ref(), errors))
.accept(&node);

View File

@ -5,18 +5,18 @@ use crate::{
SyntaxKind::*,
};
pub(crate) fn validate_block_node(node: ast::Block, errors: &mut Vec<SyntaxError>) {
if let Some(parent) = node.syntax().parent() {
pub(crate) fn validate_block_expr(expr: ast::BlockExpr, errors: &mut Vec<SyntaxError>) {
if let Some(parent) = expr.syntax().parent() {
match parent.kind() {
FN_DEF => return,
BLOCK_EXPR => match parent.parent().map(|v| v.kind()) {
Some(EXPR_STMT) | Some(BLOCK) => return,
_ => {}
},
FN_DEF | EXPR_STMT | BLOCK => return,
_ => {}
}
}
errors.extend(
node.attrs().map(|attr| SyntaxError::new(InvalidBlockAttr, attr.syntax().text_range())),
)
if let Some(block) = expr.block() {
errors.extend(
block
.attrs()
.map(|attr| SyntaxError::new(InvalidBlockAttr, attr.syntax().text_range())),
)
}
}

View File

@ -25,10 +25,11 @@ SOURCE_FILE@[0; 54)
L_PAREN@[25; 26) "("
R_PAREN@[26; 27) ")"
WHITESPACE@[27; 28) " "
BLOCK@[28; 31)
L_CURLY@[28; 29) "{"
WHITESPACE@[29; 30) "\n"
R_CURLY@[30; 31) "}"
BLOCK_EXPR@[28; 31)
BLOCK@[28; 31)
L_CURLY@[28; 29) "{"
WHITESPACE@[29; 30) "\n"
R_CURLY@[30; 31) "}"
WHITESPACE@[31; 34) "\n\n\n"
ATTR@[34; 53)
POUND@[34; 35) "#"

View File

@ -20,9 +20,10 @@ SOURCE_FILE@[0; 31)
PARAM_LIST@[23; 25)
L_PAREN@[23; 24) "("
R_PAREN@[24; 25) ")"
BLOCK@[25; 27)
L_CURLY@[25; 26) "{"
R_CURLY@[26; 27) "}"
BLOCK_EXPR@[25; 27)
BLOCK@[25; 27)
L_CURLY@[25; 26) "{"
R_CURLY@[26; 27) "}"
WHITESPACE@[27; 29) "\n\n"
ERROR@[29; 30)
R_CURLY@[29; 30) "}"

View File

@ -8,10 +8,11 @@ SOURCE_FILE@[0; 95)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
BLOCK_EXPR@[9; 12)
BLOCK@[9; 12)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) "\n"
R_CURLY@[11; 12) "}"
WHITESPACE@[12; 14) "\n\n"
MACRO_CALL@[14; 19)
PATH@[14; 17)
@ -32,29 +33,31 @@ SOURCE_FILE@[0; 95)
LITERAL@[29; 33)
TRUE_KW@[29; 33) "true"
WHITESPACE@[33; 34) " "
BLOCK@[34; 51)
L_CURLY@[34; 35) "{"
WHITESPACE@[35; 44) "\n "
LITERAL@[44; 45)
INT_NUMBER@[44; 45) "1"
WHITESPACE@[45; 50) "\n "
R_CURLY@[50; 51) "}"
BLOCK_EXPR@[34; 51)
BLOCK@[34; 51)
L_CURLY@[34; 35) "{"
WHITESPACE@[35; 44) "\n "
LITERAL@[44; 45)
INT_NUMBER@[44; 45) "1"
WHITESPACE@[45; 50) "\n "
R_CURLY@[50; 51) "}"
WHITESPACE@[51; 52) " "
ELSE_KW@[52; 56) "else"
WHITESPACE@[56; 57) " "
BLOCK@[57; 78)
L_CURLY@[57; 58) "{"
WHITESPACE@[58; 67) "\n "
BIN_EXPR@[67; 72)
LITERAL@[67; 68)
INT_NUMBER@[67; 68) "2"
WHITESPACE@[68; 69) " "
PLUS@[69; 70) "+"
WHITESPACE@[70; 71) " "
LITERAL@[71; 72)
INT_NUMBER@[71; 72) "3"
WHITESPACE@[72; 77) "\n "
R_CURLY@[77; 78) "}"
BLOCK_EXPR@[57; 78)
BLOCK@[57; 78)
L_CURLY@[57; 58) "{"
WHITESPACE@[58; 67) "\n "
BIN_EXPR@[67; 72)
LITERAL@[67; 68)
INT_NUMBER@[67; 68) "2"
WHITESPACE@[68; 69) " "
PLUS@[69; 70) "+"
WHITESPACE@[70; 71) " "
LITERAL@[71; 72)
INT_NUMBER@[71; 72) "3"
WHITESPACE@[72; 77) "\n "
R_CURLY@[77; 78) "}"
WHITESPACE@[78; 79) "\n"
R_CURLY@[79; 80) "}"
WHITESPACE@[80; 82) "\n\n"
@ -67,10 +70,11 @@ SOURCE_FILE@[0; 95)
L_PAREN@[88; 89) "("
R_PAREN@[89; 90) ")"
WHITESPACE@[90; 91) " "
BLOCK@[91; 94)
L_CURLY@[91; 92) "{"
WHITESPACE@[92; 93) "\n"
R_CURLY@[93; 94) "}"
BLOCK_EXPR@[91; 94)
BLOCK@[91; 94)
L_CURLY@[91; 92) "{"
WHITESPACE@[92; 93) "\n"
R_CURLY@[93; 94) "}"
WHITESPACE@[94; 95) "\n"
error 17: expected EXCL
error 19: expected SEMI

View File

@ -8,35 +8,36 @@ SOURCE_FILE@[0; 42)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 41)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
EXPR_STMT@[16; 39)
LAMBDA_EXPR@[16; 38)
PARAM_LIST@[16; 18)
PIPE@[16; 17) "|"
PIPE@[17; 18) "|"
WHITESPACE@[18; 19) " "
RET_TYPE@[19; 24)
THIN_ARROW@[19; 21) "->"
WHITESPACE@[21; 22) " "
TUPLE_TYPE@[22; 24)
L_PAREN@[22; 23) "("
R_PAREN@[23; 24) ")"
WHITESPACE@[24; 25) " "
BLOCK_EXPR@[25; 38)
UNSAFE_KW@[25; 31) "unsafe"
WHITESPACE@[31; 32) " "
BLOCK@[32; 38)
L_CURLY@[32; 33) "{"
WHITESPACE@[33; 34) " "
TUPLE_EXPR@[34; 36)
L_PAREN@[34; 35) "("
R_PAREN@[35; 36) ")"
WHITESPACE@[36; 37) " "
R_CURLY@[37; 38) "}"
SEMI@[38; 39) ";"
WHITESPACE@[39; 40) "\n"
R_CURLY@[40; 41) "}"
BLOCK_EXPR@[10; 41)
BLOCK@[10; 41)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
EXPR_STMT@[16; 39)
LAMBDA_EXPR@[16; 38)
PARAM_LIST@[16; 18)
PIPE@[16; 17) "|"
PIPE@[17; 18) "|"
WHITESPACE@[18; 19) " "
RET_TYPE@[19; 24)
THIN_ARROW@[19; 21) "->"
WHITESPACE@[21; 22) " "
TUPLE_TYPE@[22; 24)
L_PAREN@[22; 23) "("
R_PAREN@[23; 24) ")"
WHITESPACE@[24; 25) " "
BLOCK_EXPR@[25; 38)
UNSAFE_KW@[25; 31) "unsafe"
WHITESPACE@[31; 32) " "
BLOCK@[32; 38)
L_CURLY@[32; 33) "{"
WHITESPACE@[33; 34) " "
TUPLE_EXPR@[34; 36)
L_PAREN@[34; 35) "("
R_PAREN@[35; 36) ")"
WHITESPACE@[36; 37) " "
R_CURLY@[37; 38) "}"
SEMI@[38; 39) ";"
WHITESPACE@[39; 40) "\n"
R_CURLY@[40; 41) "}"
WHITESPACE@[41; 42) "\n"
error 24: expected `{`

View File

@ -24,8 +24,9 @@ SOURCE_FILE@[0; 23)
NAME_REF@[18; 19)
IDENT@[18; 19) "T"
WHITESPACE@[19; 20) " "
BLOCK@[20; 22)
L_CURLY@[20; 21) "{"
R_CURLY@[21; 22) "}"
BLOCK_EXPR@[20; 22)
BLOCK@[20; 22)
L_CURLY@[20; 21) "{"
R_CURLY@[21; 22) "}"
WHITESPACE@[22; 23) "\n"
error 19: expected colon

View File

@ -8,36 +8,37 @@ SOURCE_FILE@[0; 56)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 55)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 38)
CALL_EXPR@[15; 38)
PATH_EXPR@[15; 18)
PATH@[15; 18)
PATH_SEGMENT@[15; 18)
NAME_REF@[15; 18)
IDENT@[15; 18) "foo"
ARG_LIST@[18; 38)
L_PAREN@[18; 19) "("
WHITESPACE@[19; 28) "\n "
LITERAL@[28; 29)
INT_NUMBER@[28; 29) "1"
COMMA@[29; 30) ","
WHITESPACE@[30; 31) " "
LITERAL@[31; 32)
INT_NUMBER@[31; 32) "2"
WHITESPACE@[32; 37) "\n "
R_PAREN@[37; 38) ")"
WHITESPACE@[38; 43) "\n "
EXPR_STMT@[43; 53)
RETURN_EXPR@[43; 52)
RETURN_KW@[43; 49) "return"
WHITESPACE@[49; 50) " "
LITERAL@[50; 52)
INT_NUMBER@[50; 52) "92"
SEMI@[52; 53) ";"
WHITESPACE@[53; 54) "\n"
R_CURLY@[54; 55) "}"
BLOCK_EXPR@[9; 55)
BLOCK@[9; 55)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 38)
CALL_EXPR@[15; 38)
PATH_EXPR@[15; 18)
PATH@[15; 18)
PATH_SEGMENT@[15; 18)
NAME_REF@[15; 18)
IDENT@[15; 18) "foo"
ARG_LIST@[18; 38)
L_PAREN@[18; 19) "("
WHITESPACE@[19; 28) "\n "
LITERAL@[28; 29)
INT_NUMBER@[28; 29) "1"
COMMA@[29; 30) ","
WHITESPACE@[30; 31) " "
LITERAL@[31; 32)
INT_NUMBER@[31; 32) "2"
WHITESPACE@[32; 37) "\n "
R_PAREN@[37; 38) ")"
WHITESPACE@[38; 43) "\n "
EXPR_STMT@[43; 53)
RETURN_EXPR@[43; 52)
RETURN_KW@[43; 49) "return"
WHITESPACE@[49; 50) " "
LITERAL@[50; 52)
INT_NUMBER@[50; 52) "92"
SEMI@[52; 53) ";"
WHITESPACE@[53; 54) "\n"
R_CURLY@[54; 55) "}"
WHITESPACE@[55; 56) "\n"
error 38: expected SEMI

View File

@ -19,28 +19,29 @@ SOURCE_FILE@[0; 47)
IDENT@[12; 15) "i32"
R_PAREN@[15; 16) ")"
WHITESPACE@[16; 17) " "
BLOCK@[17; 46)
L_CURLY@[17; 18) "{"
WHITESPACE@[18; 23) "\n "
LET_STMT@[23; 36)
LET_KW@[23; 26) "let"
WHITESPACE@[26; 27) " "
BIND_PAT@[27; 30)
NAME@[27; 30)
IDENT@[27; 30) "bar"
WHITESPACE@[30; 31) " "
EQ@[31; 32) "="
WHITESPACE@[32; 33) " "
LITERAL@[33; 35)
INT_NUMBER@[33; 35) "92"
SEMI@[35; 36) ";"
WHITESPACE@[36; 41) "\n "
BIN_EXPR@[41; 44)
LITERAL@[41; 42)
INT_NUMBER@[41; 42) "1"
WHITESPACE@[42; 43) " "
PLUS@[43; 44) "+"
WHITESPACE@[44; 45) "\n"
R_CURLY@[45; 46) "}"
BLOCK_EXPR@[17; 46)
BLOCK@[17; 46)
L_CURLY@[17; 18) "{"
WHITESPACE@[18; 23) "\n "
LET_STMT@[23; 36)
LET_KW@[23; 26) "let"
WHITESPACE@[26; 27) " "
BIND_PAT@[27; 30)
NAME@[27; 30)
IDENT@[27; 30) "bar"
WHITESPACE@[30; 31) " "
EQ@[31; 32) "="
WHITESPACE@[32; 33) " "
LITERAL@[33; 35)
INT_NUMBER@[33; 35) "92"
SEMI@[35; 36) ";"
WHITESPACE@[36; 41) "\n "
BIN_EXPR@[41; 44)
LITERAL@[41; 42)
INT_NUMBER@[41; 42) "1"
WHITESPACE@[42; 43) " "
PLUS@[43; 44) "+"
WHITESPACE@[44; 45) "\n"
R_CURLY@[45; 46) "}"
WHITESPACE@[46; 47) "\n"
error 44: expected expression

View File

@ -32,89 +32,90 @@ SOURCE_FILE@[0; 183)
NAME_REF@[39; 46)
IDENT@[39; 46) "ScopeId"
WHITESPACE@[46; 47) " "
BLOCK@[47; 161)
L_CURLY@[47; 48) "{"
WHITESPACE@[48; 57) "\n "
LET_STMT@[57; 85)
LET_KW@[57; 60) "let"
WHITESPACE@[60; 61) " "
BIND_PAT@[61; 64)
NAME@[61; 64)
IDENT@[61; 64) "res"
WHITESPACE@[64; 65) " "
EQ@[65; 66) "="
WHITESPACE@[66; 67) " "
METHOD_CALL_EXPR@[67; 84)
FIELD_EXPR@[67; 78)
PATH_EXPR@[67; 71)
PATH@[67; 71)
PATH_SEGMENT@[67; 71)
SELF_KW@[67; 71) "self"
DOT@[71; 72) "."
NAME_REF@[72; 78)
IDENT@[72; 78) "scopes"
DOT@[78; 79) "."
NAME_REF@[79; 82)
IDENT@[79; 82) "len"
ARG_LIST@[82; 84)
L_PAREN@[82; 83) "("
R_PAREN@[83; 84) ")"
SEMI@[84; 85) ";"
WHITESPACE@[85; 94) "\n "
METHOD_CALL_EXPR@[94; 155)
FIELD_EXPR@[94; 105)
PATH_EXPR@[94; 98)
PATH@[94; 98)
PATH_SEGMENT@[94; 98)
SELF_KW@[94; 98) "self"
DOT@[98; 99) "."
NAME_REF@[99; 105)
IDENT@[99; 105) "scopes"
DOT@[105; 106) "."
NAME_REF@[106; 110)
IDENT@[106; 110) "push"
ARG_LIST@[110; 155)
L_PAREN@[110; 111) "("
RECORD_LIT@[111; 154)
PATH@[111; 120)
PATH_SEGMENT@[111; 120)
NAME_REF@[111; 120)
IDENT@[111; 120) "ScopeData"
WHITESPACE@[120; 121) " "
RECORD_FIELD_LIST@[121; 154)
L_CURLY@[121; 122) "{"
WHITESPACE@[122; 123) " "
RECORD_FIELD@[123; 135)
NAME_REF@[123; 129)
IDENT@[123; 129) "parent"
COLON@[129; 130) ":"
WHITESPACE@[130; 131) " "
PATH_EXPR@[131; 135)
PATH@[131; 135)
PATH_SEGMENT@[131; 135)
NAME_REF@[131; 135)
IDENT@[131; 135) "None"
COMMA@[135; 136) ","
WHITESPACE@[136; 137) " "
RECORD_FIELD@[137; 152)
NAME_REF@[137; 144)
IDENT@[137; 144) "entries"
COLON@[144; 145) ":"
WHITESPACE@[145; 146) " "
MACRO_CALL@[146; 152)
PATH@[146; 149)
PATH_SEGMENT@[146; 149)
NAME_REF@[146; 149)
IDENT@[146; 149) "vec"
EXCL@[149; 150) "!"
TOKEN_TREE@[150; 152)
L_BRACK@[150; 151) "["
R_BRACK@[151; 152) "]"
WHITESPACE@[152; 153) " "
R_CURLY@[153; 154) "}"
R_PAREN@[154; 155) ")"
WHITESPACE@[155; 160) "\n "
R_CURLY@[160; 161) "}"
BLOCK_EXPR@[47; 161)
BLOCK@[47; 161)
L_CURLY@[47; 48) "{"
WHITESPACE@[48; 57) "\n "
LET_STMT@[57; 85)
LET_KW@[57; 60) "let"
WHITESPACE@[60; 61) " "
BIND_PAT@[61; 64)
NAME@[61; 64)
IDENT@[61; 64) "res"
WHITESPACE@[64; 65) " "
EQ@[65; 66) "="
WHITESPACE@[66; 67) " "
METHOD_CALL_EXPR@[67; 84)
FIELD_EXPR@[67; 78)
PATH_EXPR@[67; 71)
PATH@[67; 71)
PATH_SEGMENT@[67; 71)
SELF_KW@[67; 71) "self"
DOT@[71; 72) "."
NAME_REF@[72; 78)
IDENT@[72; 78) "scopes"
DOT@[78; 79) "."
NAME_REF@[79; 82)
IDENT@[79; 82) "len"
ARG_LIST@[82; 84)
L_PAREN@[82; 83) "("
R_PAREN@[83; 84) ")"
SEMI@[84; 85) ";"
WHITESPACE@[85; 94) "\n "
METHOD_CALL_EXPR@[94; 155)
FIELD_EXPR@[94; 105)
PATH_EXPR@[94; 98)
PATH@[94; 98)
PATH_SEGMENT@[94; 98)
SELF_KW@[94; 98) "self"
DOT@[98; 99) "."
NAME_REF@[99; 105)
IDENT@[99; 105) "scopes"
DOT@[105; 106) "."
NAME_REF@[106; 110)
IDENT@[106; 110) "push"
ARG_LIST@[110; 155)
L_PAREN@[110; 111) "("
RECORD_LIT@[111; 154)
PATH@[111; 120)
PATH_SEGMENT@[111; 120)
NAME_REF@[111; 120)
IDENT@[111; 120) "ScopeData"
WHITESPACE@[120; 121) " "
RECORD_FIELD_LIST@[121; 154)
L_CURLY@[121; 122) "{"
WHITESPACE@[122; 123) " "
RECORD_FIELD@[123; 135)
NAME_REF@[123; 129)
IDENT@[123; 129) "parent"
COLON@[129; 130) ":"
WHITESPACE@[130; 131) " "
PATH_EXPR@[131; 135)
PATH@[131; 135)
PATH_SEGMENT@[131; 135)
NAME_REF@[131; 135)
IDENT@[131; 135) "None"
COMMA@[135; 136) ","
WHITESPACE@[136; 137) " "
RECORD_FIELD@[137; 152)
NAME_REF@[137; 144)
IDENT@[137; 144) "entries"
COLON@[144; 145) ":"
WHITESPACE@[145; 146) " "
MACRO_CALL@[146; 152)
PATH@[146; 149)
PATH_SEGMENT@[146; 149)
NAME_REF@[146; 149)
IDENT@[146; 149) "vec"
EXCL@[149; 150) "!"
TOKEN_TREE@[150; 152)
L_BRACK@[150; 151) "["
R_BRACK@[151; 152) "]"
WHITESPACE@[152; 153) " "
R_CURLY@[153; 154) "}"
R_PAREN@[154; 155) ")"
WHITESPACE@[155; 160) "\n "
R_CURLY@[160; 161) "}"
WHITESPACE@[161; 167) "\n\n "
FN_DEF@[167; 180)
FN_KW@[167; 169) "fn"

View File

@ -8,88 +8,92 @@ SOURCE_FILE@[0; 139)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 138)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 24)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
BIND_PAT@[19; 22)
NAME@[19; 22)
IDENT@[19; 22) "foo"
WHITESPACE@[22; 23) " "
EQ@[23; 24) "="
WHITESPACE@[24; 29) "\n "
LET_STMT@[29; 41)
LET_KW@[29; 32) "let"
WHITESPACE@[32; 33) " "
BIND_PAT@[33; 36)
NAME@[33; 36)
IDENT@[33; 36) "bar"
WHITESPACE@[36; 37) " "
EQ@[37; 38) "="
WHITESPACE@[38; 39) " "
LITERAL@[39; 40)
INT_NUMBER@[39; 40) "1"
SEMI@[40; 41) ";"
WHITESPACE@[41; 46) "\n "
LET_STMT@[46; 49)
LET_KW@[46; 49) "let"
WHITESPACE@[49; 54) "\n "
LET_STMT@[54; 67)
LET_KW@[54; 57) "let"
WHITESPACE@[57; 58) " "
BIND_PAT@[58; 61)
NAME@[58; 61)
IDENT@[58; 61) "baz"
WHITESPACE@[61; 62) " "
EQ@[62; 63) "="
WHITESPACE@[63; 64) " "
LITERAL@[64; 66)
INT_NUMBER@[64; 66) "92"
SEMI@[66; 67) ";"
WHITESPACE@[67; 72) "\n "
LET_STMT@[72; 75)
LET_KW@[72; 75) "let"
WHITESPACE@[75; 80) "\n "
EXPR_STMT@[80; 90)
IF_EXPR@[80; 90)
IF_KW@[80; 82) "if"
WHITESPACE@[82; 83) " "
CONDITION@[83; 87)
LITERAL@[83; 87)
TRUE_KW@[83; 87) "true"
WHITESPACE@[87; 88) " "
BLOCK@[88; 90)
L_CURLY@[88; 89) "{"
R_CURLY@[89; 90) "}"
WHITESPACE@[90; 95) "\n "
LET_STMT@[95; 98)
LET_KW@[95; 98) "let"
WHITESPACE@[98; 103) "\n "
EXPR_STMT@[103; 116)
WHILE_EXPR@[103; 116)
WHILE_KW@[103; 108) "while"
WHITESPACE@[108; 109) " "
CONDITION@[109; 113)
LITERAL@[109; 113)
TRUE_KW@[109; 113) "true"
WHITESPACE@[113; 114) " "
BLOCK@[114; 116)
L_CURLY@[114; 115) "{"
R_CURLY@[115; 116) "}"
WHITESPACE@[116; 121) "\n "
LET_STMT@[121; 124)
LET_KW@[121; 124) "let"
WHITESPACE@[124; 129) "\n "
LOOP_EXPR@[129; 136)
LOOP_KW@[129; 133) "loop"
WHITESPACE@[133; 134) " "
BLOCK@[134; 136)
L_CURLY@[134; 135) "{"
R_CURLY@[135; 136) "}"
WHITESPACE@[136; 137) "\n"
R_CURLY@[137; 138) "}"
BLOCK_EXPR@[9; 138)
BLOCK@[9; 138)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 24)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
BIND_PAT@[19; 22)
NAME@[19; 22)
IDENT@[19; 22) "foo"
WHITESPACE@[22; 23) " "
EQ@[23; 24) "="
WHITESPACE@[24; 29) "\n "
LET_STMT@[29; 41)
LET_KW@[29; 32) "let"
WHITESPACE@[32; 33) " "
BIND_PAT@[33; 36)
NAME@[33; 36)
IDENT@[33; 36) "bar"
WHITESPACE@[36; 37) " "
EQ@[37; 38) "="
WHITESPACE@[38; 39) " "
LITERAL@[39; 40)
INT_NUMBER@[39; 40) "1"
SEMI@[40; 41) ";"
WHITESPACE@[41; 46) "\n "
LET_STMT@[46; 49)
LET_KW@[46; 49) "let"
WHITESPACE@[49; 54) "\n "
LET_STMT@[54; 67)
LET_KW@[54; 57) "let"
WHITESPACE@[57; 58) " "
BIND_PAT@[58; 61)
NAME@[58; 61)
IDENT@[58; 61) "baz"
WHITESPACE@[61; 62) " "
EQ@[62; 63) "="
WHITESPACE@[63; 64) " "
LITERAL@[64; 66)
INT_NUMBER@[64; 66) "92"
SEMI@[66; 67) ";"
WHITESPACE@[67; 72) "\n "
LET_STMT@[72; 75)
LET_KW@[72; 75) "let"
WHITESPACE@[75; 80) "\n "
EXPR_STMT@[80; 90)
IF_EXPR@[80; 90)
IF_KW@[80; 82) "if"
WHITESPACE@[82; 83) " "
CONDITION@[83; 87)
LITERAL@[83; 87)
TRUE_KW@[83; 87) "true"
WHITESPACE@[87; 88) " "
BLOCK_EXPR@[88; 90)
BLOCK@[88; 90)
L_CURLY@[88; 89) "{"
R_CURLY@[89; 90) "}"
WHITESPACE@[90; 95) "\n "
LET_STMT@[95; 98)
LET_KW@[95; 98) "let"
WHITESPACE@[98; 103) "\n "
EXPR_STMT@[103; 116)
WHILE_EXPR@[103; 116)
WHILE_KW@[103; 108) "while"
WHITESPACE@[108; 109) " "
CONDITION@[109; 113)
LITERAL@[109; 113)
TRUE_KW@[109; 113) "true"
WHITESPACE@[113; 114) " "
BLOCK_EXPR@[114; 116)
BLOCK@[114; 116)
L_CURLY@[114; 115) "{"
R_CURLY@[115; 116) "}"
WHITESPACE@[116; 121) "\n "
LET_STMT@[121; 124)
LET_KW@[121; 124) "let"
WHITESPACE@[124; 129) "\n "
LOOP_EXPR@[129; 136)
LOOP_KW@[129; 133) "loop"
WHITESPACE@[133; 134) " "
BLOCK_EXPR@[134; 136)
BLOCK@[134; 136)
L_CURLY@[134; 135) "{"
R_CURLY@[135; 136) "}"
WHITESPACE@[136; 137) "\n"
R_CURLY@[137; 138) "}"
WHITESPACE@[138; 139) "\n"
error 24: expected expression
error 24: expected SEMI

View File

@ -11,9 +11,10 @@ SOURCE_FILE@[0; 16)
L_PAREN@[10; 11) "("
R_PAREN@[11; 12) ")"
WHITESPACE@[12; 13) " "
BLOCK@[13; 15)
L_CURLY@[13; 14) "{"
R_CURLY@[14; 15) "}"
BLOCK_EXPR@[13; 15)
BLOCK@[13; 15)
L_CURLY@[13; 14) "{"
R_CURLY@[14; 15) "}"
WHITESPACE@[15; 16) "\n"
error 2: expected a name
error 2: expected function arguments

View File

@ -25,10 +25,11 @@ SOURCE_FILE@[0; 22)
IDENT@[15; 16) "y"
R_PAREN@[16; 17) ")"
WHITESPACE@[17; 18) " "
BLOCK@[18; 21)
L_CURLY@[18; 19) "{"
WHITESPACE@[19; 20) "\n"
R_CURLY@[20; 21) "}"
BLOCK_EXPR@[18; 21)
BLOCK@[18; 21)
L_CURLY@[18; 19) "{"
WHITESPACE@[19; 20) "\n"
R_CURLY@[20; 21) "}"
WHITESPACE@[21; 22) "\n"
error 16: expected COLON
error 16: expected type

View File

@ -8,38 +8,39 @@ SOURCE_FILE@[0; 112)
L_PAREN@[4; 5) "("
R_PAREN@[5; 6) ")"
WHITESPACE@[6; 7) " "
BLOCK@[7; 33)
L_CURLY@[7; 8) "{"
WHITESPACE@[8; 9) " "
EXPR_STMT@[9; 15)
ARRAY_EXPR@[9; 15)
L_BRACK@[9; 10) "["
LITERAL@[10; 11)
INT_NUMBER@[10; 11) "1"
COMMA@[11; 12) ","
WHITESPACE@[12; 13) " "
LITERAL@[13; 14)
INT_NUMBER@[13; 14) "2"
COMMA@[14; 15) ","
WHITESPACE@[15; 16) " "
EXPR_STMT@[16; 17)
ERROR@[16; 17)
AT@[16; 17) "@"
EXPR_STMT@[17; 18)
ERROR@[17; 18)
COMMA@[17; 18) ","
WHITESPACE@[18; 19) " "
STRUCT_DEF@[19; 26)
STRUCT_KW@[19; 25) "struct"
ERROR@[25; 26)
COMMA@[25; 26) ","
WHITESPACE@[26; 27) " "
LET_STMT@[27; 31)
LET_KW@[27; 30) "let"
ERROR@[30; 31)
R_BRACK@[30; 31) "]"
WHITESPACE@[31; 32) " "
R_CURLY@[32; 33) "}"
BLOCK_EXPR@[7; 33)
BLOCK@[7; 33)
L_CURLY@[7; 8) "{"
WHITESPACE@[8; 9) " "
EXPR_STMT@[9; 15)
ARRAY_EXPR@[9; 15)
L_BRACK@[9; 10) "["
LITERAL@[10; 11)
INT_NUMBER@[10; 11) "1"
COMMA@[11; 12) ","
WHITESPACE@[12; 13) " "
LITERAL@[13; 14)
INT_NUMBER@[13; 14) "2"
COMMA@[14; 15) ","
WHITESPACE@[15; 16) " "
EXPR_STMT@[16; 17)
ERROR@[16; 17)
AT@[16; 17) "@"
EXPR_STMT@[17; 18)
ERROR@[17; 18)
COMMA@[17; 18) ","
WHITESPACE@[18; 19) " "
STRUCT_DEF@[19; 26)
STRUCT_KW@[19; 25) "struct"
ERROR@[25; 26)
COMMA@[25; 26) ","
WHITESPACE@[26; 27) " "
LET_STMT@[27; 31)
LET_KW@[27; 30) "let"
ERROR@[30; 31)
R_BRACK@[30; 31) "]"
WHITESPACE@[31; 32) " "
R_CURLY@[32; 33) "}"
WHITESPACE@[33; 34) "\n"
FN_DEF@[34; 68)
FN_KW@[34; 36) "fn"
@ -50,45 +51,46 @@ SOURCE_FILE@[0; 112)
L_PAREN@[38; 39) "("
R_PAREN@[39; 40) ")"
WHITESPACE@[40; 41) " "
BLOCK@[41; 68)
L_CURLY@[41; 42) "{"
WHITESPACE@[42; 43) " "
EXPR_STMT@[43; 52)
CALL_EXPR@[43; 52)
PATH_EXPR@[43; 46)
PATH@[43; 46)
PATH_SEGMENT@[43; 46)
NAME_REF@[43; 46)
IDENT@[43; 46) "foo"
ARG_LIST@[46; 52)
L_PAREN@[46; 47) "("
LITERAL@[47; 48)
INT_NUMBER@[47; 48) "1"
COMMA@[48; 49) ","
WHITESPACE@[49; 50) " "
LITERAL@[50; 51)
INT_NUMBER@[50; 51) "2"
COMMA@[51; 52) ","
WHITESPACE@[52; 53) " "
EXPR_STMT@[53; 54)
ERROR@[53; 54)
AT@[53; 54) "@"
EXPR_STMT@[54; 55)
ERROR@[54; 55)
COMMA@[54; 55) ","
WHITESPACE@[55; 56) " "
IMPL_BLOCK@[56; 60)
IMPL_KW@[56; 60) "impl"
EXPR_STMT@[60; 61)
ERROR@[60; 61)
COMMA@[60; 61) ","
WHITESPACE@[61; 62) " "
LET_STMT@[62; 65)
LET_KW@[62; 65) "let"
ERROR@[65; 66)
R_PAREN@[65; 66) ")"
WHITESPACE@[66; 67) " "
R_CURLY@[67; 68) "}"
BLOCK_EXPR@[41; 68)
BLOCK@[41; 68)
L_CURLY@[41; 42) "{"
WHITESPACE@[42; 43) " "
EXPR_STMT@[43; 52)
CALL_EXPR@[43; 52)
PATH_EXPR@[43; 46)
PATH@[43; 46)
PATH_SEGMENT@[43; 46)
NAME_REF@[43; 46)
IDENT@[43; 46) "foo"
ARG_LIST@[46; 52)
L_PAREN@[46; 47) "("
LITERAL@[47; 48)
INT_NUMBER@[47; 48) "1"
COMMA@[48; 49) ","
WHITESPACE@[49; 50) " "
LITERAL@[50; 51)
INT_NUMBER@[50; 51) "2"
COMMA@[51; 52) ","
WHITESPACE@[52; 53) " "
EXPR_STMT@[53; 54)
ERROR@[53; 54)
AT@[53; 54) "@"
EXPR_STMT@[54; 55)
ERROR@[54; 55)
COMMA@[54; 55) ","
WHITESPACE@[55; 56) " "
IMPL_BLOCK@[56; 60)
IMPL_KW@[56; 60) "impl"
EXPR_STMT@[60; 61)
ERROR@[60; 61)
COMMA@[60; 61) ","
WHITESPACE@[61; 62) " "
LET_STMT@[62; 65)
LET_KW@[62; 65) "let"
ERROR@[65; 66)
R_PAREN@[65; 66) ")"
WHITESPACE@[66; 67) " "
R_CURLY@[67; 68) "}"
WHITESPACE@[68; 69) "\n"
FN_DEF@[69; 111)
FN_KW@[69; 71) "fn"
@ -99,54 +101,55 @@ SOURCE_FILE@[0; 112)
L_PAREN@[73; 74) "("
R_PAREN@[74; 75) ")"
WHITESPACE@[75; 76) " "
BLOCK@[76; 111)
L_CURLY@[76; 77) "{"
WHITESPACE@[77; 78) " "
EXPR_STMT@[78; 91)
METHOD_CALL_EXPR@[78; 91)
PATH_EXPR@[78; 81)
PATH@[78; 81)
PATH_SEGMENT@[78; 81)
NAME_REF@[78; 81)
IDENT@[78; 81) "foo"
DOT@[81; 82) "."
NAME_REF@[82; 85)
IDENT@[82; 85) "bar"
ARG_LIST@[85; 91)
L_PAREN@[85; 86) "("
LITERAL@[86; 87)
INT_NUMBER@[86; 87) "1"
COMMA@[87; 88) ","
WHITESPACE@[88; 89) " "
LITERAL@[89; 90)
INT_NUMBER@[89; 90) "2"
COMMA@[90; 91) ","
WHITESPACE@[91; 92) " "
EXPR_STMT@[92; 93)
ERROR@[92; 93)
AT@[92; 93) "@"
EXPR_STMT@[93; 94)
ERROR@[93; 94)
COMMA@[93; 94) ","
WHITESPACE@[94; 95) " "
EXPR_STMT@[95; 96)
ERROR@[95; 96)
R_BRACK@[95; 96) "]"
EXPR_STMT@[96; 97)
ERROR@[96; 97)
COMMA@[96; 97) ","
WHITESPACE@[97; 98) " "
TRAIT_DEF@[98; 104)
TRAIT_KW@[98; 103) "trait"
ERROR@[103; 104)
COMMA@[103; 104) ","
WHITESPACE@[104; 105) " "
LET_STMT@[105; 108)
LET_KW@[105; 108) "let"
ERROR@[108; 109)
R_PAREN@[108; 109) ")"
WHITESPACE@[109; 110) " "
R_CURLY@[110; 111) "}"
BLOCK_EXPR@[76; 111)
BLOCK@[76; 111)
L_CURLY@[76; 77) "{"
WHITESPACE@[77; 78) " "
EXPR_STMT@[78; 91)
METHOD_CALL_EXPR@[78; 91)
PATH_EXPR@[78; 81)
PATH@[78; 81)
PATH_SEGMENT@[78; 81)
NAME_REF@[78; 81)
IDENT@[78; 81) "foo"
DOT@[81; 82) "."
NAME_REF@[82; 85)
IDENT@[82; 85) "bar"
ARG_LIST@[85; 91)
L_PAREN@[85; 86) "("
LITERAL@[86; 87)
INT_NUMBER@[86; 87) "1"
COMMA@[87; 88) ","
WHITESPACE@[88; 89) " "
LITERAL@[89; 90)
INT_NUMBER@[89; 90) "2"
COMMA@[90; 91) ","
WHITESPACE@[91; 92) " "
EXPR_STMT@[92; 93)
ERROR@[92; 93)
AT@[92; 93) "@"
EXPR_STMT@[93; 94)
ERROR@[93; 94)
COMMA@[93; 94) ","
WHITESPACE@[94; 95) " "
EXPR_STMT@[95; 96)
ERROR@[95; 96)
R_BRACK@[95; 96) "]"
EXPR_STMT@[96; 97)
ERROR@[96; 97)
COMMA@[96; 97) ","
WHITESPACE@[97; 98) " "
TRAIT_DEF@[98; 104)
TRAIT_KW@[98; 103) "trait"
ERROR@[103; 104)
COMMA@[103; 104) ","
WHITESPACE@[104; 105) " "
LET_STMT@[105; 108)
LET_KW@[105; 108) "let"
ERROR@[108; 109)
R_PAREN@[108; 109) ")"
WHITESPACE@[109; 110) " "
R_CURLY@[110; 111) "}"
WHITESPACE@[111; 112) "\n"
error 15: expected expression
error 15: expected R_BRACK

View File

@ -8,31 +8,32 @@ SOURCE_FILE@[0; 94)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 55)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
MACRO_CALL@[16; 49)
PATH@[16; 19)
PATH_SEGMENT@[16; 19)
NAME_REF@[16; 19)
IDENT@[16; 19) "foo"
EXCL@[19; 20) "!"
WHITESPACE@[20; 21) " "
TOKEN_TREE@[21; 49)
L_PAREN@[21; 22) "("
WHITESPACE@[22; 31) "\n "
IDENT@[31; 34) "bar"
COMMA@[34; 35) ","
WHITESPACE@[35; 36) " "
STRING@[36; 41) "\"baz\""
COMMA@[41; 42) ","
WHITESPACE@[42; 43) " "
INT_NUMBER@[43; 44) "1"
COMMA@[44; 45) ","
WHITESPACE@[45; 46) " "
FLOAT_NUMBER@[46; 49) "2.0"
WHITESPACE@[49; 54) "\n "
R_CURLY@[54; 55) "}"
BLOCK_EXPR@[10; 55)
BLOCK@[10; 55)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
MACRO_CALL@[16; 49)
PATH@[16; 19)
PATH_SEGMENT@[16; 19)
NAME_REF@[16; 19)
IDENT@[16; 19) "foo"
EXCL@[19; 20) "!"
WHITESPACE@[20; 21) " "
TOKEN_TREE@[21; 49)
L_PAREN@[21; 22) "("
WHITESPACE@[22; 31) "\n "
IDENT@[31; 34) "bar"
COMMA@[34; 35) ","
WHITESPACE@[35; 36) " "
STRING@[36; 41) "\"baz\""
COMMA@[41; 42) ","
WHITESPACE@[42; 43) " "
INT_NUMBER@[43; 44) "1"
COMMA@[44; 45) ","
WHITESPACE@[45; 46) " "
FLOAT_NUMBER@[46; 49) "2.0"
WHITESPACE@[49; 54) "\n "
R_CURLY@[54; 55) "}"
WHITESPACE@[55; 56) " "
COMMENT@[56; 91) "//~ ERROR incorrect c ..."
WHITESPACE@[91; 92) "\n"

View File

@ -61,9 +61,10 @@ SOURCE_FILE@[0; 240)
L_PAREN@[48; 49) "("
R_PAREN@[49; 50) ")"
WHITESPACE@[50; 51) " "
BLOCK@[51; 53)
L_CURLY@[51; 52) "{"
R_CURLY@[52; 53) "}"
BLOCK_EXPR@[51; 53)
BLOCK@[51; 53)
L_CURLY@[51; 52) "{"
R_CURLY@[52; 53) "}"
WHITESPACE@[53; 55) "\n\n"
FN_DEF@[55; 239)
FN_KW@[55; 57) "fn"
@ -74,222 +75,223 @@ SOURCE_FILE@[0; 240)
L_PAREN@[62; 63) "("
R_PAREN@[63; 64) ")"
WHITESPACE@[64; 65) " "
BLOCK@[65; 239)
L_CURLY@[65; 66) "{"
WHITESPACE@[66; 71) "\n "
LET_STMT@[71; 121)
LET_KW@[71; 74) "let"
WHITESPACE@[74; 75) " "
PLACEHOLDER_PAT@[75; 76)
UNDERSCORE@[75; 76) "_"
COLON@[76; 77) ":"
WHITESPACE@[77; 78) " "
DYN_TRAIT_TYPE@[78; 121)
TYPE_BOUND_LIST@[78; 121)
TYPE_BOUND@[78; 88)
PATH_TYPE@[78; 88)
PATH@[78; 88)
PATH_SEGMENT@[78; 88)
NAME_REF@[78; 81)
IDENT@[78; 81) "Box"
TYPE_ARG_LIST@[81; 88)
L_ANGLE@[81; 82) "<"
TYPE_ARG@[82; 88)
PAREN_TYPE@[82; 88)
L_PAREN@[82; 83) "("
PATH_TYPE@[83; 87)
PATH@[83; 87)
PATH_SEGMENT@[83; 87)
NAME_REF@[83; 87)
IDENT@[83; 87) "Copy"
R_PAREN@[87; 88) ")"
WHITESPACE@[88; 89) " "
PLUS@[89; 90) "+"
WHITESPACE@[90; 91) " "
TYPE_BOUND@[91; 99)
L_PAREN@[91; 92) "("
QUESTION@[92; 93) "?"
PATH_TYPE@[93; 98)
PATH@[93; 98)
PATH_SEGMENT@[93; 98)
NAME_REF@[93; 98)
IDENT@[93; 98) "Sized"
R_PAREN@[98; 99) ")"
WHITESPACE@[99; 100) " "
PLUS@[100; 101) "+"
WHITESPACE@[101; 102) " "
TYPE_BOUND@[102; 121)
L_PAREN@[102; 103) "("
FOR_TYPE@[103; 120)
FOR_KW@[103; 106) "for"
TYPE_PARAM_LIST@[106; 110)
L_ANGLE@[106; 107) "<"
LIFETIME_PARAM@[107; 109)
LIFETIME@[107; 109) "\'a"
R_ANGLE@[109; 110) ">"
WHITESPACE@[110; 111) " "
PATH_TYPE@[111; 120)
PATH@[111; 120)
PATH_SEGMENT@[111; 120)
NAME_REF@[111; 116)
IDENT@[111; 116) "Trait"
TYPE_ARG_LIST@[116; 120)
L_ANGLE@[116; 117) "<"
LIFETIME_ARG@[117; 119)
LIFETIME@[117; 119) "\'a"
R_ANGLE@[119; 120) ">"
R_PAREN@[120; 121) ")"
EXPR_STMT@[121; 123)
ERROR@[121; 122)
R_ANGLE@[121; 122) ">"
SEMI@[122; 123) ";"
WHITESPACE@[123; 128) "\n "
LET_STMT@[128; 141)
LET_KW@[128; 131) "let"
WHITESPACE@[131; 132) " "
PLACEHOLDER_PAT@[132; 133)
UNDERSCORE@[132; 133) "_"
COLON@[133; 134) ":"
WHITESPACE@[134; 135) " "
PATH_TYPE@[135; 141)
PATH@[135; 141)
PATH_SEGMENT@[135; 141)
NAME_REF@[135; 138)
IDENT@[135; 138) "Box"
TYPE_ARG_LIST@[138; 141)
L_ANGLE@[138; 139) "<"
TYPE_ARG@[139; 141)
PAREN_TYPE@[139; 141)
L_PAREN@[139; 140) "("
ERROR@[140; 141)
QUESTION@[140; 141) "?"
EXPR_STMT@[141; 146)
PATH_EXPR@[141; 146)
PATH@[141; 146)
PATH_SEGMENT@[141; 146)
NAME_REF@[141; 146)
IDENT@[141; 146) "Sized"
EXPR_STMT@[146; 147)
ERROR@[146; 147)
R_PAREN@[146; 147) ")"
WHITESPACE@[147; 148) " "
EXPR_STMT@[148; 149)
ERROR@[148; 149)
PLUS@[148; 149) "+"
WHITESPACE@[149; 150) " "
EXPR_STMT@[150; 151)
PAREN_EXPR@[150; 151)
L_PAREN@[150; 151) "("
EXPR_STMT@[151; 157)
FOR_EXPR@[151; 157)
FOR_KW@[151; 154) "for"
ERROR@[154; 155)
L_ANGLE@[154; 155) "<"
ERROR@[155; 157)
LIFETIME@[155; 157) "\'a"
EXPR_STMT@[157; 158)
ERROR@[157; 158)
R_ANGLE@[157; 158) ">"
WHITESPACE@[158; 159) " "
EXPR_STMT@[159; 180)
BIN_EXPR@[159; 180)
BIN_EXPR@[159; 178)
BIN_EXPR@[159; 169)
BIN_EXPR@[159; 167)
PATH_EXPR@[159; 164)
PATH@[159; 164)
PATH_SEGMENT@[159; 164)
NAME_REF@[159; 164)
IDENT@[159; 164) "Trait"
L_ANGLE@[164; 165) "<"
ERROR@[165; 167)
LIFETIME@[165; 167) "\'a"
R_ANGLE@[167; 168) ">"
ERROR@[168; 169)
R_PAREN@[168; 169) ")"
WHITESPACE@[169; 170) " "
PLUS@[170; 171) "+"
WHITESPACE@[171; 172) " "
PAREN_EXPR@[172; 178)
L_PAREN@[172; 173) "("
PATH_EXPR@[173; 177)
PATH@[173; 177)
PATH_SEGMENT@[173; 177)
NAME_REF@[173; 177)
IDENT@[173; 177) "Copy"
R_PAREN@[177; 178) ")"
R_ANGLE@[178; 179) ">"
ERROR@[179; 180)
SEMI@[179; 180) ";"
WHITESPACE@[180; 185) "\n "
LET_STMT@[185; 235)
LET_KW@[185; 188) "let"
WHITESPACE@[188; 189) " "
PLACEHOLDER_PAT@[189; 190)
UNDERSCORE@[189; 190) "_"
COLON@[190; 191) ":"
WHITESPACE@[191; 192) " "
DYN_TRAIT_TYPE@[192; 235)
TYPE_BOUND_LIST@[192; 235)
TYPE_BOUND@[192; 215)
PATH_TYPE@[192; 215)
PATH@[192; 215)
PATH_SEGMENT@[192; 215)
NAME_REF@[192; 195)
IDENT@[192; 195) "Box"
TYPE_ARG_LIST@[195; 215)
L_ANGLE@[195; 196) "<"
TYPE_ARG@[196; 215)
PAREN_TYPE@[196; 215)
L_PAREN@[196; 197) "("
FOR_TYPE@[197; 214)
FOR_KW@[197; 200) "for"
TYPE_PARAM_LIST@[200; 204)
L_ANGLE@[200; 201) "<"
LIFETIME_PARAM@[201; 203)
LIFETIME@[201; 203) "\'a"
R_ANGLE@[203; 204) ">"
WHITESPACE@[204; 205) " "
PATH_TYPE@[205; 214)
PATH@[205; 214)
PATH_SEGMENT@[205; 214)
NAME_REF@[205; 210)
IDENT@[205; 210) "Trait"
TYPE_ARG_LIST@[210; 214)
L_ANGLE@[210; 211) "<"
LIFETIME_ARG@[211; 213)
LIFETIME@[211; 213) "\'a"
R_ANGLE@[213; 214) ">"
R_PAREN@[214; 215) ")"
WHITESPACE@[215; 216) " "
PLUS@[216; 217) "+"
WHITESPACE@[217; 218) " "
TYPE_BOUND@[218; 224)
L_PAREN@[218; 219) "("
PATH_TYPE@[219; 223)
PATH@[219; 223)
PATH_SEGMENT@[219; 223)
NAME_REF@[219; 223)
IDENT@[219; 223) "Copy"
R_PAREN@[223; 224) ")"
WHITESPACE@[224; 225) " "
PLUS@[225; 226) "+"
WHITESPACE@[226; 227) " "
TYPE_BOUND@[227; 235)
L_PAREN@[227; 228) "("
QUESTION@[228; 229) "?"
PATH_TYPE@[229; 234)
PATH@[229; 234)
PATH_SEGMENT@[229; 234)
NAME_REF@[229; 234)
IDENT@[229; 234) "Sized"
R_PAREN@[234; 235) ")"
EXPR_STMT@[235; 237)
ERROR@[235; 236)
R_ANGLE@[235; 236) ">"
SEMI@[236; 237) ";"
WHITESPACE@[237; 238) "\n"
R_CURLY@[238; 239) "}"
BLOCK_EXPR@[65; 239)
BLOCK@[65; 239)
L_CURLY@[65; 66) "{"
WHITESPACE@[66; 71) "\n "
LET_STMT@[71; 121)
LET_KW@[71; 74) "let"
WHITESPACE@[74; 75) " "
PLACEHOLDER_PAT@[75; 76)
UNDERSCORE@[75; 76) "_"
COLON@[76; 77) ":"
WHITESPACE@[77; 78) " "
DYN_TRAIT_TYPE@[78; 121)
TYPE_BOUND_LIST@[78; 121)
TYPE_BOUND@[78; 88)
PATH_TYPE@[78; 88)
PATH@[78; 88)
PATH_SEGMENT@[78; 88)
NAME_REF@[78; 81)
IDENT@[78; 81) "Box"
TYPE_ARG_LIST@[81; 88)
L_ANGLE@[81; 82) "<"
TYPE_ARG@[82; 88)
PAREN_TYPE@[82; 88)
L_PAREN@[82; 83) "("
PATH_TYPE@[83; 87)
PATH@[83; 87)
PATH_SEGMENT@[83; 87)
NAME_REF@[83; 87)
IDENT@[83; 87) "Copy"
R_PAREN@[87; 88) ")"
WHITESPACE@[88; 89) " "
PLUS@[89; 90) "+"
WHITESPACE@[90; 91) " "
TYPE_BOUND@[91; 99)
L_PAREN@[91; 92) "("
QUESTION@[92; 93) "?"
PATH_TYPE@[93; 98)
PATH@[93; 98)
PATH_SEGMENT@[93; 98)
NAME_REF@[93; 98)
IDENT@[93; 98) "Sized"
R_PAREN@[98; 99) ")"
WHITESPACE@[99; 100) " "
PLUS@[100; 101) "+"
WHITESPACE@[101; 102) " "
TYPE_BOUND@[102; 121)
L_PAREN@[102; 103) "("
FOR_TYPE@[103; 120)
FOR_KW@[103; 106) "for"
TYPE_PARAM_LIST@[106; 110)
L_ANGLE@[106; 107) "<"
LIFETIME_PARAM@[107; 109)
LIFETIME@[107; 109) "\'a"
R_ANGLE@[109; 110) ">"
WHITESPACE@[110; 111) " "
PATH_TYPE@[111; 120)
PATH@[111; 120)
PATH_SEGMENT@[111; 120)
NAME_REF@[111; 116)
IDENT@[111; 116) "Trait"
TYPE_ARG_LIST@[116; 120)
L_ANGLE@[116; 117) "<"
LIFETIME_ARG@[117; 119)
LIFETIME@[117; 119) "\'a"
R_ANGLE@[119; 120) ">"
R_PAREN@[120; 121) ")"
EXPR_STMT@[121; 123)
ERROR@[121; 122)
R_ANGLE@[121; 122) ">"
SEMI@[122; 123) ";"
WHITESPACE@[123; 128) "\n "
LET_STMT@[128; 141)
LET_KW@[128; 131) "let"
WHITESPACE@[131; 132) " "
PLACEHOLDER_PAT@[132; 133)
UNDERSCORE@[132; 133) "_"
COLON@[133; 134) ":"
WHITESPACE@[134; 135) " "
PATH_TYPE@[135; 141)
PATH@[135; 141)
PATH_SEGMENT@[135; 141)
NAME_REF@[135; 138)
IDENT@[135; 138) "Box"
TYPE_ARG_LIST@[138; 141)
L_ANGLE@[138; 139) "<"
TYPE_ARG@[139; 141)
PAREN_TYPE@[139; 141)
L_PAREN@[139; 140) "("
ERROR@[140; 141)
QUESTION@[140; 141) "?"
EXPR_STMT@[141; 146)
PATH_EXPR@[141; 146)
PATH@[141; 146)
PATH_SEGMENT@[141; 146)
NAME_REF@[141; 146)
IDENT@[141; 146) "Sized"
EXPR_STMT@[146; 147)
ERROR@[146; 147)
R_PAREN@[146; 147) ")"
WHITESPACE@[147; 148) " "
EXPR_STMT@[148; 149)
ERROR@[148; 149)
PLUS@[148; 149) "+"
WHITESPACE@[149; 150) " "
EXPR_STMT@[150; 151)
PAREN_EXPR@[150; 151)
L_PAREN@[150; 151) "("
EXPR_STMT@[151; 157)
FOR_EXPR@[151; 157)
FOR_KW@[151; 154) "for"
ERROR@[154; 155)
L_ANGLE@[154; 155) "<"
ERROR@[155; 157)
LIFETIME@[155; 157) "\'a"
EXPR_STMT@[157; 158)
ERROR@[157; 158)
R_ANGLE@[157; 158) ">"
WHITESPACE@[158; 159) " "
EXPR_STMT@[159; 180)
BIN_EXPR@[159; 180)
BIN_EXPR@[159; 178)
BIN_EXPR@[159; 169)
BIN_EXPR@[159; 167)
PATH_EXPR@[159; 164)
PATH@[159; 164)
PATH_SEGMENT@[159; 164)
NAME_REF@[159; 164)
IDENT@[159; 164) "Trait"
L_ANGLE@[164; 165) "<"
ERROR@[165; 167)
LIFETIME@[165; 167) "\'a"
R_ANGLE@[167; 168) ">"
ERROR@[168; 169)
R_PAREN@[168; 169) ")"
WHITESPACE@[169; 170) " "
PLUS@[170; 171) "+"
WHITESPACE@[171; 172) " "
PAREN_EXPR@[172; 178)
L_PAREN@[172; 173) "("
PATH_EXPR@[173; 177)
PATH@[173; 177)
PATH_SEGMENT@[173; 177)
NAME_REF@[173; 177)
IDENT@[173; 177) "Copy"
R_PAREN@[177; 178) ")"
R_ANGLE@[178; 179) ">"
ERROR@[179; 180)
SEMI@[179; 180) ";"
WHITESPACE@[180; 185) "\n "
LET_STMT@[185; 235)
LET_KW@[185; 188) "let"
WHITESPACE@[188; 189) " "
PLACEHOLDER_PAT@[189; 190)
UNDERSCORE@[189; 190) "_"
COLON@[190; 191) ":"
WHITESPACE@[191; 192) " "
DYN_TRAIT_TYPE@[192; 235)
TYPE_BOUND_LIST@[192; 235)
TYPE_BOUND@[192; 215)
PATH_TYPE@[192; 215)
PATH@[192; 215)
PATH_SEGMENT@[192; 215)
NAME_REF@[192; 195)
IDENT@[192; 195) "Box"
TYPE_ARG_LIST@[195; 215)
L_ANGLE@[195; 196) "<"
TYPE_ARG@[196; 215)
PAREN_TYPE@[196; 215)
L_PAREN@[196; 197) "("
FOR_TYPE@[197; 214)
FOR_KW@[197; 200) "for"
TYPE_PARAM_LIST@[200; 204)
L_ANGLE@[200; 201) "<"
LIFETIME_PARAM@[201; 203)
LIFETIME@[201; 203) "\'a"
R_ANGLE@[203; 204) ">"
WHITESPACE@[204; 205) " "
PATH_TYPE@[205; 214)
PATH@[205; 214)
PATH_SEGMENT@[205; 214)
NAME_REF@[205; 210)
IDENT@[205; 210) "Trait"
TYPE_ARG_LIST@[210; 214)
L_ANGLE@[210; 211) "<"
LIFETIME_ARG@[211; 213)
LIFETIME@[211; 213) "\'a"
R_ANGLE@[213; 214) ">"
R_PAREN@[214; 215) ")"
WHITESPACE@[215; 216) " "
PLUS@[216; 217) "+"
WHITESPACE@[217; 218) " "
TYPE_BOUND@[218; 224)
L_PAREN@[218; 219) "("
PATH_TYPE@[219; 223)
PATH@[219; 223)
PATH_SEGMENT@[219; 223)
NAME_REF@[219; 223)
IDENT@[219; 223) "Copy"
R_PAREN@[223; 224) ")"
WHITESPACE@[224; 225) " "
PLUS@[225; 226) "+"
WHITESPACE@[226; 227) " "
TYPE_BOUND@[227; 235)
L_PAREN@[227; 228) "("
QUESTION@[228; 229) "?"
PATH_TYPE@[229; 234)
PATH@[229; 234)
PATH_SEGMENT@[229; 234)
NAME_REF@[229; 234)
IDENT@[229; 234) "Sized"
R_PAREN@[234; 235) ")"
EXPR_STMT@[235; 237)
ERROR@[235; 236)
R_ANGLE@[235; 236) ">"
SEMI@[236; 237) ";"
WHITESPACE@[237; 238) "\n"
R_CURLY@[238; 239) "}"
WHITESPACE@[239; 240) "\n"
error 88: expected COMMA
error 88: expected R_ANGLE

View File

@ -8,187 +8,188 @@ SOURCE_FILE@[0; 575)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 574)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
ENUM_DEF@[16; 152)
ENUM_KW@[16; 20) "enum"
WHITESPACE@[20; 21) " "
NAME@[21; 25)
IDENT@[21; 25) "Test"
WHITESPACE@[25; 26) " "
ENUM_VARIANT_LIST@[26; 152)
L_CURLY@[26; 27) "{"
WHITESPACE@[27; 36) "\n "
ENUM_VARIANT@[36; 40)
NAME@[36; 40)
IDENT@[36; 40) "Var1"
COMMA@[40; 41) ","
WHITESPACE@[41; 50) "\n "
ENUM_VARIANT@[50; 62)
NAME@[50; 54)
IDENT@[50; 54) "Var2"
TUPLE_FIELD_DEF_LIST@[54; 62)
L_PAREN@[54; 55) "("
TUPLE_FIELD_DEF@[55; 61)
PATH_TYPE@[55; 61)
PATH@[55; 61)
PATH_SEGMENT@[55; 61)
NAME_REF@[55; 61)
IDENT@[55; 61) "String"
R_PAREN@[61; 62) ")"
COMMA@[62; 63) ","
WHITESPACE@[63; 72) "\n "
ENUM_VARIANT@[72; 145)
NAME@[72; 76)
IDENT@[72; 76) "Var3"
WHITESPACE@[76; 77) " "
RECORD_FIELD_DEF_LIST@[77; 145)
L_CURLY@[77; 78) "{"
WHITESPACE@[78; 91) "\n "
RECORD_FIELD_DEF@[91; 95)
NAME@[91; 94)
IDENT@[91; 94) "abc"
COLON@[94; 95) ":"
WHITESPACE@[95; 96) " "
ERROR@[96; 98)
L_CURLY@[96; 97) "{"
R_CURLY@[97; 98) "}"
ERROR@[98; 99)
COMMA@[98; 99) ","
WHITESPACE@[99; 100) " "
COMMENT@[100; 135) "//~ ERROR: expected t ..."
WHITESPACE@[135; 144) "\n "
R_CURLY@[144; 145) "}"
COMMA@[145; 146) ","
WHITESPACE@[146; 151) "\n "
R_CURLY@[151; 152) "}"
WHITESPACE@[152; 158) "\n\n "
COMMENT@[158; 171) "// recover..."
WHITESPACE@[171; 176) "\n "
LET_STMT@[176; 186)
LET_KW@[176; 179) "let"
WHITESPACE@[179; 180) " "
BIND_PAT@[180; 181)
NAME@[180; 181)
IDENT@[180; 181) "a"
WHITESPACE@[181; 182) " "
EQ@[182; 183) "="
WHITESPACE@[183; 184) " "
LITERAL@[184; 185)
INT_NUMBER@[184; 185) "1"
SEMI@[185; 186) ";"
WHITESPACE@[186; 191) "\n "
ENUM_DEF@[191; 223)
ENUM_KW@[191; 195) "enum"
WHITESPACE@[195; 196) " "
NAME@[196; 201)
IDENT@[196; 201) "Test2"
WHITESPACE@[201; 202) " "
ENUM_VARIANT_LIST@[202; 223)
L_CURLY@[202; 203) "{"
WHITESPACE@[203; 212) "\n "
ENUM_VARIANT@[212; 216)
NAME@[212; 216)
IDENT@[212; 216) "Fine"
COMMA@[216; 217) ","
WHITESPACE@[217; 222) "\n "
R_CURLY@[222; 223) "}"
WHITESPACE@[223; 229) "\n\n "
ENUM_DEF@[229; 300)
ENUM_KW@[229; 233) "enum"
WHITESPACE@[233; 234) " "
NAME@[234; 239)
IDENT@[234; 239) "Test3"
WHITESPACE@[239; 240) " "
ENUM_VARIANT_LIST@[240; 300)
L_CURLY@[240; 241) "{"
WHITESPACE@[241; 250) "\n "
ENUM_VARIANT@[250; 293)
NAME@[250; 259)
IDENT@[250; 259) "StillFine"
WHITESPACE@[259; 260) " "
RECORD_FIELD_DEF_LIST@[260; 293)
L_CURLY@[260; 261) "{"
WHITESPACE@[261; 274) "\n "
RECORD_FIELD_DEF@[274; 282)
NAME@[274; 277)
IDENT@[274; 277) "def"
COLON@[277; 278) ":"
WHITESPACE@[278; 279) " "
PATH_TYPE@[279; 282)
PATH@[279; 282)
PATH_SEGMENT@[279; 282)
NAME_REF@[279; 282)
IDENT@[279; 282) "i32"
COMMA@[282; 283) ","
WHITESPACE@[283; 292) "\n "
R_CURLY@[292; 293) "}"
COMMA@[293; 294) ","
WHITESPACE@[294; 299) "\n "
R_CURLY@[299; 300) "}"
WHITESPACE@[300; 306) "\n\n "
EXPR_STMT@[306; 459)
BLOCK_EXPR@[306; 459)
BLOCK@[306; 459)
L_CURLY@[306; 307) "{"
WHITESPACE@[307; 316) "\n "
ENUM_DEF@[316; 453)
COMMENT@[316; 329) "// fail again"
WHITESPACE@[329; 338) "\n "
ENUM_KW@[338; 342) "enum"
WHITESPACE@[342; 343) " "
NAME@[343; 348)
IDENT@[343; 348) "Test4"
WHITESPACE@[348; 349) " "
ENUM_VARIANT_LIST@[349; 453)
L_CURLY@[349; 350) "{"
WHITESPACE@[350; 363) "\n "
ENUM_VARIANT@[363; 372)
NAME@[363; 367)
IDENT@[363; 367) "Nope"
TUPLE_FIELD_DEF_LIST@[367; 372)
L_PAREN@[367; 368) "("
TUPLE_FIELD_DEF@[368; 371)
PATH_TYPE@[368; 371)
PATH@[368; 371)
PATH_SEGMENT@[368; 371)
NAME_REF@[368; 371)
IDENT@[368; 371) "i32"
WHITESPACE@[371; 372) " "
ERROR@[372; 372)
ERROR@[372; 374)
L_CURLY@[372; 373) "{"
R_CURLY@[373; 374) "}"
ERROR@[374; 375)
R_PAREN@[374; 375) ")"
WHITESPACE@[375; 376) " "
COMMENT@[376; 396) "//~ ERROR: found `{`"
WHITESPACE@[396; 422) "\n ..."
COMMENT@[422; 443) "//~^ ERROR: found `{`"
WHITESPACE@[443; 452) "\n "
R_CURLY@[452; 453) "}"
WHITESPACE@[453; 458) "\n "
R_CURLY@[458; 459) "}"
WHITESPACE@[459; 464) "\n "
COMMENT@[464; 486) "// still recover later"
WHITESPACE@[486; 491) "\n "
LET_STMT@[491; 510)
LET_KW@[491; 494) "let"
WHITESPACE@[494; 495) " "
BIND_PAT@[495; 505)
NAME@[495; 505)
IDENT@[495; 505) "bad_syntax"
WHITESPACE@[505; 506) " "
EQ@[506; 507) "="
WHITESPACE@[507; 508) " "
ERROR@[508; 509)
UNDERSCORE@[508; 509) "_"
SEMI@[509; 510) ";"
WHITESPACE@[510; 511) " "
COMMENT@[511; 572) "//~ ERROR: expected e ..."
WHITESPACE@[572; 573) "\n"
R_CURLY@[573; 574) "}"
BLOCK_EXPR@[10; 574)
BLOCK@[10; 574)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
ENUM_DEF@[16; 152)
ENUM_KW@[16; 20) "enum"
WHITESPACE@[20; 21) " "
NAME@[21; 25)
IDENT@[21; 25) "Test"
WHITESPACE@[25; 26) " "
ENUM_VARIANT_LIST@[26; 152)
L_CURLY@[26; 27) "{"
WHITESPACE@[27; 36) "\n "
ENUM_VARIANT@[36; 40)
NAME@[36; 40)
IDENT@[36; 40) "Var1"
COMMA@[40; 41) ","
WHITESPACE@[41; 50) "\n "
ENUM_VARIANT@[50; 62)
NAME@[50; 54)
IDENT@[50; 54) "Var2"
TUPLE_FIELD_DEF_LIST@[54; 62)
L_PAREN@[54; 55) "("
TUPLE_FIELD_DEF@[55; 61)
PATH_TYPE@[55; 61)
PATH@[55; 61)
PATH_SEGMENT@[55; 61)
NAME_REF@[55; 61)
IDENT@[55; 61) "String"
R_PAREN@[61; 62) ")"
COMMA@[62; 63) ","
WHITESPACE@[63; 72) "\n "
ENUM_VARIANT@[72; 145)
NAME@[72; 76)
IDENT@[72; 76) "Var3"
WHITESPACE@[76; 77) " "
RECORD_FIELD_DEF_LIST@[77; 145)
L_CURLY@[77; 78) "{"
WHITESPACE@[78; 91) "\n "
RECORD_FIELD_DEF@[91; 95)
NAME@[91; 94)
IDENT@[91; 94) "abc"
COLON@[94; 95) ":"
WHITESPACE@[95; 96) " "
ERROR@[96; 98)
L_CURLY@[96; 97) "{"
R_CURLY@[97; 98) "}"
ERROR@[98; 99)
COMMA@[98; 99) ","
WHITESPACE@[99; 100) " "
COMMENT@[100; 135) "//~ ERROR: expected t ..."
WHITESPACE@[135; 144) "\n "
R_CURLY@[144; 145) "}"
COMMA@[145; 146) ","
WHITESPACE@[146; 151) "\n "
R_CURLY@[151; 152) "}"
WHITESPACE@[152; 158) "\n\n "
COMMENT@[158; 171) "// recover..."
WHITESPACE@[171; 176) "\n "
LET_STMT@[176; 186)
LET_KW@[176; 179) "let"
WHITESPACE@[179; 180) " "
BIND_PAT@[180; 181)
NAME@[180; 181)
IDENT@[180; 181) "a"
WHITESPACE@[181; 182) " "
EQ@[182; 183) "="
WHITESPACE@[183; 184) " "
LITERAL@[184; 185)
INT_NUMBER@[184; 185) "1"
SEMI@[185; 186) ";"
WHITESPACE@[186; 191) "\n "
ENUM_DEF@[191; 223)
ENUM_KW@[191; 195) "enum"
WHITESPACE@[195; 196) " "
NAME@[196; 201)
IDENT@[196; 201) "Test2"
WHITESPACE@[201; 202) " "
ENUM_VARIANT_LIST@[202; 223)
L_CURLY@[202; 203) "{"
WHITESPACE@[203; 212) "\n "
ENUM_VARIANT@[212; 216)
NAME@[212; 216)
IDENT@[212; 216) "Fine"
COMMA@[216; 217) ","
WHITESPACE@[217; 222) "\n "
R_CURLY@[222; 223) "}"
WHITESPACE@[223; 229) "\n\n "
ENUM_DEF@[229; 300)
ENUM_KW@[229; 233) "enum"
WHITESPACE@[233; 234) " "
NAME@[234; 239)
IDENT@[234; 239) "Test3"
WHITESPACE@[239; 240) " "
ENUM_VARIANT_LIST@[240; 300)
L_CURLY@[240; 241) "{"
WHITESPACE@[241; 250) "\n "
ENUM_VARIANT@[250; 293)
NAME@[250; 259)
IDENT@[250; 259) "StillFine"
WHITESPACE@[259; 260) " "
RECORD_FIELD_DEF_LIST@[260; 293)
L_CURLY@[260; 261) "{"
WHITESPACE@[261; 274) "\n "
RECORD_FIELD_DEF@[274; 282)
NAME@[274; 277)
IDENT@[274; 277) "def"
COLON@[277; 278) ":"
WHITESPACE@[278; 279) " "
PATH_TYPE@[279; 282)
PATH@[279; 282)
PATH_SEGMENT@[279; 282)
NAME_REF@[279; 282)
IDENT@[279; 282) "i32"
COMMA@[282; 283) ","
WHITESPACE@[283; 292) "\n "
R_CURLY@[292; 293) "}"
COMMA@[293; 294) ","
WHITESPACE@[294; 299) "\n "
R_CURLY@[299; 300) "}"
WHITESPACE@[300; 306) "\n\n "
EXPR_STMT@[306; 459)
BLOCK_EXPR@[306; 459)
BLOCK@[306; 459)
L_CURLY@[306; 307) "{"
WHITESPACE@[307; 316) "\n "
ENUM_DEF@[316; 453)
COMMENT@[316; 329) "// fail again"
WHITESPACE@[329; 338) "\n "
ENUM_KW@[338; 342) "enum"
WHITESPACE@[342; 343) " "
NAME@[343; 348)
IDENT@[343; 348) "Test4"
WHITESPACE@[348; 349) " "
ENUM_VARIANT_LIST@[349; 453)
L_CURLY@[349; 350) "{"
WHITESPACE@[350; 363) "\n "
ENUM_VARIANT@[363; 372)
NAME@[363; 367)
IDENT@[363; 367) "Nope"
TUPLE_FIELD_DEF_LIST@[367; 372)
L_PAREN@[367; 368) "("
TUPLE_FIELD_DEF@[368; 371)
PATH_TYPE@[368; 371)
PATH@[368; 371)
PATH_SEGMENT@[368; 371)
NAME_REF@[368; 371)
IDENT@[368; 371) "i32"
WHITESPACE@[371; 372) " "
ERROR@[372; 372)
ERROR@[372; 374)
L_CURLY@[372; 373) "{"
R_CURLY@[373; 374) "}"
ERROR@[374; 375)
R_PAREN@[374; 375) ")"
WHITESPACE@[375; 376) " "
COMMENT@[376; 396) "//~ ERROR: found `{`"
WHITESPACE@[396; 422) "\n ..."
COMMENT@[422; 443) "//~^ ERROR: found `{`"
WHITESPACE@[443; 452) "\n "
R_CURLY@[452; 453) "}"
WHITESPACE@[453; 458) "\n "
R_CURLY@[458; 459) "}"
WHITESPACE@[459; 464) "\n "
COMMENT@[464; 486) "// still recover later"
WHITESPACE@[486; 491) "\n "
LET_STMT@[491; 510)
LET_KW@[491; 494) "let"
WHITESPACE@[494; 495) " "
BIND_PAT@[495; 505)
NAME@[495; 505)
IDENT@[495; 505) "bad_syntax"
WHITESPACE@[505; 506) " "
EQ@[506; 507) "="
WHITESPACE@[507; 508) " "
ERROR@[508; 509)
UNDERSCORE@[508; 509) "_"
SEMI@[509; 510) ";"
WHITESPACE@[510; 511) " "
COMMENT@[511; 572) "//~ ERROR: expected e ..."
WHITESPACE@[572; 573) "\n"
R_CURLY@[573; 574) "}"
WHITESPACE@[574; 575) "\n"
error 95: expected type
error 95: expected COMMA

View File

@ -20,9 +20,10 @@ SOURCE_FILE@[0; 30)
LIFETIME@[23; 25) "\'a"
R_ANGLE@[25; 26) ">"
WHITESPACE@[26; 27) "\n"
BLOCK@[27; 29)
L_CURLY@[27; 28) "{"
R_CURLY@[28; 29) "}"
BLOCK_EXPR@[27; 29)
BLOCK@[27; 29)
L_CURLY@[27; 28) "{"
R_CURLY@[28; 29) "}"
WHITESPACE@[29; 30) "\n"
error 26: expected a path
error 26: expected colon

View File

@ -73,188 +73,189 @@ SOURCE_FILE@[0; 349)
L_PAREN@[125; 126) "("
R_PAREN@[126; 127) ")"
WHITESPACE@[127; 128) " "
BLOCK@[128; 348)
L_CURLY@[128; 129) "{"
WHITESPACE@[129; 134) "\n "
EXPR_STMT@[134; 139)
PATH_EXPR@[134; 139)
PATH@[134; 139)
PATH_SEGMENT@[134; 139)
NAME_REF@[134; 139)
IDENT@[134; 139) "macro"
WHITESPACE@[139; 140) " "
EXPR_STMT@[140; 154)
CALL_EXPR@[140; 154)
PATH_EXPR@[140; 150)
PATH@[140; 150)
PATH_SEGMENT@[140; 150)
NAME_REF@[140; 150)
IDENT@[140; 150) "test_merge"
ARG_LIST@[150; 154)
L_PAREN@[150; 151) "("
ARRAY_EXPR@[151; 154)
L_BRACK@[151; 152) "["
ERROR@[152; 153)
DOLLAR@[152; 153) "$"
PAREN_EXPR@[153; 154)
L_PAREN@[153; 154) "("
EXPR_STMT@[154; 155)
ERROR@[154; 155)
DOLLAR@[154; 155) "$"
EXPR_STMT@[155; 160)
PATH_EXPR@[155; 160)
PATH@[155; 160)
PATH_SEGMENT@[155; 160)
NAME_REF@[155; 160)
IDENT@[155; 160) "input"
EXPR_STMT@[160; 161)
ERROR@[160; 161)
COLON@[160; 161) ":"
EXPR_STMT@[161; 165)
PATH_EXPR@[161; 165)
PATH@[161; 165)
PATH_SEGMENT@[161; 165)
NAME_REF@[161; 165)
IDENT@[161; 165) "expr"
EXPR_STMT@[165; 166)
ERROR@[165; 166)
R_PAREN@[165; 166) ")"
EXPR_STMT@[166; 167)
ERROR@[166; 167)
COMMA@[166; 167) ","
EXPR_STMT@[167; 170)
PREFIX_EXPR@[167; 170)
STAR@[167; 168) "*"
WHITESPACE@[168; 169) " "
ERROR@[169; 170)
DOLLAR@[169; 170) "$"
EXPR_STMT@[170; 171)
PAREN_EXPR@[170; 171)
L_PAREN@[170; 171) "("
EXPR_STMT@[171; 172)
ERROR@[171; 172)
COMMA@[171; 172) ","
EXPR_STMT@[172; 173)
ERROR@[172; 173)
R_PAREN@[172; 173) ")"
EXPR_STMT@[173; 175)
PREFIX_EXPR@[173; 175)
STAR@[173; 174) "*"
ERROR@[174; 175)
R_BRACK@[174; 175) "]"
EXPR_STMT@[175; 176)
ERROR@[175; 176)
COMMA@[175; 176) ","
WHITESPACE@[176; 177) " "
EXPR_STMT@[177; 180)
ARRAY_EXPR@[177; 180)
L_BRACK@[177; 178) "["
ERROR@[178; 179)
DOLLAR@[178; 179) "$"
PAREN_EXPR@[179; 180)
L_PAREN@[179; 180) "("
EXPR_STMT@[180; 181)
ERROR@[180; 181)
DOLLAR@[180; 181) "$"
EXPR_STMT@[181; 187)
PATH_EXPR@[181; 187)
PATH@[181; 187)
PATH_SEGMENT@[181; 187)
NAME_REF@[181; 187)
IDENT@[181; 187) "output"
EXPR_STMT@[187; 188)
ERROR@[187; 188)
COLON@[187; 188) ":"
EXPR_STMT@[188; 192)
PATH_EXPR@[188; 192)
PATH@[188; 192)
PATH_SEGMENT@[188; 192)
NAME_REF@[188; 192)
IDENT@[188; 192) "expr"
EXPR_STMT@[192; 193)
ERROR@[192; 193)
R_PAREN@[192; 193) ")"
EXPR_STMT@[193; 194)
ERROR@[193; 194)
COMMA@[193; 194) ","
EXPR_STMT@[194; 197)
PREFIX_EXPR@[194; 197)
STAR@[194; 195) "*"
WHITESPACE@[195; 196) " "
ERROR@[196; 197)
DOLLAR@[196; 197) "$"
EXPR_STMT@[197; 198)
PAREN_EXPR@[197; 198)
L_PAREN@[197; 198) "("
EXPR_STMT@[198; 199)
ERROR@[198; 199)
COMMA@[198; 199) ","
EXPR_STMT@[199; 200)
ERROR@[199; 200)
R_PAREN@[199; 200) ")"
EXPR_STMT@[200; 202)
PREFIX_EXPR@[200; 202)
STAR@[200; 201) "*"
ERROR@[201; 202)
R_BRACK@[201; 202) "]"
EXPR_STMT@[202; 203)
ERROR@[202; 203)
R_PAREN@[202; 203) ")"
WHITESPACE@[203; 204) " "
BLOCK_EXPR@[204; 346)
BLOCK@[204; 346)
L_CURLY@[204; 205) "{"
WHITESPACE@[205; 214) "\n "
EXPR_STMT@[214; 340)
MACRO_CALL@[214; 339)
PATH@[214; 223)
PATH_SEGMENT@[214; 223)
NAME_REF@[214; 223)
IDENT@[214; 223) "assert_eq"
EXCL@[223; 224) "!"
TOKEN_TREE@[224; 339)
L_PAREN@[224; 225) "("
WHITESPACE@[225; 238) "\n "
IDENT@[238; 253) "merge_use_trees"
TOKEN_TREE@[253; 284)
L_PAREN@[253; 254) "("
IDENT@[254; 269) "parse_use_trees"
EXCL@[269; 270) "!"
TOKEN_TREE@[270; 283)
L_PAREN@[270; 271) "("
DOLLAR@[271; 272) "$"
TOKEN_TREE@[272; 281)
L_PAREN@[272; 273) "("
DOLLAR@[273; 274) "$"
IDENT@[274; 279) "input"
COMMA@[279; 280) ","
R_PAREN@[280; 281) ")"
STAR@[281; 282) "*"
R_PAREN@[282; 283) ")"
R_PAREN@[283; 284) ")"
COMMA@[284; 285) ","
WHITESPACE@[285; 298) "\n "
IDENT@[298; 313) "parse_use_trees"
EXCL@[313; 314) "!"
TOKEN_TREE@[314; 328)
L_PAREN@[314; 315) "("
DOLLAR@[315; 316) "$"
TOKEN_TREE@[316; 326)
L_PAREN@[316; 317) "("
DOLLAR@[317; 318) "$"
IDENT@[318; 324) "output"
COMMA@[324; 325) ","
R_PAREN@[325; 326) ")"
STAR@[326; 327) "*"
R_PAREN@[327; 328) ")"
COMMA@[328; 329) ","
WHITESPACE@[329; 338) "\n "
R_PAREN@[338; 339) ")"
SEMI@[339; 340) ";"
WHITESPACE@[340; 345) "\n "
R_CURLY@[345; 346) "}"
WHITESPACE@[346; 347) "\n"
R_CURLY@[347; 348) "}"
BLOCK_EXPR@[128; 348)
BLOCK@[128; 348)
L_CURLY@[128; 129) "{"
WHITESPACE@[129; 134) "\n "
EXPR_STMT@[134; 139)
PATH_EXPR@[134; 139)
PATH@[134; 139)
PATH_SEGMENT@[134; 139)
NAME_REF@[134; 139)
IDENT@[134; 139) "macro"
WHITESPACE@[139; 140) " "
EXPR_STMT@[140; 154)
CALL_EXPR@[140; 154)
PATH_EXPR@[140; 150)
PATH@[140; 150)
PATH_SEGMENT@[140; 150)
NAME_REF@[140; 150)
IDENT@[140; 150) "test_merge"
ARG_LIST@[150; 154)
L_PAREN@[150; 151) "("
ARRAY_EXPR@[151; 154)
L_BRACK@[151; 152) "["
ERROR@[152; 153)
DOLLAR@[152; 153) "$"
PAREN_EXPR@[153; 154)
L_PAREN@[153; 154) "("
EXPR_STMT@[154; 155)
ERROR@[154; 155)
DOLLAR@[154; 155) "$"
EXPR_STMT@[155; 160)
PATH_EXPR@[155; 160)
PATH@[155; 160)
PATH_SEGMENT@[155; 160)
NAME_REF@[155; 160)
IDENT@[155; 160) "input"
EXPR_STMT@[160; 161)
ERROR@[160; 161)
COLON@[160; 161) ":"
EXPR_STMT@[161; 165)
PATH_EXPR@[161; 165)
PATH@[161; 165)
PATH_SEGMENT@[161; 165)
NAME_REF@[161; 165)
IDENT@[161; 165) "expr"
EXPR_STMT@[165; 166)
ERROR@[165; 166)
R_PAREN@[165; 166) ")"
EXPR_STMT@[166; 167)
ERROR@[166; 167)
COMMA@[166; 167) ","
EXPR_STMT@[167; 170)
PREFIX_EXPR@[167; 170)
STAR@[167; 168) "*"
WHITESPACE@[168; 169) " "
ERROR@[169; 170)
DOLLAR@[169; 170) "$"
EXPR_STMT@[170; 171)
PAREN_EXPR@[170; 171)
L_PAREN@[170; 171) "("
EXPR_STMT@[171; 172)
ERROR@[171; 172)
COMMA@[171; 172) ","
EXPR_STMT@[172; 173)
ERROR@[172; 173)
R_PAREN@[172; 173) ")"
EXPR_STMT@[173; 175)
PREFIX_EXPR@[173; 175)
STAR@[173; 174) "*"
ERROR@[174; 175)
R_BRACK@[174; 175) "]"
EXPR_STMT@[175; 176)
ERROR@[175; 176)
COMMA@[175; 176) ","
WHITESPACE@[176; 177) " "
EXPR_STMT@[177; 180)
ARRAY_EXPR@[177; 180)
L_BRACK@[177; 178) "["
ERROR@[178; 179)
DOLLAR@[178; 179) "$"
PAREN_EXPR@[179; 180)
L_PAREN@[179; 180) "("
EXPR_STMT@[180; 181)
ERROR@[180; 181)
DOLLAR@[180; 181) "$"
EXPR_STMT@[181; 187)
PATH_EXPR@[181; 187)
PATH@[181; 187)
PATH_SEGMENT@[181; 187)
NAME_REF@[181; 187)
IDENT@[181; 187) "output"
EXPR_STMT@[187; 188)
ERROR@[187; 188)
COLON@[187; 188) ":"
EXPR_STMT@[188; 192)
PATH_EXPR@[188; 192)
PATH@[188; 192)
PATH_SEGMENT@[188; 192)
NAME_REF@[188; 192)
IDENT@[188; 192) "expr"
EXPR_STMT@[192; 193)
ERROR@[192; 193)
R_PAREN@[192; 193) ")"
EXPR_STMT@[193; 194)
ERROR@[193; 194)
COMMA@[193; 194) ","
EXPR_STMT@[194; 197)
PREFIX_EXPR@[194; 197)
STAR@[194; 195) "*"
WHITESPACE@[195; 196) " "
ERROR@[196; 197)
DOLLAR@[196; 197) "$"
EXPR_STMT@[197; 198)
PAREN_EXPR@[197; 198)
L_PAREN@[197; 198) "("
EXPR_STMT@[198; 199)
ERROR@[198; 199)
COMMA@[198; 199) ","
EXPR_STMT@[199; 200)
ERROR@[199; 200)
R_PAREN@[199; 200) ")"
EXPR_STMT@[200; 202)
PREFIX_EXPR@[200; 202)
STAR@[200; 201) "*"
ERROR@[201; 202)
R_BRACK@[201; 202) "]"
EXPR_STMT@[202; 203)
ERROR@[202; 203)
R_PAREN@[202; 203) ")"
WHITESPACE@[203; 204) " "
BLOCK_EXPR@[204; 346)
BLOCK@[204; 346)
L_CURLY@[204; 205) "{"
WHITESPACE@[205; 214) "\n "
EXPR_STMT@[214; 340)
MACRO_CALL@[214; 339)
PATH@[214; 223)
PATH_SEGMENT@[214; 223)
NAME_REF@[214; 223)
IDENT@[214; 223) "assert_eq"
EXCL@[223; 224) "!"
TOKEN_TREE@[224; 339)
L_PAREN@[224; 225) "("
WHITESPACE@[225; 238) "\n "
IDENT@[238; 253) "merge_use_trees"
TOKEN_TREE@[253; 284)
L_PAREN@[253; 254) "("
IDENT@[254; 269) "parse_use_trees"
EXCL@[269; 270) "!"
TOKEN_TREE@[270; 283)
L_PAREN@[270; 271) "("
DOLLAR@[271; 272) "$"
TOKEN_TREE@[272; 281)
L_PAREN@[272; 273) "("
DOLLAR@[273; 274) "$"
IDENT@[274; 279) "input"
COMMA@[279; 280) ","
R_PAREN@[280; 281) ")"
STAR@[281; 282) "*"
R_PAREN@[282; 283) ")"
R_PAREN@[283; 284) ")"
COMMA@[284; 285) ","
WHITESPACE@[285; 298) "\n "
IDENT@[298; 313) "parse_use_trees"
EXCL@[313; 314) "!"
TOKEN_TREE@[314; 328)
L_PAREN@[314; 315) "("
DOLLAR@[315; 316) "$"
TOKEN_TREE@[316; 326)
L_PAREN@[316; 317) "("
DOLLAR@[317; 318) "$"
IDENT@[318; 324) "output"
COMMA@[324; 325) ","
R_PAREN@[325; 326) ")"
STAR@[326; 327) "*"
R_PAREN@[327; 328) ")"
COMMA@[328; 329) ","
WHITESPACE@[329; 338) "\n "
R_PAREN@[338; 339) ")"
SEMI@[339; 340) ";"
WHITESPACE@[340; 345) "\n "
R_CURLY@[345; 346) "}"
WHITESPACE@[346; 347) "\n"
R_CURLY@[347; 348) "}"
WHITESPACE@[348; 349) "\n"
error 5: expected EXCL
error 41: expected SEMI

View File

@ -19,17 +19,18 @@ SOURCE_FILE@[0; 24)
IDENT@[10; 11) "A"
R_PAREN@[11; 12) ")"
WHITESPACE@[12; 13) " "
BLOCK@[13; 23)
L_CURLY@[13; 14) "{"
WHITESPACE@[14; 19) "\n "
FIELD_EXPR@[19; 21)
PATH_EXPR@[19; 20)
PATH@[19; 20)
PATH_SEGMENT@[19; 20)
NAME_REF@[19; 20)
IDENT@[19; 20) "a"
DOT@[20; 21) "."
WHITESPACE@[21; 22) "\n"
R_CURLY@[22; 23) "}"
BLOCK_EXPR@[13; 23)
BLOCK@[13; 23)
L_CURLY@[13; 14) "{"
WHITESPACE@[14; 19) "\n "
FIELD_EXPR@[19; 21)
PATH_EXPR@[19; 20)
PATH@[19; 20)
PATH_SEGMENT@[19; 20)
NAME_REF@[19; 20)
IDENT@[19; 20) "a"
DOT@[20; 21) "."
WHITESPACE@[21; 22) "\n"
R_CURLY@[22; 23) "}"
WHITESPACE@[23; 24) "\n"
error 21: expected field name or number

View File

@ -8,105 +8,108 @@ SOURCE_FILE@[0; 350)
L_PAREN@[8; 9) "("
R_PAREN@[9; 10) ")"
WHITESPACE@[10; 11) " "
BLOCK@[11; 349)
L_CURLY@[11; 12) "{"
WHITESPACE@[12; 17) "\n "
LET_STMT@[17; 129)
LET_KW@[17; 20) "let"
WHITESPACE@[20; 21) " "
BIND_PAT@[21; 26)
NAME@[21; 26)
IDENT@[21; 26) "inner"
WHITESPACE@[26; 27) " "
EQ@[27; 28) "="
WHITESPACE@[28; 29) " "
BLOCK_EXPR@[29; 128)
BLOCK@[29; 128)
L_CURLY@[29; 30) "{"
WHITESPACE@[30; 39) "\n "
ATTR@[39; 83)
POUND@[39; 40) "#"
EXCL@[40; 41) "!"
TOKEN_TREE@[41; 83)
L_BRACK@[41; 42) "["
IDENT@[42; 45) "doc"
TOKEN_TREE@[45; 82)
L_PAREN@[45; 46) "("
STRING@[46; 81) "\"Inner attributes not ..."
R_PAREN@[81; 82) ")"
R_BRACK@[82; 83) "]"
WHITESPACE@[83; 92) "\n "
COMMENT@[92; 122) "//! Nor are ModuleDoc ..."
WHITESPACE@[122; 127) "\n "
R_CURLY@[127; 128) "}"
SEMI@[128; 129) ";"
WHITESPACE@[129; 134) "\n "
EXPR_STMT@[134; 257)
IF_EXPR@[134; 257)
IF_KW@[134; 136) "if"
WHITESPACE@[136; 137) " "
CONDITION@[137; 141)
LITERAL@[137; 141)
TRUE_KW@[137; 141) "true"
WHITESPACE@[141; 142) " "
BLOCK@[142; 257)
L_CURLY@[142; 143) "{"
WHITESPACE@[143; 152) "\n "
ATTR@[152; 171)
POUND@[152; 153) "#"
EXCL@[153; 154) "!"
TOKEN_TREE@[154; 171)
L_BRACK@[154; 155) "["
IDENT@[155; 158) "doc"
TOKEN_TREE@[158; 170)
L_PAREN@[158; 159) "("
STRING@[159; 169) "\"Nor here\""
R_PAREN@[169; 170) ")"
R_BRACK@[170; 171) "]"
WHITESPACE@[171; 180) "\n "
ATTR@[180; 212)
POUND@[180; 181) "#"
EXCL@[181; 182) "!"
TOKEN_TREE@[182; 212)
L_BRACK@[182; 183) "["
IDENT@[183; 186) "doc"
TOKEN_TREE@[186; 211)
L_PAREN@[186; 187) "("
STRING@[187; 210) "\"We error on each attr\""
R_PAREN@[210; 211) ")"
R_BRACK@[211; 212) "]"
WHITESPACE@[212; 221) "\n "
COMMENT@[221; 251) "//! Nor are ModuleDoc ..."
WHITESPACE@[251; 256) "\n "
R_CURLY@[256; 257) "}"
WHITESPACE@[257; 262) "\n "
WHILE_EXPR@[262; 347)
WHILE_KW@[262; 267) "while"
WHITESPACE@[267; 268) " "
CONDITION@[268; 272)
LITERAL@[268; 272)
TRUE_KW@[268; 272) "true"
WHITESPACE@[272; 273) " "
BLOCK@[273; 347)
L_CURLY@[273; 274) "{"
WHITESPACE@[274; 283) "\n "
ATTR@[283; 302)
POUND@[283; 284) "#"
EXCL@[284; 285) "!"
TOKEN_TREE@[285; 302)
L_BRACK@[285; 286) "["
IDENT@[286; 289) "doc"
TOKEN_TREE@[289; 301)
L_PAREN@[289; 290) "("
STRING@[290; 300) "\"Nor here\""
R_PAREN@[300; 301) ")"
R_BRACK@[301; 302) "]"
WHITESPACE@[302; 311) "\n "
COMMENT@[311; 341) "//! Nor are ModuleDoc ..."
WHITESPACE@[341; 346) "\n "
R_CURLY@[346; 347) "}"
WHITESPACE@[347; 348) "\n"
R_CURLY@[348; 349) "}"
BLOCK_EXPR@[11; 349)
BLOCK@[11; 349)
L_CURLY@[11; 12) "{"
WHITESPACE@[12; 17) "\n "
LET_STMT@[17; 129)
LET_KW@[17; 20) "let"
WHITESPACE@[20; 21) " "
BIND_PAT@[21; 26)
NAME@[21; 26)
IDENT@[21; 26) "inner"
WHITESPACE@[26; 27) " "
EQ@[27; 28) "="
WHITESPACE@[28; 29) " "
BLOCK_EXPR@[29; 128)
BLOCK@[29; 128)
L_CURLY@[29; 30) "{"
WHITESPACE@[30; 39) "\n "
ATTR@[39; 83)
POUND@[39; 40) "#"
EXCL@[40; 41) "!"
TOKEN_TREE@[41; 83)
L_BRACK@[41; 42) "["
IDENT@[42; 45) "doc"
TOKEN_TREE@[45; 82)
L_PAREN@[45; 46) "("
STRING@[46; 81) "\"Inner attributes not ..."
R_PAREN@[81; 82) ")"
R_BRACK@[82; 83) "]"
WHITESPACE@[83; 92) "\n "
COMMENT@[92; 122) "//! Nor are ModuleDoc ..."
WHITESPACE@[122; 127) "\n "
R_CURLY@[127; 128) "}"
SEMI@[128; 129) ";"
WHITESPACE@[129; 134) "\n "
EXPR_STMT@[134; 257)
IF_EXPR@[134; 257)
IF_KW@[134; 136) "if"
WHITESPACE@[136; 137) " "
CONDITION@[137; 141)
LITERAL@[137; 141)
TRUE_KW@[137; 141) "true"
WHITESPACE@[141; 142) " "
BLOCK_EXPR@[142; 257)
BLOCK@[142; 257)
L_CURLY@[142; 143) "{"
WHITESPACE@[143; 152) "\n "
ATTR@[152; 171)
POUND@[152; 153) "#"
EXCL@[153; 154) "!"
TOKEN_TREE@[154; 171)
L_BRACK@[154; 155) "["
IDENT@[155; 158) "doc"
TOKEN_TREE@[158; 170)
L_PAREN@[158; 159) "("
STRING@[159; 169) "\"Nor here\""
R_PAREN@[169; 170) ")"
R_BRACK@[170; 171) "]"
WHITESPACE@[171; 180) "\n "
ATTR@[180; 212)
POUND@[180; 181) "#"
EXCL@[181; 182) "!"
TOKEN_TREE@[182; 212)
L_BRACK@[182; 183) "["
IDENT@[183; 186) "doc"
TOKEN_TREE@[186; 211)
L_PAREN@[186; 187) "("
STRING@[187; 210) "\"We error on each attr\""
R_PAREN@[210; 211) ")"
R_BRACK@[211; 212) "]"
WHITESPACE@[212; 221) "\n "
COMMENT@[221; 251) "//! Nor are ModuleDoc ..."
WHITESPACE@[251; 256) "\n "
R_CURLY@[256; 257) "}"
WHITESPACE@[257; 262) "\n "
WHILE_EXPR@[262; 347)
WHILE_KW@[262; 267) "while"
WHITESPACE@[267; 268) " "
CONDITION@[268; 272)
LITERAL@[268; 272)
TRUE_KW@[268; 272) "true"
WHITESPACE@[272; 273) " "
BLOCK_EXPR@[273; 347)
BLOCK@[273; 347)
L_CURLY@[273; 274) "{"
WHITESPACE@[274; 283) "\n "
ATTR@[283; 302)
POUND@[283; 284) "#"
EXCL@[284; 285) "!"
TOKEN_TREE@[285; 302)
L_BRACK@[285; 286) "["
IDENT@[286; 289) "doc"
TOKEN_TREE@[289; 301)
L_PAREN@[289; 290) "("
STRING@[290; 300) "\"Nor here\""
R_PAREN@[300; 301) ")"
R_BRACK@[301; 302) "]"
WHITESPACE@[302; 311) "\n "
COMMENT@[311; 341) "//! Nor are ModuleDoc ..."
WHITESPACE@[341; 346) "\n "
R_CURLY@[346; 347) "}"
WHITESPACE@[347; 348) "\n"
R_CURLY@[348; 349) "}"
WHITESPACE@[349; 350) "\n"
error [39; 83): A block in this position cannot accept inner attributes
error [152; 171): A block in this position cannot accept inner attributes

View File

@ -8,185 +8,186 @@ SOURCE_FILE@[0; 293)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 292)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 101)
MATCH_EXPR@[15; 101)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 101)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 78)
ATTR@[51; 52)
POUND@[51; 52) "#"
ERROR@[52; 53)
EXCL@[52; 53) "!"
ARRAY_EXPR@[53; 78)
L_BRACK@[53; 54) "["
CALL_EXPR@[54; 77)
PATH_EXPR@[54; 57)
PATH@[54; 57)
PATH_SEGMENT@[54; 57)
NAME_REF@[54; 57)
IDENT@[54; 57) "doc"
ARG_LIST@[57; 77)
L_PAREN@[57; 58) "("
LITERAL@[58; 76)
STRING@[58; 76) "\"Not allowed here\""
R_PAREN@[76; 77) ")"
R_BRACK@[77; 78) "]"
WHITESPACE@[78; 87) "\n "
MATCH_ARM@[87; 94)
PLACEHOLDER_PAT@[87; 88)
UNDERSCORE@[87; 88) "_"
WHITESPACE@[88; 89) " "
FAT_ARROW@[89; 91) "=>"
WHITESPACE@[91; 92) " "
TUPLE_EXPR@[92; 94)
L_PAREN@[92; 93) "("
R_PAREN@[93; 94) ")"
COMMA@[94; 95) ","
WHITESPACE@[95; 100) "\n "
R_CURLY@[100; 101) "}"
WHITESPACE@[101; 107) "\n\n "
EXPR_STMT@[107; 185)
MATCH_EXPR@[107; 185)
MATCH_KW@[107; 112) "match"
WHITESPACE@[112; 113) " "
TUPLE_EXPR@[113; 115)
L_PAREN@[113; 114) "("
R_PAREN@[114; 115) ")"
WHITESPACE@[115; 116) " "
MATCH_ARM_LIST@[116; 185)
L_CURLY@[116; 117) "{"
WHITESPACE@[117; 126) "\n "
MATCH_ARM@[126; 133)
PLACEHOLDER_PAT@[126; 127)
UNDERSCORE@[126; 127) "_"
WHITESPACE@[127; 128) " "
FAT_ARROW@[128; 130) "=>"
WHITESPACE@[130; 131) " "
TUPLE_EXPR@[131; 133)
L_PAREN@[131; 132) "("
R_PAREN@[132; 133) ")"
COMMA@[133; 134) ","
WHITESPACE@[134; 143) "\n "
MATCH_ARM@[143; 150)
PLACEHOLDER_PAT@[143; 144)
UNDERSCORE@[143; 144) "_"
WHITESPACE@[144; 145) " "
FAT_ARROW@[145; 147) "=>"
WHITESPACE@[147; 148) " "
TUPLE_EXPR@[148; 150)
L_PAREN@[148; 149) "("
R_PAREN@[149; 150) ")"
COMMA@[150; 151) ","
WHITESPACE@[151; 160) "\n "
MATCH_ARM@[160; 179)
ATTR@[160; 161)
POUND@[160; 161) "#"
ERROR@[161; 162)
EXCL@[161; 162) "!"
ARRAY_EXPR@[162; 179)
L_BRACK@[162; 163) "["
CALL_EXPR@[163; 178)
PATH_EXPR@[163; 166)
PATH@[163; 166)
PATH_SEGMENT@[163; 166)
NAME_REF@[163; 166)
IDENT@[163; 166) "doc"
ARG_LIST@[166; 178)
L_PAREN@[166; 167) "("
LITERAL@[167; 177)
STRING@[167; 177) "\"Nor here\""
R_PAREN@[177; 178) ")"
R_BRACK@[178; 179) "]"
WHITESPACE@[179; 184) "\n "
R_CURLY@[184; 185) "}"
WHITESPACE@[185; 191) "\n\n "
MATCH_EXPR@[191; 290)
MATCH_KW@[191; 196) "match"
WHITESPACE@[196; 197) " "
TUPLE_EXPR@[197; 199)
L_PAREN@[197; 198) "("
R_PAREN@[198; 199) ")"
WHITESPACE@[199; 200) " "
MATCH_ARM_LIST@[200; 290)
L_CURLY@[200; 201) "{"
WHITESPACE@[201; 210) "\n "
MATCH_ARM@[210; 250)
ATTR@[210; 222)
POUND@[210; 211) "#"
TOKEN_TREE@[211; 222)
L_BRACK@[211; 212) "["
IDENT@[212; 215) "cfg"
TOKEN_TREE@[215; 221)
L_PAREN@[215; 216) "("
IDENT@[216; 220) "test"
R_PAREN@[220; 221) ")"
R_BRACK@[221; 222) "]"
WHITESPACE@[222; 231) "\n "
ATTR@[231; 232)
POUND@[231; 232) "#"
ERROR@[232; 233)
EXCL@[232; 233) "!"
ARRAY_EXPR@[233; 250)
L_BRACK@[233; 234) "["
CALL_EXPR@[234; 249)
PATH_EXPR@[234; 237)
PATH@[234; 237)
PATH_SEGMENT@[234; 237)
NAME_REF@[234; 237)
IDENT@[234; 237) "doc"
ARG_LIST@[237; 249)
L_PAREN@[237; 238) "("
LITERAL@[238; 248)
STRING@[238; 248) "\"Nor here\""
R_PAREN@[248; 249) ")"
R_BRACK@[249; 250) "]"
WHITESPACE@[250; 259) "\n "
MATCH_ARM@[259; 266)
PLACEHOLDER_PAT@[259; 260)
UNDERSCORE@[259; 260) "_"
WHITESPACE@[260; 261) " "
FAT_ARROW@[261; 263) "=>"
WHITESPACE@[263; 264) " "
TUPLE_EXPR@[264; 266)
L_PAREN@[264; 265) "("
R_PAREN@[265; 266) ")"
COMMA@[266; 267) ","
WHITESPACE@[267; 276) "\n "
MATCH_ARM@[276; 283)
PLACEHOLDER_PAT@[276; 277)
UNDERSCORE@[276; 277) "_"
WHITESPACE@[277; 278) " "
FAT_ARROW@[278; 280) "=>"
WHITESPACE@[280; 281) " "
TUPLE_EXPR@[281; 283)
L_PAREN@[281; 282) "("
R_PAREN@[282; 283) ")"
COMMA@[283; 284) ","
WHITESPACE@[284; 289) "\n "
R_CURLY@[289; 290) "}"
WHITESPACE@[290; 291) "\n"
R_CURLY@[291; 292) "}"
BLOCK_EXPR@[9; 292)
BLOCK@[9; 292)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 101)
MATCH_EXPR@[15; 101)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 101)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 78)
ATTR@[51; 52)
POUND@[51; 52) "#"
ERROR@[52; 53)
EXCL@[52; 53) "!"
ARRAY_EXPR@[53; 78)
L_BRACK@[53; 54) "["
CALL_EXPR@[54; 77)
PATH_EXPR@[54; 57)
PATH@[54; 57)
PATH_SEGMENT@[54; 57)
NAME_REF@[54; 57)
IDENT@[54; 57) "doc"
ARG_LIST@[57; 77)
L_PAREN@[57; 58) "("
LITERAL@[58; 76)
STRING@[58; 76) "\"Not allowed here\""
R_PAREN@[76; 77) ")"
R_BRACK@[77; 78) "]"
WHITESPACE@[78; 87) "\n "
MATCH_ARM@[87; 94)
PLACEHOLDER_PAT@[87; 88)
UNDERSCORE@[87; 88) "_"
WHITESPACE@[88; 89) " "
FAT_ARROW@[89; 91) "=>"
WHITESPACE@[91; 92) " "
TUPLE_EXPR@[92; 94)
L_PAREN@[92; 93) "("
R_PAREN@[93; 94) ")"
COMMA@[94; 95) ","
WHITESPACE@[95; 100) "\n "
R_CURLY@[100; 101) "}"
WHITESPACE@[101; 107) "\n\n "
EXPR_STMT@[107; 185)
MATCH_EXPR@[107; 185)
MATCH_KW@[107; 112) "match"
WHITESPACE@[112; 113) " "
TUPLE_EXPR@[113; 115)
L_PAREN@[113; 114) "("
R_PAREN@[114; 115) ")"
WHITESPACE@[115; 116) " "
MATCH_ARM_LIST@[116; 185)
L_CURLY@[116; 117) "{"
WHITESPACE@[117; 126) "\n "
MATCH_ARM@[126; 133)
PLACEHOLDER_PAT@[126; 127)
UNDERSCORE@[126; 127) "_"
WHITESPACE@[127; 128) " "
FAT_ARROW@[128; 130) "=>"
WHITESPACE@[130; 131) " "
TUPLE_EXPR@[131; 133)
L_PAREN@[131; 132) "("
R_PAREN@[132; 133) ")"
COMMA@[133; 134) ","
WHITESPACE@[134; 143) "\n "
MATCH_ARM@[143; 150)
PLACEHOLDER_PAT@[143; 144)
UNDERSCORE@[143; 144) "_"
WHITESPACE@[144; 145) " "
FAT_ARROW@[145; 147) "=>"
WHITESPACE@[147; 148) " "
TUPLE_EXPR@[148; 150)
L_PAREN@[148; 149) "("
R_PAREN@[149; 150) ")"
COMMA@[150; 151) ","
WHITESPACE@[151; 160) "\n "
MATCH_ARM@[160; 179)
ATTR@[160; 161)
POUND@[160; 161) "#"
ERROR@[161; 162)
EXCL@[161; 162) "!"
ARRAY_EXPR@[162; 179)
L_BRACK@[162; 163) "["
CALL_EXPR@[163; 178)
PATH_EXPR@[163; 166)
PATH@[163; 166)
PATH_SEGMENT@[163; 166)
NAME_REF@[163; 166)
IDENT@[163; 166) "doc"
ARG_LIST@[166; 178)
L_PAREN@[166; 167) "("
LITERAL@[167; 177)
STRING@[167; 177) "\"Nor here\""
R_PAREN@[177; 178) ")"
R_BRACK@[178; 179) "]"
WHITESPACE@[179; 184) "\n "
R_CURLY@[184; 185) "}"
WHITESPACE@[185; 191) "\n\n "
MATCH_EXPR@[191; 290)
MATCH_KW@[191; 196) "match"
WHITESPACE@[196; 197) " "
TUPLE_EXPR@[197; 199)
L_PAREN@[197; 198) "("
R_PAREN@[198; 199) ")"
WHITESPACE@[199; 200) " "
MATCH_ARM_LIST@[200; 290)
L_CURLY@[200; 201) "{"
WHITESPACE@[201; 210) "\n "
MATCH_ARM@[210; 250)
ATTR@[210; 222)
POUND@[210; 211) "#"
TOKEN_TREE@[211; 222)
L_BRACK@[211; 212) "["
IDENT@[212; 215) "cfg"
TOKEN_TREE@[215; 221)
L_PAREN@[215; 216) "("
IDENT@[216; 220) "test"
R_PAREN@[220; 221) ")"
R_BRACK@[221; 222) "]"
WHITESPACE@[222; 231) "\n "
ATTR@[231; 232)
POUND@[231; 232) "#"
ERROR@[232; 233)
EXCL@[232; 233) "!"
ARRAY_EXPR@[233; 250)
L_BRACK@[233; 234) "["
CALL_EXPR@[234; 249)
PATH_EXPR@[234; 237)
PATH@[234; 237)
PATH_SEGMENT@[234; 237)
NAME_REF@[234; 237)
IDENT@[234; 237) "doc"
ARG_LIST@[237; 249)
L_PAREN@[237; 238) "("
LITERAL@[238; 248)
STRING@[238; 248) "\"Nor here\""
R_PAREN@[248; 249) ")"
R_BRACK@[249; 250) "]"
WHITESPACE@[250; 259) "\n "
MATCH_ARM@[259; 266)
PLACEHOLDER_PAT@[259; 260)
UNDERSCORE@[259; 260) "_"
WHITESPACE@[260; 261) " "
FAT_ARROW@[261; 263) "=>"
WHITESPACE@[263; 264) " "
TUPLE_EXPR@[264; 266)
L_PAREN@[264; 265) "("
R_PAREN@[265; 266) ")"
COMMA@[266; 267) ","
WHITESPACE@[267; 276) "\n "
MATCH_ARM@[276; 283)
PLACEHOLDER_PAT@[276; 277)
UNDERSCORE@[276; 277) "_"
WHITESPACE@[277; 278) " "
FAT_ARROW@[278; 280) "=>"
WHITESPACE@[280; 281) " "
TUPLE_EXPR@[281; 283)
L_PAREN@[281; 282) "("
R_PAREN@[282; 283) ")"
COMMA@[283; 284) ","
WHITESPACE@[284; 289) "\n "
R_CURLY@[289; 290) "}"
WHITESPACE@[290; 291) "\n"
R_CURLY@[291; 292) "}"
WHITESPACE@[292; 293) "\n"
error 52: expected `[`
error 52: expected pattern

View File

@ -8,56 +8,57 @@ SOURCE_FILE@[0; 89)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 88)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
MATCH_EXPR@[15; 86)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 86)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 58)
PLACEHOLDER_PAT@[51; 52)
UNDERSCORE@[51; 52) "_"
WHITESPACE@[52; 53) " "
FAT_ARROW@[53; 55) "=>"
WHITESPACE@[55; 56) " "
TUPLE_EXPR@[56; 58)
L_PAREN@[56; 57) "("
R_PAREN@[57; 58) ")"
COMMA@[58; 59) ","
WHITESPACE@[59; 68) "\n "
MATCH_ARM@[68; 80)
ATTR@[68; 80)
POUND@[68; 69) "#"
TOKEN_TREE@[69; 80)
L_BRACK@[69; 70) "["
IDENT@[70; 73) "cfg"
TOKEN_TREE@[73; 79)
L_PAREN@[73; 74) "("
IDENT@[74; 78) "test"
R_PAREN@[78; 79) ")"
R_BRACK@[79; 80) "]"
WHITESPACE@[80; 85) "\n "
R_CURLY@[85; 86) "}"
WHITESPACE@[86; 87) "\n"
R_CURLY@[87; 88) "}"
BLOCK_EXPR@[9; 88)
BLOCK@[9; 88)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
MATCH_EXPR@[15; 86)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 86)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 58)
PLACEHOLDER_PAT@[51; 52)
UNDERSCORE@[51; 52) "_"
WHITESPACE@[52; 53) " "
FAT_ARROW@[53; 55) "=>"
WHITESPACE@[55; 56) " "
TUPLE_EXPR@[56; 58)
L_PAREN@[56; 57) "("
R_PAREN@[57; 58) ")"
COMMA@[58; 59) ","
WHITESPACE@[59; 68) "\n "
MATCH_ARM@[68; 80)
ATTR@[68; 80)
POUND@[68; 69) "#"
TOKEN_TREE@[69; 80)
L_BRACK@[69; 70) "["
IDENT@[70; 73) "cfg"
TOKEN_TREE@[73; 79)
L_PAREN@[73; 74) "("
IDENT@[74; 78) "test"
R_PAREN@[78; 79) ")"
R_BRACK@[79; 80) "]"
WHITESPACE@[80; 85) "\n "
R_CURLY@[85; 86) "}"
WHITESPACE@[86; 87) "\n"
R_CURLY@[87; 88) "}"
WHITESPACE@[88; 89) "\n"
error 80: expected pattern
error 80: expected FAT_ARROW

View File

@ -8,84 +8,85 @@ SOURCE_FILE@[0; 91)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 89)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
LET_STMT@[16; 27)
LET_KW@[16; 19) "let"
WHITESPACE@[19; 20) " "
BIND_PAT@[20; 27)
REF_KW@[20; 23) "ref"
WHITESPACE@[23; 24) " "
ERROR@[24; 27)
BOX_KW@[24; 27) "box"
WHITESPACE@[27; 28) " "
EXPR_STMT@[28; 35)
BIN_EXPR@[28; 34)
PATH_EXPR@[28; 29)
PATH@[28; 29)
PATH_SEGMENT@[28; 29)
NAME_REF@[28; 29)
IDENT@[28; 29) "i"
WHITESPACE@[29; 30) " "
EQ@[30; 31) "="
WHITESPACE@[31; 32) " "
TUPLE_EXPR@[32; 34)
L_PAREN@[32; 33) "("
R_PAREN@[33; 34) ")"
SEMI@[34; 35) ";"
WHITESPACE@[35; 40) "\n "
LET_STMT@[40; 51)
LET_KW@[40; 43) "let"
WHITESPACE@[43; 44) " "
BIND_PAT@[44; 51)
MUT_KW@[44; 47) "mut"
WHITESPACE@[47; 48) " "
ERROR@[48; 51)
BOX_KW@[48; 51) "box"
WHITESPACE@[51; 52) " "
EXPR_STMT@[52; 59)
BIN_EXPR@[52; 58)
PATH_EXPR@[52; 53)
PATH@[52; 53)
PATH_SEGMENT@[52; 53)
NAME_REF@[52; 53)
IDENT@[52; 53) "i"
WHITESPACE@[53; 54) " "
EQ@[54; 55) "="
WHITESPACE@[55; 56) " "
TUPLE_EXPR@[56; 58)
L_PAREN@[56; 57) "("
R_PAREN@[57; 58) ")"
SEMI@[58; 59) ";"
WHITESPACE@[59; 64) "\n "
LET_STMT@[64; 79)
LET_KW@[64; 67) "let"
WHITESPACE@[67; 68) " "
BIND_PAT@[68; 79)
REF_KW@[68; 71) "ref"
WHITESPACE@[71; 72) " "
MUT_KW@[72; 75) "mut"
WHITESPACE@[75; 76) " "
ERROR@[76; 79)
BOX_KW@[76; 79) "box"
WHITESPACE@[79; 80) " "
EXPR_STMT@[80; 87)
BIN_EXPR@[80; 86)
PATH_EXPR@[80; 81)
PATH@[80; 81)
PATH_SEGMENT@[80; 81)
NAME_REF@[80; 81)
IDENT@[80; 81) "i"
WHITESPACE@[81; 82) " "
EQ@[82; 83) "="
WHITESPACE@[83; 84) " "
TUPLE_EXPR@[84; 86)
L_PAREN@[84; 85) "("
R_PAREN@[85; 86) ")"
SEMI@[86; 87) ";"
WHITESPACE@[87; 88) "\n"
R_CURLY@[88; 89) "}"
BLOCK_EXPR@[10; 89)
BLOCK@[10; 89)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
LET_STMT@[16; 27)
LET_KW@[16; 19) "let"
WHITESPACE@[19; 20) " "
BIND_PAT@[20; 27)
REF_KW@[20; 23) "ref"
WHITESPACE@[23; 24) " "
ERROR@[24; 27)
BOX_KW@[24; 27) "box"
WHITESPACE@[27; 28) " "
EXPR_STMT@[28; 35)
BIN_EXPR@[28; 34)
PATH_EXPR@[28; 29)
PATH@[28; 29)
PATH_SEGMENT@[28; 29)
NAME_REF@[28; 29)
IDENT@[28; 29) "i"
WHITESPACE@[29; 30) " "
EQ@[30; 31) "="
WHITESPACE@[31; 32) " "
TUPLE_EXPR@[32; 34)
L_PAREN@[32; 33) "("
R_PAREN@[33; 34) ")"
SEMI@[34; 35) ";"
WHITESPACE@[35; 40) "\n "
LET_STMT@[40; 51)
LET_KW@[40; 43) "let"
WHITESPACE@[43; 44) " "
BIND_PAT@[44; 51)
MUT_KW@[44; 47) "mut"
WHITESPACE@[47; 48) " "
ERROR@[48; 51)
BOX_KW@[48; 51) "box"
WHITESPACE@[51; 52) " "
EXPR_STMT@[52; 59)
BIN_EXPR@[52; 58)
PATH_EXPR@[52; 53)
PATH@[52; 53)
PATH_SEGMENT@[52; 53)
NAME_REF@[52; 53)
IDENT@[52; 53) "i"
WHITESPACE@[53; 54) " "
EQ@[54; 55) "="
WHITESPACE@[55; 56) " "
TUPLE_EXPR@[56; 58)
L_PAREN@[56; 57) "("
R_PAREN@[57; 58) ")"
SEMI@[58; 59) ";"
WHITESPACE@[59; 64) "\n "
LET_STMT@[64; 79)
LET_KW@[64; 67) "let"
WHITESPACE@[67; 68) " "
BIND_PAT@[68; 79)
REF_KW@[68; 71) "ref"
WHITESPACE@[71; 72) " "
MUT_KW@[72; 75) "mut"
WHITESPACE@[75; 76) " "
ERROR@[76; 79)
BOX_KW@[76; 79) "box"
WHITESPACE@[79; 80) " "
EXPR_STMT@[80; 87)
BIN_EXPR@[80; 86)
PATH_EXPR@[80; 81)
PATH@[80; 81)
PATH_SEGMENT@[80; 81)
NAME_REF@[80; 81)
IDENT@[80; 81) "i"
WHITESPACE@[81; 82) " "
EQ@[82; 83) "="
WHITESPACE@[83; 84) " "
TUPLE_EXPR@[84; 86)
L_PAREN@[84; 85) "("
R_PAREN@[85; 86) ")"
SEMI@[86; 87) ";"
WHITESPACE@[87; 88) "\n"
R_CURLY@[88; 89) "}"
WHITESPACE@[89; 91) "\n\n"
error 24: expected a name
error 27: expected SEMI

View File

@ -8,19 +8,20 @@ SOURCE_FILE@[0; 30)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 29)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
EXPR_STMT@[16; 22)
ERROR@[16; 22)
LABEL@[16; 22)
LIFETIME@[16; 21) "\'loop"
COLON@[21; 22) ":"
WHITESPACE@[22; 23) " "
IMPL_BLOCK@[23; 27)
IMPL_KW@[23; 27) "impl"
WHITESPACE@[27; 28) "\n"
R_CURLY@[28; 29) "}"
BLOCK_EXPR@[10; 29)
BLOCK@[10; 29)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
EXPR_STMT@[16; 22)
ERROR@[16; 22)
LABEL@[16; 22)
LIFETIME@[16; 21) "\'loop"
COLON@[21; 22) ":"
WHITESPACE@[22; 23) " "
IMPL_BLOCK@[23; 27)
IMPL_KW@[23; 27) "impl"
WHITESPACE@[27; 28) "\n"
R_CURLY@[28; 29) "}"
WHITESPACE@[29; 30) "\n"
error 22: expected a loop
error 22: expected SEMI

View File

@ -7,9 +7,10 @@ SOURCE_FILE@[0; 33)
PARAM_LIST@[6; 8)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
BLOCK@[8; 10)
L_CURLY@[8; 9) "{"
R_CURLY@[9; 10) "}"
BLOCK_EXPR@[8; 10)
BLOCK@[8; 10)
L_CURLY@[8; 9) "{"
R_CURLY@[9; 10) "}"
WHITESPACE@[10; 11) " "
ERROR@[11; 17)
UNSAFE_KW@[11; 17) "unsafe"
@ -27,9 +28,10 @@ SOURCE_FILE@[0; 33)
PARAM_LIST@[28; 30)
L_PAREN@[28; 29) "("
R_PAREN@[29; 30) ")"
BLOCK@[30; 32)
L_CURLY@[30; 31) "{"
R_CURLY@[31; 32) "}"
BLOCK_EXPR@[30; 32)
BLOCK@[30; 32)
L_CURLY@[30; 31) "{"
R_CURLY@[31; 32) "}"
WHITESPACE@[32; 33) "\n"
error 11: expected an item
error 18: expected an item

View File

@ -8,24 +8,25 @@ SOURCE_FILE@[0; 30)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 29)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) " "
LET_STMT@[11; 27)
LET_KW@[11; 14) "let"
WHITESPACE@[14; 15) " "
PLACEHOLDER_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) " "
BLOCK@[25; 27)
L_CURLY@[25; 26) "{"
R_CURLY@[26; 27) "}"
WHITESPACE@[27; 28) " "
R_CURLY@[28; 29) "}"
BLOCK_EXPR@[9; 29)
BLOCK@[9; 29)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) " "
LET_STMT@[11; 27)
LET_KW@[11; 14) "let"
WHITESPACE@[14; 15) " "
PLACEHOLDER_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) " "
BLOCK@[25; 27)
L_CURLY@[25; 26) "{"
R_CURLY@[26; 27) "}"
WHITESPACE@[27; 28) " "
R_CURLY@[28; 29) "}"
WHITESPACE@[29; 30) "\n"
error 27: expected SEMI

View File

@ -8,18 +8,19 @@ SOURCE_FILE@[0; 21)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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"
SEMI@[17; 18) ";"
WHITESPACE@[18; 19) " "
R_CURLY@[19; 20) "}"
BLOCK_EXPR@[9; 20)
BLOCK@[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"
SEMI@[17; 18) ";"
WHITESPACE@[18; 19) " "
R_CURLY@[19; 20) "}"
WHITESPACE@[20; 21) "\n"
error 14: expected an item

View File

@ -8,48 +8,50 @@ SOURCE_FILE@[0; 48)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 47)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 14) "\n "
EXPR_STMT@[14; 25)
ATTR@[14; 18)
POUND@[14; 15) "#"
TOKEN_TREE@[15; 18)
L_BRACK@[15; 16) "["
IDENT@[16; 17) "A"
R_BRACK@[17; 18) "]"
WHITESPACE@[18; 19) " "
BIN_EXPR@[19; 24)
LITERAL@[19; 20)
INT_NUMBER@[19; 20) "1"
WHITESPACE@[20; 21) " "
PLUS@[21; 22) "+"
WHITESPACE@[22; 23) " "
LITERAL@[23; 24)
INT_NUMBER@[23; 24) "2"
SEMI@[24; 25) ";"
WHITESPACE@[25; 29) "\n "
EXPR_STMT@[29; 45)
ATTR@[29; 33)
POUND@[29; 30) "#"
TOKEN_TREE@[30; 33)
L_BRACK@[30; 31) "["
IDENT@[31; 32) "B"
R_BRACK@[32; 33) "]"
WHITESPACE@[33; 34) " "
IF_EXPR@[34; 44)
IF_KW@[34; 36) "if"
WHITESPACE@[36; 37) " "
CONDITION@[37; 41)
LITERAL@[37; 41)
TRUE_KW@[37; 41) "true"
WHITESPACE@[41; 42) " "
BLOCK@[42; 44)
L_CURLY@[42; 43) "{"
R_CURLY@[43; 44) "}"
SEMI@[44; 45) ";"
WHITESPACE@[45; 46) "\n"
R_CURLY@[46; 47) "}"
BLOCK_EXPR@[9; 47)
BLOCK@[9; 47)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 14) "\n "
EXPR_STMT@[14; 25)
ATTR@[14; 18)
POUND@[14; 15) "#"
TOKEN_TREE@[15; 18)
L_BRACK@[15; 16) "["
IDENT@[16; 17) "A"
R_BRACK@[17; 18) "]"
WHITESPACE@[18; 19) " "
BIN_EXPR@[19; 24)
LITERAL@[19; 20)
INT_NUMBER@[19; 20) "1"
WHITESPACE@[20; 21) " "
PLUS@[21; 22) "+"
WHITESPACE@[22; 23) " "
LITERAL@[23; 24)
INT_NUMBER@[23; 24) "2"
SEMI@[24; 25) ";"
WHITESPACE@[25; 29) "\n "
EXPR_STMT@[29; 45)
ATTR@[29; 33)
POUND@[29; 30) "#"
TOKEN_TREE@[30; 33)
L_BRACK@[30; 31) "["
IDENT@[31; 32) "B"
R_BRACK@[32; 33) "]"
WHITESPACE@[33; 34) " "
IF_EXPR@[34; 44)
IF_KW@[34; 36) "if"
WHITESPACE@[36; 37) " "
CONDITION@[37; 41)
LITERAL@[37; 41)
TRUE_KW@[37; 41) "true"
WHITESPACE@[41; 42) " "
BLOCK_EXPR@[42; 44)
BLOCK@[42; 44)
L_CURLY@[42; 43) "{"
R_CURLY@[43; 44) "}"
SEMI@[44; 45) ";"
WHITESPACE@[45; 46) "\n"
R_CURLY@[46; 47) "}"
WHITESPACE@[47; 48) "\n"
error 24: attributes are not allowed on BIN_EXPR
error 44: attributes are not allowed on IF_EXPR

View File

@ -8,45 +8,46 @@ SOURCE_FILE@[0; 47)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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."
SEMI@[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"
SEMI@[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"
SEMI@[43; 44) ";"
WHITESPACE@[44; 45) "\n"
R_CURLY@[45; 46) "}"
BLOCK_EXPR@[9; 46)
BLOCK@[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."
SEMI@[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"
SEMI@[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"
SEMI@[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

View File

@ -13,9 +13,10 @@ SOURCE_FILE@[0; 50)
L_PAREN@[19; 20) "("
R_PAREN@[20; 21) ")"
WHITESPACE@[21; 22) " "
BLOCK@[22; 24)
L_CURLY@[22; 23) "{"
R_CURLY@[23; 24) "}"
BLOCK_EXPR@[22; 24)
BLOCK@[22; 24)
L_CURLY@[22; 23) "{"
R_CURLY@[23; 24) "}"
WHITESPACE@[24; 25) "\n"
ERROR@[25; 31)
UNSAFE_KW@[25; 31) "unsafe"
@ -31,9 +32,10 @@ SOURCE_FILE@[0; 50)
L_PAREN@[44; 45) "("
R_PAREN@[45; 46) ")"
WHITESPACE@[46; 47) " "
BLOCK@[47; 49)
L_CURLY@[47; 48) "{"
R_CURLY@[48; 49) "}"
BLOCK_EXPR@[47; 49)
BLOCK@[47; 49)
L_CURLY@[47; 48) "{"
R_CURLY@[48; 49) "}"
WHITESPACE@[49; 50) "\n"
error 5: expected existential, fn, trait or impl
error 31: expected existential, fn, trait or impl

View File

@ -44,9 +44,10 @@ SOURCE_FILE@[0; 62)
L_PAREN@[54; 55) "("
R_PAREN@[55; 56) ")"
WHITESPACE@[56; 57) " "
BLOCK@[57; 59)
L_CURLY@[57; 58) "{"
R_CURLY@[58; 59) "}"
BLOCK_EXPR@[57; 59)
BLOCK@[57; 59)
L_CURLY@[57; 58) "{"
R_CURLY@[58; 59) "}"
WHITESPACE@[59; 60) "\n"
R_CURLY@[60; 61) "}"
WHITESPACE@[61; 62) "\n"

View File

@ -50,9 +50,10 @@ SOURCE_FILE@[0; 83)
L_PAREN@[56; 57) "("
R_PAREN@[57; 58) ")"
WHITESPACE@[58; 59) " "
BLOCK@[59; 61)
L_CURLY@[59; 60) "{"
R_CURLY@[60; 61) "}"
BLOCK_EXPR@[59; 61)
BLOCK@[59; 61)
L_CURLY@[59; 60) "{"
R_CURLY@[60; 61) "}"
WHITESPACE@[61; 66) "\n "
FN_DEF@[66; 80)
FN_KW@[66; 68) "fn"

View File

@ -54,8 +54,9 @@ SOURCE_FILE@[0; 49)
IDENT@[40; 43) "str"
R_PAREN@[43; 44) ")"
WHITESPACE@[44; 45) "\n"
BLOCK@[45; 48)
L_CURLY@[45; 46) "{"
WHITESPACE@[46; 47) " "
R_CURLY@[47; 48) "}"
BLOCK_EXPR@[45; 48)
BLOCK@[45; 48)
L_CURLY@[45; 46) "{"
WHITESPACE@[46; 47) " "
R_CURLY@[47; 48) "}"
WHITESPACE@[48; 49) "\n"

View File

@ -31,7 +31,8 @@ SOURCE_FILE@[0; 28)
PARAM_LIST@[23; 25)
L_PAREN@[23; 24) "("
R_PAREN@[24; 25) ")"
BLOCK@[25; 27)
L_CURLY@[25; 26) "{"
R_CURLY@[26; 27) "}"
BLOCK_EXPR@[25; 27)
BLOCK@[25; 27)
L_CURLY@[25; 26) "{"
R_CURLY@[26; 27) "}"
WHITESPACE@[27; 28) "\n"

View File

@ -22,9 +22,10 @@ SOURCE_FILE@[0; 128)
SELF_KW@[18; 22) "self"
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
BLOCK@[24; 26)
L_CURLY@[24; 25) "{"
R_CURLY@[25; 26) "}"
BLOCK_EXPR@[24; 26)
BLOCK@[24; 26)
L_CURLY@[24; 25) "{"
R_CURLY@[25; 26) "}"
WHITESPACE@[26; 31) "\n "
FN_DEF@[31; 46)
FN_KW@[31; 33) "fn"
@ -39,9 +40,10 @@ SOURCE_FILE@[0; 128)
COMMA@[41; 42) ","
R_PAREN@[42; 43) ")"
WHITESPACE@[43; 44) " "
BLOCK@[44; 46)
L_CURLY@[44; 45) "{"
R_CURLY@[45; 46) "}"
BLOCK_EXPR@[44; 46)
BLOCK@[44; 46)
L_CURLY@[44; 45) "{"
R_CURLY@[45; 46) "}"
WHITESPACE@[46; 51) "\n "
FN_DEF@[51; 69)
FN_KW@[51; 53) "fn"
@ -58,9 +60,10 @@ SOURCE_FILE@[0; 128)
COMMA@[64; 65) ","
R_PAREN@[65; 66) ")"
WHITESPACE@[66; 67) " "
BLOCK@[67; 69)
L_CURLY@[67; 68) "{"
R_CURLY@[68; 69) "}"
BLOCK_EXPR@[67; 69)
BLOCK@[67; 69)
L_CURLY@[67; 68) "{"
R_CURLY@[68; 69) "}"
WHITESPACE@[69; 74) "\n "
FN_DEF@[74; 103)
FN_KW@[74; 76) "fn"
@ -91,9 +94,10 @@ SOURCE_FILE@[0; 128)
IDENT@[96; 99) "i32"
R_PAREN@[99; 100) ")"
WHITESPACE@[100; 101) " "
BLOCK@[101; 103)
L_CURLY@[101; 102) "{"
R_CURLY@[102; 103) "}"
BLOCK_EXPR@[101; 103)
BLOCK@[101; 103)
L_CURLY@[101; 102) "{"
R_CURLY@[102; 103) "}"
WHITESPACE@[103; 108) "\n "
FN_DEF@[108; 125)
FN_KW@[108; 110) "fn"
@ -108,9 +112,10 @@ SOURCE_FILE@[0; 128)
SELF_KW@[117; 121) "self"
R_PAREN@[121; 122) ")"
WHITESPACE@[122; 123) " "
BLOCK@[123; 125)
L_CURLY@[123; 124) "{"
R_CURLY@[124; 125) "}"
BLOCK_EXPR@[123; 125)
BLOCK@[123; 125)
L_CURLY@[123; 124) "{"
R_CURLY@[124; 125) "}"
WHITESPACE@[125; 126) "\n"
R_CURLY@[126; 127) "}"
WHITESPACE@[127; 128) "\n"

View File

@ -8,88 +8,89 @@ SOURCE_FILE@[0; 103)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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"
COLONCOLON@[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) ")"
SEMI@[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)
COLONCOLON@[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) ")"
SEMI@[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_FIELD_PAT_LIST@[66; 72)
L_CURLY@[66; 67) "{"
WHITESPACE@[67; 68) " "
DOTDOT@[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) ")"
SEMI@[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) "("
DOTDOT@[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) ")"
SEMI@[99; 100) ";"
WHITESPACE@[100; 101) "\n"
R_CURLY@[101; 102) "}"
BLOCK_EXPR@[9; 102)
BLOCK@[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"
COLONCOLON@[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) ")"
SEMI@[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)
COLONCOLON@[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) ")"
SEMI@[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_FIELD_PAT_LIST@[66; 72)
L_CURLY@[66; 67) "{"
WHITESPACE@[67; 68) " "
DOTDOT@[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) ")"
SEMI@[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) "("
DOTDOT@[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) ")"
SEMI@[99; 100) ";"
WHITESPACE@[100; 101) "\n"
R_CURLY@[101; 102) "}"
WHITESPACE@[102; 103) "\n"

View File

@ -8,17 +8,19 @@ SOURCE_FILE@[0; 26)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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@[20; 22)
L_CURLY@[20; 21) "{"
R_CURLY@[21; 22) "}"
SEMI@[22; 23) ";"
WHITESPACE@[23; 24) "\n"
R_CURLY@[24; 25) "}"
BLOCK_EXPR@[9; 25)
BLOCK@[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)
BLOCK@[20; 22)
L_CURLY@[20; 21) "{"
R_CURLY@[21; 22) "}"
SEMI@[22; 23) ";"
WHITESPACE@[23; 24) "\n"
R_CURLY@[24; 25) "}"
WHITESPACE@[25; 26) "\n"

View File

@ -8,52 +8,53 @@ SOURCE_FILE@[0; 48)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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"
SEMI@[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"
SEMI@[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) ")"
SEMI@[44; 45) ";"
WHITESPACE@[45; 46) "\n"
R_CURLY@[46; 47) "}"
BLOCK_EXPR@[9; 47)
BLOCK@[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"
SEMI@[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"
SEMI@[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) ")"
SEMI@[44; 45) ";"
WHITESPACE@[45; 46) "\n"
R_CURLY@[46; 47) "}"
WHITESPACE@[47; 48) "\n"

View File

@ -8,28 +8,30 @@ SOURCE_FILE@[0; 69)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 68)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LOOP_EXPR@[15; 66)
LOOP_KW@[15; 19) "loop"
WHITESPACE@[19; 20) " "
BLOCK@[20; 66)
L_CURLY@[20; 21) "{"
WHITESPACE@[21; 30) "\n "
EXPR_STMT@[30; 39)
CONTINUE_EXPR@[30; 38)
CONTINUE_KW@[30; 38) "continue"
SEMI@[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) "\'l"
SEMI@[59; 60) ";"
WHITESPACE@[60; 65) "\n "
R_CURLY@[65; 66) "}"
WHITESPACE@[66; 67) "\n"
R_CURLY@[67; 68) "}"
BLOCK_EXPR@[9; 68)
BLOCK@[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)
BLOCK@[20; 66)
L_CURLY@[20; 21) "{"
WHITESPACE@[21; 30) "\n "
EXPR_STMT@[30; 39)
CONTINUE_EXPR@[30; 38)
CONTINUE_KW@[30; 38) "continue"
SEMI@[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) "\'l"
SEMI@[59; 60) ";"
WHITESPACE@[60; 65) "\n "
R_CURLY@[65; 66) "}"
WHITESPACE@[66; 67) "\n"
R_CURLY@[67; 68) "}"
WHITESPACE@[68; 69) "\n"

View File

@ -31,9 +31,10 @@ SOURCE_FILE@[0; 69)
IDENT@[25; 29) "Self"
R_PAREN@[29; 30) ")"
WHITESPACE@[30; 31) " "
BLOCK@[31; 33)
L_CURLY@[31; 32) "{"
R_CURLY@[32; 33) "}"
BLOCK_EXPR@[31; 33)
BLOCK@[31; 33)
L_CURLY@[31; 32) "{"
R_CURLY@[32; 33) "}"
WHITESPACE@[33; 38) "\n "
FN_DEF@[38; 66)
FN_KW@[38; 40) "fn"
@ -64,9 +65,10 @@ SOURCE_FILE@[0; 69)
R_ANGLE@[61; 62) ">"
R_PAREN@[62; 63) ")"
WHITESPACE@[63; 64) " "
BLOCK@[64; 66)
L_CURLY@[64; 65) "{"
R_CURLY@[65; 66) "}"
BLOCK_EXPR@[64; 66)
BLOCK@[64; 66)
L_CURLY@[64; 65) "{"
R_CURLY@[65; 66) "}"
WHITESPACE@[66; 67) "\n"
R_CURLY@[67; 68) "}"
WHITESPACE@[68; 69) "\n"

View File

@ -8,37 +8,38 @@ SOURCE_FILE@[0; 44)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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"
SEMI@[19; 20) ";"
WHITESPACE@[20; 25) "\n "
EXPR_STMT@[25; 32)
PREFIX_EXPR@[25; 31)
EXCL@[25; 26) "!"
PREFIX_EXPR@[26; 31)
EXCL@[26; 27) "!"
LITERAL@[27; 31)
TRUE_KW@[27; 31) "true"
SEMI@[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"
SEMI@[40; 41) ";"
WHITESPACE@[41; 42) "\n"
R_CURLY@[42; 43) "}"
BLOCK_EXPR@[9; 43)
BLOCK@[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"
SEMI@[19; 20) ";"
WHITESPACE@[20; 25) "\n "
EXPR_STMT@[25; 32)
PREFIX_EXPR@[25; 31)
EXCL@[25; 26) "!"
PREFIX_EXPR@[26; 31)
EXCL@[26; 27) "!"
LITERAL@[27; 31)
TRUE_KW@[27; 31) "true"
SEMI@[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"
SEMI@[40; 41) ";"
WHITESPACE@[41; 42) "\n"
R_CURLY@[42; 43) "}"
WHITESPACE@[43; 44) "\n"

View File

@ -54,9 +54,10 @@ SOURCE_FILE@[0; 89)
L_PAREN@[60; 61) "("
R_PAREN@[61; 62) ")"
WHITESPACE@[62; 63) " "
BLOCK@[63; 65)
L_CURLY@[63; 64) "{"
R_CURLY@[64; 65) "}"
BLOCK_EXPR@[63; 65)
BLOCK@[63; 65)
L_CURLY@[63; 64) "{"
R_CURLY@[64; 65) "}"
WHITESPACE@[65; 70) "\n "
FN_DEF@[70; 86)
FN_KW@[70; 72) "fn"
@ -70,9 +71,10 @@ SOURCE_FILE@[0; 89)
SELF_KW@[78; 82) "self"
R_PAREN@[82; 83) ")"
WHITESPACE@[83; 84) " "
BLOCK@[84; 86)
L_CURLY@[84; 85) "{"
R_CURLY@[85; 86) "}"
BLOCK_EXPR@[84; 86)
BLOCK@[84; 86)
L_CURLY@[84; 85) "{"
R_CURLY@[85; 86) "}"
WHITESPACE@[86; 87) "\n"
R_CURLY@[87; 88) "}"
WHITESPACE@[88; 89) "\n"

View File

@ -8,33 +8,34 @@ SOURCE_FILE@[0; 39)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[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) "["
BIND_PAT@[21; 22)
NAME@[21; 22)
IDENT@[21; 22) "a"
COMMA@[22; 23) ","
WHITESPACE@[23; 24) " "
BIND_PAT@[24; 25)
NAME@[24; 25)
IDENT@[24; 25) "b"
COMMA@[25; 26) ","
WHITESPACE@[26; 27) " "
DOTDOT@[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) "]"
SEMI@[35; 36) ";"
WHITESPACE@[36; 37) "\n"
R_CURLY@[37; 38) "}"
BLOCK_EXPR@[10; 38)
BLOCK@[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) "["
BIND_PAT@[21; 22)
NAME@[21; 22)
IDENT@[21; 22) "a"
COMMA@[22; 23) ","
WHITESPACE@[23; 24) " "
BIND_PAT@[24; 25)
NAME@[24; 25)
IDENT@[24; 25) "b"
COMMA@[25; 26) ","
WHITESPACE@[26; 27) " "
DOTDOT@[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) "]"
SEMI@[35; 36) ";"
WHITESPACE@[36; 37) "\n"
R_CURLY@[37; 38) "}"
WHITESPACE@[38; 39) "\n"

View File

@ -8,96 +8,97 @@ SOURCE_FILE@[0; 97)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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) ")"
SEMI@[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) "("
PLACEHOLDER_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) ")"
SEMI@[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) "("
PLACEHOLDER_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) ")"
SEMI@[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) "("
PLACEHOLDER_PAT@[78; 79)
UNDERSCORE@[78; 79) "_"
COMMA@[79; 80) ","
WHITESPACE@[80; 81) " "
DOTDOT@[81; 83) ".."
WHITESPACE@[83; 84) " "
COMMA@[84; 85) ","
WHITESPACE@[85; 86) " "
BIND_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) ")"
SEMI@[93; 94) ";"
WHITESPACE@[94; 95) "\n"
R_CURLY@[95; 96) "}"
BLOCK_EXPR@[9; 96)
BLOCK@[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) ")"
SEMI@[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) "("
PLACEHOLDER_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) ")"
SEMI@[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) "("
PLACEHOLDER_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) ")"
SEMI@[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) "("
PLACEHOLDER_PAT@[78; 79)
UNDERSCORE@[78; 79) "_"
COMMA@[79; 80) ","
WHITESPACE@[80; 81) " "
DOTDOT@[81; 83) ".."
WHITESPACE@[83; 84) " "
COMMA@[84; 85) ","
WHITESPACE@[85; 86) " "
BIND_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) ")"
SEMI@[93; 94) ";"
WHITESPACE@[94; 95) "\n"
R_CURLY@[95; 96) "}"
WHITESPACE@[96; 97) "\n"

View File

@ -8,42 +8,43 @@ SOURCE_FILE@[0; 52)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[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) "&"
BIND_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) ")"
SEMI@[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) " "
BIND_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) ")"
SEMI@[48; 49) ";"
WHITESPACE@[49; 50) "\n"
R_CURLY@[50; 51) "}"
BLOCK_EXPR@[10; 51)
BLOCK@[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) "&"
BIND_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) ")"
SEMI@[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) " "
BIND_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) ")"
SEMI@[48; 49) ";"
WHITESPACE@[49; 50) "\n"
R_CURLY@[50; 51) "}"
WHITESPACE@[51; 52) "\n"

View File

@ -8,82 +8,83 @@ SOURCE_FILE@[0; 89)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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"
SEMI@[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"
SEMI@[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"
SEMI@[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"
SEMI@[85; 86) ";"
WHITESPACE@[86; 87) "\n"
R_CURLY@[87; 88) "}"
BLOCK_EXPR@[9; 88)
BLOCK@[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"
SEMI@[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"
SEMI@[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"
SEMI@[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"
SEMI@[85; 86) ";"
WHITESPACE@[86; 87) "\n"
R_CURLY@[87; 88) "}"
WHITESPACE@[88; 89) "\n"

View File

@ -8,38 +8,40 @@ SOURCE_FILE@[0; 197)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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) "("
PLACEHOLDER_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@[33; 35)
L_CURLY@[33; 34) "{"
R_CURLY@[34; 35) "}"
WHITESPACE@[35; 36) " "
R_CURLY@[36; 37) "}"
BLOCK_EXPR@[9; 37)
BLOCK@[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) "("
PLACEHOLDER_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)
BLOCK@[33; 35)
L_CURLY@[33; 34) "{"
R_CURLY@[34; 35) "}"
WHITESPACE@[35; 36) " "
R_CURLY@[36; 37) "}"
WHITESPACE@[37; 38) "\n"
FN_DEF@[38; 196)
FN_KW@[38; 40) "fn"
@ -50,151 +52,156 @@ SOURCE_FILE@[0; 197)
L_PAREN@[44; 45) "("
R_PAREN@[45; 46) ")"
WHITESPACE@[46; 47) " "
BLOCK@[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) " "
TUPLE_STRUCT_PAT@[60; 67)
PATH@[60; 64)
PATH_SEGMENT@[60; 64)
NAME_REF@[60; 64)
IDENT@[60; 64) "Some"
L_PAREN@[64; 65) "("
PLACEHOLDER_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) "("
PLACEHOLDER_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@[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) "("
PLACEHOLDER_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@[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) " "
TUPLE_STRUCT_PAT@[133; 140)
PATH@[133; 137)
PATH_SEGMENT@[133; 137)
NAME_REF@[133; 137)
IDENT@[133; 137) "Some"
L_PAREN@[137; 138) "("
PLACEHOLDER_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) "("
PLACEHOLDER_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@[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) "("
PLACEHOLDER_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@[192; 194)
L_CURLY@[192; 193) "{"
R_CURLY@[193; 194) "}"
WHITESPACE@[194; 195) "\n"
R_CURLY@[195; 196) "}"
BLOCK_EXPR@[47; 196)
BLOCK@[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) " "
TUPLE_STRUCT_PAT@[60; 67)
PATH@[60; 64)
PATH_SEGMENT@[60; 64)
NAME_REF@[60; 64)
IDENT@[60; 64) "Some"
L_PAREN@[64; 65) "("
PLACEHOLDER_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) "("
PLACEHOLDER_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)
BLOCK@[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) "("
PLACEHOLDER_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)
BLOCK@[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) " "
TUPLE_STRUCT_PAT@[133; 140)
PATH@[133; 137)
PATH_SEGMENT@[133; 137)
NAME_REF@[133; 137)
IDENT@[133; 137) "Some"
L_PAREN@[137; 138) "("
PLACEHOLDER_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) "("
PLACEHOLDER_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)
BLOCK@[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) "("
PLACEHOLDER_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)
BLOCK@[192; 194)
L_CURLY@[192; 193) "{"
R_CURLY@[193; 194) "}"
WHITESPACE@[194; 195) "\n"
R_CURLY@[195; 196) "}"
WHITESPACE@[196; 197) "\n"

View File

@ -8,59 +8,62 @@ SOURCE_FILE@[0; 70)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 69)
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@[26; 28)
L_CURLY@[26; 27) "{"
R_CURLY@[27; 28) "}"
SEMI@[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) "("
BIND_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@[64; 66)
L_CURLY@[64; 65) "{"
R_CURLY@[65; 66) "}"
SEMI@[66; 67) ";"
WHITESPACE@[67; 68) "\n"
R_CURLY@[68; 69) "}"
BLOCK_EXPR@[9; 69)
BLOCK@[9; 69)
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)
BLOCK@[26; 28)
L_CURLY@[26; 27) "{"
R_CURLY@[27; 28) "}"
SEMI@[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) "("
BIND_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)
BLOCK@[64; 66)
L_CURLY@[64; 65) "{"
R_CURLY@[65; 66) "}"
SEMI@[66; 67) ";"
WHITESPACE@[67; 68) "\n"
R_CURLY@[68; 69) "}"
WHITESPACE@[69; 70) "\n"

View File

@ -8,46 +8,48 @@ SOURCE_FILE@[0; 102)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 101)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LOOP_EXPR@[15; 99)
LOOP_KW@[15; 19) "loop"
WHITESPACE@[19; 20) " "
BLOCK@[20; 99)
L_CURLY@[20; 21) "{"
WHITESPACE@[21; 30) "\n "
EXPR_STMT@[30; 36)
BREAK_EXPR@[30; 35)
BREAK_KW@[30; 35) "break"
SEMI@[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) "\'l"
SEMI@[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"
SEMI@[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) "\'l"
WHITESPACE@[89; 90) " "
LITERAL@[90; 92)
INT_NUMBER@[90; 92) "92"
SEMI@[92; 93) ";"
WHITESPACE@[93; 98) "\n "
R_CURLY@[98; 99) "}"
WHITESPACE@[99; 100) "\n"
R_CURLY@[100; 101) "}"
BLOCK_EXPR@[9; 101)
BLOCK@[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)
BLOCK@[20; 99)
L_CURLY@[20; 21) "{"
WHITESPACE@[21; 30) "\n "
EXPR_STMT@[30; 36)
BREAK_EXPR@[30; 35)
BREAK_KW@[30; 35) "break"
SEMI@[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) "\'l"
SEMI@[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"
SEMI@[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) "\'l"
WHITESPACE@[89; 90) " "
LITERAL@[90; 92)
INT_NUMBER@[90; 92) "92"
SEMI@[92; 93) ";"
WHITESPACE@[93; 98) "\n "
R_CURLY@[98; 99) "}"
WHITESPACE@[99; 100) "\n"
R_CURLY@[100; 101) "}"
WHITESPACE@[101; 102) "\n"

View File

@ -15,7 +15,8 @@ SOURCE_FILE@[0; 30)
L_PAREN@[24; 25) "("
R_PAREN@[25; 26) ")"
WHITESPACE@[26; 27) " "
BLOCK@[27; 29)
L_CURLY@[27; 28) "{"
R_CURLY@[28; 29) "}"
BLOCK_EXPR@[27; 29)
BLOCK@[27; 29)
L_CURLY@[27; 28) "{"
R_CURLY@[28; 29) "}"
WHITESPACE@[29; 30) "\n"

View File

@ -41,38 +41,39 @@ SOURCE_FILE@[0; 71)
L_PAREN@[33; 34) "("
R_PAREN@[34; 35) ")"
WHITESPACE@[35; 36) " "
BLOCK@[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) ">"
COLONCOLON@[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) ")"
SEMI@[67; 68) ";"
WHITESPACE@[68; 69) " "
R_CURLY@[69; 70) "}"
BLOCK_EXPR@[36; 70)
BLOCK@[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) ">"
COLONCOLON@[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) ")"
SEMI@[67; 68) ";"
WHITESPACE@[68; 69) " "
R_CURLY@[69; 70) "}"
WHITESPACE@[70; 71) "\n"

View File

@ -8,21 +8,22 @@ SOURCE_FILE@[0; 21)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[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)
DOTDOT@[14; 16) ".."
R_BRACK@[16; 17) "]"
SEMI@[17; 18) ";"
WHITESPACE@[18; 19) " "
R_CURLY@[19; 20) "}"
BLOCK_EXPR@[9; 20)
BLOCK@[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)
DOTDOT@[14; 16) ".."
R_BRACK@[16; 17) "]"
SEMI@[17; 18) ";"
WHITESPACE@[18; 19) " "
R_CURLY@[19; 20) "}"
WHITESPACE@[20; 21) "\n"

View File

@ -11,10 +11,11 @@ SOURCE_FILE@[0; 71)
L_PAREN@[13; 14) "("
R_PAREN@[14; 15) ")"
WHITESPACE@[15; 16) " "
BLOCK@[16; 19)
L_CURLY@[16; 17) "{"
WHITESPACE@[17; 18) " "
R_CURLY@[18; 19) "}"
BLOCK_EXPR@[16; 19)
BLOCK@[16; 19)
L_CURLY@[16; 17) "{"
WHITESPACE@[17; 18) " "
R_CURLY@[18; 19) "}"
WHITESPACE@[19; 20) "\n"
STRUCT_DEF@[20; 49)
STRUCT_KW@[20; 26) "struct"

View File

@ -8,140 +8,141 @@ SOURCE_FILE@[0; 118)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 117)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 27)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
CALL_EXPR@[23; 26)
PATH_EXPR@[23; 24)
PATH@[23; 24)
PATH_SEGMENT@[23; 24)
NAME_REF@[23; 24)
IDENT@[23; 24) "f"
ARG_LIST@[24; 26)
L_PAREN@[24; 25) "("
R_PAREN@[25; 26) ")"
SEMI@[26; 27) ";"
WHITESPACE@[27; 32) "\n "
LET_STMT@[32; 54)
LET_KW@[32; 35) "let"
WHITESPACE@[35; 36) " "
PLACEHOLDER_PAT@[36; 37)
UNDERSCORE@[36; 37) "_"
WHITESPACE@[37; 38) " "
EQ@[38; 39) "="
WHITESPACE@[39; 40) " "
CALL_EXPR@[40; 53)
CALL_EXPR@[40; 46)
CALL_EXPR@[40; 43)
PATH_EXPR@[40; 41)
PATH@[40; 41)
PATH_SEGMENT@[40; 41)
NAME_REF@[40; 41)
IDENT@[40; 41) "f"
ARG_LIST@[41; 43)
L_PAREN@[41; 42) "("
R_PAREN@[42; 43) ")"
ARG_LIST@[43; 46)
L_PAREN@[43; 44) "("
LITERAL@[44; 45)
INT_NUMBER@[44; 45) "1"
R_PAREN@[45; 46) ")"
ARG_LIST@[46; 53)
L_PAREN@[46; 47) "("
LITERAL@[47; 48)
INT_NUMBER@[47; 48) "1"
COMMA@[48; 49) ","
WHITESPACE@[49; 50) " "
LITERAL@[50; 51)
INT_NUMBER@[50; 51) "2"
COMMA@[51; 52) ","
R_PAREN@[52; 53) ")"
SEMI@[53; 54) ";"
WHITESPACE@[54; 59) "\n "
LET_STMT@[59; 84)
LET_KW@[59; 62) "let"
WHITESPACE@[62; 63) " "
PLACEHOLDER_PAT@[63; 64)
UNDERSCORE@[63; 64) "_"
WHITESPACE@[64; 65) " "
EQ@[65; 66) "="
WHITESPACE@[66; 67) " "
CALL_EXPR@[67; 83)
PATH_EXPR@[67; 68)
PATH@[67; 68)
PATH_SEGMENT@[67; 68)
NAME_REF@[67; 68)
IDENT@[67; 68) "f"
ARG_LIST@[68; 83)
L_PAREN@[68; 69) "("
CALL_EXPR@[69; 82)
PATH_EXPR@[69; 80)
PATH@[69; 80)
PATH@[69; 74)
PATH_SEGMENT@[69; 74)
L_ANGLE@[69; 70) "<"
PATH_TYPE@[70; 73)
PATH@[70; 73)
PATH_SEGMENT@[70; 73)
NAME_REF@[70; 73)
IDENT@[70; 73) "Foo"
R_ANGLE@[73; 74) ">"
COLONCOLON@[74; 76) "::"
PATH_SEGMENT@[76; 80)
NAME_REF@[76; 80)
IDENT@[76; 80) "func"
ARG_LIST@[80; 82)
L_PAREN@[80; 81) "("
R_PAREN@[81; 82) ")"
R_PAREN@[82; 83) ")"
SEMI@[83; 84) ";"
WHITESPACE@[84; 89) "\n "
EXPR_STMT@[89; 115)
CALL_EXPR@[89; 114)
PATH_EXPR@[89; 90)
PATH@[89; 90)
PATH_SEGMENT@[89; 90)
NAME_REF@[89; 90)
IDENT@[89; 90) "f"
ARG_LIST@[90; 114)
L_PAREN@[90; 91) "("
CALL_EXPR@[91; 113)
PATH_EXPR@[91; 111)
PATH@[91; 111)
PATH@[91; 105)
PATH_SEGMENT@[91; 105)
L_ANGLE@[91; 92) "<"
PATH_TYPE@[92; 95)
PATH@[92; 95)
PATH_SEGMENT@[92; 95)
NAME_REF@[92; 95)
IDENT@[92; 95) "Foo"
WHITESPACE@[95; 96) " "
AS_KW@[96; 98) "as"
WHITESPACE@[98; 99) " "
PATH_TYPE@[99; 104)
PATH@[99; 104)
PATH_SEGMENT@[99; 104)
NAME_REF@[99; 104)
IDENT@[99; 104) "Trait"
R_ANGLE@[104; 105) ">"
COLONCOLON@[105; 107) "::"
PATH_SEGMENT@[107; 111)
NAME_REF@[107; 111)
IDENT@[107; 111) "func"
ARG_LIST@[111; 113)
L_PAREN@[111; 112) "("
R_PAREN@[112; 113) ")"
R_PAREN@[113; 114) ")"
SEMI@[114; 115) ";"
WHITESPACE@[115; 116) "\n"
R_CURLY@[116; 117) "}"
BLOCK_EXPR@[9; 117)
BLOCK@[9; 117)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 27)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
CALL_EXPR@[23; 26)
PATH_EXPR@[23; 24)
PATH@[23; 24)
PATH_SEGMENT@[23; 24)
NAME_REF@[23; 24)
IDENT@[23; 24) "f"
ARG_LIST@[24; 26)
L_PAREN@[24; 25) "("
R_PAREN@[25; 26) ")"
SEMI@[26; 27) ";"
WHITESPACE@[27; 32) "\n "
LET_STMT@[32; 54)
LET_KW@[32; 35) "let"
WHITESPACE@[35; 36) " "
PLACEHOLDER_PAT@[36; 37)
UNDERSCORE@[36; 37) "_"
WHITESPACE@[37; 38) " "
EQ@[38; 39) "="
WHITESPACE@[39; 40) " "
CALL_EXPR@[40; 53)
CALL_EXPR@[40; 46)
CALL_EXPR@[40; 43)
PATH_EXPR@[40; 41)
PATH@[40; 41)
PATH_SEGMENT@[40; 41)
NAME_REF@[40; 41)
IDENT@[40; 41) "f"
ARG_LIST@[41; 43)
L_PAREN@[41; 42) "("
R_PAREN@[42; 43) ")"
ARG_LIST@[43; 46)
L_PAREN@[43; 44) "("
LITERAL@[44; 45)
INT_NUMBER@[44; 45) "1"
R_PAREN@[45; 46) ")"
ARG_LIST@[46; 53)
L_PAREN@[46; 47) "("
LITERAL@[47; 48)
INT_NUMBER@[47; 48) "1"
COMMA@[48; 49) ","
WHITESPACE@[49; 50) " "
LITERAL@[50; 51)
INT_NUMBER@[50; 51) "2"
COMMA@[51; 52) ","
R_PAREN@[52; 53) ")"
SEMI@[53; 54) ";"
WHITESPACE@[54; 59) "\n "
LET_STMT@[59; 84)
LET_KW@[59; 62) "let"
WHITESPACE@[62; 63) " "
PLACEHOLDER_PAT@[63; 64)
UNDERSCORE@[63; 64) "_"
WHITESPACE@[64; 65) " "
EQ@[65; 66) "="
WHITESPACE@[66; 67) " "
CALL_EXPR@[67; 83)
PATH_EXPR@[67; 68)
PATH@[67; 68)
PATH_SEGMENT@[67; 68)
NAME_REF@[67; 68)
IDENT@[67; 68) "f"
ARG_LIST@[68; 83)
L_PAREN@[68; 69) "("
CALL_EXPR@[69; 82)
PATH_EXPR@[69; 80)
PATH@[69; 80)
PATH@[69; 74)
PATH_SEGMENT@[69; 74)
L_ANGLE@[69; 70) "<"
PATH_TYPE@[70; 73)
PATH@[70; 73)
PATH_SEGMENT@[70; 73)
NAME_REF@[70; 73)
IDENT@[70; 73) "Foo"
R_ANGLE@[73; 74) ">"
COLONCOLON@[74; 76) "::"
PATH_SEGMENT@[76; 80)
NAME_REF@[76; 80)
IDENT@[76; 80) "func"
ARG_LIST@[80; 82)
L_PAREN@[80; 81) "("
R_PAREN@[81; 82) ")"
R_PAREN@[82; 83) ")"
SEMI@[83; 84) ";"
WHITESPACE@[84; 89) "\n "
EXPR_STMT@[89; 115)
CALL_EXPR@[89; 114)
PATH_EXPR@[89; 90)
PATH@[89; 90)
PATH_SEGMENT@[89; 90)
NAME_REF@[89; 90)
IDENT@[89; 90) "f"
ARG_LIST@[90; 114)
L_PAREN@[90; 91) "("
CALL_EXPR@[91; 113)
PATH_EXPR@[91; 111)
PATH@[91; 111)
PATH@[91; 105)
PATH_SEGMENT@[91; 105)
L_ANGLE@[91; 92) "<"
PATH_TYPE@[92; 95)
PATH@[92; 95)
PATH_SEGMENT@[92; 95)
NAME_REF@[92; 95)
IDENT@[92; 95) "Foo"
WHITESPACE@[95; 96) " "
AS_KW@[96; 98) "as"
WHITESPACE@[98; 99) " "
PATH_TYPE@[99; 104)
PATH@[99; 104)
PATH_SEGMENT@[99; 104)
NAME_REF@[99; 104)
IDENT@[99; 104) "Trait"
R_ANGLE@[104; 105) ">"
COLONCOLON@[105; 107) "::"
PATH_SEGMENT@[107; 111)
NAME_REF@[107; 111)
IDENT@[107; 111) "func"
ARG_LIST@[111; 113)
L_PAREN@[111; 112) "("
R_PAREN@[112; 113) ")"
R_PAREN@[113; 114) ")"
SEMI@[114; 115) ";"
WHITESPACE@[115; 116) "\n"
R_CURLY@[116; 117) "}"
WHITESPACE@[117; 118) "\n"

View File

@ -8,21 +8,23 @@ SOURCE_FILE@[0; 21)
L_PAREN@[4; 5) "("
R_PAREN@[5; 6) ")"
WHITESPACE@[6; 7) " "
BLOCK@[7; 20)
L_CURLY@[7; 8) "{"
WHITESPACE@[8; 9) " "
FN_DEF@[9; 18)
FN_KW@[9; 11) "fn"
WHITESPACE@[11; 12) " "
NAME@[12; 13)
IDENT@[12; 13) "b"
PARAM_LIST@[13; 15)
L_PAREN@[13; 14) "("
R_PAREN@[14; 15) ")"
WHITESPACE@[15; 16) " "
BLOCK@[16; 18)
L_CURLY@[16; 17) "{"
R_CURLY@[17; 18) "}"
WHITESPACE@[18; 19) " "
R_CURLY@[19; 20) "}"
BLOCK_EXPR@[7; 20)
BLOCK@[7; 20)
L_CURLY@[7; 8) "{"
WHITESPACE@[8; 9) " "
FN_DEF@[9; 18)
FN_KW@[9; 11) "fn"
WHITESPACE@[11; 12) " "
NAME@[12; 13)
IDENT@[12; 13) "b"
PARAM_LIST@[13; 15)
L_PAREN@[13; 14) "("
R_PAREN@[14; 15) ")"
WHITESPACE@[15; 16) " "
BLOCK_EXPR@[16; 18)
BLOCK@[16; 18)
L_CURLY@[16; 17) "{"
R_CURLY@[17; 18) "}"
WHITESPACE@[18; 19) " "
R_CURLY@[19; 20) "}"
WHITESPACE@[20; 21) "\n"

View File

@ -40,7 +40,8 @@ SOURCE_FILE@[0; 35)
PARAM_LIST@[30; 32)
L_PAREN@[30; 31) "("
R_PAREN@[31; 32) ")"
BLOCK@[32; 34)
L_CURLY@[32; 33) "{"
R_CURLY@[33; 34) "}"
BLOCK_EXPR@[32; 34)
BLOCK@[32; 34)
L_CURLY@[32; 33) "{"
R_CURLY@[33; 34) "}"
WHITESPACE@[34; 35) "\n"

View File

@ -34,9 +34,10 @@ SOURCE_FILE@[0; 58)
LIFETIME@[20; 22) "\'f"
R_ANGLE@[22; 23) ">"
WHITESPACE@[23; 24) " "
BLOCK@[24; 26)
L_CURLY@[24; 25) "{"
R_CURLY@[25; 26) "}"
BLOCK_EXPR@[24; 26)
BLOCK@[24; 26)
L_CURLY@[24; 25) "{"
R_CURLY@[25; 26) "}"
WHITESPACE@[26; 27) "\n"
FN_DEF@[27; 57)
FN_KW@[27; 29) "fn"
@ -75,7 +76,8 @@ SOURCE_FILE@[0; 58)
LIFETIME@[51; 53) "\'f"
R_ANGLE@[53; 54) ">"
WHITESPACE@[54; 55) " "
BLOCK@[55; 57)
L_CURLY@[55; 56) "{"
R_CURLY@[56; 57) "}"
BLOCK_EXPR@[55; 57)
BLOCK@[55; 57)
L_CURLY@[55; 56) "{"
R_CURLY@[56; 57) "}"
WHITESPACE@[57; 58) "\n"

View File

@ -8,88 +8,89 @@ SOURCE_FILE@[0; 91)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 90)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 25)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
PATH_EXPR@[23; 24)
PATH@[23; 24)
PATH_SEGMENT@[23; 24)
NAME_REF@[23; 24)
IDENT@[23; 24) "a"
SEMI@[24; 25) ";"
WHITESPACE@[25; 30) "\n "
LET_STMT@[30; 43)
LET_KW@[30; 33) "let"
WHITESPACE@[33; 34) " "
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
EQ@[36; 37) "="
WHITESPACE@[37; 38) " "
PATH_EXPR@[38; 42)
PATH@[38; 42)
PATH@[38; 39)
PATH_SEGMENT@[38; 39)
NAME_REF@[38; 39)
IDENT@[38; 39) "a"
COLONCOLON@[39; 41) "::"
PATH_SEGMENT@[41; 42)
NAME_REF@[41; 42)
IDENT@[41; 42) "b"
SEMI@[42; 43) ";"
WHITESPACE@[43; 48) "\n "
LET_STMT@[48; 65)
LET_KW@[48; 51) "let"
WHITESPACE@[51; 52) " "
PLACEHOLDER_PAT@[52; 53)
UNDERSCORE@[52; 53) "_"
WHITESPACE@[53; 54) " "
EQ@[54; 55) "="
WHITESPACE@[55; 56) " "
PATH_EXPR@[56; 64)
PATH@[56; 64)
PATH_SEGMENT@[56; 64)
COLONCOLON@[56; 58) "::"
NAME_REF@[58; 59)
IDENT@[58; 59) "a"
TYPE_ARG_LIST@[59; 64)
COLONCOLON@[59; 61) "::"
L_ANGLE@[61; 62) "<"
TYPE_ARG@[62; 63)
PATH_TYPE@[62; 63)
PATH@[62; 63)
PATH_SEGMENT@[62; 63)
NAME_REF@[62; 63)
IDENT@[62; 63) "b"
R_ANGLE@[63; 64) ">"
SEMI@[64; 65) ";"
WHITESPACE@[65; 70) "\n "
LET_STMT@[70; 88)
LET_KW@[70; 73) "let"
WHITESPACE@[73; 74) " "
PLACEHOLDER_PAT@[74; 75)
UNDERSCORE@[74; 75) "_"
WHITESPACE@[75; 76) " "
EQ@[76; 77) "="
WHITESPACE@[77; 78) " "
MACRO_CALL@[78; 87)
PATH@[78; 84)
PATH_SEGMENT@[78; 84)
NAME_REF@[78; 84)
IDENT@[78; 84) "format"
EXCL@[84; 85) "!"
TOKEN_TREE@[85; 87)
L_PAREN@[85; 86) "("
R_PAREN@[86; 87) ")"
SEMI@[87; 88) ";"
WHITESPACE@[88; 89) "\n"
R_CURLY@[89; 90) "}"
BLOCK_EXPR@[9; 90)
BLOCK@[9; 90)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 25)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
PATH_EXPR@[23; 24)
PATH@[23; 24)
PATH_SEGMENT@[23; 24)
NAME_REF@[23; 24)
IDENT@[23; 24) "a"
SEMI@[24; 25) ";"
WHITESPACE@[25; 30) "\n "
LET_STMT@[30; 43)
LET_KW@[30; 33) "let"
WHITESPACE@[33; 34) " "
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
EQ@[36; 37) "="
WHITESPACE@[37; 38) " "
PATH_EXPR@[38; 42)
PATH@[38; 42)
PATH@[38; 39)
PATH_SEGMENT@[38; 39)
NAME_REF@[38; 39)
IDENT@[38; 39) "a"
COLONCOLON@[39; 41) "::"
PATH_SEGMENT@[41; 42)
NAME_REF@[41; 42)
IDENT@[41; 42) "b"
SEMI@[42; 43) ";"
WHITESPACE@[43; 48) "\n "
LET_STMT@[48; 65)
LET_KW@[48; 51) "let"
WHITESPACE@[51; 52) " "
PLACEHOLDER_PAT@[52; 53)
UNDERSCORE@[52; 53) "_"
WHITESPACE@[53; 54) " "
EQ@[54; 55) "="
WHITESPACE@[55; 56) " "
PATH_EXPR@[56; 64)
PATH@[56; 64)
PATH_SEGMENT@[56; 64)
COLONCOLON@[56; 58) "::"
NAME_REF@[58; 59)
IDENT@[58; 59) "a"
TYPE_ARG_LIST@[59; 64)
COLONCOLON@[59; 61) "::"
L_ANGLE@[61; 62) "<"
TYPE_ARG@[62; 63)
PATH_TYPE@[62; 63)
PATH@[62; 63)
PATH_SEGMENT@[62; 63)
NAME_REF@[62; 63)
IDENT@[62; 63) "b"
R_ANGLE@[63; 64) ">"
SEMI@[64; 65) ";"
WHITESPACE@[65; 70) "\n "
LET_STMT@[70; 88)
LET_KW@[70; 73) "let"
WHITESPACE@[73; 74) " "
PLACEHOLDER_PAT@[74; 75)
UNDERSCORE@[74; 75) "_"
WHITESPACE@[75; 76) " "
EQ@[76; 77) "="
WHITESPACE@[77; 78) " "
MACRO_CALL@[78; 87)
PATH@[78; 84)
PATH_SEGMENT@[78; 84)
NAME_REF@[78; 84)
IDENT@[78; 84) "format"
EXCL@[84; 85) "!"
TOKEN_TREE@[85; 87)
L_PAREN@[85; 86) "("
R_PAREN@[86; 87) ")"
SEMI@[87; 88) ";"
WHITESPACE@[88; 89) "\n"
R_CURLY@[89; 90) "}"
WHITESPACE@[90; 91) "\n"

View File

@ -8,69 +8,70 @@ SOURCE_FILE@[0; 113)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 112)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
MATCH_EXPR@[16; 110)
MATCH_KW@[16; 21) "match"
WHITESPACE@[21; 22) " "
TUPLE_EXPR@[22; 24)
L_PAREN@[22; 23) "("
R_PAREN@[23; 24) ")"
WHITESPACE@[24; 25) " "
MATCH_ARM_LIST@[25; 110)
L_CURLY@[25; 26) "{"
WHITESPACE@[26; 35) "\n "
MATCH_ARM@[35; 43)
LITERAL_PAT@[35; 37)
MINUS@[35; 36) "-"
LITERAL@[36; 37)
INT_NUMBER@[36; 37) "1"
WHITESPACE@[37; 38) " "
FAT_ARROW@[38; 40) "=>"
WHITESPACE@[40; 41) " "
TUPLE_EXPR@[41; 43)
L_PAREN@[41; 42) "("
R_PAREN@[42; 43) ")"
COMMA@[43; 44) ","
WHITESPACE@[44; 53) "\n "
MATCH_ARM@[53; 61)
LITERAL_PAT@[53; 55)
LITERAL@[53; 55)
INT_NUMBER@[53; 55) "92"
WHITESPACE@[55; 56) " "
FAT_ARROW@[56; 58) "=>"
WHITESPACE@[58; 59) " "
TUPLE_EXPR@[59; 61)
L_PAREN@[59; 60) "("
R_PAREN@[60; 61) ")"
COMMA@[61; 62) ","
WHITESPACE@[62; 71) "\n "
MATCH_ARM@[71; 80)
LITERAL_PAT@[71; 74)
LITERAL@[71; 74)
CHAR@[71; 74) "\'c\'"
WHITESPACE@[74; 75) " "
FAT_ARROW@[75; 77) "=>"
WHITESPACE@[77; 78) " "
TUPLE_EXPR@[78; 80)
L_PAREN@[78; 79) "("
R_PAREN@[79; 80) ")"
COMMA@[80; 81) ","
WHITESPACE@[81; 90) "\n "
MATCH_ARM@[90; 103)
LITERAL_PAT@[90; 97)
LITERAL@[90; 97)
STRING@[90; 97) "\"hello\""
WHITESPACE@[97; 98) " "
FAT_ARROW@[98; 100) "=>"
WHITESPACE@[100; 101) " "
TUPLE_EXPR@[101; 103)
L_PAREN@[101; 102) "("
R_PAREN@[102; 103) ")"
COMMA@[103; 104) ","
WHITESPACE@[104; 109) "\n "
R_CURLY@[109; 110) "}"
WHITESPACE@[110; 111) "\n"
R_CURLY@[111; 112) "}"
BLOCK_EXPR@[10; 112)
BLOCK@[10; 112)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
MATCH_EXPR@[16; 110)
MATCH_KW@[16; 21) "match"
WHITESPACE@[21; 22) " "
TUPLE_EXPR@[22; 24)
L_PAREN@[22; 23) "("
R_PAREN@[23; 24) ")"
WHITESPACE@[24; 25) " "
MATCH_ARM_LIST@[25; 110)
L_CURLY@[25; 26) "{"
WHITESPACE@[26; 35) "\n "
MATCH_ARM@[35; 43)
LITERAL_PAT@[35; 37)
MINUS@[35; 36) "-"
LITERAL@[36; 37)
INT_NUMBER@[36; 37) "1"
WHITESPACE@[37; 38) " "
FAT_ARROW@[38; 40) "=>"
WHITESPACE@[40; 41) " "
TUPLE_EXPR@[41; 43)
L_PAREN@[41; 42) "("
R_PAREN@[42; 43) ")"
COMMA@[43; 44) ","
WHITESPACE@[44; 53) "\n "
MATCH_ARM@[53; 61)
LITERAL_PAT@[53; 55)
LITERAL@[53; 55)
INT_NUMBER@[53; 55) "92"
WHITESPACE@[55; 56) " "
FAT_ARROW@[56; 58) "=>"
WHITESPACE@[58; 59) " "
TUPLE_EXPR@[59; 61)
L_PAREN@[59; 60) "("
R_PAREN@[60; 61) ")"
COMMA@[61; 62) ","
WHITESPACE@[62; 71) "\n "
MATCH_ARM@[71; 80)
LITERAL_PAT@[71; 74)
LITERAL@[71; 74)
CHAR@[71; 74) "\'c\'"
WHITESPACE@[74; 75) " "
FAT_ARROW@[75; 77) "=>"
WHITESPACE@[77; 78) " "
TUPLE_EXPR@[78; 80)
L_PAREN@[78; 79) "("
R_PAREN@[79; 80) ")"
COMMA@[80; 81) ","
WHITESPACE@[81; 90) "\n "
MATCH_ARM@[90; 103)
LITERAL_PAT@[90; 97)
LITERAL@[90; 97)
STRING@[90; 97) "\"hello\""
WHITESPACE@[97; 98) " "
FAT_ARROW@[98; 100) "=>"
WHITESPACE@[100; 101) " "
TUPLE_EXPR@[101; 103)
L_PAREN@[101; 102) "("
R_PAREN@[102; 103) ")"
COMMA@[103; 104) ","
WHITESPACE@[104; 109) "\n "
R_CURLY@[109; 110) "}"
WHITESPACE@[110; 111) "\n"
R_CURLY@[111; 112) "}"
WHITESPACE@[112; 113) "\n"

View File

@ -104,7 +104,8 @@ SOURCE_FILE@[0; 116)
TYPE_BOUND@[110; 112)
LIFETIME@[110; 112) "\'a"
WHITESPACE@[112; 113) "\n"
BLOCK@[113; 115)
L_CURLY@[113; 114) "{"
R_CURLY@[114; 115) "}"
BLOCK_EXPR@[113; 115)
BLOCK@[113; 115)
L_CURLY@[113; 114) "{"
R_CURLY@[114; 115) "}"
WHITESPACE@[115; 116) "\n"

View File

@ -10,7 +10,8 @@ SOURCE_FILE@[0; 18)
L_PAREN@[12; 13) "("
R_PAREN@[13; 14) ")"
WHITESPACE@[14; 15) " "
BLOCK@[15; 17)
L_CURLY@[15; 16) "{"
R_CURLY@[16; 17) "}"
BLOCK_EXPR@[15; 17)
BLOCK@[15; 17)
L_CURLY@[15; 16) "{"
R_CURLY@[16; 17) "}"
WHITESPACE@[17; 18) "\n"

View File

@ -8,75 +8,76 @@ SOURCE_FILE@[0; 112)
L_PAREN@[7; 8) "("
R_PAREN@[8; 9) ")"
WHITESPACE@[9; 10) " "
BLOCK@[10; 111)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
MATCH_EXPR@[16; 109)
MATCH_KW@[16; 21) "match"
WHITESPACE@[21; 22) " "
LITERAL@[22; 24)
INT_NUMBER@[22; 24) "92"
WHITESPACE@[24; 25) " "
MATCH_ARM_LIST@[25; 109)
L_CURLY@[25; 26) "{"
WHITESPACE@[26; 35) "\n "
MATCH_ARM@[35; 50)
RANGE_PAT@[35; 44)
LITERAL_PAT@[35; 36)
LITERAL@[35; 36)
INT_NUMBER@[35; 36) "0"
WHITESPACE@[36; 37) " "
DOTDOTDOT@[37; 40) "..."
WHITESPACE@[40; 41) " "
LITERAL_PAT@[41; 44)
LITERAL@[41; 44)
INT_NUMBER@[41; 44) "100"
WHITESPACE@[44; 45) " "
FAT_ARROW@[45; 47) "=>"
WHITESPACE@[47; 48) " "
TUPLE_EXPR@[48; 50)
L_PAREN@[48; 49) "("
R_PAREN@[49; 50) ")"
COMMA@[50; 51) ","
WHITESPACE@[51; 60) "\n "
MATCH_ARM@[60; 77)
RANGE_PAT@[60; 71)
LITERAL_PAT@[60; 63)
LITERAL@[60; 63)
INT_NUMBER@[60; 63) "101"
WHITESPACE@[63; 64) " "
DOTDOTEQ@[64; 67) "..="
WHITESPACE@[67; 68) " "
LITERAL_PAT@[68; 71)
LITERAL@[68; 71)
INT_NUMBER@[68; 71) "200"
WHITESPACE@[71; 72) " "
FAT_ARROW@[72; 74) "=>"
WHITESPACE@[74; 75) " "
TUPLE_EXPR@[75; 77)
L_PAREN@[75; 76) "("
R_PAREN@[76; 77) ")"
COMMA@[77; 78) ","
WHITESPACE@[78; 87) "\n "
MATCH_ARM@[87; 102)
RANGE_PAT@[87; 97)
LITERAL_PAT@[87; 90)
LITERAL@[87; 90)
INT_NUMBER@[87; 90) "200"
WHITESPACE@[90; 91) " "
DOTDOT@[91; 93) ".."
WHITESPACE@[93; 94) " "
LITERAL_PAT@[94; 97)
LITERAL@[94; 97)
INT_NUMBER@[94; 97) "301"
FAT_ARROW@[97; 99) "=>"
WHITESPACE@[99; 100) " "
TUPLE_EXPR@[100; 102)
L_PAREN@[100; 101) "("
R_PAREN@[101; 102) ")"
COMMA@[102; 103) ","
WHITESPACE@[103; 108) "\n "
R_CURLY@[108; 109) "}"
WHITESPACE@[109; 110) "\n"
R_CURLY@[110; 111) "}"
BLOCK_EXPR@[10; 111)
BLOCK@[10; 111)
L_CURLY@[10; 11) "{"
WHITESPACE@[11; 16) "\n "
MATCH_EXPR@[16; 109)
MATCH_KW@[16; 21) "match"
WHITESPACE@[21; 22) " "
LITERAL@[22; 24)
INT_NUMBER@[22; 24) "92"
WHITESPACE@[24; 25) " "
MATCH_ARM_LIST@[25; 109)
L_CURLY@[25; 26) "{"
WHITESPACE@[26; 35) "\n "
MATCH_ARM@[35; 50)
RANGE_PAT@[35; 44)
LITERAL_PAT@[35; 36)
LITERAL@[35; 36)
INT_NUMBER@[35; 36) "0"
WHITESPACE@[36; 37) " "
DOTDOTDOT@[37; 40) "..."
WHITESPACE@[40; 41) " "
LITERAL_PAT@[41; 44)
LITERAL@[41; 44)
INT_NUMBER@[41; 44) "100"
WHITESPACE@[44; 45) " "
FAT_ARROW@[45; 47) "=>"
WHITESPACE@[47; 48) " "
TUPLE_EXPR@[48; 50)
L_PAREN@[48; 49) "("
R_PAREN@[49; 50) ")"
COMMA@[50; 51) ","
WHITESPACE@[51; 60) "\n "
MATCH_ARM@[60; 77)
RANGE_PAT@[60; 71)
LITERAL_PAT@[60; 63)
LITERAL@[60; 63)
INT_NUMBER@[60; 63) "101"
WHITESPACE@[63; 64) " "
DOTDOTEQ@[64; 67) "..="
WHITESPACE@[67; 68) " "
LITERAL_PAT@[68; 71)
LITERAL@[68; 71)
INT_NUMBER@[68; 71) "200"
WHITESPACE@[71; 72) " "
FAT_ARROW@[72; 74) "=>"
WHITESPACE@[74; 75) " "
TUPLE_EXPR@[75; 77)
L_PAREN@[75; 76) "("
R_PAREN@[76; 77) ")"
COMMA@[77; 78) ","
WHITESPACE@[78; 87) "\n "
MATCH_ARM@[87; 102)
RANGE_PAT@[87; 97)
LITERAL_PAT@[87; 90)
LITERAL@[87; 90)
INT_NUMBER@[87; 90) "200"
WHITESPACE@[90; 91) " "
DOTDOT@[91; 93) ".."
WHITESPACE@[93; 94) " "
LITERAL_PAT@[94; 97)
LITERAL@[94; 97)
INT_NUMBER@[94; 97) "301"
FAT_ARROW@[97; 99) "=>"
WHITESPACE@[99; 100) " "
TUPLE_EXPR@[100; 102)
L_PAREN@[100; 101) "("
R_PAREN@[101; 102) ")"
COMMA@[102; 103) ","
WHITESPACE@[103; 108) "\n "
R_CURLY@[108; 109) "}"
WHITESPACE@[109; 110) "\n"
R_CURLY@[110; 111) "}"
WHITESPACE@[111; 112) "\n"

View File

@ -8,52 +8,53 @@ SOURCE_FILE@[0; 83)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 82)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
MATCH_EXPR@[15; 80)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 80)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 58)
PLACEHOLDER_PAT@[51; 52)
UNDERSCORE@[51; 52) "_"
WHITESPACE@[52; 53) " "
FAT_ARROW@[53; 55) "=>"
WHITESPACE@[55; 56) " "
BLOCK_EXPR@[56; 58)
BLOCK@[56; 58)
L_CURLY@[56; 57) "{"
R_CURLY@[57; 58) "}"
WHITESPACE@[58; 67) "\n "
MATCH_ARM@[67; 74)
PLACEHOLDER_PAT@[67; 68)
UNDERSCORE@[67; 68) "_"
WHITESPACE@[68; 69) " "
FAT_ARROW@[69; 71) "=>"
WHITESPACE@[71; 72) " "
TUPLE_EXPR@[72; 74)
L_PAREN@[72; 73) "("
R_PAREN@[73; 74) ")"
WHITESPACE@[74; 79) "\n "
R_CURLY@[79; 80) "}"
WHITESPACE@[80; 81) "\n"
R_CURLY@[81; 82) "}"
BLOCK_EXPR@[9; 82)
BLOCK@[9; 82)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
MATCH_EXPR@[15; 80)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 80)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 58)
PLACEHOLDER_PAT@[51; 52)
UNDERSCORE@[51; 52) "_"
WHITESPACE@[52; 53) " "
FAT_ARROW@[53; 55) "=>"
WHITESPACE@[55; 56) " "
BLOCK_EXPR@[56; 58)
BLOCK@[56; 58)
L_CURLY@[56; 57) "{"
R_CURLY@[57; 58) "}"
WHITESPACE@[58; 67) "\n "
MATCH_ARM@[67; 74)
PLACEHOLDER_PAT@[67; 68)
UNDERSCORE@[67; 68) "_"
WHITESPACE@[68; 69) " "
FAT_ARROW@[69; 71) "=>"
WHITESPACE@[71; 72) " "
TUPLE_EXPR@[72; 74)
L_PAREN@[72; 73) "("
R_PAREN@[73; 74) ")"
WHITESPACE@[74; 79) "\n "
R_CURLY@[79; 80) "}"
WHITESPACE@[80; 81) "\n"
R_CURLY@[81; 82) "}"
WHITESPACE@[82; 83) "\n"

View File

@ -8,111 +8,112 @@ SOURCE_FILE@[0; 112)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 111)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 20)
RECORD_LIT@[15; 19)
PATH@[15; 16)
PATH_SEGMENT@[15; 16)
NAME_REF@[15; 16)
IDENT@[15; 16) "S"
WHITESPACE@[16; 17) " "
RECORD_FIELD_LIST@[17; 19)
L_CURLY@[17; 18) "{"
R_CURLY@[18; 19) "}"
SEMI@[19; 20) ";"
WHITESPACE@[20; 25) "\n "
EXPR_STMT@[25; 41)
RECORD_LIT@[25; 40)
PATH@[25; 26)
PATH_SEGMENT@[25; 26)
NAME_REF@[25; 26)
IDENT@[25; 26) "S"
WHITESPACE@[26; 27) " "
RECORD_FIELD_LIST@[27; 40)
L_CURLY@[27; 28) "{"
WHITESPACE@[28; 29) " "
RECORD_FIELD@[29; 30)
NAME_REF@[29; 30)
IDENT@[29; 30) "x"
COMMA@[30; 31) ","
WHITESPACE@[31; 32) " "
RECORD_FIELD@[32; 37)
NAME_REF@[32; 33)
IDENT@[32; 33) "y"
COLON@[33; 34) ":"
WHITESPACE@[34; 35) " "
LITERAL@[35; 37)
INT_NUMBER@[35; 37) "32"
COMMA@[37; 38) ","
WHITESPACE@[38; 39) " "
R_CURLY@[39; 40) "}"
SEMI@[40; 41) ";"
WHITESPACE@[41; 46) "\n "
EXPR_STMT@[46; 83)
RECORD_LIT@[46; 82)
PATH@[46; 47)
PATH_SEGMENT@[46; 47)
NAME_REF@[46; 47)
IDENT@[46; 47) "S"
WHITESPACE@[47; 48) " "
RECORD_FIELD_LIST@[48; 82)
L_CURLY@[48; 49) "{"
WHITESPACE@[49; 50) " "
RECORD_FIELD@[50; 51)
NAME_REF@[50; 51)
IDENT@[50; 51) "x"
COMMA@[51; 52) ","
WHITESPACE@[52; 53) " "
RECORD_FIELD@[53; 58)
NAME_REF@[53; 54)
IDENT@[53; 54) "y"
COLON@[54; 55) ":"
WHITESPACE@[55; 56) " "
LITERAL@[56; 58)
INT_NUMBER@[56; 58) "32"
COMMA@[58; 59) ","
WHITESPACE@[59; 60) " "
DOTDOT@[60; 62) ".."
CALL_EXPR@[62; 80)
PATH_EXPR@[62; 78)
PATH@[62; 78)
PATH@[62; 69)
PATH_SEGMENT@[62; 69)
NAME_REF@[62; 69)
IDENT@[62; 69) "Default"
COLONCOLON@[69; 71) "::"
PATH_SEGMENT@[71; 78)
NAME_REF@[71; 78)
IDENT@[71; 78) "default"
ARG_LIST@[78; 80)
L_PAREN@[78; 79) "("
R_PAREN@[79; 80) ")"
WHITESPACE@[80; 81) " "
R_CURLY@[81; 82) "}"
SEMI@[82; 83) ";"
WHITESPACE@[83; 88) "\n "
EXPR_STMT@[88; 109)
RECORD_LIT@[88; 108)
PATH@[88; 99)
PATH_SEGMENT@[88; 99)
NAME_REF@[88; 99)
IDENT@[88; 99) "TupleStruct"
WHITESPACE@[99; 100) " "
RECORD_FIELD_LIST@[100; 108)
L_CURLY@[100; 101) "{"
WHITESPACE@[101; 102) " "
RECORD_FIELD@[102; 106)
NAME_REF@[102; 103)
INT_NUMBER@[102; 103) "0"
COLON@[103; 104) ":"
WHITESPACE@[104; 105) " "
LITERAL@[105; 106)
INT_NUMBER@[105; 106) "1"
WHITESPACE@[106; 107) " "
R_CURLY@[107; 108) "}"
SEMI@[108; 109) ";"
WHITESPACE@[109; 110) "\n"
R_CURLY@[110; 111) "}"
BLOCK_EXPR@[9; 111)
BLOCK@[9; 111)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 20)
RECORD_LIT@[15; 19)
PATH@[15; 16)
PATH_SEGMENT@[15; 16)
NAME_REF@[15; 16)
IDENT@[15; 16) "S"
WHITESPACE@[16; 17) " "
RECORD_FIELD_LIST@[17; 19)
L_CURLY@[17; 18) "{"
R_CURLY@[18; 19) "}"
SEMI@[19; 20) ";"
WHITESPACE@[20; 25) "\n "
EXPR_STMT@[25; 41)
RECORD_LIT@[25; 40)
PATH@[25; 26)
PATH_SEGMENT@[25; 26)
NAME_REF@[25; 26)
IDENT@[25; 26) "S"
WHITESPACE@[26; 27) " "
RECORD_FIELD_LIST@[27; 40)
L_CURLY@[27; 28) "{"
WHITESPACE@[28; 29) " "
RECORD_FIELD@[29; 30)
NAME_REF@[29; 30)
IDENT@[29; 30) "x"
COMMA@[30; 31) ","
WHITESPACE@[31; 32) " "
RECORD_FIELD@[32; 37)
NAME_REF@[32; 33)
IDENT@[32; 33) "y"
COLON@[33; 34) ":"
WHITESPACE@[34; 35) " "
LITERAL@[35; 37)
INT_NUMBER@[35; 37) "32"
COMMA@[37; 38) ","
WHITESPACE@[38; 39) " "
R_CURLY@[39; 40) "}"
SEMI@[40; 41) ";"
WHITESPACE@[41; 46) "\n "
EXPR_STMT@[46; 83)
RECORD_LIT@[46; 82)
PATH@[46; 47)
PATH_SEGMENT@[46; 47)
NAME_REF@[46; 47)
IDENT@[46; 47) "S"
WHITESPACE@[47; 48) " "
RECORD_FIELD_LIST@[48; 82)
L_CURLY@[48; 49) "{"
WHITESPACE@[49; 50) " "
RECORD_FIELD@[50; 51)
NAME_REF@[50; 51)
IDENT@[50; 51) "x"
COMMA@[51; 52) ","
WHITESPACE@[52; 53) " "
RECORD_FIELD@[53; 58)
NAME_REF@[53; 54)
IDENT@[53; 54) "y"
COLON@[54; 55) ":"
WHITESPACE@[55; 56) " "
LITERAL@[56; 58)
INT_NUMBER@[56; 58) "32"
COMMA@[58; 59) ","
WHITESPACE@[59; 60) " "
DOTDOT@[60; 62) ".."
CALL_EXPR@[62; 80)
PATH_EXPR@[62; 78)
PATH@[62; 78)
PATH@[62; 69)
PATH_SEGMENT@[62; 69)
NAME_REF@[62; 69)
IDENT@[62; 69) "Default"
COLONCOLON@[69; 71) "::"
PATH_SEGMENT@[71; 78)
NAME_REF@[71; 78)
IDENT@[71; 78) "default"
ARG_LIST@[78; 80)
L_PAREN@[78; 79) "("
R_PAREN@[79; 80) ")"
WHITESPACE@[80; 81) " "
R_CURLY@[81; 82) "}"
SEMI@[82; 83) ";"
WHITESPACE@[83; 88) "\n "
EXPR_STMT@[88; 109)
RECORD_LIT@[88; 108)
PATH@[88; 99)
PATH_SEGMENT@[88; 99)
NAME_REF@[88; 99)
IDENT@[88; 99) "TupleStruct"
WHITESPACE@[99; 100) " "
RECORD_FIELD_LIST@[100; 108)
L_CURLY@[100; 101) "{"
WHITESPACE@[101; 102) " "
RECORD_FIELD@[102; 106)
NAME_REF@[102; 103)
INT_NUMBER@[102; 103) "0"
COLON@[103; 104) ":"
WHITESPACE@[104; 105) " "
LITERAL@[105; 106)
INT_NUMBER@[105; 106) "1"
WHITESPACE@[106; 107) " "
R_CURLY@[107; 108) "}"
SEMI@[108; 109) ";"
WHITESPACE@[109; 110) "\n"
R_CURLY@[110; 111) "}"
WHITESPACE@[111; 112) "\n"

View File

@ -8,9 +8,10 @@ SOURCE_FILE@[0; 70)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 11)
L_CURLY@[9; 10) "{"
R_CURLY@[10; 11) "}"
BLOCK_EXPR@[9; 11)
BLOCK@[9; 11)
L_CURLY@[9; 10) "{"
R_CURLY@[10; 11) "}"
WHITESPACE@[11; 12) "\n"
MACRO_CALL@[12; 31)
PATH@[12; 23)

View File

@ -8,88 +8,96 @@ SOURCE_FILE@[0; 107)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 106)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 26)
IF_EXPR@[15; 25)
IF_KW@[15; 17) "if"
WHITESPACE@[17; 18) " "
CONDITION@[18; 22)
LITERAL@[18; 22)
TRUE_KW@[18; 22) "true"
WHITESPACE@[22; 23) " "
BLOCK@[23; 25)
L_CURLY@[23; 24) "{"
R_CURLY@[24; 25) "}"
SEMI@[25; 26) ";"
WHITESPACE@[26; 31) "\n "
EXPR_STMT@[31; 50)
IF_EXPR@[31; 49)
IF_KW@[31; 33) "if"
WHITESPACE@[33; 34) " "
CONDITION@[34; 38)
LITERAL@[34; 38)
TRUE_KW@[34; 38) "true"
WHITESPACE@[38; 39) " "
BLOCK@[39; 41)
L_CURLY@[39; 40) "{"
R_CURLY@[40; 41) "}"
WHITESPACE@[41; 42) " "
ELSE_KW@[42; 46) "else"
WHITESPACE@[46; 47) " "
BLOCK@[47; 49)
L_CURLY@[47; 48) "{"
R_CURLY@[48; 49) "}"
SEMI@[49; 50) ";"
WHITESPACE@[50; 55) "\n "
EXPR_STMT@[55; 91)
IF_EXPR@[55; 90)
IF_KW@[55; 57) "if"
WHITESPACE@[57; 58) " "
CONDITION@[58; 62)
LITERAL@[58; 62)
TRUE_KW@[58; 62) "true"
WHITESPACE@[62; 63) " "
BLOCK@[63; 65)
L_CURLY@[63; 64) "{"
R_CURLY@[64; 65) "}"
WHITESPACE@[65; 66) " "
ELSE_KW@[66; 70) "else"
WHITESPACE@[70; 71) " "
IF_EXPR@[71; 90)
IF_KW@[71; 73) "if"
WHITESPACE@[73; 74) " "
CONDITION@[74; 79)
LITERAL@[74; 79)
FALSE_KW@[74; 79) "false"
WHITESPACE@[79; 80) " "
BLOCK@[80; 82)
L_CURLY@[80; 81) "{"
R_CURLY@[81; 82) "}"
WHITESPACE@[82; 83) " "
ELSE_KW@[83; 87) "else"
WHITESPACE@[87; 88) " "
BLOCK@[88; 90)
L_CURLY@[88; 89) "{"
R_CURLY@[89; 90) "}"
SEMI@[90; 91) ";"
WHITESPACE@[91; 96) "\n "
EXPR_STMT@[96; 104)
IF_EXPR@[96; 103)
IF_KW@[96; 98) "if"
WHITESPACE@[98; 99) " "
CONDITION@[99; 100)
PATH_EXPR@[99; 100)
PATH@[99; 100)
PATH_SEGMENT@[99; 100)
NAME_REF@[99; 100)
IDENT@[99; 100) "S"
WHITESPACE@[100; 101) " "
BLOCK@[101; 103)
L_CURLY@[101; 102) "{"
R_CURLY@[102; 103) "}"
SEMI@[103; 104) ";"
WHITESPACE@[104; 105) "\n"
R_CURLY@[105; 106) "}"
BLOCK_EXPR@[9; 106)
BLOCK@[9; 106)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 26)
IF_EXPR@[15; 25)
IF_KW@[15; 17) "if"
WHITESPACE@[17; 18) " "
CONDITION@[18; 22)
LITERAL@[18; 22)
TRUE_KW@[18; 22) "true"
WHITESPACE@[22; 23) " "
BLOCK_EXPR@[23; 25)
BLOCK@[23; 25)
L_CURLY@[23; 24) "{"
R_CURLY@[24; 25) "}"
SEMI@[25; 26) ";"
WHITESPACE@[26; 31) "\n "
EXPR_STMT@[31; 50)
IF_EXPR@[31; 49)
IF_KW@[31; 33) "if"
WHITESPACE@[33; 34) " "
CONDITION@[34; 38)
LITERAL@[34; 38)
TRUE_KW@[34; 38) "true"
WHITESPACE@[38; 39) " "
BLOCK_EXPR@[39; 41)
BLOCK@[39; 41)
L_CURLY@[39; 40) "{"
R_CURLY@[40; 41) "}"
WHITESPACE@[41; 42) " "
ELSE_KW@[42; 46) "else"
WHITESPACE@[46; 47) " "
BLOCK_EXPR@[47; 49)
BLOCK@[47; 49)
L_CURLY@[47; 48) "{"
R_CURLY@[48; 49) "}"
SEMI@[49; 50) ";"
WHITESPACE@[50; 55) "\n "
EXPR_STMT@[55; 91)
IF_EXPR@[55; 90)
IF_KW@[55; 57) "if"
WHITESPACE@[57; 58) " "
CONDITION@[58; 62)
LITERAL@[58; 62)
TRUE_KW@[58; 62) "true"
WHITESPACE@[62; 63) " "
BLOCK_EXPR@[63; 65)
BLOCK@[63; 65)
L_CURLY@[63; 64) "{"
R_CURLY@[64; 65) "}"
WHITESPACE@[65; 66) " "
ELSE_KW@[66; 70) "else"
WHITESPACE@[70; 71) " "
IF_EXPR@[71; 90)
IF_KW@[71; 73) "if"
WHITESPACE@[73; 74) " "
CONDITION@[74; 79)
LITERAL@[74; 79)
FALSE_KW@[74; 79) "false"
WHITESPACE@[79; 80) " "
BLOCK_EXPR@[80; 82)
BLOCK@[80; 82)
L_CURLY@[80; 81) "{"
R_CURLY@[81; 82) "}"
WHITESPACE@[82; 83) " "
ELSE_KW@[83; 87) "else"
WHITESPACE@[87; 88) " "
BLOCK_EXPR@[88; 90)
BLOCK@[88; 90)
L_CURLY@[88; 89) "{"
R_CURLY@[89; 90) "}"
SEMI@[90; 91) ";"
WHITESPACE@[91; 96) "\n "
EXPR_STMT@[96; 104)
IF_EXPR@[96; 103)
IF_KW@[96; 98) "if"
WHITESPACE@[98; 99) " "
CONDITION@[99; 100)
PATH_EXPR@[99; 100)
PATH@[99; 100)
PATH_SEGMENT@[99; 100)
NAME_REF@[99; 100)
IDENT@[99; 100) "S"
WHITESPACE@[100; 101) " "
BLOCK_EXPR@[101; 103)
BLOCK@[101; 103)
L_CURLY@[101; 102) "{"
R_CURLY@[102; 103) "}"
SEMI@[103; 104) ";"
WHITESPACE@[104; 105) "\n"
R_CURLY@[105; 106) "}"
WHITESPACE@[106; 107) "\n"

View File

@ -8,142 +8,143 @@ SOURCE_FILE@[0; 167)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 166)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 164)
MATCH_EXPR@[15; 163)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 163)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 83)
PLACEHOLDER_PAT@[51; 52)
UNDERSCORE@[51; 52) "_"
WHITESPACE@[52; 53) " "
MATCH_GUARD@[53; 77)
IF_KW@[53; 55) "if"
WHITESPACE@[55; 56) " "
BIN_EXPR@[56; 77)
PATH_EXPR@[56; 60)
PATH@[56; 60)
PATH_SEGMENT@[56; 60)
NAME_REF@[56; 60)
IDENT@[56; 60) "Test"
WHITESPACE@[60; 61) " "
R_ANGLE@[61; 62) ">"
WHITESPACE@[62; 63) " "
RECORD_LIT@[63; 77)
PATH@[63; 67)
PATH_SEGMENT@[63; 67)
NAME_REF@[63; 67)
IDENT@[63; 67) "Test"
RECORD_FIELD_LIST@[67; 77)
L_CURLY@[67; 68) "{"
RECORD_FIELD@[68; 76)
NAME_REF@[68; 73)
IDENT@[68; 73) "field"
COLON@[73; 74) ":"
WHITESPACE@[74; 75) " "
LITERAL@[75; 76)
INT_NUMBER@[75; 76) "0"
R_CURLY@[76; 77) "}"
WHITESPACE@[77; 78) " "
FAT_ARROW@[78; 80) "=>"
WHITESPACE@[80; 81) " "
TUPLE_EXPR@[81; 83)
L_PAREN@[81; 82) "("
R_PAREN@[82; 83) ")"
COMMA@[83; 84) ","
WHITESPACE@[84; 93) "\n "
MATCH_ARM@[93; 109)
BIND_PAT@[93; 94)
NAME@[93; 94)
IDENT@[93; 94) "X"
WHITESPACE@[94; 95) " "
PIPE@[95; 96) "|"
WHITESPACE@[96; 97) " "
BIND_PAT@[97; 98)
NAME@[97; 98)
IDENT@[97; 98) "Y"
WHITESPACE@[98; 99) " "
MATCH_GUARD@[99; 103)
IF_KW@[99; 101) "if"
WHITESPACE@[101; 102) " "
PATH_EXPR@[102; 103)
PATH@[102; 103)
PATH_SEGMENT@[102; 103)
NAME_REF@[102; 103)
IDENT@[102; 103) "Z"
WHITESPACE@[103; 104) " "
FAT_ARROW@[104; 106) "=>"
WHITESPACE@[106; 107) " "
TUPLE_EXPR@[107; 109)
L_PAREN@[107; 108) "("
R_PAREN@[108; 109) ")"
COMMA@[109; 110) ","
WHITESPACE@[110; 119) "\n "
MATCH_ARM@[119; 137)
PIPE@[119; 120) "|"
WHITESPACE@[120; 121) " "
BIND_PAT@[121; 122)
NAME@[121; 122)
IDENT@[121; 122) "X"
WHITESPACE@[122; 123) " "
PIPE@[123; 124) "|"
WHITESPACE@[124; 125) " "
BIND_PAT@[125; 126)
NAME@[125; 126)
IDENT@[125; 126) "Y"
WHITESPACE@[126; 127) " "
MATCH_GUARD@[127; 131)
IF_KW@[127; 129) "if"
WHITESPACE@[129; 130) " "
PATH_EXPR@[130; 131)
PATH@[130; 131)
PATH_SEGMENT@[130; 131)
NAME_REF@[130; 131)
IDENT@[130; 131) "Z"
WHITESPACE@[131; 132) " "
FAT_ARROW@[132; 134) "=>"
WHITESPACE@[134; 135) " "
TUPLE_EXPR@[135; 137)
L_PAREN@[135; 136) "("
R_PAREN@[136; 137) ")"
COMMA@[137; 138) ","
WHITESPACE@[138; 147) "\n "
MATCH_ARM@[147; 156)
PIPE@[147; 148) "|"
WHITESPACE@[148; 149) " "
BIND_PAT@[149; 150)
NAME@[149; 150)
IDENT@[149; 150) "X"
WHITESPACE@[150; 151) " "
FAT_ARROW@[151; 153) "=>"
WHITESPACE@[153; 154) " "
TUPLE_EXPR@[154; 156)
L_PAREN@[154; 155) "("
R_PAREN@[155; 156) ")"
COMMA@[156; 157) ","
WHITESPACE@[157; 162) "\n "
R_CURLY@[162; 163) "}"
SEMI@[163; 164) ";"
WHITESPACE@[164; 165) "\n"
R_CURLY@[165; 166) "}"
BLOCK_EXPR@[9; 166)
BLOCK@[9; 166)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 164)
MATCH_EXPR@[15; 163)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 163)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
TUPLE_EXPR@[39; 41)
L_PAREN@[39; 40) "("
R_PAREN@[40; 41) ")"
COMMA@[41; 42) ","
WHITESPACE@[42; 51) "\n "
MATCH_ARM@[51; 83)
PLACEHOLDER_PAT@[51; 52)
UNDERSCORE@[51; 52) "_"
WHITESPACE@[52; 53) " "
MATCH_GUARD@[53; 77)
IF_KW@[53; 55) "if"
WHITESPACE@[55; 56) " "
BIN_EXPR@[56; 77)
PATH_EXPR@[56; 60)
PATH@[56; 60)
PATH_SEGMENT@[56; 60)
NAME_REF@[56; 60)
IDENT@[56; 60) "Test"
WHITESPACE@[60; 61) " "
R_ANGLE@[61; 62) ">"
WHITESPACE@[62; 63) " "
RECORD_LIT@[63; 77)
PATH@[63; 67)
PATH_SEGMENT@[63; 67)
NAME_REF@[63; 67)
IDENT@[63; 67) "Test"
RECORD_FIELD_LIST@[67; 77)
L_CURLY@[67; 68) "{"
RECORD_FIELD@[68; 76)
NAME_REF@[68; 73)
IDENT@[68; 73) "field"
COLON@[73; 74) ":"
WHITESPACE@[74; 75) " "
LITERAL@[75; 76)
INT_NUMBER@[75; 76) "0"
R_CURLY@[76; 77) "}"
WHITESPACE@[77; 78) " "
FAT_ARROW@[78; 80) "=>"
WHITESPACE@[80; 81) " "
TUPLE_EXPR@[81; 83)
L_PAREN@[81; 82) "("
R_PAREN@[82; 83) ")"
COMMA@[83; 84) ","
WHITESPACE@[84; 93) "\n "
MATCH_ARM@[93; 109)
BIND_PAT@[93; 94)
NAME@[93; 94)
IDENT@[93; 94) "X"
WHITESPACE@[94; 95) " "
PIPE@[95; 96) "|"
WHITESPACE@[96; 97) " "
BIND_PAT@[97; 98)
NAME@[97; 98)
IDENT@[97; 98) "Y"
WHITESPACE@[98; 99) " "
MATCH_GUARD@[99; 103)
IF_KW@[99; 101) "if"
WHITESPACE@[101; 102) " "
PATH_EXPR@[102; 103)
PATH@[102; 103)
PATH_SEGMENT@[102; 103)
NAME_REF@[102; 103)
IDENT@[102; 103) "Z"
WHITESPACE@[103; 104) " "
FAT_ARROW@[104; 106) "=>"
WHITESPACE@[106; 107) " "
TUPLE_EXPR@[107; 109)
L_PAREN@[107; 108) "("
R_PAREN@[108; 109) ")"
COMMA@[109; 110) ","
WHITESPACE@[110; 119) "\n "
MATCH_ARM@[119; 137)
PIPE@[119; 120) "|"
WHITESPACE@[120; 121) " "
BIND_PAT@[121; 122)
NAME@[121; 122)
IDENT@[121; 122) "X"
WHITESPACE@[122; 123) " "
PIPE@[123; 124) "|"
WHITESPACE@[124; 125) " "
BIND_PAT@[125; 126)
NAME@[125; 126)
IDENT@[125; 126) "Y"
WHITESPACE@[126; 127) " "
MATCH_GUARD@[127; 131)
IF_KW@[127; 129) "if"
WHITESPACE@[129; 130) " "
PATH_EXPR@[130; 131)
PATH@[130; 131)
PATH_SEGMENT@[130; 131)
NAME_REF@[130; 131)
IDENT@[130; 131) "Z"
WHITESPACE@[131; 132) " "
FAT_ARROW@[132; 134) "=>"
WHITESPACE@[134; 135) " "
TUPLE_EXPR@[135; 137)
L_PAREN@[135; 136) "("
R_PAREN@[136; 137) ")"
COMMA@[137; 138) ","
WHITESPACE@[138; 147) "\n "
MATCH_ARM@[147; 156)
PIPE@[147; 148) "|"
WHITESPACE@[148; 149) " "
BIND_PAT@[149; 150)
NAME@[149; 150)
IDENT@[149; 150) "X"
WHITESPACE@[150; 151) " "
FAT_ARROW@[151; 153) "=>"
WHITESPACE@[153; 154) " "
TUPLE_EXPR@[154; 156)
L_PAREN@[154; 155) "("
R_PAREN@[155; 156) ")"
COMMA@[156; 157) ","
WHITESPACE@[157; 162) "\n "
R_CURLY@[162; 163) "}"
SEMI@[163; 164) ";"
WHITESPACE@[164; 165) "\n"
R_CURLY@[165; 166) "}"
WHITESPACE@[166; 167) "\n"

View File

@ -8,45 +8,46 @@ SOURCE_FILE@[0; 46)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 45)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 31)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
BIN_EXPR@[23; 30)
BLOCK_EXPR@[23; 26)
BLOCK@[23; 26)
L_CURLY@[23; 24) "{"
LITERAL@[24; 25)
INT_NUMBER@[24; 25) "1"
R_CURLY@[25; 26) "}"
WHITESPACE@[26; 27) " "
AMP@[27; 28) "&"
WHITESPACE@[28; 29) " "
LITERAL@[29; 30)
INT_NUMBER@[29; 30) "2"
SEMI@[30; 31) ";"
WHITESPACE@[31; 36) "\n "
EXPR_STMT@[36; 39)
BLOCK_EXPR@[36; 39)
BLOCK@[36; 39)
L_CURLY@[36; 37) "{"
LITERAL@[37; 38)
INT_NUMBER@[37; 38) "1"
R_CURLY@[38; 39) "}"
WHITESPACE@[39; 40) " "
EXPR_STMT@[40; 43)
REF_EXPR@[40; 42)
AMP@[40; 41) "&"
LITERAL@[41; 42)
INT_NUMBER@[41; 42) "2"
SEMI@[42; 43) ";"
WHITESPACE@[43; 44) "\n"
R_CURLY@[44; 45) "}"
BLOCK_EXPR@[9; 45)
BLOCK@[9; 45)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 31)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
BIN_EXPR@[23; 30)
BLOCK_EXPR@[23; 26)
BLOCK@[23; 26)
L_CURLY@[23; 24) "{"
LITERAL@[24; 25)
INT_NUMBER@[24; 25) "1"
R_CURLY@[25; 26) "}"
WHITESPACE@[26; 27) " "
AMP@[27; 28) "&"
WHITESPACE@[28; 29) " "
LITERAL@[29; 30)
INT_NUMBER@[29; 30) "2"
SEMI@[30; 31) ";"
WHITESPACE@[31; 36) "\n "
EXPR_STMT@[36; 39)
BLOCK_EXPR@[36; 39)
BLOCK@[36; 39)
L_CURLY@[36; 37) "{"
LITERAL@[37; 38)
INT_NUMBER@[37; 38) "1"
R_CURLY@[38; 39) "}"
WHITESPACE@[39; 40) " "
EXPR_STMT@[40; 43)
REF_EXPR@[40; 42)
AMP@[40; 41) "&"
LITERAL@[41; 42)
INT_NUMBER@[41; 42) "2"
SEMI@[42; 43) ";"
WHITESPACE@[43; 44) "\n"
R_CURLY@[44; 45) "}"
WHITESPACE@[45; 46) "\n"

View File

@ -8,37 +8,38 @@ SOURCE_FILE@[0; 47)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 46)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 28)
MATCH_EXPR@[15; 27)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 27)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 26) " "
R_CURLY@[26; 27) "}"
SEMI@[27; 28) ";"
WHITESPACE@[28; 33) "\n "
EXPR_STMT@[33; 44)
MATCH_EXPR@[33; 43)
MATCH_KW@[33; 38) "match"
WHITESPACE@[38; 39) " "
PATH_EXPR@[39; 40)
PATH@[39; 40)
PATH_SEGMENT@[39; 40)
NAME_REF@[39; 40)
IDENT@[39; 40) "S"
WHITESPACE@[40; 41) " "
MATCH_ARM_LIST@[41; 43)
L_CURLY@[41; 42) "{"
R_CURLY@[42; 43) "}"
SEMI@[43; 44) ";"
WHITESPACE@[44; 45) "\n"
R_CURLY@[45; 46) "}"
BLOCK_EXPR@[9; 46)
BLOCK@[9; 46)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 28)
MATCH_EXPR@[15; 27)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 27)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 26) " "
R_CURLY@[26; 27) "}"
SEMI@[27; 28) ";"
WHITESPACE@[28; 33) "\n "
EXPR_STMT@[33; 44)
MATCH_EXPR@[33; 43)
MATCH_KW@[33; 38) "match"
WHITESPACE@[38; 39) " "
PATH_EXPR@[39; 40)
PATH@[39; 40)
PATH_SEGMENT@[39; 40)
NAME_REF@[39; 40)
IDENT@[39; 40) "S"
WHITESPACE@[40; 41) " "
MATCH_ARM_LIST@[41; 43)
L_CURLY@[41; 42) "{"
R_CURLY@[42; 43) "}"
SEMI@[43; 44) ";"
WHITESPACE@[44; 45) "\n"
R_CURLY@[45; 46) "}"
WHITESPACE@[46; 47) "\n"

View File

@ -8,21 +8,22 @@ SOURCE_FILE@[0; 40)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 39)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 22)
RETURN_EXPR@[15; 21)
RETURN_KW@[15; 21) "return"
SEMI@[21; 22) ";"
WHITESPACE@[22; 27) "\n "
EXPR_STMT@[27; 37)
RETURN_EXPR@[27; 36)
RETURN_KW@[27; 33) "return"
WHITESPACE@[33; 34) " "
LITERAL@[34; 36)
INT_NUMBER@[34; 36) "92"
SEMI@[36; 37) ";"
WHITESPACE@[37; 38) "\n"
R_CURLY@[38; 39) "}"
BLOCK_EXPR@[9; 39)
BLOCK@[9; 39)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 22)
RETURN_EXPR@[15; 21)
RETURN_KW@[15; 21) "return"
SEMI@[21; 22) ";"
WHITESPACE@[22; 27) "\n "
EXPR_STMT@[27; 37)
RETURN_EXPR@[27; 36)
RETURN_KW@[27; 33) "return"
WHITESPACE@[33; 34) " "
LITERAL@[34; 36)
INT_NUMBER@[34; 36) "92"
SEMI@[36; 37) ";"
WHITESPACE@[37; 38) "\n"
R_CURLY@[38; 39) "}"
WHITESPACE@[39; 40) "\n"

View File

@ -8,55 +8,56 @@ SOURCE_FILE@[0; 84)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 83)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
MATCH_EXPR@[15; 81)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 81)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
BLOCK_EXPR@[39; 41)
BLOCK@[39; 41)
L_CURLY@[39; 40) "{"
R_CURLY@[40; 41) "}"
WHITESPACE@[41; 50) "\n "
MATCH_ARM@[50; 58)
TUPLE_PAT@[50; 52)
L_PAREN@[50; 51) "("
R_PAREN@[51; 52) ")"
WHITESPACE@[52; 53) " "
FAT_ARROW@[53; 55) "=>"
WHITESPACE@[55; 56) " "
BLOCK_EXPR@[56; 58)
BLOCK@[56; 58)
L_CURLY@[56; 57) "{"
R_CURLY@[57; 58) "}"
WHITESPACE@[58; 67) "\n "
MATCH_ARM@[67; 75)
SLICE_PAT@[67; 69)
L_BRACK@[67; 68) "["
R_BRACK@[68; 69) "]"
WHITESPACE@[69; 70) " "
FAT_ARROW@[70; 72) "=>"
WHITESPACE@[72; 73) " "
BLOCK_EXPR@[73; 75)
BLOCK@[73; 75)
L_CURLY@[73; 74) "{"
R_CURLY@[74; 75) "}"
WHITESPACE@[75; 80) "\n "
R_CURLY@[80; 81) "}"
WHITESPACE@[81; 82) "\n"
R_CURLY@[82; 83) "}"
BLOCK_EXPR@[9; 83)
BLOCK@[9; 83)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
MATCH_EXPR@[15; 81)
MATCH_KW@[15; 20) "match"
WHITESPACE@[20; 21) " "
TUPLE_EXPR@[21; 23)
L_PAREN@[21; 22) "("
R_PAREN@[22; 23) ")"
WHITESPACE@[23; 24) " "
MATCH_ARM_LIST@[24; 81)
L_CURLY@[24; 25) "{"
WHITESPACE@[25; 34) "\n "
MATCH_ARM@[34; 41)
PLACEHOLDER_PAT@[34; 35)
UNDERSCORE@[34; 35) "_"
WHITESPACE@[35; 36) " "
FAT_ARROW@[36; 38) "=>"
WHITESPACE@[38; 39) " "
BLOCK_EXPR@[39; 41)
BLOCK@[39; 41)
L_CURLY@[39; 40) "{"
R_CURLY@[40; 41) "}"
WHITESPACE@[41; 50) "\n "
MATCH_ARM@[50; 58)
TUPLE_PAT@[50; 52)
L_PAREN@[50; 51) "("
R_PAREN@[51; 52) ")"
WHITESPACE@[52; 53) " "
FAT_ARROW@[53; 55) "=>"
WHITESPACE@[55; 56) " "
BLOCK_EXPR@[56; 58)
BLOCK@[56; 58)
L_CURLY@[56; 57) "{"
R_CURLY@[57; 58) "}"
WHITESPACE@[58; 67) "\n "
MATCH_ARM@[67; 75)
SLICE_PAT@[67; 69)
L_BRACK@[67; 68) "["
R_BRACK@[68; 69) "]"
WHITESPACE@[69; 70) " "
FAT_ARROW@[70; 72) "=>"
WHITESPACE@[72; 73) " "
BLOCK_EXPR@[73; 75)
BLOCK@[73; 75)
L_CURLY@[73; 74) "{"
R_CURLY@[74; 75) "}"
WHITESPACE@[75; 80) "\n "
R_CURLY@[80; 81) "}"
WHITESPACE@[81; 82) "\n"
R_CURLY@[82; 83) "}"
WHITESPACE@[83; 84) "\n"

View File

@ -8,9 +8,10 @@ SOURCE_FILE@[0; 65)
L_PAREN@[4; 5) "("
R_PAREN@[5; 6) ")"
WHITESPACE@[6; 7) " "
BLOCK@[7; 9)
L_CURLY@[7; 8) "{"
R_CURLY@[8; 9) "}"
BLOCK_EXPR@[7; 9)
BLOCK@[7; 9)
L_CURLY@[7; 8) "{"
R_CURLY@[8; 9) "}"
WHITESPACE@[9; 10) "\n"
FN_DEF@[10; 31)
FN_KW@[10; 12) "fn"
@ -21,22 +22,23 @@ SOURCE_FILE@[0; 65)
L_PAREN@[14; 15) "("
R_PAREN@[15; 16) ")"
WHITESPACE@[16; 17) " "
BLOCK@[17; 31)
L_CURLY@[17; 18) "{"
WHITESPACE@[18; 19) " "
LET_STMT@[19; 29)
LET_KW@[19; 22) "let"
WHITESPACE@[22; 23) " "
PLACEHOLDER_PAT@[23; 24)
UNDERSCORE@[23; 24) "_"
WHITESPACE@[24; 25) " "
EQ@[25; 26) "="
WHITESPACE@[26; 27) " "
LITERAL@[27; 28)
INT_NUMBER@[27; 28) "1"
SEMI@[28; 29) ";"
WHITESPACE@[29; 30) " "
R_CURLY@[30; 31) "}"
BLOCK_EXPR@[17; 31)
BLOCK@[17; 31)
L_CURLY@[17; 18) "{"
WHITESPACE@[18; 19) " "
LET_STMT@[19; 29)
LET_KW@[19; 22) "let"
WHITESPACE@[22; 23) " "
PLACEHOLDER_PAT@[23; 24)
UNDERSCORE@[23; 24) "_"
WHITESPACE@[24; 25) " "
EQ@[25; 26) "="
WHITESPACE@[26; 27) " "
LITERAL@[27; 28)
INT_NUMBER@[27; 28) "1"
SEMI@[28; 29) ";"
WHITESPACE@[29; 30) " "
R_CURLY@[30; 31) "}"
WHITESPACE@[31; 32) "\n"
FN_DEF@[32; 48)
FN_KW@[32; 34) "fn"
@ -47,20 +49,21 @@ SOURCE_FILE@[0; 65)
L_PAREN@[36; 37) "("
R_PAREN@[37; 38) ")"
WHITESPACE@[38; 39) " "
BLOCK@[39; 48)
L_CURLY@[39; 40) "{"
WHITESPACE@[40; 41) " "
EXPR_STMT@[41; 43)
LITERAL@[41; 42)
INT_NUMBER@[41; 42) "1"
SEMI@[42; 43) ";"
WHITESPACE@[43; 44) " "
EXPR_STMT@[44; 46)
LITERAL@[44; 45)
INT_NUMBER@[44; 45) "2"
SEMI@[45; 46) ";"
WHITESPACE@[46; 47) " "
R_CURLY@[47; 48) "}"
BLOCK_EXPR@[39; 48)
BLOCK@[39; 48)
L_CURLY@[39; 40) "{"
WHITESPACE@[40; 41) " "
EXPR_STMT@[41; 43)
LITERAL@[41; 42)
INT_NUMBER@[41; 42) "1"
SEMI@[42; 43) ";"
WHITESPACE@[43; 44) " "
EXPR_STMT@[44; 46)
LITERAL@[44; 45)
INT_NUMBER@[44; 45) "2"
SEMI@[45; 46) ";"
WHITESPACE@[46; 47) " "
R_CURLY@[47; 48) "}"
WHITESPACE@[48; 49) "\n"
FN_DEF@[49; 64)
FN_KW@[49; 51) "fn"
@ -71,16 +74,17 @@ SOURCE_FILE@[0; 65)
L_PAREN@[53; 54) "("
R_PAREN@[54; 55) ")"
WHITESPACE@[55; 56) " "
BLOCK@[56; 64)
L_CURLY@[56; 57) "{"
WHITESPACE@[57; 58) " "
EXPR_STMT@[58; 60)
LITERAL@[58; 59)
INT_NUMBER@[58; 59) "1"
SEMI@[59; 60) ";"
WHITESPACE@[60; 61) " "
LITERAL@[61; 62)
INT_NUMBER@[61; 62) "2"
WHITESPACE@[62; 63) " "
R_CURLY@[63; 64) "}"
BLOCK_EXPR@[56; 64)
BLOCK@[56; 64)
L_CURLY@[56; 57) "{"
WHITESPACE@[57; 58) " "
EXPR_STMT@[58; 60)
LITERAL@[58; 59)
INT_NUMBER@[58; 59) "1"
SEMI@[59; 60) ";"
WHITESPACE@[60; 61) " "
LITERAL@[61; 62)
INT_NUMBER@[61; 62) "2"
WHITESPACE@[62; 63) " "
R_CURLY@[63; 64) "}"
WHITESPACE@[64; 65) "\n"

View File

@ -33,7 +33,8 @@ SOURCE_FILE@[0; 29)
NAME_REF@[21; 25)
IDENT@[21; 25) "Copy"
WHITESPACE@[25; 26) " "
BLOCK@[26; 28)
L_CURLY@[26; 27) "{"
R_CURLY@[27; 28) "}"
BLOCK_EXPR@[26; 28)
BLOCK@[26; 28)
L_CURLY@[26; 27) "{"
R_CURLY@[27; 28) "}"
WHITESPACE@[28; 29) "\n"

View File

@ -8,18 +8,19 @@ SOURCE_FILE@[0; 21)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 20)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 18)
TRY_EXPR@[15; 17)
PATH_EXPR@[15; 16)
PATH@[15; 16)
PATH_SEGMENT@[15; 16)
NAME_REF@[15; 16)
IDENT@[15; 16) "x"
QUESTION@[16; 17) "?"
SEMI@[17; 18) ";"
WHITESPACE@[18; 19) "\n"
R_CURLY@[19; 20) "}"
BLOCK_EXPR@[9; 20)
BLOCK@[9; 20)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
EXPR_STMT@[15; 18)
TRY_EXPR@[15; 17)
PATH_EXPR@[15; 16)
PATH@[15; 16)
PATH_SEGMENT@[15; 16)
NAME_REF@[15; 16)
IDENT@[15; 16) "x"
QUESTION@[16; 17) "?"
SEMI@[17; 18) ";"
WHITESPACE@[18; 19) "\n"
R_CURLY@[19; 20) "}"
WHITESPACE@[20; 21) "\n"

View File

@ -8,23 +8,24 @@ SOURCE_FILE@[0; 26)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 25)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) " "
LET_STMT@[11; 23)
LET_KW@[11; 14) "let"
WHITESPACE@[14; 15) " "
BIND_PAT@[15; 16)
NAME@[15; 16)
IDENT@[15; 16) "x"
WHITESPACE@[16; 17) " "
EQ@[17; 18) "="
WHITESPACE@[18; 19) " "
RANGE_EXPR@[19; 22)
LITERAL@[19; 20)
INT_NUMBER@[19; 20) "1"
DOTDOT@[20; 22) ".."
SEMI@[22; 23) ";"
WHITESPACE@[23; 24) " "
R_CURLY@[24; 25) "}"
BLOCK_EXPR@[9; 25)
BLOCK@[9; 25)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 11) " "
LET_STMT@[11; 23)
LET_KW@[11; 14) "let"
WHITESPACE@[14; 15) " "
BIND_PAT@[15; 16)
NAME@[15; 16)
IDENT@[15; 16) "x"
WHITESPACE@[16; 17) " "
EQ@[17; 18) "="
WHITESPACE@[18; 19) " "
RANGE_EXPR@[19; 22)
LITERAL@[19; 20)
INT_NUMBER@[19; 20) "1"
DOTDOT@[20; 22) ".."
SEMI@[22; 23) ";"
WHITESPACE@[23; 24) " "
R_CURLY@[24; 25) "}"
WHITESPACE@[25; 26) "\n"

View File

@ -88,9 +88,10 @@ SOURCE_FILE@[0; 200)
NAME_REF@[68; 76)
IDENT@[68; 76) "Iterator"
WHITESPACE@[76; 77) " "
BLOCK@[77; 79)
L_CURLY@[77; 78) "{"
R_CURLY@[78; 79) "}"
BLOCK_EXPR@[77; 79)
BLOCK@[77; 79)
L_CURLY@[77; 78) "{"
R_CURLY@[78; 79) "}"
WHITESPACE@[79; 80) "\n"
FN_DEF@[80; 134)
FN_KW@[80; 82) "fn"
@ -153,9 +154,10 @@ SOURCE_FILE@[0; 200)
NAME_REF@[123; 131)
IDENT@[123; 131) "Iterator"
WHITESPACE@[131; 132) " "
BLOCK@[132; 134)
L_CURLY@[132; 133) "{"
R_CURLY@[133; 134) "}"
BLOCK_EXPR@[132; 134)
BLOCK@[132; 134)
L_CURLY@[132; 133) "{"
R_CURLY@[133; 134) "}"
WHITESPACE@[134; 135) "\n"
FN_DEF@[135; 199)
FN_KW@[135; 137) "fn"
@ -234,7 +236,8 @@ SOURCE_FILE@[0; 200)
NAME_REF@[188; 196)
IDENT@[188; 196) "Iterator"
WHITESPACE@[196; 197) " "
BLOCK@[197; 199)
L_CURLY@[197; 198) "{"
R_CURLY@[198; 199) "}"
BLOCK_EXPR@[197; 199)
BLOCK@[197; 199)
L_CURLY@[197; 198) "{"
R_CURLY@[198; 199) "}"
WHITESPACE@[199; 200) "\n"

View File

@ -8,47 +8,48 @@ SOURCE_FILE@[0; 52)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 51)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 26)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
REF_EXPR@[23; 25)
AMP@[23; 24) "&"
LITERAL@[24; 25)
INT_NUMBER@[24; 25) "1"
SEMI@[25; 26) ";"
WHITESPACE@[26; 31) "\n "
LET_STMT@[31; 49)
LET_KW@[31; 34) "let"
WHITESPACE@[34; 35) " "
PLACEHOLDER_PAT@[35; 36)
UNDERSCORE@[35; 36) "_"
WHITESPACE@[36; 37) " "
EQ@[37; 38) "="
WHITESPACE@[38; 39) " "
REF_EXPR@[39; 48)
AMP@[39; 40) "&"
MUT_KW@[40; 43) "mut"
WHITESPACE@[43; 44) " "
REF_EXPR@[44; 48)
AMP@[44; 45) "&"
CALL_EXPR@[45; 48)
PATH_EXPR@[45; 46)
PATH@[45; 46)
PATH_SEGMENT@[45; 46)
NAME_REF@[45; 46)
IDENT@[45; 46) "f"
ARG_LIST@[46; 48)
L_PAREN@[46; 47) "("
R_PAREN@[47; 48) ")"
SEMI@[48; 49) ";"
WHITESPACE@[49; 50) "\n"
R_CURLY@[50; 51) "}"
BLOCK_EXPR@[9; 51)
BLOCK@[9; 51)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 15) "\n "
LET_STMT@[15; 26)
LET_KW@[15; 18) "let"
WHITESPACE@[18; 19) " "
PLACEHOLDER_PAT@[19; 20)
UNDERSCORE@[19; 20) "_"
WHITESPACE@[20; 21) " "
EQ@[21; 22) "="
WHITESPACE@[22; 23) " "
REF_EXPR@[23; 25)
AMP@[23; 24) "&"
LITERAL@[24; 25)
INT_NUMBER@[24; 25) "1"
SEMI@[25; 26) ";"
WHITESPACE@[26; 31) "\n "
LET_STMT@[31; 49)
LET_KW@[31; 34) "let"
WHITESPACE@[34; 35) " "
PLACEHOLDER_PAT@[35; 36)
UNDERSCORE@[35; 36) "_"
WHITESPACE@[36; 37) " "
EQ@[37; 38) "="
WHITESPACE@[38; 39) " "
REF_EXPR@[39; 48)
AMP@[39; 40) "&"
MUT_KW@[40; 43) "mut"
WHITESPACE@[43; 44) " "
REF_EXPR@[44; 48)
AMP@[44; 45) "&"
CALL_EXPR@[45; 48)
PATH_EXPR@[45; 46)
PATH@[45; 46)
PATH_SEGMENT@[45; 46)
NAME_REF@[45; 46)
IDENT@[45; 46) "f"
ARG_LIST@[46; 48)
L_PAREN@[46; 47) "("
R_PAREN@[47; 48) ")"
SEMI@[48; 49) ";"
WHITESPACE@[49; 50) "\n"
R_CURLY@[50; 51) "}"
WHITESPACE@[51; 52) "\n"

Some files were not shown because too many files have changed in this diff Show More