File: //usr/local/rvm/rubies/default/lib/ruby/gems/3.0.0/gems/rbs-1.0.4/schema/types.json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"base": {
"title": "Base types",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": [
"bool",
"void",
"untyped",
"nil",
"top",
"bot",
"self",
"instance",
"class"
]
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "location"]
},
"variable": {
"title": "Type variables: `X`, `Y`, `Elem`, `Key`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["variable"]
},
"name": {
"type": "string"
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "name", "location"]
},
"classSingleton": {
"title": "Class singleton type: `singleton(Object)`, `singleton(::Kernel)`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["class_singleton"]
},
"name": {
"type": "string"
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "name", "location"]
},
"classInstance": {
"title": "Class instance type: `String`, `::Enumerable`, `Array[::Symbol]`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["class_instance"]
},
"name": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"$ref": "#"
}
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "name", "args", "location"]
},
"interface": {
"title": "Interface type: `_Each[String, void]`, `_ToStr`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["interface"]
},
"name": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"$ref": "#"
}
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "name", "args", "location"]
},
"alias": {
"title": "Type alias: `u`, `ty`, `json`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["alias"]
},
"name": {
"type": "string"
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "name", "location"]
},
"tuple": {
"title": "Tuple type: `[Foo, bar]`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["tuple"]
},
"types": {
"type": "array",
"items": {
"$ref": "#"
}
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "types", "location"]
},
"record": {
"title": "Record type: `{ id: Integer, email: String }`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["record"]
},
"fields": {
"type": "object",
"additionalProperties": {
"$ref": "#"
}
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "fields", "location"]
},
"optional": {
"title": "Optional types: `Integer?`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["optional"]
},
"type": {
"$ref": "#"
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "type", "location"]
},
"union": {
"title": "Union types: `Integer | String`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["union"]
},
"types": {
"type": "array",
"items": {
"$ref": "#"
}
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "types", "location"]
},
"intersection": {
"title": "Intersection types: `Integer & String`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["intersection"]
},
"types": {
"type": "array",
"items": {
"$ref": "#"
}
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "types", "location"]
},
"proc": {
"title": "Proc types: `^() -> void`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["proc"]
},
"type": {
"$ref": "function.json"
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "type", "location"]
},
"literal": {
"title": "Literal types: `1`, `:foo`, `\"foo\"`, ...",
"type": "object",
"properties": {
"class": {
"type": "string",
"enum": ["literal"]
},
"literal": {
"type": "string"
},
"location": {
"$ref": "location.json"
}
},
"required": ["class", "literal", "location"]
}
},
"title": "Type",
"oneOf": [
{
"$ref": "#/definitions/base"
},
{
"$ref": "#/definitions/variable"
},
{
"$ref": "#/definitions/classInstance"
},
{
"$ref": "#/definitions/classSingleton"
},
{
"$ref": "#/definitions/interface"
},
{
"$ref": "#/definitions/alias"
},
{
"$ref": "#/definitions/tuple"
},
{
"$ref": "#/definitions/record"
},
{
"$ref": "#/definitions/union"
},
{
"$ref": "#/definitions/intersection"
},
{
"$ref": "#/definitions/optional"
},
{
"$ref": "#/definitions/proc"
},
{
"$ref": "#/definitions/literal"
}
]
}