tree-sitter-swift
Version:
A tree-sitter grammar for the Swift programming language.
2,335 lines • 643 kB
JSON
[
{
"type": "?",
"named": false,
"fields": {}
},
{
"type": "additive_expression",
"named": true,
"fields": {
"lhs": {
"multiple": true,
"required": true,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "!==",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "%=",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "++",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "--",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": "===",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "additive_expression",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "as_expression",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "bang",
"named": true
},
{
"type": "bin_literal",
"named": true
},
{
"type": "bitwise_operation",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "check_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "conjunction_expression",
"named": true
},
{
"type": "constructor_expression",
"named": true
},
{
"type": "custom_operator",
"named": true
},
{
"type": "diagnostic",
"named": true
},
{
"type": "dictionary_literal",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "disjunction_expression",
"named": true
},
{
"type": "equality_expression",
"named": true
},
{
"type": "fully_open_range",
"named": true
},
{
"type": "hex_literal",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "infix_expression",
"named": true
},
{
"type": "integer_literal",
"named": true
},
{
"type": "key_path_expression",
"named": true
},
{
"type": "key_path_string_expression",
"named": true
},
{
"type": "lambda_literal",
"named": true
},
{
"type": "line_string_literal",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "multi_line_string_literal",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "navigation_expression",
"named": true
},
{
"type": "nil",
"named": false
},
{
"type": "nil_coalescing_expression",
"named": true
},
{
"type": "oct_literal",
"named": true
},
{
"type": "open_end_range_expression",
"named": true
},
{
"type": "open_start_range_expression",
"named": true
},
{
"type": "playground_literal",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "prefix_expression",
"named": true
},
{
"type": "range_expression",
"named": true
},
{
"type": "raw_string_literal",
"named": true
},
{
"type": "real_literal",
"named": true
},
{
"type": "regex_literal",
"named": true
},
{
"type": "selector_expression",
"named": true
},
{
"type": "self_expression",
"named": true
},
{
"type": "simple_identifier",
"named": true
},
{
"type": "special_literal",
"named": true
},
{
"type": "super_expression",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "try_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "value_pack_expansion",
"named": true
},
{
"type": "value_parameter_pack",
"named": true
},
{
"type": "|",
"named": false
},
{
"type": "~",
"named": false
}
]
},
"op": {
"multiple": false,
"required": true,
"types": [
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
}
]
},
"rhs": {
"multiple": true,
"required": true,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "!==",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "%=",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "++",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "--",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": "===",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "additive_expression",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "as_expression",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "bang",
"named": true
},
{
"type": "bin_literal",
"named": true
},
{
"type": "bitwise_operation",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "check_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "conjunction_expression",
"named": true
},
{
"type": "constructor_expression",
"named": true
},
{
"type": "custom_operator",
"named": true
},
{
"type": "diagnostic",
"named": true
},
{
"type": "dictionary_literal",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "disjunction_expression",
"named": true
},
{
"type": "equality_expression",
"named": true
},
{
"type": "fully_open_range",
"named": true
},
{
"type": "hex_literal",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "infix_expression",
"named": true
},
{
"type": "integer_literal",
"named": true
},
{
"type": "key_path_expression",
"named": true
},
{
"type": "key_path_string_expression",
"named": true
},
{
"type": "lambda_literal",
"named": true
},
{
"type": "line_string_literal",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "multi_line_string_literal",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "navigation_expression",
"named": true
},
{
"type": "nil",
"named": false
},
{
"type": "nil_coalescing_expression",
"named": true
},
{
"type": "oct_literal",
"named": true
},
{
"type": "open_end_range_expression",
"named": true
},
{
"type": "open_start_range_expression",
"named": true
},
{
"type": "playground_literal",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "prefix_expression",
"named": true
},
{
"type": "range_expression",
"named": true
},
{
"type": "raw_string_literal",
"named": true
},
{
"type": "real_literal",
"named": true
},
{
"type": "regex_literal",
"named": true
},
{
"type": "selector_expression",
"named": true
},
{
"type": "self_expression",
"named": true
},
{
"type": "simple_identifier",
"named": true
},
{
"type": "special_literal",
"named": true
},
{
"type": "super_expression",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "try_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "value_pack_expansion",
"named": true
},
{
"type": "value_parameter_pack",
"named": true
},
{
"type": "|",
"named": false
},
{
"type": "~",
"named": false
}
]
}
}
},
{
"type": "array_literal",
"named": true,
"fields": {
"element": {
"multiple": true,
"required": false,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "!==",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "%=",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "++",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "--",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": "===",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "additive_expression",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "as_expression",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "bang",
"named": true
},
{
"type": "bin_literal",
"named": true
},
{
"type": "bitwise_operation",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "check_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "conjunction_expression",
"named": true
},
{
"type": "constructor_expression",
"named": true
},
{
"type": "custom_operator",
"named": true
},
{
"type": "diagnostic",
"named": true
},
{
"type": "dictionary_literal",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "disjunction_expression",
"named": true
},
{
"type": "equality_expression",
"named": true
},
{
"type": "fully_open_range",
"named": true
},
{
"type": "hex_literal",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "infix_expression",
"named": true
},
{
"type": "integer_literal",
"named": true
},
{
"type": "key_path_expression",
"named": true
},
{
"type": "key_path_string_expression",
"named": true
},
{
"type": "lambda_literal",
"named": true
},
{
"type": "line_string_literal",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "multi_line_string_literal",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "navigation_expression",
"named": true
},
{
"type": "nil",
"named": false
},
{
"type": "nil_coalescing_expression",
"named": true
},
{
"type": "oct_literal",
"named": true
},
{
"type": "open_end_range_expression",
"named": true
},
{
"type": "open_start_range_expression",
"named": true
},
{
"type": "playground_literal",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "prefix_expression",
"named": true
},
{
"type": "range_expression",
"named": true
},
{
"type": "raw_string_literal",
"named": true
},
{
"type": "real_literal",
"named": true
},
{
"type": "regex_literal",
"named": true
},
{
"type": "selector_expression",
"named": true
},
{
"type": "self_expression",
"named": true
},
{
"type": "simple_identifier",
"named": true
},
{
"type": "special_literal",
"named": true
},
{
"type": "super_expression",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "try_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "value_pack_expansion",
"named": true
},
{
"type": "value_parameter_pack",
"named": true
},
{
"type": "|",
"named": false
},
{
"type": "~",
"named": false
}
]
}
}
},
{
"type": "array_type",
"named": true,
"fields": {
"element": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_type",
"named": true
},
{
"type": "dictionary_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "metatype",
"named": true
},
{
"type": "opaque_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "protocol_composition_type",
"named": true
},
{
"type": "suppressed_constraint",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_modifiers",
"named": true
},
{
"type": "type_pack_expansion",
"named": true
},
{
"type": "type_parameter_pack",
"named": true
},
{
"type": "user_type",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_type",
"named": true
},
{
"type": "dictionary_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "metatype",
"named": true
},
{
"type": "opaque_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "protocol_composition_type",
"named": true
},
{
"type": "suppressed_constraint",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_pack_expansion",
"named": true
},
{
"type": "type_parameter_pack",
"named": true
},
{
"type": "user_type",
"named": true
}
]
}
}
},
{
"type": "as_expression",
"named": true,
"fields": {
"expr": {
"multiple": true,
"required": true,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "!==",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "%=",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "++",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "--",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": "===",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "additive_expression",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "as_expression",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "bang",
"named": true
},
{
"type": "bin_literal",
"named": true
},
{
"type": "bitwise_operation",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "check_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "conjunction_expression",
"named": true
},
{
"type": "constructor_expression",
"named": true
},
{
"type": "custom_operator",
"named": true
},
{
"type": "diagnostic",
"named": true
},
{
"type": "dictionary_literal",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "disjunction_expression",
"named": true
},
{
"type": "equality_expression",
"named": true
},
{
"type": "fully_open_range",
"named": true
},
{
"type": "hex_literal",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "infix_expression",
"named": true
},
{
"type": "integer_literal",
"named": true
},
{
"type": "key_path_expression",
"named": true
},
{
"type": "key_path_string_expression",
"named": true
},
{
"type": "lambda_literal",
"named": true
},
{
"type": "line_string_literal",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "multi_line_string_literal",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "navigation_expression",
"named": true
},
{
"type": "nil",
"named": false
},
{
"type": "nil_coalescing_expression",
"named": true
},
{
"type": "oct_literal",
"named": true
},
{
"type": "open_end_range_expression",
"named": true
},
{
"type": "open_start_range_expression",
"named": true
},
{
"type": "playground_literal",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "prefix_expression",
"named": true
},
{
"type": "range_expression",
"named": true
},
{
"type": "raw_string_literal",
"named": true
},
{
"type": "real_literal",
"named": true
},
{
"type": "regex_literal",
"named": true
},
{
"type": "selector_expression",
"named": true
},
{
"type": "self_expression",
"named": true
},
{
"type": "simple_identifier",
"named": true
},
{
"type": "special_literal",
"named": true
},
{
"type": "super_expression",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "try_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "value_pack_expansion",
"named": true
},
{
"type": "value_parameter_pack",
"named": true
},
{
"type": "|",
"named": false
},
{
"type": "~",
"named": false
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_type",
"named": true
},
{
"type": "dictionary_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "metatype",
"named": true
},
{
"type": "opaque_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "protocol_composition_type",
"named": true
},
{
"type": "suppressed_constraint",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_pack_expansion",
"named": true
},
{
"type": "type_parameter_pack",
"named": true
},
{
"type": "user_type",
"named": true
}
]
},
"type": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_type",
"named": true
},
{
"type": "dictionary_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "metatype",
"named": true
},
{
"type": "opaque_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "protocol_composition_type",
"named": true
},
{
"type": "suppressed_constraint",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_modifiers",
"named": true
},
{
"type": "type_pack_expansion",
"named": true
},
{
"type": "type_parameter_pack",
"named": true
},
{
"type": "user_type",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "as_operator",
"named": true
}
]
}
},
{
"type": "as_operator",
"named": true,
"fields": {}
},
{
"type": "assignment",
"named": true,
"fields": {
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "%=",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "=",
"named": false
}
]
},
"result": {
"multiple": true,
"required": true,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "!==",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "%=",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "++",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "--",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": "===",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "additive_expression",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "as_expression",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "bang",
"named": true
},
{
"type": "bin_literal",
"named": true
},
{
"type": "bitwise_operation",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "check_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "conjunction_expression",
"named": true
},
{
"type": "constructor_expression",
"named": true
},
{
"type": "custom_operator",
"named": true
},
{
"type": "diagnostic",
"named": true
},
{
"type": "dictionary_literal",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "disjunction_expression",
"named": true
},
{
"type": "equality_expression",
"named": true
},
{
"type": "fully_open_range",
"named": true
},
{
"type": "hex_literal",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "infix_expression",
"named": true
},
{
"type": "integer_literal",
"named": true
},
{
"type": "key_path_expression",
"named": true
},
{
"type": "key_path_string_expression",
"named": true
},
{
"type": "lambda_literal",
"named": true
},
{
"type": "line_string_literal",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "multi_line_string_literal",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "navigation_expression",
"named": true
},
{
"type": "nil",
"named": false
},
{
"type": "nil_coalescing_expression",
"named": true
},
{
"type": "oct_literal",
"named": true
},
{
"type": "open_end_range_expression",
"named": true
},
{
"type": "open_start_range_expression",
"named": true
},
{
"type": "playground_literal",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "prefix_expression",
"named": true
},
{
"type": "range_expression",
"named": true
},
{
"type": "raw_string_literal",
"named": true
},
{
"type": "real_literal",
"named": true
},
{
"type": "regex_literal",
"named": true
},
{
"type": "selector_expression",
"named": true
},
{
"type": "self_expression",
"named": true
},
{
"type": "simple_identifier",
"named": true
},
{
"type": "special_literal",
"named": true
},
{
"type": "super_expression",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "try_expression",
"named": true
},
{
"type": "tuple_expression",
"named": true
},
{
"type": "value_pack_expansion",
"named": true
},
{
"type": "value_parameter_pack",
"named": true
},
{
"type": "|",
"named": false
},
{
"type": "~",
"named": false
}
]
},
"target": {
"multiple": false,
"required": true,
"types": [
{
"type": "directly_assignable_expression",
"named": true
}
]
}
}
},
{
"type": "associatedtype_declaration",
"named": true,
"fields": {
"default_value": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_type",
"named": true
},
{
"type": "dictionary_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "metatype",
"named": true
},
{
"type": "opaque_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "protocol_composition_type",
"named": true
},
{
"type": "suppressed_constraint",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_modifiers",
"named": true
},
{
"type": "type_pack_expansion",
"named": true
},
{
"type": "type_parameter_pack",
"named": true
},
{
"type": "user_type",
"named": true
}
]
},
"must_inherit": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_type",
"named": true
},
{
"type": "dictionary_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "metatype",
"named": true
},
{
"type": "opaque_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "protocol_composition_type",
"named": true
},
{
"type": "suppressed_constraint",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_modifiers",
"named": true
},
{
"type": "type_pack_expansion",
"named": true
},
{
"type": "type_parameter_pack",
"named": true
},
{
"type": "user_type",
"named": true
}
]
},
"name": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_type",
"named": true
},
{
"type": "dictionary_type",
"named": true
},
{
"type": "existential_type",
"named": true
},
{
"type": "function_type",
"named": true
},
{
"type": "metatype",
"named": true
},
{
"type": "opaque_type",
"named": true
},
{
"type": "optional_type",
"named": true
},
{
"type": "protocol_composition_type",
"named": true
},
{
"type": "suppressed_constraint",
"named": true
},
{
"type": "tuple_type",
"named": true
},
{
"type": "type_identifier",
"named": true
},
{
"type": "type_pack_expansion",
"named": true
},
{
"type": "type_parameter_pack",
"named": true
},
{
"type": "user_type",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "modifiers",
"named": true
},
{
"type": "type_constraints",
"named": true
}
]
}
},
{
"type": "attribute",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "additive_expression",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "as_expression",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "await_expression",
"named": true
},
{
"type": "bang",
"named": true
},
{
"type": "bin_literal",
"named": true
},
{
"type": "bitwise_operation",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "check_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "conjunction_expression",
"named": true
},
{
"type": "constructor_expression",
"named": true
},
{
"type": "custom_operator",
"named": true
},
{
"type": "diagnostic",
"named": true
},
{
"type": "dicti