mirror of
https://github.com/apple/swift.git
synced 2026-01-02 22:53:12 +01:00
When the source code is invalid, this allows us to represent tokens that could not be used to form a valid syntax tree with more fidelity. This commit does not start using GarbageNodes yet, it just sets everything up for them.
862 lines
49 KiB
JSON
862 lines
49 KiB
JSON
{
|
|
"kind": "SourceFile",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "CodeBlockItemList",
|
|
"layout": [
|
|
{
|
|
"kind": "CodeBlockItem",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "StructDecl",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "kw_struct"
|
|
},
|
|
"leadingTrivia": "\/\/ RUN: %swift-syntax-test -input-source-filename %s -serialize-raw-tree > %t\n\/\/ RUN: diff %t %S\/Inputs\/serialize_main_actor.json -u\n\n",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "Foo"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "MemberDeclBlock",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_brace"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "MemberDeclList",
|
|
"layout": [
|
|
{
|
|
"kind": "MemberDeclListItem",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "InitializerDecl",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "kw_init"
|
|
},
|
|
"leadingTrivia": "\n ",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "FunctionSignature",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "ParameterClause",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_paren"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "FunctionParameterList",
|
|
"layout": [
|
|
{
|
|
"kind": "FunctionParameter",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "kw__"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "foo"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "colon"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "AttributedType",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "AttributeList",
|
|
"layout": [
|
|
{
|
|
"kind": "CustomAttribute",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "at_sign"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "SimpleTypeIdentifier",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "MainActor"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "FunctionType",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_paren"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "TupleTypeElementList",
|
|
"layout": [],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_paren"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "arrow"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "SimpleTypeIdentifier",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "Void"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_paren"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "CodeBlock",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_brace"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "CodeBlockItemList",
|
|
"layout": [],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_brace"
|
|
},
|
|
"leadingTrivia": "\n \n ",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_brace"
|
|
},
|
|
"leadingTrivia": "\n",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
{
|
|
"kind": "CodeBlockItem",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "StructDecl",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "kw_struct"
|
|
},
|
|
"leadingTrivia": "\n\n",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "Bar"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "MemberDeclBlock",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_brace"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "MemberDeclList",
|
|
"layout": [
|
|
{
|
|
"kind": "MemberDeclListItem",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "VariableDecl",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "kw_var"
|
|
},
|
|
"leadingTrivia": "\n ",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "PatternBindingList",
|
|
"layout": [
|
|
{
|
|
"kind": "PatternBinding",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "IdentifierPattern",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "body"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "TypeAnnotation",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "colon"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "SimpleTypeIdentifier",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "Foo"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "CodeBlock",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_brace"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "CodeBlockItemList",
|
|
"layout": [
|
|
{
|
|
"kind": "CodeBlockItem",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "FunctionCallExpr",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "IdentifierExpr",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "Foo"
|
|
},
|
|
"leadingTrivia": "\n ",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "TupleExprElementList",
|
|
"layout": [],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "ClosureExpr",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_brace"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "ClosureSignature",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "AttributeList",
|
|
"layout": [
|
|
{
|
|
"kind": "CustomAttribute",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "at_sign"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "SimpleTypeIdentifier",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "MainActor"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": " ",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "kw_in"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "CodeBlockItemList",
|
|
"layout": [
|
|
{
|
|
"kind": "CodeBlockItem",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "FunctionCallExpr",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"kind": "IdentifierExpr",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "identifier",
|
|
"text": "print"
|
|
},
|
|
"leadingTrivia": "\n ",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "l_paren"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "TupleExprElementList",
|
|
"layout": [
|
|
{
|
|
"kind": "TupleExprElement",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"kind": "StringLiteralExpr",
|
|
"layout": [
|
|
null,
|
|
null,
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "string_quote"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"kind": "StringLiteralSegments",
|
|
"layout": [
|
|
{
|
|
"kind": "StringSegment",
|
|
"layout": [
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "string_segment",
|
|
"text": "Hi"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "string_quote"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_paren"
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_brace"
|
|
},
|
|
"leadingTrivia": "\n ",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_brace"
|
|
},
|
|
"leadingTrivia": "\n ",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "r_brace"
|
|
},
|
|
"leadingTrivia": "\n",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
},
|
|
null,
|
|
{
|
|
"tokenKind": {
|
|
"kind": "eof",
|
|
"text": ""
|
|
},
|
|
"leadingTrivia": "",
|
|
"trailingTrivia": "",
|
|
"presence": "Present"
|
|
}
|
|
],
|
|
"presence": "Present"
|
|
}
|