File Manager
module RBS
module AST
module Declarations
type t = Class | Module | Interface | Constant | Global | Alias
class Base
end
type variance = :invariant | :covariant | :contravariant
class ModuleTypeParams
class TypeParam
attr_reader name: Symbol
attr_reader variance: variance
attr_reader skip_validation: bool
def initialize: (name: Symbol, variance: variance, skip_validation: boolish) -> void
include _ToJson
end
attr_reader params: Array[TypeParam]
def initialize: () -> void
def add: (TypeParam param) -> self
include _HashEqual
include _ToJson
def []: (Symbol) -> TypeParam?
def each: { (TypeParam) -> void } -> void
| () -> Enumerator[TypeParam, void]
def self.empty: () -> instance
def variance: (Symbol) -> variance
def skip_validation?: (Symbol) -> bool
def empty?: () -> bool
def size: () -> Integer
def rename_to: (Array[Symbol] names) -> ModuleTypeParams
end
interface _WithMember
def members: () -> Array[untyped]
end
module NestedDeclarationHelper : _WithMember
def each_member: () { (Members::t) -> void } -> void
| () -> Enumerator[Members::t, void]
def each_decl: () { (t) -> void } -> void
| () -> Enumerator[t, void]
end
module MixinHelper : _WithMember
type mixin_member = Members::Include | Members::Extend | Members::Prepend
@mixins: Array[mixin_member]
def each_mixin: () { (mixin_member) -> void } -> void
| () -> Enumerator[mixin_member, void]
end
class Class < Base
type member = Members::t | t
class Super
attr_reader name: TypeName
attr_reader args: Array[Types::t]
attr_reader location: Location?
def initialize: (name: TypeName, args: Array[Types::t], location: Location?) -> void
include _HashEqual
include _ToJson
end
include NestedDeclarationHelper
include MixinHelper
attr_reader name: TypeName
attr_reader type_params: ModuleTypeParams
attr_reader members: Array[member]
attr_reader super_class: Super?
attr_reader annotations: Array[Annotation]
attr_reader location: Location?
attr_reader comment: Comment?
def initialize: (name: TypeName, type_params: ModuleTypeParams, members: Array[member], super_class: Super?, annotations: Array[Annotation], location: Location?, comment: Comment?) -> void
include _HashEqual
include _ToJson
end
class Module < Base
type member = Members::t | t
class Self
attr_reader name: TypeName
attr_reader args: Array[Types::t]
attr_reader location: Location?
def initialize: (name: TypeName, args: Array[Types::t], location: Location?) -> void
include _HashEqual
include _ToJson
def to_s: () -> String
end
include NestedDeclarationHelper
include MixinHelper
attr_reader name: TypeName
attr_reader type_params: ModuleTypeParams
attr_reader members: Array[member]
attr_reader location: Location?
attr_reader annotations: Array[Annotation]
attr_reader self_types: Array[Self]
attr_reader comment: Comment?
def initialize: (name: TypeName, type_params: ModuleTypeParams, members: Array[member], location: Location?, annotations: Array[Annotation], self_types: Array[Self], comment: Comment?) -> void
include _HashEqual
include _ToJson
end
class Interface
type member = Members::t
attr_reader name: TypeName
attr_reader type_params: ModuleTypeParams
attr_reader members: Array[member]
attr_reader annotations: Array[Annotation]
attr_reader location: Location?
attr_reader comment: Comment?
def initialize: (name: TypeName, type_params: ModuleTypeParams, members: Array[member], annotations: Array[Annotation], location: Location?, comment: Comment?) -> void
include MixinHelper
include _HashEqual
include _ToJson
end
class Alias < Base
attr_reader name: TypeName
attr_reader type: Types::t
attr_reader annotations: Array[Annotation]
attr_reader location: Location?
attr_reader comment: Comment?
def initialize: (name: TypeName, type: Types::t, annotations: Array[Annotation], location: Location?, comment: Comment?) -> void
include _HashEqual
include _ToJson
end
class Constant < Base
attr_reader name: TypeName
attr_reader type: Types::t
attr_reader location: Location?
attr_reader comment: Comment?
def initialize: (name: TypeName, type: Types::t, location: Location?, comment: Comment?) -> void
include _HashEqual
include _ToJson
end
class Global < Base
attr_reader name: Symbol
attr_reader type: Types::t
attr_reader location: Location?
attr_reader comment: Comment?
def initialize: (name: Symbol, type: Types::t, location: Location?, comment: Comment?) -> void
include _HashEqual
include _ToJson
end
end
end
end
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com