Shift Parser from 'Identifier' to 'Name' naming (#2947)

This PR renames parse nodes on a Name/NameExpression taxonomy. NameExpressions occur in a name context. The difference is that in non-expression contexts it's useful to return the identifier / string ID for adding to name lookup, whereas in expression contexts it's useful to return the resolved node ID for consistency with other expressions.

In the code, I do note SelfValueName is returned in the expression context: I'd expect this to change, as `self` in `[self: Self]` versus `self.Foo()` will probably be best handled similarly to the above. That means that, in the proposed taxonomy, both `SelfValueName` and `SelfValueNameExpression` will exist in order to assist semantics.

To contrast choices:

Original | Current | [zygoloid suggestion](https://discord.com/channels/655572317891461132/655578254970716160/1121581663399464970) | [This PR](https://discord.com/channels/655572317891461132/655578254970716160/1121814551789318215)
--- | --- | --- | ---
DeclaredName/DesignatedName | Identifier | NameComponent | Name
NameReference | NameReference | NameReference | NameExpression
SelfValueIdentifier | SelfValueIdentifier | SelfValueReference | SelfValueName
SelfTypeIdentifier | SelfTypeIdentiifer | SelfTypeReference | SelfTypeNameExpression
This commit is contained in:
Jon Ross-Perkins
2023-06-26 15:49:57 -07:00
committed by GitHub
parent 3a9bc01ec4
commit b2084ea15d
156 changed files with 548 additions and 549 deletions
+4 -4
View File
@@ -5,16 +5,16 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'a'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'a'},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 2},
// CHECK:STDOUT: {kind: 'NameReference', text: 'b'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'b'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'c'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'c'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', subtree_size: 7},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 14},
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', has_error: yes, subtree_size: 8},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -5,25 +5,25 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'a'},
// CHECK:STDOUT: {kind: 'Name', text: 'a'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InvalidParse', text: ';', has_error: yes},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '==', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'b'},
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'InvalidParse', text: '==', has_error: yes},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '==', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'c'},
// CHECK:STDOUT: {kind: 'Name', text: 'c'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
@@ -5,16 +5,16 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'a'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'a'},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 2},
// CHECK:STDOUT: {kind: 'NameReference', text: 'b'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'b'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'or', has_error: yes, subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'c'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'c'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'or', has_error: yes, subtree_size: 7},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 14},
@@ -5,16 +5,16 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'a'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'a'},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'or', subtree_size: 2},
// CHECK:STDOUT: {kind: 'NameReference', text: 'b'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'b'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'or', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', has_error: yes, subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'c'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'c'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', has_error: yes, subtree_size: 7},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 14},
@@ -5,13 +5,13 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '-', has_error: yes, subtree_size: 4},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 10},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -5,13 +5,13 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'NameReference', text: 'p'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'p'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', has_error: yes, subtree_size: 4},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 10},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', has_error: yes, subtree_size: 9},
+11 -11
View File
@@ -5,26 +5,26 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'a'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'b'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'a'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'b'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'NameReference', text: 'c'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'd'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'c'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'd'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '+', subtree_size: 7},
// CHECK:STDOUT: {kind: 'NameReference', text: 'd'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'd'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'd'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'd'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'NameReference', text: 'e'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'e'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '<<', has_error: yes, subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'f'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'f'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '&', has_error: yes, subtree_size: 7},
// CHECK:STDOUT: {kind: 'NameReference', text: 'g'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'g'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'not', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '-', has_error: yes, subtree_size: 10},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 18},
+4 -4
View File
@@ -5,17 +5,17 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'G'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'G'},
// CHECK:STDOUT: {kind: 'CallExpressionStart', text: '(', subtree_size: 2},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'CallExpressionComma', text: ','},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'CallExpression', text: ')', subtree_size: 9},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 10},
@@ -5,14 +5,14 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'Identifier', text: 'p'},
// CHECK:STDOUT: {kind: 'Name', text: 'p'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ParameterListComma', text: ','},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 10},
+5 -5
View File
@@ -5,21 +5,21 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'q'},
// CHECK:STDOUT: {kind: 'Name', text: 'q'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 4},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'p'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'p'},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 't'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'type'},
// CHECK:STDOUT: {kind: 'Name', text: 't'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'type'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'Literal', text: 'i32'},
+12 -12
View File
@@ -5,32 +5,32 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 't'},
// CHECK:STDOUT: {kind: 'NameReference', text: 't'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 't'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 't'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 6},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 6},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'p'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'p'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '*', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 7},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '=', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 6},
+3 -3
View File
@@ -5,12 +5,12 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
+3 -3
View File
@@ -5,12 +5,12 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -5,13 +5,13 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'Literal', text: '3'},
// CHECK:STDOUT: {kind: 'ParenExpressionOrTupleLiteralStart', text: '('},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'ParenExpression', text: ')', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 5},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 11},
@@ -5,12 +5,12 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'ParenExpressionOrTupleLiteralStart', text: '('},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'ParenExpression', text: ')', subtree_size: 3},
// CHECK:STDOUT: {kind: 'Literal', text: '3'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 5},
+2 -2
View File
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'v'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'type'},
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'type'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
+2 -2
View File
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '++', subtree_size: 2},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '++', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 4},
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'v'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'type'},
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'type'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
+4 -4
View File
@@ -5,18 +5,18 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'a'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'a'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'not', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 3},
// CHECK:STDOUT: {kind: 'NameReference', text: 'b'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'b'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'not', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 7},
// CHECK:STDOUT: {kind: 'NameReference', text: 'c'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'c'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: 'not', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InfixOperator', text: 'and', subtree_size: 10},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 11},
+3 -3
View File
@@ -5,15 +5,15 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '-', subtree_size: 2},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'b'},
// CHECK:STDOUT: {kind: 'Name', text: 'b'},
// CHECK:STDOUT: {kind: 'Literal', text: 'bool'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
+2 -2
View File
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '-', subtree_size: 2},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
+2 -2
View File
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'F'},
// CHECK:STDOUT: {kind: 'Name', text: 'F'},
// CHECK:STDOUT: {kind: 'ParameterListStart', text: '('},
// CHECK:STDOUT: {kind: 'ParameterList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '++', subtree_size: 2},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '++', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExpressionStatement', text: ';', subtree_size: 4},
@@ -5,12 +5,12 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'InfixOperator', text: '*', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'v'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'type'},
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'type'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'F'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'F'},
// CHECK:STDOUT: {kind: 'CallExpressionStart', text: '(', subtree_size: 2},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'F'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'F'},
// CHECK:STDOUT: {kind: 'CallExpressionStart', text: '(', subtree_size: 2},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PostfixOperator', text: '*', subtree_size: 2},
@@ -5,8 +5,8 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'v'},
// CHECK:STDOUT: {kind: 'NameReference', text: 'type'},
// CHECK:STDOUT: {kind: 'Name', text: 'v'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'type'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '-', subtree_size: 2},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -5,11 +5,11 @@
// AUTOUPDATE
// CHECK:STDOUT: [
// CHECK:STDOUT: {kind: 'VariableIntroducer', text: 'var'},
// CHECK:STDOUT: {kind: 'Identifier', text: 'n'},
// CHECK:STDOUT: {kind: 'Name', text: 'n'},
// CHECK:STDOUT: {kind: 'Literal', text: 'i8'},
// CHECK:STDOUT: {kind: 'PatternBinding', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},
// CHECK:STDOUT: {kind: 'NameReference', text: 'n'},
// CHECK:STDOUT: {kind: 'NameExpression', text: 'n'},
// CHECK:STDOUT: {kind: 'PrefixOperator', text: '-', subtree_size: 2},
// CHECK:STDOUT: {kind: 'VariableDeclaration', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},