Class: RBI::ScopeConflict

Inherits:
Tree show all
Extended by:
T::Sig
Defined in:
lib/rbi/rewriters/merge_trees.rb

Overview

A conflict between two scope headers

Is rendered as a merge conflict between ‘left` and` right` for scope definitions: ~~~rb <<<<<<< left class Foo

module Foo >>>>>>> right

def m1; end

end ~~~

Instance Attribute Summary collapse

Attributes inherited from Tree

#nodes

Attributes inherited from NodeWithComments

#comments

Attributes inherited from Node

#loc, #parent_tree

Instance Method Summary collapse

Methods inherited from Tree

#<<, #add_sig_templates!, #empty?, #group_nodes!, #index, #merge, #nest_non_public_methods!, #nest_singleton_methods!, #sort_nodes!

Methods inherited from NodeWithComments

#merge_with

Methods inherited from Node

#compatible_with?, #detach, #group_kind, #merge_with, #parent_conflict_tree, #parent_scope, #print, #replace, #string

Constructor Details

#initialize(left:, right:, left_name: "left", right_name: "right") ⇒ ScopeConflict

Returns a new instance of ScopeConflict.



598
599
600
601
602
603
604
# File 'lib/rbi/rewriters/merge_trees.rb', line 598

def initialize(left:, right:, left_name: "left", right_name: "right")
  super()
  @left = left
  @right = right
  @left_name = left_name
  @right_name = right_name
end

Instance Attribute Details

#leftObject (readonly)

Returns the value of attribute left.



588
589
590
# File 'lib/rbi/rewriters/merge_trees.rb', line 588

def left
  @left
end

#rightObject (readonly)

Returns the value of attribute right.



588
589
590
# File 'lib/rbi/rewriters/merge_trees.rb', line 588

def right
  @right
end

Instance Method Details

#accept_printer(v) ⇒ Object



607
608
609
610
611
612
613
614
615
616
617
618
619
620
# File 'lib/rbi/rewriters/merge_trees.rb', line 607

def accept_printer(v)
  previous_node = v.previous_node
  v.printn if previous_node && (!previous_node.oneline? || !oneline?)

  v.printl("# #{loc}") if loc && v.print_locs
  v.visit_all(comments)

  v.printl("<<<<<<< #{@left_name}")
  left.print_header(v)
  v.printl("=======")
  right.print_header(v)
  v.printl(">>>>>>> #{@right_name}")
  left.print_body(v)
end

#oneline?Boolean

Returns:

  • (Boolean)


623
624
625
# File 'lib/rbi/rewriters/merge_trees.rb', line 623

def oneline?
  left.oneline?
end