mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Use more specific node kinds for literals. (#3419)
Sounding out the approach, to make it clearer what a literal node corresponds to.
This commit is contained in:
@@ -6,80 +6,96 @@
|
||||
|
||||
namespace Carbon::Check {
|
||||
|
||||
auto HandleLiteral(Context& context, Parse::Node parse_node) -> bool {
|
||||
auto token = context.parse_tree().node_token(parse_node);
|
||||
switch (auto token_kind = context.tokens().GetKind(token)) {
|
||||
case Lex::TokenKind::False:
|
||||
case Lex::TokenKind::True: {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::BoolLiteral{
|
||||
parse_node, context.GetBuiltinType(SemIR::BuiltinKind::BoolType),
|
||||
token_kind == Lex::TokenKind::True ? SemIR::BoolValue::True
|
||||
: SemIR::BoolValue::False});
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::IntegerLiteral: {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::IntegerLiteral{
|
||||
parse_node,
|
||||
context.GetBuiltinType(SemIR::BuiltinKind::IntegerType),
|
||||
context.tokens().GetIntegerLiteral(token)});
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::RealLiteral: {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::RealLiteral{
|
||||
parse_node,
|
||||
context.GetBuiltinType(SemIR::BuiltinKind::FloatingPointType),
|
||||
context.tokens().GetRealLiteral(token)});
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::StringLiteral: {
|
||||
auto id = context.tokens().GetStringLiteral(token);
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::StringLiteral{
|
||||
parse_node,
|
||||
context.GetBuiltinType(SemIR::BuiltinKind::StringType), id});
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::Type: {
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinTypeType);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::Bool: {
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinBoolType);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::IntegerTypeLiteral: {
|
||||
auto text = context.tokens().GetTokenText(token);
|
||||
if (text != "i32") {
|
||||
return context.TODO(parse_node, "Currently only i32 is allowed");
|
||||
}
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinIntegerType);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::FloatingPointTypeLiteral: {
|
||||
auto text = context.tokens().GetTokenText(token);
|
||||
if (text != "f64") {
|
||||
return context.TODO(parse_node, "Currently only f64 is allowed");
|
||||
}
|
||||
context.node_stack().Push(parse_node,
|
||||
SemIR::InstId::BuiltinFloatingPointType);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::StringTypeLiteral: {
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinStringType);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
return context.TODO(parse_node, llvm::formatv("Handle {0}", token_kind));
|
||||
}
|
||||
}
|
||||
auto HandleBoolLiteralFalse(Context& context, Parse::Node parse_node) -> bool {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::BoolLiteral{parse_node,
|
||||
context.GetBuiltinType(SemIR::BuiltinKind::BoolType),
|
||||
SemIR::BoolValue::False});
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleBoolLiteralTrue(Context& context, Parse::Node parse_node) -> bool {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::BoolLiteral{parse_node,
|
||||
context.GetBuiltinType(SemIR::BuiltinKind::BoolType),
|
||||
SemIR::BoolValue::True});
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleIntegerLiteral(Context& context, Parse::Node parse_node) -> bool {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::IntegerLiteral{
|
||||
parse_node, context.GetBuiltinType(SemIR::BuiltinKind::IntegerType),
|
||||
context.tokens().GetIntegerLiteral(
|
||||
context.parse_tree().node_token(parse_node))});
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleFloatingPointLiteral(Context& context, Parse::Node parse_node)
|
||||
-> bool {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::RealLiteral{
|
||||
parse_node,
|
||||
context.GetBuiltinType(SemIR::BuiltinKind::FloatingPointType),
|
||||
context.tokens().GetRealLiteral(
|
||||
context.parse_tree().node_token(parse_node))});
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleStringLiteral(Context& context, Parse::Node parse_node) -> bool {
|
||||
context.AddInstAndPush(
|
||||
parse_node,
|
||||
SemIR::StringLiteral{
|
||||
parse_node, context.GetBuiltinType(SemIR::BuiltinKind::StringType),
|
||||
context.tokens().GetStringLiteral(
|
||||
context.parse_tree().node_token(parse_node))});
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleBoolTypeLiteral(Context& context, Parse::Node parse_node) -> bool {
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinBoolType);
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleIntegerTypeLiteral(Context& context, Parse::Node parse_node)
|
||||
-> bool {
|
||||
auto text = context.tokens().GetTokenText(
|
||||
context.parse_tree().node_token(parse_node));
|
||||
if (text != "i32") {
|
||||
return context.TODO(parse_node, "Currently only i32 is allowed");
|
||||
}
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinIntegerType);
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleUnsignedIntegerTypeLiteral(Context& context, Parse::Node parse_node)
|
||||
-> bool {
|
||||
return context.TODO(parse_node, "Need to support unsigned type literals");
|
||||
}
|
||||
|
||||
auto HandleFloatingPointTypeLiteral(Context& context, Parse::Node parse_node)
|
||||
-> bool {
|
||||
auto text = context.tokens().GetTokenText(
|
||||
context.parse_tree().node_token(parse_node));
|
||||
if (text != "f64") {
|
||||
return context.TODO(parse_node, "Currently only f64 is allowed");
|
||||
}
|
||||
context.node_stack().Push(parse_node,
|
||||
SemIR::InstId::BuiltinFloatingPointType);
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleStringTypeLiteral(Context& context, Parse::Node parse_node) -> bool {
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinStringType);
|
||||
return true;
|
||||
}
|
||||
|
||||
auto HandleTypeTypeLiteral(Context& context, Parse::Node parse_node) -> bool {
|
||||
context.node_stack().Push(parse_node, SemIR::InstId::BuiltinTypeType);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -298,7 +298,6 @@ class NodeStack {
|
||||
case Parse::NodeKind::IfExprElse:
|
||||
case Parse::NodeKind::IndexExpr:
|
||||
case Parse::NodeKind::InfixOperator:
|
||||
case Parse::NodeKind::Literal:
|
||||
case Parse::NodeKind::MemberAccessExpr:
|
||||
case Parse::NodeKind::NameExpr:
|
||||
case Parse::NodeKind::ParenExpr:
|
||||
@@ -314,6 +313,11 @@ class NodeStack {
|
||||
case Parse::NodeKind::StructFieldType:
|
||||
case Parse::NodeKind::StructTypeLiteral:
|
||||
case Parse::NodeKind::TupleLiteral:
|
||||
// Use x-macros to handle literal cases.
|
||||
#define CARBON_PARSE_NODE_KIND(...)
|
||||
#define CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, ...) \
|
||||
case Parse::NodeKind::Name:
|
||||
#include "toolchain/parse/node_kind.def"
|
||||
return IdKind::InstId;
|
||||
case Parse::NodeKind::IfCondition:
|
||||
case Parse::NodeKind::IfExprIf:
|
||||
|
||||
@@ -77,18 +77,60 @@ auto HandleExprInPostfix(Context& context) -> void {
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::False:
|
||||
case Lex::TokenKind::True:
|
||||
case Lex::TokenKind::IntegerLiteral:
|
||||
case Lex::TokenKind::RealLiteral:
|
||||
case Lex::TokenKind::StringLiteral:
|
||||
case Lex::TokenKind::Bool:
|
||||
case Lex::TokenKind::IntegerTypeLiteral:
|
||||
case Lex::TokenKind::UnsignedIntegerTypeLiteral:
|
||||
case Lex::TokenKind::FloatingPointTypeLiteral:
|
||||
case Lex::TokenKind::StringTypeLiteral:
|
||||
case Lex::TokenKind::False: {
|
||||
context.AddLeafNode(NodeKind::BoolLiteralFalse, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::True: {
|
||||
context.AddLeafNode(NodeKind::BoolLiteralTrue, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::IntegerLiteral: {
|
||||
context.AddLeafNode(NodeKind::IntegerLiteral, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::RealLiteral: {
|
||||
context.AddLeafNode(NodeKind::FloatingPointLiteral, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::StringLiteral: {
|
||||
context.AddLeafNode(NodeKind::StringLiteral, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::Bool: {
|
||||
context.AddLeafNode(NodeKind::BoolTypeLiteral, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::IntegerTypeLiteral: {
|
||||
context.AddLeafNode(NodeKind::IntegerTypeLiteral, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::UnsignedIntegerTypeLiteral: {
|
||||
context.AddLeafNode(NodeKind::UnsignedIntegerTypeLiteral,
|
||||
context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::FloatingPointTypeLiteral: {
|
||||
context.AddLeafNode(NodeKind::FloatingPointTypeLiteral,
|
||||
context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::StringTypeLiteral: {
|
||||
context.AddLeafNode(NodeKind::StringTypeLiteral, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
case Lex::TokenKind::Type: {
|
||||
context.AddLeafNode(NodeKind::Literal, context.Consume());
|
||||
context.AddLeafNode(NodeKind::TypeTypeLiteral, context.Consume());
|
||||
context.PushState(state);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
// - CARBON_PARSE_NODE_KIND_CHILD_COUNT(Name, ChildCount, LexTokenKinds)
|
||||
// Defines a parse node with a set number of children, often 0. This count
|
||||
// must be correct even when the node contains errors.
|
||||
// - CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, Token)
|
||||
// Defines a parse node that corresponds to a token that is a single-token
|
||||
// literal. The token is wrapped for LexTokenKinds.
|
||||
//
|
||||
// In both cases, LexTokenKinds says which Lex::TokenKind values that this
|
||||
// parse node can correspond to, and is a sequence of:
|
||||
@@ -47,6 +50,16 @@
|
||||
CARBON_PARSE_NODE_KIND(Name)
|
||||
#endif
|
||||
|
||||
// This is expected to be used with something like:
|
||||
//
|
||||
// // Use x-macros to handle literal cases.
|
||||
// #define CARBON_PARSE_NODE_KIND(...)
|
||||
// #define CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, ...) <code>
|
||||
#ifndef CARBON_PARSE_NODE_KIND_TOKEN_LITERAL
|
||||
#define CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(Name, LexTokenKinds) \
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(Name, 0, LexTokenKinds)
|
||||
#endif
|
||||
|
||||
// The start of the file.
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(FileStart, 0, CARBON_TOKEN(StartOfFile))
|
||||
|
||||
@@ -187,15 +200,13 @@ CARBON_PARSE_NODE_KIND_BRACKET(FunctionDecl, FunctionIntroducer,
|
||||
//
|
||||
// Exprs and ParamListComma may repeat with ParamListComma as a
|
||||
// separator.
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(ParamListStart, 0,
|
||||
CARBON_TOKEN(OpenParen))
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(ParamListStart, 0, CARBON_TOKEN(OpenParen))
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(ImplicitParamListStart, 0,
|
||||
CARBON_TOKEN(OpenSquareBracket))
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(ParamListComma, 0, CARBON_TOKEN(Comma))
|
||||
CARBON_PARSE_NODE_KIND_BRACKET(ParamList, ParamListStart,
|
||||
CARBON_TOKEN(CloseParen))
|
||||
CARBON_PARSE_NODE_KIND_BRACKET(ImplicitParamList,
|
||||
ImplicitParamListStart,
|
||||
CARBON_PARSE_NODE_KIND_BRACKET(ImplicitParamList, ImplicitParamListStart,
|
||||
CARBON_TOKEN(CloseSquareBracket))
|
||||
|
||||
// An array type, such as `[i32; 3]` or `[i32;]`:
|
||||
@@ -413,21 +424,27 @@ CARBON_PARSE_NODE_KIND_CHILD_COUNT(MemberAccessExpr, 2, CARBON_TOKEN(Period))
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(PointerMemberAccessExpr, 2,
|
||||
CARBON_TOKEN(MinusGreater))
|
||||
|
||||
// clang-format off
|
||||
// A value literal.
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolLiteralFalse, CARBON_TOKEN(False))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolLiteralTrue, CARBON_TOKEN(True))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(IntegerLiteral,
|
||||
CARBON_TOKEN(IntegerLiteral))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(FloatingPointLiteral, CARBON_TOKEN(RealLiteral))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(StringLiteral, CARBON_TOKEN(StringLiteral))
|
||||
|
||||
// A literal.
|
||||
CARBON_PARSE_NODE_KIND_CHILD_COUNT(Literal, 0,
|
||||
CARBON_TOKEN(False)
|
||||
CARBON_TOKEN(True)
|
||||
CARBON_TOKEN(IntegerLiteral)
|
||||
CARBON_TOKEN(RealLiteral)
|
||||
CARBON_TOKEN(StringLiteral)
|
||||
CARBON_TOKEN(Bool)
|
||||
CARBON_TOKEN(IntegerTypeLiteral)
|
||||
CARBON_TOKEN(UnsignedIntegerTypeLiteral)
|
||||
CARBON_TOKEN(FloatingPointTypeLiteral)
|
||||
CARBON_TOKEN(StringTypeLiteral)
|
||||
CARBON_TOKEN(Type))
|
||||
// A type literal.
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(BoolTypeLiteral, CARBON_TOKEN(Bool))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(IntegerTypeLiteral,
|
||||
CARBON_TOKEN(IntegerTypeLiteral))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(UnsignedIntegerTypeLiteral,
|
||||
CARBON_TOKEN(UnsignedIntegerTypeLiteral))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(FloatingPointTypeLiteral,
|
||||
CARBON_TOKEN(FloatingPointTypeLiteral))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(StringTypeLiteral,
|
||||
CARBON_TOKEN(StringTypeLiteral))
|
||||
CARBON_PARSE_NODE_KIND_TOKEN_LITERAL(TypeTypeLiteral, CARBON_TOKEN(Type))
|
||||
|
||||
// clang-format off
|
||||
|
||||
// A prefix operator:
|
||||
// _external_: expression
|
||||
@@ -624,6 +641,7 @@ CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfTypeNameExpr, 0,
|
||||
#undef CARBON_PARSE_NODE_KIND
|
||||
#undef CARBON_PARSE_NODE_KIND_BRACKET
|
||||
#undef CARBON_PARSE_NODE_KIND_CHILD_COUNT
|
||||
#undef CARBON_PARSE_NODE_KIND_TOKEN_LITERAL
|
||||
#undef CARBON_TOKEN
|
||||
#undef CARBON_ANY_TOKEN
|
||||
#undef CARBON_IF_ERROR
|
||||
|
||||
@@ -25,7 +25,7 @@ var x: [i32;;
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 5},
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ var x: [i32];
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprSemi', text: ']', has_error: yes, subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 6},
|
||||
|
||||
+2
-2
@@ -12,9 +12,9 @@ var x: [i32; 10];
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '10'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '10'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExpr', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 9},
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ var x: [i32;];
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExpr', text: ']', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 6},
|
||||
|
||||
+6
-6
@@ -13,24 +13,24 @@ var test_str: String = "Test";
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'test_i32'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'test_f64'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointTypeLiteral', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0.1'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '0.1'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'test_str'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'StringTypeLiteral', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '"Test"'},
|
||||
// CHECK:STDOUT: {kind: 'StringLiteral', text: '"Test"'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
// CHECK:STDOUT: ]
|
||||
|
||||
+16
-16
@@ -36,48 +36,48 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'ints'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '5'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '5'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExpr', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '8'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '9'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '9'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0x8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0x8'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0b1000'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0b1000'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '39999999999999999993'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '39999999999999999993'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteral', text: ')', subtree_size: 12},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 22},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'floats'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointTypeLiteral', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '7'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '7'},
|
||||
// CHECK:STDOUT: {kind: 'ArrayExpr', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0.9'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '0.9'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '8.0'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '8.0'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '80.0'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '80.0'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1.0e7'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '1.0e7'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1.0e8'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '1.0e8'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1.0e-8'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '1.0e-8'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '39999999999999999993.0e39999999999999999993'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointLiteral', text: '39999999999999999993.0e39999999999999999993'},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteralComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'TupleLiteral', text: ')', subtree_size: 16},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 26},
|
||||
|
||||
+2
-2
@@ -15,10 +15,10 @@ fn F(n: i32) -> i32 {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 10},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
|
||||
+3
-3
@@ -29,7 +29,7 @@ class Foo {
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldValue', text: '=', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructLiteral', text: '}', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatement', text: ';', subtree_size: 8},
|
||||
@@ -43,7 +43,7 @@ class Foo {
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
@@ -67,7 +67,7 @@ class Foo {
|
||||
// CHECK:STDOUT: {kind: 'SelfValueNameExpr', text: 'self'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'PointerMemberAccessExpr', text: '->', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 19},
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ class Foo {
|
||||
// CHECK:STDOUT: {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ClassDefinition', text: '}', subtree_size: 9},
|
||||
|
||||
@@ -24,7 +24,7 @@ fn foo() {
|
||||
// CHECK:STDOUT: {kind: 'ForHeaderStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ForIn', text: ':', has_error: yes, subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'y'},
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ fn foo() {
|
||||
// CHECK:STDOUT: {kind: 'ForHeaderStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ForIn', text: 'var', has_error: yes, subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'y'},
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ fn foo() -> i32 {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'ForHeaderStart', text: '('},
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ fn foo() {
|
||||
// CHECK:STDOUT: {kind: 'ForHeaderStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'y'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ForIn', text: 'in', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'x'},
|
||||
@@ -32,7 +32,7 @@ fn foo() {
|
||||
// CHECK:STDOUT: {kind: 'ForHeaderStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'z'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ForIn', text: 'in', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'y'},
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ fn foo() {
|
||||
// CHECK:STDOUT: {kind: 'ForHeaderStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ForIn', text: 'in', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'y'},
|
||||
|
||||
@@ -13,7 +13,7 @@ fn foo(addr a: i32*);
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'Address', text: 'addr', subtree_size: 5},
|
||||
|
||||
@@ -13,11 +13,11 @@ fn foo[a: i32, b: i32]();
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
|
||||
@@ -13,11 +13,11 @@ fn foo(a: i32, b: i32);
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 12},
|
||||
|
||||
@@ -13,7 +13,7 @@ fn foo() -> u32;
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'u32'},
|
||||
// CHECK:STDOUT: {kind: 'UnsignedIntegerTypeLiteral', text: 'u32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
@@ -15,11 +15,11 @@ fn foo(bar: i64, baz: i64) {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'bar'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i64'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i64'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'baz'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i64'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i64'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12},
|
||||
|
||||
@@ -15,11 +15,11 @@ fn foo() -> f64 {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointTypeLiteral', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '42'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '42'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatement', text: ';', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 11},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
@@ -36,7 +36,7 @@ interface Bar[a: i32] {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', has_error: yes, subtree_size: 8},
|
||||
@@ -49,7 +49,7 @@ interface Bar[a: i32] {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'InterfaceDecl', text: 'interface', has_error: yes, subtree_size: 8},
|
||||
|
||||
@@ -15,7 +15,7 @@ interface Bar[a: i32]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
@@ -25,7 +25,7 @@ interface Bar[a: i32]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
|
||||
@@ -15,7 +15,7 @@ interface Bar[a: i32,]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
|
||||
@@ -26,7 +26,7 @@ interface Bar[a: i32,]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
|
||||
|
||||
+12
-12
@@ -15,27 +15,27 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'd'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'e'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'f'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
@@ -45,27 +45,27 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'd'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'e'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'f'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
|
||||
@@ -15,11 +15,11 @@ interface Bar[a: i32, b: i32]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
@@ -29,11 +29,11 @@ interface Bar[a: i32, b: i32]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
|
||||
@@ -15,11 +15,11 @@ interface Bar[a: i32, b: i32,]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 10},
|
||||
@@ -30,11 +30,11 @@ interface Bar[a: i32, b: i32,]() {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 10},
|
||||
|
||||
@@ -13,7 +13,7 @@ fn foo(a:! i32);
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'GenericPatternBinding', text: ':!', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 8},
|
||||
|
||||
@@ -13,7 +13,7 @@ fn foo(template a:! i32);
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'GenericPatternBinding', text: ':!', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Template', text: 'template', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 6},
|
||||
|
||||
@@ -13,7 +13,7 @@ fn foo(template addr a:! i32);
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'GenericPatternBinding', text: ':!', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Address', text: 'addr', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'Template', text: 'template', subtree_size: 5},
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ interface Bar(a: i32) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 8},
|
||||
@@ -23,7 +23,7 @@ interface Bar(a: i32) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 8},
|
||||
|
||||
@@ -15,7 +15,7 @@ interface Bar(a: i32,) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 6},
|
||||
@@ -24,7 +24,7 @@ interface Bar(a: i32,) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 6},
|
||||
|
||||
+12
-12
@@ -15,27 +15,27 @@ interface Bar(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'd'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'e'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'f'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 25},
|
||||
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 28},
|
||||
@@ -43,27 +43,27 @@ interface Bar(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'd'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'e'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'f'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 25},
|
||||
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 28},
|
||||
|
||||
+4
-4
@@ -15,11 +15,11 @@ interface Bar(a: i32, b: i32) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 12},
|
||||
@@ -27,11 +27,11 @@ interface Bar(a: i32, b: i32) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 12},
|
||||
|
||||
@@ -15,11 +15,11 @@ interface Bar(a: i32, b: i32,) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Foo'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 10},
|
||||
@@ -28,11 +28,11 @@ interface Bar(a: i32, b: i32,) {}
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'Bar'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 10},
|
||||
|
||||
+4
-4
@@ -15,18 +15,18 @@ fn F(b: bool, x: i32, y: i32) -> bool {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'x'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'y'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 13},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 18},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
|
||||
@@ -21,7 +21,7 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
|
||||
|
||||
@@ -21,12 +21,12 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'IfExprElse', text: 'else', has_error: yes, subtree_size: 6},
|
||||
|
||||
@@ -21,12 +21,12 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'IfExprElse', text: 'if', has_error: yes, subtree_size: 6},
|
||||
|
||||
@@ -21,10 +21,10 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', has_error: yes, subtree_size: 2},
|
||||
|
||||
@@ -21,10 +21,10 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
|
||||
|
||||
@@ -26,7 +26,7 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'IfConditionStart', text: 'if', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfCondition', text: 'if', has_error: yes, subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'CodeBlockStart', text: 'then', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: 'then', has_error: yes},
|
||||
|
||||
+5
-5
@@ -15,24 +15,24 @@ fn F() -> if true then i32 else i32* {
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'IfExprElse', text: 'else', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 2},
|
||||
|
||||
@@ -15,10 +15,10 @@ fn F(b: bool) -> bool {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 10},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
|
||||
+2
-2
@@ -11,12 +11,12 @@ var v: i32 = t[0];
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 't'},
|
||||
// CHECK:STDOUT: {kind: 'IndexExprStart', text: '[', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IndexExpr', text: ']', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 10},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ var v: i32 = t[];
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 't'},
|
||||
|
||||
@@ -14,12 +14,12 @@ var v: i32 = t[0,];
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 't'},
|
||||
// CHECK:STDOUT: {kind: 'IndexExprStart', text: '[', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IndexExpr', text: ']', has_error: yes, subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 10},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ let ? = 4;
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: '?', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: '?', has_error: yes, subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'LetInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'LetDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
// CHECK:STDOUT: ]
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ let a = 4;
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: '=', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: 'a', has_error: yes, subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'LetInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'LetDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
// CHECK:STDOUT: ]
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'LetIntroducer', text: 'let'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'LetDecl', text: ';', has_error: yes, subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
|
||||
@@ -31,7 +31,7 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'LetIntroducer', text: 'let'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'LetDecl', text: ';', has_error: yes, subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 11},
|
||||
|
||||
+4
-4
@@ -14,10 +14,10 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'LetIntroducer', text: 'let'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'LetInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'LetDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
@@ -26,10 +26,10 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'LetIntroducer', text: 'let'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 's'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'StringTypeLiteral', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'LetInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '"hello"'},
|
||||
// CHECK:STDOUT: {kind: 'StringLiteral', text: '"hello"'},
|
||||
// CHECK:STDOUT: {kind: 'LetDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 13},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
+4
-4
@@ -32,17 +32,17 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'b'},
|
||||
|
||||
@@ -25,18 +25,18 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', has_error: yes, subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 22},
|
||||
|
||||
@@ -16,7 +16,7 @@ var n: i8 = n* n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -25,7 +25,7 @@ var c: i32 = == ;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
@@ -34,7 +34,7 @@ var c: i32 = == ;
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: '==', has_error: yes},
|
||||
@@ -43,7 +43,7 @@ var c: i32 = == ;
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'InvalidParse', text: '==', has_error: yes},
|
||||
|
||||
@@ -27,10 +27,10 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', has_error: yes, subtree_size: 2},
|
||||
|
||||
@@ -29,25 +29,25 @@ fn F(n: i32) {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'not', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', has_error: yes, subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '+', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', has_error: yes, subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '5'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '5'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '%', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', has_error: yes, subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 26},
|
||||
|
||||
@@ -39,17 +39,17 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'ParenExpr', text: ')', has_error: yes, subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '+', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 2},
|
||||
|
||||
@@ -14,7 +14,7 @@ var n: i8 = n* -n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -14,7 +14,7 @@ var n: i8 = n* *p;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -18,7 +18,7 @@ var n: i8 = n**p;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -18,7 +18,7 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'G'},
|
||||
// CHECK:STDOUT: {kind: 'CallExprStart', text: '(', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'CallExprComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -14,12 +14,12 @@ fn F(p: i32*, n: i32) {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'p'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'ParamListComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 10},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
|
||||
|
||||
+3
-3
@@ -19,7 +19,7 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'q'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
@@ -27,10 +27,10 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 't'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 22},
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ var n: i8 = n * n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -11,7 +11,7 @@ var n: i8 = n*n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -11,10 +11,10 @@ var n: i8 = 3*(n);
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '3'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '3'},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'ParenExpr', text: ')', subtree_size: 3},
|
||||
|
||||
@@ -11,13 +11,13 @@ var n: i8 = (n)*3;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'ParenExpr', text: ')', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '3'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '3'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 11},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
+2
-2
@@ -11,10 +11,10 @@ var v: type = i8*;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
@@ -16,7 +16,7 @@ fn F() {
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 4},
|
||||
|
||||
@@ -11,10 +11,10 @@ var v: type = i8* ;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
+11
-11
@@ -20,38 +20,38 @@ fn F(n: i32) {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '-', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'const', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '&', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'IfConditionStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '<', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', subtree_size: 12},
|
||||
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 13},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'false'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralFalse', text: 'false'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'as', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', subtree_size: 17},
|
||||
// CHECK:STDOUT: {kind: 'IfCondition', text: ')', subtree_size: 19},
|
||||
|
||||
@@ -20,23 +20,23 @@ fn F(c: bool) {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'p'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 6},
|
||||
@@ -44,9 +44,9 @@ fn F(c: bool) {
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprElse', text: 'else', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 10},
|
||||
@@ -60,9 +60,9 @@ fn F(c: bool) {
|
||||
// CHECK:STDOUT: {kind: 'ParenExpr', text: ')', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'c'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '1'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '2'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprElse', text: 'else', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '+=', subtree_size: 15},
|
||||
// CHECK:STDOUT: {kind: 'ExprStatement', text: ';', subtree_size: 16},
|
||||
|
||||
@@ -20,7 +20,7 @@ fn F(p: i32*) {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'p'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 6},
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ var b: bool = not true;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
@@ -20,10 +20,10 @@ var b: bool = not true;
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'not', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
@@ -12,7 +12,7 @@ var n: i8 =-n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ var n: i8 = n *n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
@@ -14,10 +14,10 @@ var v: type = i8 *;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
+3
-3
@@ -14,15 +14,15 @@ var n: i8 = F(i8 *, 0);
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'CallExprStart', text: '(', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'CallExprComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'CallExpr', text: ')', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 13},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
@@ -14,12 +14,12 @@ var n: i8 = F(i8 *);
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'CallExprStart', text: '(', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'CallExpr', text: ')', subtree_size: 5},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 11},
|
||||
|
||||
+2
-2
@@ -14,10 +14,10 @@ var v: type = i8 * ;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
|
||||
|
||||
@@ -17,7 +17,7 @@ fn F() -> const const i32* {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'const', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'const', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 4},
|
||||
|
||||
@@ -14,7 +14,7 @@ var n: i8 = - n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ var n: i8 =- n;
|
||||
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i8'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'NameExpr', text: 'n'},
|
||||
|
||||
+3
-3
@@ -15,7 +15,7 @@ fn C() -> const (i32*) { return C(); }
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'A'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'const', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 4},
|
||||
@@ -31,7 +31,7 @@ fn C() -> const (i32*) { return C(); }
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'const', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'ParenExpr', text: ')', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 5},
|
||||
@@ -48,7 +48,7 @@ fn C() -> const (i32*) { return C(); }
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'ParenExprOrTupleLiteralStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'ParenExpr', text: ')', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'const', subtree_size: 5},
|
||||
|
||||
@@ -39,15 +39,15 @@ fn H() -> i32 {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '3'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '3'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', has_error: yes, subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', has_error: yes, subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatement', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 16},
|
||||
@@ -55,13 +55,13 @@ fn H() -> i32 {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'G'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'InfixOperator', text: '+', has_error: yes, subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatement', text: ';', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 14},
|
||||
@@ -69,11 +69,11 @@ fn H() -> i32 {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'H'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', has_error: yes, subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatement', text: ';', subtree_size: 5},
|
||||
|
||||
+6
-6
@@ -17,11 +17,11 @@ var T: type = if true then i32* else f64*;
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'p'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12},
|
||||
@@ -31,15 +31,15 @@ var T: type = if true then i32* else f64*;
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 16},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'T'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'BoolLiteralTrue', text: 'true'},
|
||||
// CHECK:STDOUT: {kind: 'IfExprIf', text: 'if', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'IfExprThen', text: 'then', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'FloatingPointTypeLiteral', text: 'f64'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'IfExprElse', text: 'else', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 14},
|
||||
|
||||
+5
-5
@@ -18,19 +18,19 @@ fn F() -> i32 {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'p'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
@@ -39,7 +39,7 @@ fn F() -> i32 {
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 9},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'q'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 5},
|
||||
|
||||
@@ -18,7 +18,7 @@ fn F() -> String {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'StringTypeLiteral', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'EmptyDecl', text: ';', has_error: yes},
|
||||
|
||||
+3
-3
@@ -16,16 +16,16 @@ fn F() -> String {
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
|
||||
// CHECK:STDOUT: {kind: 'ParamListStart', text: '('},
|
||||
// CHECK:STDOUT: {kind: 'ParamList', text: ')', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'StringTypeLiteral', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
|
||||
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnedModifier', text: 'returned'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 's'},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'StringTypeLiteral', text: 'String'},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
|
||||
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '"hello"'},
|
||||
// CHECK:STDOUT: {kind: 'StringLiteral', text: '"hello"'},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 8},
|
||||
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
|
||||
// CHECK:STDOUT: {kind: 'ReturnVarModifier', text: 'var'},
|
||||
|
||||
@@ -17,7 +17,7 @@ var x: {.a: i32,,} = {};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldType', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldUnknown', text: ',', has_error: yes},
|
||||
|
||||
@@ -17,7 +17,7 @@ var x: {.a = 0,,} = {};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldValue', text: '=', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldUnknown', text: ',', has_error: yes},
|
||||
|
||||
@@ -17,12 +17,12 @@ var x: {."hello": i32, .y: i32} = {};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: '"hello"', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldUnknown', text: ':', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'StructComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'y'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldType', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructTypeLiteral', text: '}', subtree_size: 11},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 13},
|
||||
|
||||
@@ -17,12 +17,12 @@ var x: {."hello" = 0, .y = 4} = {};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: '"hello"', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldUnknown', text: '=', has_error: yes},
|
||||
// CHECK:STDOUT: {kind: 'StructComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'y'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '4'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldValue', text: '=', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructLiteral', text: '}', subtree_size: 11},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 13},
|
||||
|
||||
@@ -17,7 +17,7 @@ var x: {.a: i32 banana} = {.a = 0};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldType', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructTypeLiteral', text: '}', has_error: yes, subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 8},
|
||||
@@ -25,7 +25,7 @@ var x: {.a: i32 banana} = {.a = 0};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldValue', text: '=', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructLiteral', text: '}', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 17},
|
||||
|
||||
@@ -17,7 +17,7 @@ var x: {.a: i32} = {.a = 0 banana};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldType', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructTypeLiteral', text: '}', subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 8},
|
||||
@@ -25,7 +25,7 @@ var x: {.a: i32} = {.a = 0 banana};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerLiteral', text: '0'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldValue', text: '=', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructLiteral', text: '}', has_error: yes, subtree_size: 6},
|
||||
// CHECK:STDOUT: {kind: 'VariableDecl', text: ';', subtree_size: 17},
|
||||
|
||||
@@ -17,7 +17,7 @@ var x: {.a: i32, .b = 0} = {};
|
||||
// CHECK:STDOUT: {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
|
||||
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'IntegerTypeLiteral', text: 'i32'},
|
||||
// CHECK:STDOUT: {kind: 'StructFieldType', text: ':', subtree_size: 4},
|
||||
// CHECK:STDOUT: {kind: 'StructComma', text: ','},
|
||||
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user