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



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

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



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

def allow_incompatible_override
  @allow_incompatible_override
end

#checkedObject

: Symbol?



862
863
864
# File 'lib/rbi/model.rb', line 862

def checked
  @checked
end

#is_abstractObject

: bool



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

def is_abstract
  @is_abstract
end

#is_finalObject

: bool



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

def is_final
  @is_final
end

#is_overridableObject

: bool



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

def is_overridable
  @is_overridable
end

#is_overrideObject

: bool



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

def is_override
  @is_override
end

#paramsObject (readonly)

: Array



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

def params
  @params
end

#return_typeObject

: (Type | String)



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

def return_type
  @return_type
end

#type_paramsObject (readonly)

: Array



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

def type_params
  @type_params
end

Instance Method Details

#<<(param) ⇒ Object

: (SigParam param) -> void



893
894
895
# File 'lib/rbi/model.rb', line 893

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

#==(other) ⇒ Object

: (Object other) -> bool



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

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



898
899
900
# File 'lib/rbi/model.rb', line 898

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