class SyntaxTree::ArrayLiteral
Experimental RBS support (using type sampling data from the type_fusion
project).
# sig/syntax_tree/node.rbs class SyntaxTree::ArrayLiteral < SyntaxTree::Node def accept: (Visitor visitor) -> untyped def child_nodes: () -> untyped def initialize: (lbracket: SyntaxTree::LBracket, contents: SyntaxTree::Args?, location: SyntaxTree::Location) -> void end
[one, two, three]
[]
elements.
ArrayLiteral represents an array literal, which can optionally contain
def ===(other)
def ===(other) other.is_a?(ArrayLiteral) && lbracket === other.lbracket && contents === other.contents end
def accept(visitor)
Experimental RBS support (using type sampling data from the type_fusion
project).
def accept: (Visitor visitor) -> untyped
This signature was generated using 7 samples from 1 application.
def accept(visitor) visitor.visit_array(self) end
def child_nodes
Experimental RBS support (using type sampling data from the type_fusion
project).
def child_nodes: () -> untyped
This signature was generated using 4 samples from 1 application.
def child_nodes [lbracket, contents] end
def copy(lbracket: nil, contents: nil, location: nil)
def copy(lbracket: nil, contents: nil, location: nil) node = ArrayLiteral.new( lbracket: lbracket || self.lbracket, contents: contents || self.contents, location: location || self.location ) node.comments.concat(comments.map(&:copy)) node end
def deconstruct_keys(_keys)
def deconstruct_keys(_keys) { lbracket: lbracket, contents: contents, location: location, comments: comments } end
def empty_with_comments?
If we have an empty array that contains only comments, then we're going
def empty_with_comments? contents.nil? && lbracket.comments.any? && lbracket.comments.none?(&:inline?) end
def format(q)
def format(q) lbracket = self.lbracket contents = self.contents if lbracket.is_a?(LBracket) && lbracket.comments.empty? && contents && contents.comments.empty? && contents.parts.length > 1 if qwords? QWordsFormatter.new(contents).format(q) return end if qsymbols? QSymbolsFormatter.new(contents).format(q) return end end if empty_with_comments? EmptyWithCommentsFormatter.new(lbracket).format(q) return end q.group do q.format(lbracket) if contents q.indent do q.breakable_empty q.format(contents) q.if_break { q.text(",") } if q.trailing_comma? end end q.breakable_empty q.text("]") end end
def initialize(lbracket:, contents:, location:)
Experimental RBS support (using type sampling data from the type_fusion
project).
def initialize: (lbracket: SyntaxTree::LBracket, contents: SyntaxTree::Args?, location: SyntaxTree::Location) -> void
This signature was generated using 8 samples from 1 application.
def initialize(lbracket:, contents:, location:) @lbracket = lbracket @contents = contents @location = location @comments = [] end
def qsymbols?
def qsymbols? contents.parts.all? do |part| part.is_a?(SymbolLiteral) && part.comments.empty? end end
def qwords?
def qwords? contents.parts.all? do |part| case part when StringLiteral part.comments.empty? && part.parts.length == 1 && part.parts.first.is_a?(TStringContent) && !part.parts.first.value.match?(/[\s\[\]\\]/) when CHAR !part.value.match?(/[\[\]\\]/) else false end end end