Track the start of a signature more accurately (#6760)

This change ensures that a function signature always starts with an
`IdentifierNameMaybeBeforeSignature` node (renamed from
`IdentifierNameBeforeParams`), even in the case of function declarations
like `fn F -> T` that have no parameter list. As a consequence, this
ensures that we push new entries onto `pattern_block_stack` and
`full_pattern_stack` when we start processing the function signature.
This commit is contained in:
Geoff Romer
2026-02-23 22:46:03 +00:00
committed by GitHub
parent 375a736c42
commit 4a0cf6c1fb
282 changed files with 1041 additions and 1039 deletions
@@ -16,14 +16,14 @@ interface Bar[]() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 7},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
@@ -28,14 +28,14 @@ interface Bar[].Baz[] {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -46,15 +46,15 @@ interface Bar[].Baz[] {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 6},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -66,11 +66,11 @@ interface Bar[].Baz[] {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 4},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Baz'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Baz'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 9},
@@ -16,9 +16,9 @@ interface Bar[a: i32]() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -26,9 +26,9 @@ interface Bar[a: i32]() {}
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 10},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -16,9 +16,9 @@ interface Bar[a: i32,]() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
@@ -27,9 +27,9 @@ interface Bar[a: i32,]() {}
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 11},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
+14 -14
View File
@@ -16,29 +16,29 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'e'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'e'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
@@ -46,29 +46,29 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 30},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'e'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'e'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
@@ -16,13 +16,13 @@ interface Bar[a: i32, b: i32]() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
@@ -30,13 +30,13 @@ interface Bar[a: i32, b: i32]() {}
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 14},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
@@ -16,13 +16,13 @@ interface Bar[a: i32, b: i32,]() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
@@ -31,13 +31,13 @@ interface Bar[a: i32, b: i32,]() {}
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 15},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
@@ -14,9 +14,9 @@ fn foo(a:! i32);
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -42,34 +42,34 @@ fn E(template:! i32);
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'A'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'A'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'i32', has_error: yes},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'i32', has_error: yes},
// CHECK:STDOUT: {kind: 'InvalidParse', text: 'i32', has_error: yes},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: 'template', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 5},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'B'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'B'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', has_error: yes, subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 6},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'C'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'C'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: ')', has_error: yes},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: ')', has_error: yes},
// CHECK:STDOUT: {kind: 'InvalidParse', text: ')', has_error: yes},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: 'template', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 5},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'D'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'D'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: ':!', has_error: yes},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: ':!', has_error: yes},
// CHECK:STDOUT: {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
@@ -77,9 +77,9 @@ fn E(template:! i32);
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 7},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 10},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'E'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'E'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: ':!', has_error: yes},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: ':!', has_error: yes},
// CHECK:STDOUT: {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
@@ -36,9 +36,9 @@ fn foo(ref template a:! i32);
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'TemplateBindingName', text: 'template', subtree_size: 2},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
@@ -51,9 +51,9 @@ fn foo(ref template a:! i32);
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'TemplateBindingName', text: 'template', subtree_size: 2},
// CHECK:STDOUT: {kind: 'RefBindingName', text: 'ref', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', has_error: yes, subtree_size: 4},
@@ -62,9 +62,9 @@ fn foo(ref template a:! i32);
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 8},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 11},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
// CHECK:STDOUT: {kind: 'RefBindingName', text: 'ref', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
@@ -72,9 +72,9 @@ fn foo(ref template a:! i32);
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 7},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 10},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'template', has_error: yes},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'template', has_error: yes},
// CHECK:STDOUT: {kind: 'InvalidParse', text: 'template', has_error: yes},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: 'ref', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 5},
+2 -2
View File
@@ -21,14 +21,14 @@ impl i32 as Interface {
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Add'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
+2 -2
View File
@@ -23,7 +23,7 @@ class C {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
// CHECK:STDOUT: {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'ImplDefaultSelfAs', text: 'as'},
@@ -46,7 +46,7 @@ class C {
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'ExtendImpl'},
// CHECK:STDOUT: {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 5},
+4 -4
View File
@@ -136,7 +136,7 @@ impl
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'Forall', text: 'forall'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'invalid'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'invalid'},
// CHECK:STDOUT: {kind: 'InvalidParse', text: ']', has_error: yes},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: 'invalid', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
@@ -152,7 +152,7 @@ impl
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'Forall', text: 'forall'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -162,7 +162,7 @@ impl
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'Forall', text: 'forall'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -172,7 +172,7 @@ impl
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'Forall', text: 'forall'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -40,10 +40,10 @@ fn C.(Self as Interface).F() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Interface'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -54,7 +54,7 @@ fn C.(Self as Interface).F() {}
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -63,7 +63,7 @@ fn C.(Self as Interface).F() {}
// CHECK:STDOUT: {kind: 'InvalidParse', text: '(', has_error: yes},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: '}', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
// CHECK:STDOUT: {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -71,14 +71,14 @@ fn C.(Self as Interface).F() {}
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ImplDefinition', text: '}', subtree_size: 11},
// CHECK:STDOUT: {kind: 'ClassDefinition', text: '}', subtree_size: 15},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
// CHECK:STDOUT: {kind: 'IdentifierNameQualifierWithoutParams', text: '.', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InvalidParse', text: '(', has_error: yes},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: '}', has_error: yes, subtree_size: 5},
+3 -3
View File
@@ -19,7 +19,7 @@ impl forall [T:! type, U:! Interface] U as Interface(T) {
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'Forall', text: 'forall'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -31,12 +31,12 @@ impl forall [T:! type, U:! Interface] U as Interface(T) {
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'Forall', text: 'forall'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -35,22 +35,22 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"associated_constants"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 5},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'FinalModifier', text: 'final'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 6},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'DefaultModifier', text: 'default'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
// CHECK:STDOUT: {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 6},
@@ -64,10 +64,10 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"initializer"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantInitializer', text: '='},
@@ -79,7 +79,7 @@ interface I {
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 11},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'FinalModifier', text: 'final'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantInitializer', text: '='},
@@ -87,7 +87,7 @@ interface I {
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'DefaultModifier', text: 'default'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
// CHECK:STDOUT: {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantInitializer', text: '='},
+5 -5
View File
@@ -17,17 +17,17 @@ interface Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Add'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -35,14 +35,14 @@ interface Foo {
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 15},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Add'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'foo'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -14,7 +14,7 @@ interface Foo;
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
// CHECK:STDOUT: ]
@@ -21,17 +21,17 @@ interface Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Scale'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Scale'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 's'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 's'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -40,7 +40,7 @@ interface Foo {
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 15},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'DefaultModifier', text: 'default'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Invert'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Invert'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -53,7 +53,7 @@ interface Foo {
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
// CHECK:STDOUT: {kind: 'SelfValueNameExpr', text: 'self'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Scale'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Scale'},
// CHECK:STDOUT: {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
// CHECK:STDOUT: {kind: 'CallExprStart', text: '(', subtree_size: 4},
// CHECK:STDOUT: {kind: 'IntLiteral', text: '1'},
@@ -15,7 +15,7 @@ interface Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -101,7 +101,7 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"tuple_pattern"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -115,7 +115,7 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"tuple_pattern_with_default"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'DefaultModifier', text: 'default'},
@@ -130,7 +130,7 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"var_pattern"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -144,7 +144,7 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"var_pattern_with_default"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'DefaultModifier', text: 'default'},
@@ -159,7 +159,7 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"not_constant"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -173,7 +173,7 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"template"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -187,7 +187,7 @@ interface I {
// CHECK:STDOUT: {kind: 'LibraryName', text: '"underscore"'},
// CHECK:STDOUT: {kind: 'LibraryDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -24,10 +24,10 @@ interface Foo
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'InterfaceDecl', text: '}', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDecl', text: 'Foo', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
// CHECK:STDOUT: ]
@@ -26,17 +26,17 @@ interface Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Sub'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Sub'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'me'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'me'},
// CHECK:STDOUT: {kind: 'InvalidParse', text: 'Self', has_error: yes},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: 'me', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -44,14 +44,14 @@ interface Foo {
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 15},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Mul'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Mul'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Self', has_error: yes},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Self', has_error: yes},
// CHECK:STDOUT: {kind: 'InvalidParse', text: 'Self', has_error: yes},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: 'Self', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -19,17 +19,17 @@ interface Order {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Order'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Order'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Less'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Less'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'right'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'right'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -38,14 +38,14 @@ interface Order {
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 15},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'FinalModifier', text: 'final'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Greater'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Greater'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'right'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'right'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -54,7 +54,7 @@ interface Order {
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 16},
// CHECK:STDOUT: {kind: 'ReturnStatementStart', text: 'return'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'right'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Less'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Less'},
// CHECK:STDOUT: {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
// CHECK:STDOUT: {kind: 'CallExprStart', text: '(', subtree_size: 4},
// CHECK:STDOUT: {kind: 'SelfValueNameExpr', text: 'self'},
@@ -18,11 +18,11 @@ interface Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'FinalModifier', text: 'final'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Add'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -30,7 +30,7 @@ interface Foo {
// CHECK:STDOUT: {kind: 'UnusedPattern', text: 'unused', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -16,10 +16,10 @@ interface Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'FooFactory'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'FooFactory'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
+21 -21
View File
@@ -96,11 +96,11 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'RequireDefaultSelfImpls', text: 'impls'},
@@ -113,11 +113,11 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -131,22 +131,22 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantIntroducer', text: 'let'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y1'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y1'},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
// CHECK:STDOUT: {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 5},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 9},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'RequireDefaultSelfImpls', text: 'impls'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Y'},
// CHECK:STDOUT: {kind: 'WhereOperand', text: 'where', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y1'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y1'},
// CHECK:STDOUT: {kind: 'DesignatorExpr', text: '.', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TupleLiteralStart', text: '('},
// CHECK:STDOUT: {kind: 'TupleLiteral', text: ')', subtree_size: 2},
@@ -160,13 +160,13 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -184,11 +184,11 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'ExtendModifier', text: 'extend'},
@@ -202,11 +202,11 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'RequireDefaultSelfImpls', text: 'impls'},
@@ -221,11 +221,11 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Y'},
@@ -237,11 +237,11 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'InvalidParse', text: 'as', has_error: yes},
@@ -253,11 +253,11 @@ interface Z {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'RequireIntroducer', text: 'require'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -17,10 +17,10 @@ interface Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Sub'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Sub'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'RefBindingName', text: 'ref', subtree_size: 2},
@@ -28,7 +28,7 @@ interface Foo {
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -36,7 +36,7 @@ interface Foo {
// CHECK:STDOUT: {kind: 'ReturnType', text: '->', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 16},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Sub'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Sub'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'RefBindingName', text: 'ref', subtree_size: 2},
@@ -44,7 +44,7 @@ interface Foo {
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -26,7 +26,7 @@ constraint ForwardDeclared;
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'NamedConstraintIntroducer', text: 'constraint'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Empty'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Empty'},
// CHECK:STDOUT: {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -35,7 +35,7 @@ constraint ForwardDeclared;
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'NamedConstraintIntroducer', text: 'constraint'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'WithRequire'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'WithRequire'},
// CHECK:STDOUT: {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 4},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
@@ -44,7 +44,7 @@ constraint ForwardDeclared;
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'NamedConstraintIntroducer', text: 'constraint'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'ForwardDeclared'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'ForwardDeclared'},
// CHECK:STDOUT: {kind: 'NamedConstraintDecl', text: ';', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
// CHECK:STDOUT: ]
@@ -22,17 +22,17 @@ constraint Foo {
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'NamedConstraintIntroducer', text: 'constraint'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'E'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'E'},
// CHECK:STDOUT: {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'DeclaredMethod'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'DeclaredMethod'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -41,10 +41,10 @@ constraint Foo {
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 15},
// CHECK:STDOUT: {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 19},
// CHECK:STDOUT: {kind: 'NamedConstraintIntroducer', text: 'constraint'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'DefinedMethod'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'DefinedMethod'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'SelfValueName', text: 'self'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -52,7 +52,7 @@ constraint Foo {
// CHECK:STDOUT: {kind: 'UnusedPattern', text: 'unused', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'SelfTypeNameExpr', text: 'Self'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
+2 -2
View File
@@ -16,12 +16,12 @@ interface Bar() {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 5},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 5},
@@ -34,88 +34,88 @@ fn OuterGeneric(T:! type).InnerGeneric(U:! type).F(x: T, y: U) {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'GenericClass1'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass1'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ClassDefinitionStart', text: '{', subtree_size: 9},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ClassDefinition', text: '}', subtree_size: 15},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'GenericClass1'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass1'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 14},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'GenericClass2'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass2'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'X'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'X'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ClassDefinitionStart', text: '{', subtree_size: 15},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ClassDefinition', text: '}', subtree_size: 21},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'GenericClass2'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass2'},
// CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'X'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'X'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 14},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 19},
// CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 20},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'OuterGeneric'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'OuterGeneric'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ClassDefinitionStart', text: '{', subtree_size: 9},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'InnerGeneric'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'InnerGeneric'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -123,59 +123,59 @@ fn OuterGeneric(T:! type).InnerGeneric(U:! type).F(x: T, y: U) {}
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'ClassDefinition', text: '}', subtree_size: 19},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'OuterGeneric'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'OuterGeneric'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'InnerGeneric'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'InnerGeneric'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ClassDefinitionStart', text: '{', subtree_size: 17},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'T'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'U'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 9},
// CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 12},
// CHECK:STDOUT: {kind: 'ClassDefinition', text: '}', subtree_size: 30},
// CHECK:STDOUT: {kind: 'FunctionIntroducer', text: 'fn'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'OuterGeneric'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'OuterGeneric'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'InnerGeneric'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'InnerGeneric'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'},
// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'F'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'T'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'U'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 9},
+4 -4
View File
@@ -16,17 +16,17 @@ interface Bar(a: i32) {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 8},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -16,18 +16,18 @@ interface Bar(a: i32,) {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 9},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
+14 -14
View File
@@ -16,57 +16,57 @@ interface Bar(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'e'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'e'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 25},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 28},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'e'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'e'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 25},
+6 -6
View File
@@ -16,25 +16,25 @@ interface Bar(a: i32, b: i32) {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 9},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 12},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 9},
@@ -16,26 +16,26 @@ interface Bar(a: i32, b: i32,) {}
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'ClassIntroducer', text: 'class'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'ExplicitParamList', text: ')', subtree_size: 10},
// CHECK:STDOUT: {kind: 'ClassDecl', text: ';', subtree_size: 13},
// CHECK:STDOUT: {kind: 'InterfaceIntroducer', text: 'interface'},
// CHECK:STDOUT: {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
// CHECK:STDOUT: {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
// CHECK:STDOUT: {kind: 'ExplicitParamListStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
// CHECK:STDOUT: {kind: 'PatternListComma', text: ','},