Handle parsing of require...impls declarations (#6255)

Check is not implemented yet, but some tests are added.
This commit is contained in:
Dana Jansens
2025-10-23 18:34:52 +00:00
committed by GitHub
parent 4f1f0fc7c2
commit 26381f6eaf
30 changed files with 790 additions and 61 deletions
+5 -5
View File
@@ -38,7 +38,7 @@ impl f64 as Interface where .T = (type where .Self impls type) {
// CHECK:STDOUT: {kind: 'InterfaceDefinition', text: '}', subtree_size: 9},
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'},
// CHECK:STDOUT: {kind: 'TypeImplAs', text: 'as', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ImplTypeAs', text: 'as', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'WhereOperand', text: 'where', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
@@ -51,7 +51,7 @@ impl f64 as Interface where .T = (type where .Self impls type) {
// CHECK:STDOUT: {kind: 'ImplDefinition', text: '}', subtree_size: 13},
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'BoolTypeLiteral', text: 'bool'},
// CHECK:STDOUT: {kind: 'TypeImplAs', text: 'as', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ImplTypeAs', text: 'as', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'WhereOperand', text: 'where', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
@@ -63,7 +63,7 @@ impl f64 as Interface where .T = (type where .Self impls type) {
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'TupleLiteralStart', text: '('},
// CHECK:STDOUT: {kind: 'TupleLiteral', text: ')', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeImplAs', text: 'as', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplTypeAs', text: 'as', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ParenExprStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'WhereOperand', text: 'where', subtree_size: 2},
@@ -79,7 +79,7 @@ impl f64 as Interface where .T = (type where .Self impls type) {
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'StructLiteralStart', text: '{'},
// CHECK:STDOUT: {kind: 'StructLiteral', text: '}', subtree_size: 2},
// CHECK:STDOUT: {kind: 'TypeImplAs', text: 'as', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ImplTypeAs', text: 'as', subtree_size: 3},
// CHECK:STDOUT: {kind: 'ParenExprStart', text: '('},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'WhereOperand', text: 'where', subtree_size: 2},
@@ -100,7 +100,7 @@ impl f64 as Interface where .T = (type where .Self impls type) {
// CHECK:STDOUT: {kind: 'ImplDecl', text: ';', subtree_size: 22},
// CHECK:STDOUT: {kind: 'ImplIntroducer', text: 'impl'},
// CHECK:STDOUT: {kind: 'FloatTypeLiteral', text: 'f64'},
// CHECK:STDOUT: {kind: 'TypeImplAs', text: 'as', subtree_size: 2},
// CHECK:STDOUT: {kind: 'ImplTypeAs', text: 'as', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'},
// CHECK:STDOUT: {kind: 'WhereOperand', text: 'where', subtree_size: 2},
// CHECK:STDOUT: {kind: 'IdentifierNameNotBeforeParams', text: 'T'},