module RBS module AST module Members type t = MethodDefinition | InstanceVariable | ClassInstanceVariable | ClassVariable | Include | Extend | Prepend | AttrReader | AttrWriter | AttrAccessor | Public | Private | Alias # Base class for members. class Base end class MethodDefinition < Base type kind = :instance | :singleton | :singleton_instance attr_reader name: Symbol attr_reader kind: kind attr_reader types: Array[MethodType] attr_reader annotations: Array[Annotation] attr_reader location: Location? attr_reader comment: Comment? attr_reader overload: bool def initialize: (name: Symbol, kind: kind, types: Array[MethodType], annotations: Array[Annotation], location: Location?, comment: Comment?, overload: boolish) -> void include _HashEqual include _ToJson def instance?: () -> bool def singleton?: () -> bool def overload?: () -> bool def update: (?name: Symbol, ?kind: kind, ?types: Array[MethodType], ?annotations: Array[Annotation], ?location: Location?, ?comment: Comment?, ?overload: boolish) -> MethodDefinition end module Var 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 end class InstanceVariable < Base include Var include _ToJson end class ClassInstanceVariable < Base include Var include _ToJson end class ClassVariable < Base include Var include _ToJson end module Mixin attr_reader name: TypeName attr_reader args: Array[Types::t] attr_reader annotations: Array[Annotation] attr_reader location: Location? attr_reader comment: Comment? def initialize: (name: TypeName, args: Array[Types::t], annotations: Array[Annotation], location: Location?, comment: Comment?) -> void include _HashEqual end class Include < Base include Mixin include _ToJson end class Extend < Base include Mixin include _ToJson end class Prepend < Base include Mixin include _ToJson end module Attribute type kind = :instance | :singleton attr_reader name: Symbol attr_reader type: Types::t attr_reader kind: kind attr_reader ivar_name: Symbol | false | nil attr_reader annotations: Array[Annotation] attr_reader location: Location? attr_reader comment: Comment? def initialize: (name: Symbol, type: Types::t, ivar_name: Symbol | false | nil, kind: kind, annotations: Array[Annotation], location: Location?, comment: Comment?) -> void include _HashEqual end class AttrReader < Base include Attribute include _ToJson end class AttrAccessor < Base include Attribute include _ToJson end class AttrWriter < Base include Attribute include _ToJson end module LocationOnly attr_reader location: Location? def initialize: (location: Location?) -> void include _HashEqual end class Public < Base include LocationOnly include _ToJson end class Private < Base include LocationOnly include _ToJson end class Alias < Base type kind = :instance | :singleton attr_reader new_name: Symbol attr_reader old_name: Symbol attr_reader kind: kind attr_reader annotations: Array[Annotation] attr_reader location: Location? attr_reader comment: Comment? def initialize: (new_name: Symbol, old_name: Symbol, kind: kind, annotations: Array[Annotation], location: Location?, comment: Comment?) -> void include _HashEqual include _ToJson def instance?: () -> bool def singleton?: () -> bool end end end end