Class: RBI::Sig

Inherits:
NodeWithComments show all
Defined in:
lib/rbi/model.rb

Overview

Sorbet’s sigs

Instance Attribute Summary collapse

Attributes inherited from NodeWithComments

#comments

Attributes inherited from Node

#loc, #parent_tree

Instance Method Summary collapse

Methods inherited from NodeWithComments

#annotations, #merge_with, #version_requirements

Methods inherited from Node

#compatible_with?, #detach, #merge_with, #parent_conflict_tree, #parent_scope, #print, #rbs_print, #rbs_string, #replace, #satisfies_version?, #string

Constructor Details

#initialize(params: [], return_type: "void", is_abstract: false, is_override: false, is_overridable: false, is_final: false, allow_incompatible_override: false, type_params: [], checked: nil, loc: nil, comments: [], &block) ⇒ Sig

: (?params: Array, ?return_type: (Type | String), ?is_abstract: bool, ?is_override: bool, ?is_overridable: bool, ?is_final: bool, ?allow_incompatible_override: bool, ?type_params: Array, ?checked: Symbol?, ?loc: Loc?, ?comments: Array) ?{ (Sig node) -> void } -> void



863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
# File 'lib/rbi/model.rb', line 863

def initialize(
  params: [],
  return_type: "void",
  is_abstract: false,
  is_override: false,
  is_overridable: false,
  is_final: false,
  allow_incompatible_override: false,
  type_params: [],
  checked: nil,
  loc: nil,
  comments: [],
  &block
)
  super(loc: loc, comments: comments)
  @params = params
  @return_type = return_type
  @is_abstract = is_abstract
  @is_override = is_override
  @is_overridable = is_overridable
  @is_final = is_final
  @allow_incompatible_override = allow_incompatible_override
  @type_params = type_params
  @checked = checked
  block&.call(self)
end

Instance Attribute Details

#allow_incompatible_overrideObject

: bool



854
855
856
# File 'lib/rbi/model.rb', line 854

def allow_incompatible_override
  @allow_incompatible_override
end

#checkedObject

: Symbol?



860
861
862
# File 'lib/rbi/model.rb', line 860

def checked
  @checked
end

#is_abstractObject

: bool



854
855
856
# File 'lib/rbi/model.rb', line 854

def is_abstract
  @is_abstract
end

#is_finalObject

: bool



854
855
856
# File 'lib/rbi/model.rb', line 854

def is_final
  @is_final
end

#is_overridableObject

: bool



854
855
856
# File 'lib/rbi/model.rb', line 854

def is_overridable
  @is_overridable
end

#is_overrideObject

: bool



854
855
856
# File 'lib/rbi/model.rb', line 854

def is_override
  @is_override
end

#paramsObject (readonly)

: Array



848
849
850
# File 'lib/rbi/model.rb', line 848

def params
  @params
end

#return_typeObject

: (Type | String)



851
852
853
# File 'lib/rbi/model.rb', line 851

def return_type
  @return_type
end

#type_paramsObject (readonly)

: Array



857
858
859
# File 'lib/rbi/model.rb', line 857

def type_params
  @type_params
end

Instance Method Details

#<<(param) ⇒ Object

: (SigParam param) -> void



891
892
893
# File 'lib/rbi/model.rb', line 891

def <<(param)
  @params << param
end

#==(other) ⇒ Object

: (Object other) -> bool



901
902
903
904
905
906
907
# File 'lib/rbi/model.rb', line 901

def ==(other)
  return false unless other.is_a?(Sig)

  params == other.params && return_type.to_s == other.return_type.to_s && is_abstract == other.is_abstract &&
    is_override == other.is_override && is_overridable == other.is_overridable && is_final == other.is_final &&
    type_params == other.type_params && checked == other.checked
end

#add_param(name, type) ⇒ Object

: (String name, (Type | String) type) -> void



896
897
898
# File 'lib/rbi/model.rb', line 896

def add_param(name, type)
  @params << SigParam.new(name, type)
end