diff --git a/Gemfile.lock b/Gemfile.lock index 1cf6386..8a7ab57 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: . specs: - query_packwerk (0.1.25) + query_packwerk (0.1.26) coderay + herb (>= 0.9) packwerk parse_packwerk rubocop @@ -52,6 +53,12 @@ GEM diff-lcs (1.6.0) drb (2.2.1) erubi (1.13.1) + herb (0.11.0-aarch64-linux-gnu) + herb (0.11.0-aarch64-linux-musl) + herb (0.11.0-arm64-darwin) + herb (0.11.0-x86_64-darwin) + herb (0.11.0-x86_64-linux-gnu) + herb (0.11.0-x86_64-linux-musl) i18n (1.14.7) concurrent-ruby (~> 1.0) io-console (0.8.0) diff --git a/lib/query_packwerk.rb b/lib/query_packwerk.rb index 237ea64..66e2746 100644 --- a/lib/query_packwerk.rb +++ b/lib/query_packwerk.rb @@ -2,6 +2,7 @@ # frozen_string_literal: true require 'sorbet-runtime' +require 'herb' require 'parse_packwerk' require 'rubocop' diff --git a/lib/query_packwerk/file_cache.rb b/lib/query_packwerk/file_cache.rb index 54446f2..31bd69d 100644 --- a/lib/query_packwerk/file_cache.rb +++ b/lib/query_packwerk/file_cache.rb @@ -9,7 +9,9 @@ module QueryPackwerk class FileCache extend T::Sig - RUBY_FILE = T.let(/\.(rb|rake)\z/, Regexp) + # The files packwerk parses as Ruby, from Packwerk::Parsers::Factory + RUBY_FILE = T.let(/(\.(rb|rake|builder|gemspec|ru)|Gemfile|Rakefile)\z/, Regexp) + ERB_FILE = T.let(/\.erb\z/, Regexp) sig { void } def initialize @@ -62,12 +64,18 @@ def set(cache_name, key:, value:) sig { params(file_name: String).returns(RuboCop::AST::Node) } def get_file_ast(file_name) - @file_ast_cache[file_name] ||= ast_from(get_file(file_name)) + @file_ast_cache[file_name] ||= begin + source = processed_source(ruby_source(file_name)) + warn_unparseable(file_name, source) unless source.valid_syntax? + + # The AST is also nil for source with no code, like a template that's only HTML + source.ast || ast_from('x') + end end sig { params(file_name: String).returns(String) } def get_file(file_name) - @file_cache[file_name] ||= if RUBY_FILE.match?(file_name) && File.exist?(file_name) + @file_cache[file_name] ||= if (RUBY_FILE.match?(file_name) || ERB_FILE.match?(file_name)) && File.exist?(file_name) File.read(file_name) else 'x' @@ -84,7 +92,7 @@ def get_all_const_occurrences(file_name:, class_name:) absolute_const_node = ast_from(class_name) relative_const_node = ast_from(class_name.delete_prefix('::')) - @file_const_cache[const_key] = get_file_ast(file_name).each_descendant.select do |node| + @file_const_cache[const_key] = get_file_ast(file_name).each_node.select do |node| next false unless node.const_type? node == absolute_const_node || node == relative_const_node @@ -133,10 +141,32 @@ def get_full_anonymous_sources(file_name:, class_name:) private + # Blanks out everything in an ERB template except its Ruby code, so line numbers still match the template + sig { params(file_name: String).returns(String) } + def ruby_source(file_name) + source = get_file(file_name) + return source unless ERB_FILE.match?(file_name) + + Herb.extract_ruby(source, semicolons: true, comments: false, preserve_positions: true) + end + + sig { params(string: String).returns(RuboCop::ProcessedSource) } + def processed_source(string) + RuboCop::ProcessedSource.new(string, RUBY_VERSION.to_f) + end + + sig { params(file_name: String, source: RuboCop::ProcessedSource).void } + def warn_unparseable(file_name, source) + error = source.diagnostics.find { |diagnostic| diagnostic.level == :error } + location = error ? "#{file_name}:#{error.location.line} (#{error.message})" : file_name + + warn "Could not parse #{location}, so its violations are not included" + end + # Turns a string into a Ruby AST sig { params(string: String).returns(RuboCop::AST::Node) } def ast_from(string) - RuboCop::ProcessedSource.new(string, RUBY_VERSION.to_f).ast + processed_source(string).ast end # We can find a constant, but by going up its parents we can find the full call chain. diff --git a/lib/query_packwerk/version.rb b/lib/query_packwerk/version.rb index 314ad8c..f99d9f8 100644 --- a/lib/query_packwerk/version.rb +++ b/lib/query_packwerk/version.rb @@ -2,5 +2,5 @@ # frozen_string_literal: true module QueryPackwerk - VERSION = '0.1.25' + VERSION = '0.1.26' end diff --git a/lib/query_packwerk/violation.rb b/lib/query_packwerk/violation.rb index bf3a902..1d6d608 100644 --- a/lib/query_packwerk/violation.rb +++ b/lib/query_packwerk/violation.rb @@ -9,8 +9,6 @@ module QueryPackwerk class Violation extend T::Sig - # This does not play nicely with ERB files which may have violations - RUBY_FILE = T.let(/\.(rb|rake)\z/, Regexp) ALL_CAPS = T.let(/\A[A-Z_]+\z/, Regexp) sig { returns(QueryPackwerk::Package) } @@ -168,13 +166,15 @@ def sources_with_contexts(start_offset: 3, end_offset: 3) load_cache! file_sources = files.flat_map do |file_name| + lines = @file_cache.get_file(file_name).lines + @file_cache.get_full_sources(file_name: file_name, class_name: class_name).map do |s| line_number = s.loc.line - start_pos = line_number - start_offset - end_pos = line_number + end_offset + start_pos = [line_number - start_offset, 1].max + end_pos = [line_number + end_offset, lines.size].min location = "#{file_name}:#{s.loc.line} (L#{start_pos}..#{end_pos})" - context = @file_cache.get_file(file_name).lines.slice(start_pos..end_pos) + context = lines[(start_pos - 1)...end_pos] full_context = unindent((context || ['']).join) [@file_cache.anonymize_arguments(s.source), "> #{location}\n\n#{full_context}"] diff --git a/lib/query_packwerk/violations.rb b/lib/query_packwerk/violations.rb index f12dda4..86ed7cd 100644 --- a/lib/query_packwerk/violations.rb +++ b/lib/query_packwerk/violations.rb @@ -192,7 +192,9 @@ def anonymous_sources_with_locations def sources_with_contexts(start_offset: 3, end_offset: 3) load_sources! - deep_merge_hash_groups(@original_collection) { |v| [v.class_name, v.sources_with_contexts] } + deep_merge_hash_groups(@original_collection) do |v| + [v.class_name, v.sources_with_contexts(start_offset:, end_offset:)] + end end sig { params(start_offset: Integer, end_offset: Integer).returns(String) } diff --git a/query_packwerk.gemspec b/query_packwerk.gemspec index 0e92850..626c3cf 100644 --- a/query_packwerk.gemspec +++ b/query_packwerk.gemspec @@ -34,6 +34,7 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.add_dependency 'coderay' + spec.add_dependency 'herb', '>= 0.9' spec.add_dependency 'packwerk' spec.add_dependency 'parse_packwerk' spec.add_dependency 'rubocop' diff --git a/sorbet/rbi/gems/herb@0.11.0.rbi b/sorbet/rbi/gems/herb@0.11.0.rbi new file mode 100644 index 0000000..7a49cc0 --- /dev/null +++ b/sorbet/rbi/gems/herb@0.11.0.rbi @@ -0,0 +1,8645 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `herb` gem. +# Please instead update this file by running `bin/tapioca gem herb`. + + +# source://herb//lib/herb/colors.rb#6 +module Herb + class << self + # : (?arena_stats: bool) -> untyped + # + # source://herb//lib/herb.rb#96 + def arena_stats(*_arg0, **_arg1, &_arg2); end + + # source://herb//lib/herb.rb#132 + def configuration(project_path = T.unsafe(nil)); end + + # source://herb//lib/herb.rb#138 + def configure(project_path = T.unsafe(nil)); end + + # : () -> Array[String] + # + # source://herb//lib/herb.rb#128 + def default_erb_openings; end + + # : (String old_source, String new_source, ?track_whitespace_changes: bool) -> Herb::Diff::Result + # + # source://herb//lib/herb.rb#91 + def diff(*_arg0, **_arg1, &_arg2); end + + # : (*String gems) -> void + # + # source://herb//lib/herb/ensure_installed.rb#5 + def ensure_installed(*gems); end + + # : (String source) -> String + # + # source://herb//lib/herb.rb#86 + def extract_html(*_arg0, **_arg1, &_arg2); end + + # : (String source, ?semicolons: bool, ?comments: bool, ?preserve_positions: bool, ?custom_tags: bool, ?erb_openers: Array[String]) -> String + # + # source://herb//lib/herb.rb#81 + def extract_ruby(*_arg0, **_arg1, &_arg2); end + + # : (String source) -> untyped + # + # source://herb//lib/herb.rb#101 + def leak_check(*_arg0, **_arg1, &_arg2); end + + # : (String input, ?erb_openers: Array[String], ?arena_stats: bool) -> LexResult + # + # source://herb//lib/herb.rb#76 + def lex(*_arg0, **_arg1, &_arg2); end + + # : (String path, ?arena_stats: bool) -> LexResult + # + # source://herb//lib/herb.rb#111 + def lex_file(path, arena_stats: T.unsafe(nil)); end + + # : (String input, ?track_whitespace: bool, ?track_locations: bool, ?analyze: bool, ?strict: bool, ?action_view_helpers: bool, ?transform_conditionals: bool, ?dot_notation_tags: bool, ?render_nodes: bool, ?strict_locals: bool, ?herb_directives: bool, ?iteration_nodes: bool, ?prism_nodes: bool, ?prism_nodes_deep: bool, ?prism_program: bool, ?html: bool, ?erb_openers: Array[String], ?arena_stats: bool) -> ParseResult + # + # source://herb//lib/herb.rb#71 + def parse(*_arg0, **_arg1, &_arg2); end + + # : (String path, ?track_whitespace: bool, ?track_locations: bool, ?analyze: bool, ?strict: bool, ?action_view_helpers: bool, ?transform_conditionals: bool, ?strict_locals: bool, ?herb_directives: bool, ?prism_nodes: bool, ?prism_nodes_deep: bool, ?prism_program: bool, ?arena_stats: bool) -> ParseResult + # + # source://herb//lib/herb.rb#116 + def parse_file(path, track_locations: T.unsafe(nil), track_whitespace: T.unsafe(nil), analyze: T.unsafe(nil), strict: T.unsafe(nil), action_view_helpers: T.unsafe(nil), transform_conditionals: T.unsafe(nil), strict_locals: T.unsafe(nil), herb_directives: T.unsafe(nil), prism_nodes: T.unsafe(nil), prism_nodes_deep: T.unsafe(nil), prism_program: T.unsafe(nil), arena_stats: T.unsafe(nil)); end + + # : (String source) -> Prism::ParseResult + # + # source://herb//lib/herb.rb#121 + def parse_ruby(source); end + + # source://herb//lib/herb.rb#144 + def reset_configuration!; end + + # : () -> String + # + # source://herb//lib/herb.rb#106 + def version; end + + private + + # : (Array[String]) -> void + # + # @raise [LoadError] + # + # source://herb//lib/herb/ensure_installed.rb#35 + def refuse_bundle_replacement(missing); end + end +end + +# : type serialized_node = { +# | type: String, +# | location: serialized_location?, +# | errors: Array[serialized_error] +# | } +# +# source://herb//lib/herb/ast/node.rb#12 +module Herb::AST; end + +# : type serialized_cdata_node = { +# | tag_opening: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1884 +class Herb::AST::CDATANode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Array[Herb::AST::Node], Herb::Token?) -> void + # + # @return [CDATANode] a new instance of CDATANode + # + # source://herb//lib/herb/ast/nodes.rb#1892 + def initialize(type, location, errors, tag_opening, children, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1919 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1924 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1888 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1929 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1934 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1889 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1887 + def tag_opening; end + + # : () -> serialized_cdata_node + # + # source://herb//lib/herb/ast/nodes.rb#1910 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1939 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?children: Array[Herb::AST::Node], ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> CDATANode + # + # source://herb//lib/herb/ast/nodes.rb#1905 + def build(tag_opening: T.unsafe(nil), children: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1900 + def type; end + end +end + +# : type serialized_document_node = { +# | children: Array[Herb::AST::Node], +# | prism_context: nil, +# | prism_node: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#16 +class Herb::AST::DocumentNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node], nil, String?) -> void + # + # @return [DocumentNode] a new instance of DocumentNode + # + # source://herb//lib/herb/ast/nodes.rb#24 + def initialize(type, location, errors, children, prism_context, prism_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#67 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#72 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#19 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#77 + def compact_child_nodes; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#42 + def deserialized_prism_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#82 + def inspect; end + + # : nil + # + # source://herb//lib/herb/ast/nodes.rb#20 + def prism_context; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#21 + def prism_node; end + + # : () -> serialized_document_node + # + # source://herb//lib/herb/ast/nodes.rb#58 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#87 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?children: Array[Herb::AST::Node], ?prism_context: nil, ?prism_node: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> DocumentNode + # + # source://herb//lib/herb/ast/nodes.rb#37 + def build(children: T.unsafe(nil), prism_context: T.unsafe(nil), prism_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#32 + def type; end + end +end + +# : type serialized_erb_begin_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | prism_node: String?, +# | statements: Array[Herb::AST::Node], +# | rescue_clause: Herb::AST::ERBRescueNode?, +# | else_clause: Herb::AST::ERBElseNode?, +# | ensure_clause: Herb::AST::ERBEnsureNode?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3935 +class Herb::AST::ERBBeginNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, String?, Array[Herb::AST::Node], Herb::AST::ERBRescueNode?, Herb::AST::ERBElseNode?, Herb::AST::ERBEnsureNode?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBBeginNode] a new instance of ERBBeginNode + # + # source://herb//lib/herb/ast/nodes.rb#3949 + def initialize(type, location, errors, tag_opening, content, tag_closing, prism_node, statements, rescue_clause, else_clause, ensure_clause, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#4004 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#4009 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4014 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3939 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#3973 + def deserialized_prism_node; end + + # : Herb::AST::ERBElseNode? + # + # source://herb//lib/herb/ast/nodes.rb#3944 + def else_clause; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#3946 + def end_node; end + + # : Herb::AST::ERBEnsureNode? + # + # source://herb//lib/herb/ast/nodes.rb#3945 + def ensure_clause; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4019 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#3941 + def prism_node; end + + # : Herb::AST::ERBRescueNode? + # + # source://herb//lib/herb/ast/nodes.rb#3943 + def rescue_clause; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3942 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3940 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3938 + def tag_opening; end + + # : () -> serialized_erb_begin_node + # + # source://herb//lib/herb/ast/nodes.rb#3989 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#4024 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?prism_node: String?, ?statements: Array[Herb::AST::Node], ?rescue_clause: Herb::AST::ERBRescueNode?, ?else_clause: Herb::AST::ERBElseNode?, ?ensure_clause: Herb::AST::ERBEnsureNode?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBBeginNode + # + # source://herb//lib/herb/ast/nodes.rb#3968 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), prism_node: T.unsafe(nil), statements: T.unsafe(nil), rescue_clause: T.unsafe(nil), else_clause: T.unsafe(nil), ensure_clause: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3963 + def type; end + end +end + +# : type serialized_erb_block_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | prism_node: String?, +# | body: Array[Herb::AST::Node], +# | block_arguments: Array[Herb::AST::RubyParameterNode]?, +# | rescue_clause: Herb::AST::ERBRescueNode?, +# | else_clause: Herb::AST::ERBElseNode?, +# | ensure_clause: Herb::AST::ERBEnsureNode?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#2534 +class Herb::AST::ERBBlockNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, String?, Array[Herb::AST::Node], Array[Herb::AST::RubyParameterNode]?, Herb::AST::ERBRescueNode?, Herb::AST::ERBElseNode?, Herb::AST::ERBEnsureNode?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBBlockNode] a new instance of ERBBlockNode + # + # source://herb//lib/herb/ast/nodes.rb#2549 + def initialize(type, location, errors, tag_opening, content, tag_closing, prism_node, body, block_arguments, rescue_clause, else_clause, ensure_clause, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2606 + def accept(visitor); end + + # : Array[Herb::AST::RubyParameterNode]? + # + # source://herb//lib/herb/ast/nodes.rb#2542 + def block_arguments; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2541 + def body; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2611 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2616 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2538 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#2574 + def deserialized_prism_node; end + + # : Herb::AST::ERBElseNode? + # + # source://herb//lib/herb/ast/nodes.rb#2544 + def else_clause; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#2546 + def end_node; end + + # : Herb::AST::ERBEnsureNode? + # + # source://herb//lib/herb/ast/nodes.rb#2545 + def ensure_clause; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2621 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#2540 + def prism_node; end + + # : Herb::AST::ERBRescueNode? + # + # source://herb//lib/herb/ast/nodes.rb#2543 + def rescue_clause; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2539 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2537 + def tag_opening; end + + # : () -> serialized_erb_block_node + # + # source://herb//lib/herb/ast/nodes.rb#2590 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2626 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?prism_node: String?, ?body: Array[Herb::AST::Node], ?block_arguments: Array[Herb::AST::RubyParameterNode]?, ?rescue_clause: Herb::AST::ERBRescueNode?, ?else_clause: Herb::AST::ERBElseNode?, ?ensure_clause: Herb::AST::ERBEnsureNode?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBBlockNode + # + # source://herb//lib/herb/ast/nodes.rb#2569 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), prism_node: T.unsafe(nil), body: T.unsafe(nil), block_arguments: T.unsafe(nil), rescue_clause: T.unsafe(nil), else_clause: T.unsafe(nil), ensure_clause: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2564 + def type; end + end +end + +# : type serialized_erb_case_match_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | prism_node: String?, +# | conditions: Array[Herb::AST::ERBInNode], +# | else_clause: Herb::AST::ERBElseNode?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3174 +class Herb::AST::ERBCaseMatchNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::Node], String?, Array[Herb::AST::ERBInNode], Herb::AST::ERBElseNode?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBCaseMatchNode] a new instance of ERBCaseMatchNode + # + # source://herb//lib/herb/ast/nodes.rb#3187 + def initialize(type, location, errors, tag_opening, content, tag_closing, children, prism_node, conditions, else_clause, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#3240 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#3245 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3180 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3250 + def compact_child_nodes; end + + # : Array[Herb::AST::ERBInNode] + # + # source://herb//lib/herb/ast/nodes.rb#3182 + def conditions; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3178 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#3210 + def deserialized_prism_node; end + + # : Herb::AST::ERBElseNode? + # + # source://herb//lib/herb/ast/nodes.rb#3183 + def else_clause; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#3184 + def end_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3255 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#3181 + def prism_node; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3179 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3177 + def tag_opening; end + + # : () -> serialized_erb_case_match_node + # + # source://herb//lib/herb/ast/nodes.rb#3226 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#3260 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?children: Array[Herb::AST::Node], ?prism_node: String?, ?conditions: Array[Herb::AST::ERBInNode], ?else_clause: Herb::AST::ERBElseNode?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBCaseMatchNode + # + # source://herb//lib/herb/ast/nodes.rb#3205 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), children: T.unsafe(nil), prism_node: T.unsafe(nil), conditions: T.unsafe(nil), else_clause: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3200 + def type; end + end +end + +# : type serialized_erb_case_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | prism_node: String?, +# | conditions: Array[Herb::AST::ERBWhenNode], +# | else_clause: Herb::AST::ERBElseNode?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3022 +class Herb::AST::ERBCaseNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::Node], String?, Array[Herb::AST::ERBWhenNode], Herb::AST::ERBElseNode?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBCaseNode] a new instance of ERBCaseNode + # + # source://herb//lib/herb/ast/nodes.rb#3035 + def initialize(type, location, errors, tag_opening, content, tag_closing, children, prism_node, conditions, else_clause, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#3088 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#3093 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3028 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3098 + def compact_child_nodes; end + + # : Array[Herb::AST::ERBWhenNode] + # + # source://herb//lib/herb/ast/nodes.rb#3030 + def conditions; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3026 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#3058 + def deserialized_prism_node; end + + # : Herb::AST::ERBElseNode? + # + # source://herb//lib/herb/ast/nodes.rb#3031 + def else_clause; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#3032 + def end_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3103 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#3029 + def prism_node; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3027 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3025 + def tag_opening; end + + # : () -> serialized_erb_case_node + # + # source://herb//lib/herb/ast/nodes.rb#3074 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#3108 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?children: Array[Herb::AST::Node], ?prism_node: String?, ?conditions: Array[Herb::AST::ERBWhenNode], ?else_clause: Herb::AST::ERBElseNode?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBCaseNode + # + # source://herb//lib/herb/ast/nodes.rb#3053 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), children: T.unsafe(nil), prism_node: T.unsafe(nil), conditions: T.unsafe(nil), else_clause: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3048 + def type; end + end +end + +# : type serialized_erb_comment_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#5473 +class Herb::AST::ERBCommentNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?) -> void + # + # @return [ERBCommentNode] a new instance of ERBCommentNode + # + # source://herb//lib/herb/ast/nodes.rb#5481 + def initialize(type, location, errors, tag_opening, content, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#5508 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#5513 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#5518 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5477 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5523 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5478 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5476 + def tag_opening; end + + # : () -> serialized_erb_comment_node + # + # source://herb//lib/herb/ast/nodes.rb#5499 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#5528 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBCommentNode + # + # source://herb//lib/herb/ast/nodes.rb#5494 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5489 + def type; end + end +end + +# : type serialized_erb_content_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | analyzed_ruby: nil, +# | parsed: bool, +# | valid: bool, +# | prism_node: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#2055 +class Herb::AST::ERBContentNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, nil, bool, bool, String?) -> void + # + # @return [ERBContentNode] a new instance of ERBContentNode + # + # source://herb//lib/herb/ast/nodes.rb#2067 + def initialize(type, location, errors, tag_opening, content, tag_closing, analyzed_ruby, parsed, valid, prism_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2118 + def accept(visitor); end + + # : nil + # + # source://herb//lib/herb/ast/nodes.rb#2061 + def analyzed_ruby; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2123 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2128 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2059 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#2089 + def deserialized_prism_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2133 + def inspect; end + + # : bool + # + # source://herb//lib/herb/ast/nodes.rb#2062 + def parsed; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/erb_content_node.rb#8 + def parsed_prism_node; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/erb_content_node.rb#25 + def prism; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#2064 + def prism_node; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2060 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2058 + def tag_opening; end + + # : () -> serialized_erb_content_node + # + # source://herb//lib/herb/ast/nodes.rb#2105 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2138 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : bool + # + # source://herb//lib/herb/ast/nodes.rb#2063 + def valid; end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?analyzed_ruby: nil, ?parsed: bool, ?valid: bool, ?prism_node: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBContentNode + # + # source://herb//lib/herb/ast/nodes.rb#2084 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), analyzed_ruby: T.unsafe(nil), parsed: T.unsafe(nil), valid: T.unsafe(nil), prism_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2079 + def type; end + end +end + +# : type serialized_erb_else_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | statements: Array[Herb::AST::Node], +# | } +# +# source://herb//lib/herb/ast/nodes.rb#2278 +class Herb::AST::ERBElseNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::Node]) -> void + # + # @return [ERBElseNode] a new instance of ERBElseNode + # + # source://herb//lib/herb/ast/nodes.rb#2287 + def initialize(type, location, errors, tag_opening, content, tag_closing, statements); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2316 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2321 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2326 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2282 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2331 + def inspect; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2284 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2283 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2281 + def tag_opening; end + + # : () -> serialized_erb_else_node + # + # source://herb//lib/herb/ast/nodes.rb#2306 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2336 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?statements: Array[Herb::AST::Node], ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBElseNode + # + # source://herb//lib/herb/ast/nodes.rb#2301 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2296 + def type; end + end +end + +# : type serialized_erb_end_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#2186 +class Herb::AST::ERBEndNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?) -> void + # + # @return [ERBEndNode] a new instance of ERBEndNode + # + # source://herb//lib/herb/ast/nodes.rb#2194 + def initialize(type, location, errors, tag_opening, content, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2221 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2226 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2231 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2190 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2236 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2191 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2189 + def tag_opening; end + + # : () -> serialized_erb_end_node + # + # source://herb//lib/herb/ast/nodes.rb#2212 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2241 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBEndNode + # + # source://herb//lib/herb/ast/nodes.rb#2207 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2202 + def type; end + end +end + +# : type serialized_erb_ensure_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | statements: Array[Herb::AST::Node], +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3833 +class Herb::AST::ERBEnsureNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::Node]) -> void + # + # @return [ERBEnsureNode] a new instance of ERBEnsureNode + # + # source://herb//lib/herb/ast/nodes.rb#3842 + def initialize(type, location, errors, tag_opening, content, tag_closing, statements); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#3871 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#3876 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3881 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3837 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3886 + def inspect; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3839 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3838 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3836 + def tag_opening; end + + # : () -> serialized_erb_ensure_node + # + # source://herb//lib/herb/ast/nodes.rb#3861 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#3891 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?statements: Array[Herb::AST::Node], ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBEnsureNode + # + # source://herb//lib/herb/ast/nodes.rb#3856 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3851 + def type; end + end +end + +# : type serialized_erb_for_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | prism_node: String?, +# | statements: Array[Herb::AST::Node], +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3592 +class Herb::AST::ERBForNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, String?, Array[Herb::AST::Node], Herb::AST::ERBEndNode?) -> void + # + # @return [ERBForNode] a new instance of ERBForNode + # + # source://herb//lib/herb/ast/nodes.rb#3603 + def initialize(type, location, errors, tag_opening, content, tag_closing, prism_node, statements, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#3652 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#3657 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3662 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3596 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#3624 + def deserialized_prism_node; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#3600 + def end_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3667 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#3598 + def prism_node; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3599 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3597 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3595 + def tag_opening; end + + # : () -> serialized_erb_for_node + # + # source://herb//lib/herb/ast/nodes.rb#3640 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#3672 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?prism_node: String?, ?statements: Array[Herb::AST::Node], ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBForNode + # + # source://herb//lib/herb/ast/nodes.rb#3619 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), prism_node: T.unsafe(nil), statements: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3614 + def type; end + end +end + +# : type serialized_erb_if_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | then_keyword: Herb::Location?, +# | prism_node: String?, +# | statements: Array[Herb::AST::Node], +# | subsequent: (Herb::AST::ERBIfNode | Herb::AST::ERBElseNode)?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#2379 +class Herb::AST::ERBIfNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Location?, String?, Array[Herb::AST::Node], (Herb::AST::ERBIfNode | Herb::AST::ERBElseNode)?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBIfNode] a new instance of ERBIfNode + # + # source://herb//lib/herb/ast/nodes.rb#2392 + def initialize(type, location, errors, tag_opening, content, tag_closing, then_keyword, prism_node, statements, subsequent, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2445 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2450 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2455 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2383 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#2415 + def deserialized_prism_node; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#2389 + def end_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2460 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#2386 + def prism_node; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2387 + def statements; end + + # : (Herb::AST::ERBIfNode | Herb::AST::ERBElseNode)? + # + # source://herb//lib/herb/ast/nodes.rb#2388 + def subsequent; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2384 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2382 + def tag_opening; end + + # : Herb::Location? + # + # source://herb//lib/herb/ast/nodes.rb#2385 + def then_keyword; end + + # : () -> serialized_erb_if_node + # + # source://herb//lib/herb/ast/nodes.rb#2431 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2465 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?then_keyword: Herb::Location?, ?prism_node: String?, ?statements: Array[Herb::AST::Node], ?subsequent: (Herb::AST::ERBIfNode | Herb::AST::ERBElseNode)?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBIfNode + # + # source://herb//lib/herb/ast/nodes.rb#2410 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), then_keyword: T.unsafe(nil), prism_node: T.unsafe(nil), statements: T.unsafe(nil), subsequent: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2405 + def type; end + end +end + +# : type serialized_erb_in_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | then_keyword: Herb::Location?, +# | statements: Array[Herb::AST::Node], +# | } +# +# source://herb//lib/herb/ast/nodes.rb#5061 +class Herb::AST::ERBInNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Location?, Array[Herb::AST::Node]) -> void + # + # @return [ERBInNode] a new instance of ERBInNode + # + # source://herb//lib/herb/ast/nodes.rb#5071 + def initialize(type, location, errors, tag_opening, content, tag_closing, then_keyword, statements); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#5102 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#5107 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#5112 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5065 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5117 + def inspect; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#5068 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5066 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5064 + def tag_opening; end + + # : Herb::Location? + # + # source://herb//lib/herb/ast/nodes.rb#5067 + def then_keyword; end + + # : () -> serialized_erb_in_node + # + # source://herb//lib/herb/ast/nodes.rb#5091 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#5122 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?then_keyword: Herb::Location?, ?statements: Array[Herb::AST::Node], ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBInNode + # + # source://herb//lib/herb/ast/nodes.rb#5086 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), then_keyword: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5081 + def type; end + end +end + +# : type serialized_erb_iteration_block_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | prism_node: String?, +# | receiver: Herb::Token?, +# | call_operator: Herb::Token?, +# | message: Herb::Token?, +# | arguments: Array[Herb::AST::RubyLiteralNode]?, +# | block_opening: Herb::Token?, +# | body: Array[Herb::AST::Node], +# | block_arguments: Array[Herb::AST::RubyParameterNode]?, +# | rescue_clause: Herb::AST::ERBRescueNode?, +# | else_clause: Herb::AST::ERBElseNode?, +# | ensure_clause: Herb::AST::ERBEnsureNode?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#2715 +class Herb::AST::ERBIterationBlockNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, String?, Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::RubyLiteralNode]?, Herb::Token?, Array[Herb::AST::Node], Array[Herb::AST::RubyParameterNode]?, Herb::AST::ERBRescueNode?, Herb::AST::ERBElseNode?, Herb::AST::ERBEnsureNode?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBIterationBlockNode] a new instance of ERBIterationBlockNode + # + # source://herb//lib/herb/ast/nodes.rb#2735 + def initialize(type, location, errors, tag_opening, content, tag_closing, prism_node, receiver, call_operator, message, arguments, block_opening, body, block_arguments, rescue_clause, else_clause, ensure_clause, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2802 + def accept(visitor); end + + # : Array[Herb::AST::RubyLiteralNode]? + # + # source://herb//lib/herb/ast/nodes.rb#2725 + def arguments; end + + # : Array[Herb::AST::RubyParameterNode]? + # + # source://herb//lib/herb/ast/nodes.rb#2728 + def block_arguments; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2726 + def block_opening; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2727 + def body; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2723 + def call_operator; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2807 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2812 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2719 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#2765 + def deserialized_prism_node; end + + # : Herb::AST::ERBElseNode? + # + # source://herb//lib/herb/ast/nodes.rb#2730 + def else_clause; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#2732 + def end_node; end + + # : Herb::AST::ERBEnsureNode? + # + # source://herb//lib/herb/ast/nodes.rb#2731 + def ensure_clause; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2817 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2724 + def message; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#2721 + def prism_node; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2722 + def receiver; end + + # : Herb::AST::ERBRescueNode? + # + # source://herb//lib/herb/ast/nodes.rb#2729 + def rescue_clause; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2720 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2718 + def tag_opening; end + + # : () -> serialized_erb_iteration_block_node + # + # source://herb//lib/herb/ast/nodes.rb#2781 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2822 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?prism_node: String?, ?receiver: Herb::Token?, ?call_operator: Herb::Token?, ?message: Herb::Token?, ?arguments: Array[Herb::AST::RubyLiteralNode]?, ?block_opening: Herb::Token?, ?body: Array[Herb::AST::Node], ?block_arguments: Array[Herb::AST::RubyParameterNode]?, ?rescue_clause: Herb::AST::ERBRescueNode?, ?else_clause: Herb::AST::ERBElseNode?, ?ensure_clause: Herb::AST::ERBEnsureNode?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBIterationBlockNode + # + # source://herb//lib/herb/ast/nodes.rb#2760 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), prism_node: T.unsafe(nil), receiver: T.unsafe(nil), call_operator: T.unsafe(nil), message: T.unsafe(nil), arguments: T.unsafe(nil), block_opening: T.unsafe(nil), body: T.unsafe(nil), block_arguments: T.unsafe(nil), rescue_clause: T.unsafe(nil), else_clause: T.unsafe(nil), ensure_clause: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2755 + def type; end + end +end + +# : type serialized_erb_open_tag_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | tag_name: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1340 +class Herb::AST::ERBOpenTagNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::Node]) -> void + # + # @return [ERBOpenTagNode] a new instance of ERBOpenTagNode + # + # source://herb//lib/herb/ast/nodes.rb#1350 + def initialize(type, location, errors, tag_opening, content, tag_closing, tag_name, children); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1381 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1386 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1347 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1391 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1344 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1396 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1345 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1346 + def tag_name; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1343 + def tag_opening; end + + # : () -> serialized_erb_open_tag_node + # + # source://herb//lib/herb/ast/nodes.rb#1370 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1401 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?tag_name: Herb::Token?, ?children: Array[Herb::AST::Node], ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBOpenTagNode + # + # source://herb//lib/herb/ast/nodes.rb#1365 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), tag_name: T.unsafe(nil), children: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1360 + def type; end + end +end + +# : type serialized_erb_render_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | analyzed_ruby: nil, +# | prism_node: String?, +# | keywords: Herb::AST::RubyRenderKeywordsNode?, +# | body: Array[Herb::AST::Node], +# | block_arguments: Array[Herb::AST::RubyParameterNode]?, +# | rescue_clause: Herb::AST::ERBRescueNode?, +# | else_clause: Herb::AST::ERBElseNode?, +# | ensure_clause: Herb::AST::ERBEnsureNode?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#4558 +class Herb::AST::ERBRenderNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, nil, String?, Herb::AST::RubyRenderKeywordsNode?, Array[Herb::AST::Node], Array[Herb::AST::RubyParameterNode]?, Herb::AST::ERBRescueNode?, Herb::AST::ERBElseNode?, Herb::AST::ERBEnsureNode?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBRenderNode] a new instance of ERBRenderNode + # + # source://herb//lib/herb/ast/nodes.rb#4575 + def initialize(type, location, errors, tag_opening, content, tag_closing, analyzed_ruby, prism_node, keywords, body, block_arguments, rescue_clause, else_clause, ensure_clause, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#4636 + def accept(visitor); end + + # : nil + # + # source://herb//lib/herb/ast/nodes.rb#4564 + def analyzed_ruby; end + + # : Array[Herb::AST::RubyParameterNode]? + # + # source://herb//lib/herb/ast/nodes.rb#4568 + def block_arguments; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4567 + def body; end + + # @return [Boolean] + # + # source://herb//lib/herb/ast/erb_render_node.rb#38 + def bound_state?; end + + # source://herb//lib/herb/ast/erb_render_node.rb#50 + def candidate_paths(name = T.unsafe(nil), view_root = T.unsafe(nil), source_directory = T.unsafe(nil)); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#4641 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4646 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4562 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#4602 + def deserialized_prism_node; end + + # @return [Boolean] + # + # source://herb//lib/herb/ast/erb_render_node.rb#14 + def dynamic?; end + + # : Herb::AST::ERBElseNode? + # + # source://herb//lib/herb/ast/nodes.rb#4570 + def else_clause; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#4572 + def end_node; end + + # : Herb::AST::ERBEnsureNode? + # + # source://herb//lib/herb/ast/nodes.rb#4571 + def ensure_clause; end + + # source://herb//lib/herb/ast/erb_render_node.rb#66 + def find_non_partial_matches(name = T.unsafe(nil), view_root = T.unsafe(nil), source_directory = T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4651 + def inspect; end + + # : Herb::AST::RubyRenderKeywordsNode? + # + # source://herb//lib/herb/ast/nodes.rb#4566 + def keywords; end + + # source://herb//lib/herb/ast/erb_render_node.rb#26 + def layout_name; end + + # source://herb//lib/herb/ast/erb_render_node.rb#30 + def local_names; end + + # source://herb//lib/herb/ast/erb_render_node.rb#18 + def partial_path; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#4565 + def prism_node; end + + # : Herb::AST::ERBRescueNode? + # + # source://herb//lib/herb/ast/nodes.rb#4569 + def rescue_clause; end + + # source://herb//lib/herb/ast/erb_render_node.rb#42 + def resolve(view_root: T.unsafe(nil), source_directory: T.unsafe(nil)); end + + # source://herb//lib/herb/ast/erb_render_node.rb#58 + def similar_partials(view_root: T.unsafe(nil), source_directory: T.unsafe(nil), limit: T.unsafe(nil)); end + + # source://herb//lib/herb/ast/erb_render_node.rb#34 + def state_names; end + + # @return [Boolean] + # + # source://herb//lib/herb/ast/erb_render_node.rb#10 + def static_partial?; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4563 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4561 + def tag_opening; end + + # source://herb//lib/herb/ast/erb_render_node.rb#22 + def template_name; end + + # : () -> serialized_erb_render_node + # + # source://herb//lib/herb/ast/nodes.rb#4618 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#4656 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + private + + # source://herb//lib/herb/ast/erb_render_node.rb#80 + def coerce_directory(directory); end + + # source://herb//lib/herb/ast/erb_render_node.rb#76 + def resolver_for(view_root); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?analyzed_ruby: nil, ?prism_node: String?, ?keywords: Herb::AST::RubyRenderKeywordsNode?, ?body: Array[Herb::AST::Node], ?block_arguments: Array[Herb::AST::RubyParameterNode]?, ?rescue_clause: Herb::AST::ERBRescueNode?, ?else_clause: Herb::AST::ERBElseNode?, ?ensure_clause: Herb::AST::ERBEnsureNode?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBRenderNode + # + # source://herb//lib/herb/ast/nodes.rb#4597 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), analyzed_ruby: T.unsafe(nil), prism_node: T.unsafe(nil), keywords: T.unsafe(nil), body: T.unsafe(nil), block_arguments: T.unsafe(nil), rescue_clause: T.unsafe(nil), else_clause: T.unsafe(nil), ensure_clause: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4592 + def type; end + end +end + +# : type serialized_erb_rescue_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | statements: Array[Herb::AST::Node], +# | subsequent: Herb::AST::ERBRescueNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3725 +class Herb::AST::ERBRescueNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::Node], Herb::AST::ERBRescueNode?) -> void + # + # @return [ERBRescueNode] a new instance of ERBRescueNode + # + # source://herb//lib/herb/ast/nodes.rb#3735 + def initialize(type, location, errors, tag_opening, content, tag_closing, statements, subsequent); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#3766 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#3771 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3776 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3729 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3781 + def inspect; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3731 + def statements; end + + # : Herb::AST::ERBRescueNode? + # + # source://herb//lib/herb/ast/nodes.rb#3732 + def subsequent; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3730 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3728 + def tag_opening; end + + # : () -> serialized_erb_rescue_node + # + # source://herb//lib/herb/ast/nodes.rb#3755 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#3786 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?statements: Array[Herb::AST::Node], ?subsequent: Herb::AST::ERBRescueNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBRescueNode + # + # source://herb//lib/herb/ast/nodes.rb#3750 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), statements: T.unsafe(nil), subsequent: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3745 + def type; end + end +end + +# : type serialized_erb_strict_locals_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | analyzed_ruby: nil, +# | prism_node: String?, +# | locals: Array[Herb::AST::RubyParameterNode]?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#4845 +class Herb::AST::ERBStrictLocalsNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, nil, String?, Array[Herb::AST::RubyParameterNode]?) -> void + # + # @return [ERBStrictLocalsNode] a new instance of ERBStrictLocalsNode + # + # source://herb//lib/herb/ast/nodes.rb#4856 + def initialize(type, location, errors, tag_opening, content, tag_closing, analyzed_ruby, prism_node, locals); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#4905 + def accept(visitor); end + + # : nil + # + # source://herb//lib/herb/ast/nodes.rb#4851 + def analyzed_ruby; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#4910 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4915 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4849 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#4877 + def deserialized_prism_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4920 + def inspect; end + + # : Array[Herb::AST::RubyParameterNode]? + # + # source://herb//lib/herb/ast/nodes.rb#4853 + def locals; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#4852 + def prism_node; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4850 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4848 + def tag_opening; end + + # : () -> serialized_erb_strict_locals_node + # + # source://herb//lib/herb/ast/nodes.rb#4893 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#4925 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?analyzed_ruby: nil, ?prism_node: String?, ?locals: Array[Herb::AST::RubyParameterNode]?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBStrictLocalsNode + # + # source://herb//lib/herb/ast/nodes.rb#4872 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), analyzed_ruby: T.unsafe(nil), prism_node: T.unsafe(nil), locals: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4867 + def type; end + end +end + +# : type serialized_erb_unless_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | then_keyword: Herb::Location?, +# | prism_node: String?, +# | statements: Array[Herb::AST::Node], +# | else_clause: Herb::AST::ERBElseNode?, +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#4104 +class Herb::AST::ERBUnlessNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Location?, String?, Array[Herb::AST::Node], Herb::AST::ERBElseNode?, Herb::AST::ERBEndNode?) -> void + # + # @return [ERBUnlessNode] a new instance of ERBUnlessNode + # + # source://herb//lib/herb/ast/nodes.rb#4117 + def initialize(type, location, errors, tag_opening, content, tag_closing, then_keyword, prism_node, statements, else_clause, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#4170 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#4175 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4180 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4108 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#4140 + def deserialized_prism_node; end + + # : Herb::AST::ERBElseNode? + # + # source://herb//lib/herb/ast/nodes.rb#4113 + def else_clause; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#4114 + def end_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4185 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#4111 + def prism_node; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4112 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4109 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4107 + def tag_opening; end + + # : Herb::Location? + # + # source://herb//lib/herb/ast/nodes.rb#4110 + def then_keyword; end + + # : () -> serialized_erb_unless_node + # + # source://herb//lib/herb/ast/nodes.rb#4156 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#4190 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?then_keyword: Herb::Location?, ?prism_node: String?, ?statements: Array[Herb::AST::Node], ?else_clause: Herb::AST::ERBElseNode?, ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBUnlessNode + # + # source://herb//lib/herb/ast/nodes.rb#4135 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), then_keyword: T.unsafe(nil), prism_node: T.unsafe(nil), statements: T.unsafe(nil), else_clause: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4130 + def type; end + end +end + +# : type serialized_erb_until_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | prism_node: String?, +# | statements: Array[Herb::AST::Node], +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3458 +class Herb::AST::ERBUntilNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, String?, Array[Herb::AST::Node], Herb::AST::ERBEndNode?) -> void + # + # @return [ERBUntilNode] a new instance of ERBUntilNode + # + # source://herb//lib/herb/ast/nodes.rb#3469 + def initialize(type, location, errors, tag_opening, content, tag_closing, prism_node, statements, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#3518 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#3523 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3528 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3462 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#3490 + def deserialized_prism_node; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#3466 + def end_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3533 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#3464 + def prism_node; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3465 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3463 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3461 + def tag_opening; end + + # : () -> serialized_erb_until_node + # + # source://herb//lib/herb/ast/nodes.rb#3506 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#3538 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?prism_node: String?, ?statements: Array[Herb::AST::Node], ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBUntilNode + # + # source://herb//lib/herb/ast/nodes.rb#3485 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), prism_node: T.unsafe(nil), statements: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3480 + def type; end + end +end + +# : type serialized_erb_when_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | then_keyword: Herb::Location?, +# | statements: Array[Herb::AST::Node], +# | } +# +# source://herb//lib/herb/ast/nodes.rb#2915 +class Herb::AST::ERBWhenNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Location?, Array[Herb::AST::Node]) -> void + # + # @return [ERBWhenNode] a new instance of ERBWhenNode + # + # source://herb//lib/herb/ast/nodes.rb#2925 + def initialize(type, location, errors, tag_opening, content, tag_closing, then_keyword, statements); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2956 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2961 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2966 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2919 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2971 + def inspect; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2922 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2920 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#2918 + def tag_opening; end + + # : Herb::Location? + # + # source://herb//lib/herb/ast/nodes.rb#2921 + def then_keyword; end + + # : () -> serialized_erb_when_node + # + # source://herb//lib/herb/ast/nodes.rb#2945 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2976 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?then_keyword: Herb::Location?, ?statements: Array[Herb::AST::Node], ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBWhenNode + # + # source://herb//lib/herb/ast/nodes.rb#2940 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), then_keyword: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2935 + def type; end + end +end + +# : type serialized_erb_while_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | prism_node: String?, +# | statements: Array[Herb::AST::Node], +# | end_node: Herb::AST::ERBEndNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#3324 +class Herb::AST::ERBWhileNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, String?, Array[Herb::AST::Node], Herb::AST::ERBEndNode?) -> void + # + # @return [ERBWhileNode] a new instance of ERBWhileNode + # + # source://herb//lib/herb/ast/nodes.rb#3335 + def initialize(type, location, errors, tag_opening, content, tag_closing, prism_node, statements, end_node); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#3384 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#3389 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3394 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3328 + def content; end + + # : () -> Prism::node? + # + # source://herb//lib/herb/ast/nodes.rb#3356 + def deserialized_prism_node; end + + # : Herb::AST::ERBEndNode? + # + # source://herb//lib/herb/ast/nodes.rb#3332 + def end_node; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3399 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#3330 + def prism_node; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#3331 + def statements; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3329 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#3327 + def tag_opening; end + + # : () -> serialized_erb_while_node + # + # source://herb//lib/herb/ast/nodes.rb#3372 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#3404 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?prism_node: String?, ?statements: Array[Herb::AST::Node], ?end_node: Herb::AST::ERBEndNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBWhileNode + # + # source://herb//lib/herb/ast/nodes.rb#3351 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), prism_node: T.unsafe(nil), statements: T.unsafe(nil), end_node: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#3346 + def type; end + end +end + +# : type serialized_erb_yield_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#4968 +class Herb::AST::ERBYieldNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?) -> void + # + # @return [ERBYieldNode] a new instance of ERBYieldNode + # + # source://herb//lib/herb/ast/nodes.rb#4976 + def initialize(type, location, errors, tag_opening, content, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#5003 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#5008 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#5013 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4972 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5018 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4973 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4971 + def tag_opening; end + + # : () -> serialized_erb_yield_node + # + # source://herb//lib/herb/ast/nodes.rb#4994 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#5023 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> ERBYieldNode + # + # source://herb//lib/herb/ast/nodes.rb#4989 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4984 + def type; end + end +end + +# : type serialized_html_attribute_name_node = { +# | children: Array[(Herb::AST::LiteralNode | Herb::AST::ERBContentNode | Herb::AST::ERBCommentNode)]?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1004 +class Herb::AST::HTMLAttributeNameNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Array[(Herb::AST::LiteralNode | Herb::AST::ERBContentNode | Herb::AST::ERBCommentNode)]?) -> void + # + # @return [HTMLAttributeNameNode] a new instance of HTMLAttributeNameNode + # + # source://herb//lib/herb/ast/nodes.rb#1010 + def initialize(type, location, errors, children); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1033 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1038 + def child_nodes; end + + # : Array[(Herb::AST::LiteralNode | Herb::AST::ERBContentNode | Herb::AST::ERBCommentNode)]? + # + # source://herb//lib/herb/ast/nodes.rb#1007 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1043 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1048 + def inspect; end + + # : () -> serialized_html_attribute_name_node + # + # source://herb//lib/herb/ast/nodes.rb#1026 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1053 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?children: Array[(Herb::AST::LiteralNode | Herb::AST::ERBContentNode | Herb::AST::ERBCommentNode)]?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLAttributeNameNode + # + # source://herb//lib/herb/ast/nodes.rb#1021 + def build(children: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1016 + def type; end + end +end + +# : type serialized_html_attribute_node = { +# | name: Herb::AST::HTMLAttributeNameNode?, +# | equals: Herb::Token?, +# | value: Herb::AST::HTMLAttributeValueNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1082 +class Herb::AST::HTMLAttributeNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLAttributeNameNode?, Herb::Token?, Herb::AST::HTMLAttributeValueNode?) -> void + # + # @return [HTMLAttributeNode] a new instance of HTMLAttributeNode + # + # source://herb//lib/herb/ast/nodes.rb#1090 + def initialize(type, location, errors, name, equals, value); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1117 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1122 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1127 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1086 + def equals; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1132 + def inspect; end + + # : Herb::AST::HTMLAttributeNameNode? + # + # source://herb//lib/herb/ast/nodes.rb#1085 + def name; end + + # : () -> serialized_html_attribute_node + # + # source://herb//lib/herb/ast/nodes.rb#1108 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1137 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : Herb::AST::HTMLAttributeValueNode? + # + # source://herb//lib/herb/ast/nodes.rb#1087 + def value; end + + class << self + # : (?name: Herb::AST::HTMLAttributeNameNode?, ?equals: Herb::Token?, ?value: Herb::AST::HTMLAttributeValueNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLAttributeNode + # + # source://herb//lib/herb/ast/nodes.rb#1103 + def build(name: T.unsafe(nil), equals: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1098 + def type; end + end +end + +# : type serialized_html_attribute_value_node = { +# | open_quote: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | close_quote: Herb::Token?, +# | quoted: bool, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#910 +class Herb::AST::HTMLAttributeValueNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Array[Herb::AST::Node], Herb::Token?, bool) -> void + # + # @return [HTMLAttributeValueNode] a new instance of HTMLAttributeValueNode + # + # source://herb//lib/herb/ast/nodes.rb#919 + def initialize(type, location, errors, open_quote, children, close_quote, quoted); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#948 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#953 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#914 + def children; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#915 + def close_quote; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#958 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#963 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#913 + def open_quote; end + + # : bool + # + # source://herb//lib/herb/ast/nodes.rb#916 + def quoted; end + + # : () -> serialized_html_attribute_value_node + # + # source://herb//lib/herb/ast/nodes.rb#938 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#968 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?open_quote: Herb::Token?, ?children: Array[Herb::AST::Node], ?close_quote: Herb::Token?, ?quoted: bool, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLAttributeValueNode + # + # source://herb//lib/herb/ast/nodes.rb#933 + def build(open_quote: T.unsafe(nil), children: T.unsafe(nil), close_quote: T.unsafe(nil), quoted: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#928 + def type; end + end +end + +# : type serialized_html_close_tag_node = { +# | tag_opening: Herb::Token?, +# | tag_name: Herb::Token?, +# | children: Array[Herb::AST::WhitespaceNode]?, +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#399 +class Herb::AST::HTMLCloseTagNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Array[Herb::AST::WhitespaceNode]?, Herb::Token?) -> void + # + # @return [HTMLCloseTagNode] a new instance of HTMLCloseTagNode + # + # source://herb//lib/herb/ast/nodes.rb#408 + def initialize(type, location, errors, tag_opening, tag_name, children, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#437 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#442 + def child_nodes; end + + # : Array[Herb::AST::WhitespaceNode]? + # + # source://herb//lib/herb/ast/nodes.rb#404 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#447 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#452 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#405 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#403 + def tag_name; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#402 + def tag_opening; end + + # : () -> serialized_html_close_tag_node + # + # source://herb//lib/herb/ast/nodes.rb#427 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#457 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?tag_name: Herb::Token?, ?children: Array[Herb::AST::WhitespaceNode]?, ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLCloseTagNode + # + # source://herb//lib/herb/ast/nodes.rb#422 + def build(tag_opening: T.unsafe(nil), tag_name: T.unsafe(nil), children: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#417 + def type; end + end +end + +# : type serialized_html_comment_node = { +# | comment_start: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | comment_end: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1517 +class Herb::AST::HTMLCommentNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Array[Herb::AST::Node], Herb::Token?) -> void + # + # @return [HTMLCommentNode] a new instance of HTMLCommentNode + # + # source://herb//lib/herb/ast/nodes.rb#1525 + def initialize(type, location, errors, comment_start, children, comment_end); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1552 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1557 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1521 + def children; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1522 + def comment_end; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1520 + def comment_start; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1562 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1567 + def inspect; end + + # : () -> serialized_html_comment_node + # + # source://herb//lib/herb/ast/nodes.rb#1543 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1572 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?comment_start: Herb::Token?, ?children: Array[Herb::AST::Node], ?comment_end: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLCommentNode + # + # source://herb//lib/herb/ast/nodes.rb#1538 + def build(comment_start: T.unsafe(nil), children: T.unsafe(nil), comment_end: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1533 + def type; end + end +end + +# : type serialized_html_conditional_element_node = { +# | condition: String?, +# | open_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, +# | open_tag: Herb::AST::HTMLOpenTagNode?, +# | body: Array[Herb::AST::Node], +# | close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode)?, +# | close_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, +# | tag_name: Herb::Token?, +# | element_source: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#773 +class Herb::AST::HTMLConditionalElementNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], String?, (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, Herb::AST::HTMLOpenTagNode?, Array[Herb::AST::Node], (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode)?, (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, Herb::Token?, String?) -> void + # + # @return [HTMLConditionalElementNode] a new instance of HTMLConditionalElementNode + # + # source://herb//lib/herb/ast/nodes.rb#786 + def initialize(type, location, errors, condition, open_conditional, open_tag, body, close_tag, close_conditional, tag_name, element_source); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#823 + def accept(visitor); end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#779 + def body; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#828 + def child_nodes; end + + # : (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)? + # + # source://herb//lib/herb/ast/nodes.rb#781 + def close_conditional; end + + # : (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode)? + # + # source://herb//lib/herb/ast/nodes.rb#780 + def close_tag; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#833 + def compact_child_nodes; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#776 + def condition; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#783 + def element_source; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#838 + def inspect; end + + # : (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)? + # + # source://herb//lib/herb/ast/nodes.rb#777 + def open_conditional; end + + # : Herb::AST::HTMLOpenTagNode? + # + # source://herb//lib/herb/ast/nodes.rb#778 + def open_tag; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#782 + def tag_name; end + + # : () -> serialized_html_conditional_element_node + # + # source://herb//lib/herb/ast/nodes.rb#809 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#843 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?condition: String?, ?open_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, ?open_tag: Herb::AST::HTMLOpenTagNode?, ?body: Array[Herb::AST::Node], ?close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode)?, ?close_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, ?tag_name: Herb::Token?, ?element_source: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLConditionalElementNode + # + # source://herb//lib/herb/ast/nodes.rb#804 + def build(condition: T.unsafe(nil), open_conditional: T.unsafe(nil), open_tag: T.unsafe(nil), body: T.unsafe(nil), close_tag: T.unsafe(nil), close_conditional: T.unsafe(nil), tag_name: T.unsafe(nil), element_source: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#799 + def type; end + end +end + +# : type serialized_html_conditional_open_tag_node = { +# | conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, +# | tag_name: Herb::Token?, +# | is_void: bool, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#302 +class Herb::AST::HTMLConditionalOpenTagNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, Herb::Token?, bool) -> void + # + # @return [HTMLConditionalOpenTagNode] a new instance of HTMLConditionalOpenTagNode + # + # source://herb//lib/herb/ast/nodes.rb#310 + def initialize(type, location, errors, conditional, tag_name, is_void); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#337 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#342 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#347 + def compact_child_nodes; end + + # : (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)? + # + # source://herb//lib/herb/ast/nodes.rb#305 + def conditional; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#352 + def inspect; end + + # : bool + # + # source://herb//lib/herb/ast/nodes.rb#307 + def is_void; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#306 + def tag_name; end + + # : () -> serialized_html_conditional_open_tag_node + # + # source://herb//lib/herb/ast/nodes.rb#328 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#357 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?, ?tag_name: Herb::Token?, ?is_void: bool, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLConditionalOpenTagNode + # + # source://herb//lib/herb/ast/nodes.rb#323 + def build(conditional: T.unsafe(nil), tag_name: T.unsafe(nil), is_void: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#318 + def type; end + end +end + +# : type serialized_html_doctype_node = { +# | tag_opening: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1607 +class Herb::AST::HTMLDoctypeNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Array[Herb::AST::Node], Herb::Token?) -> void + # + # @return [HTMLDoctypeNode] a new instance of HTMLDoctypeNode + # + # source://herb//lib/herb/ast/nodes.rb#1615 + def initialize(type, location, errors, tag_opening, children, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1642 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1647 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1611 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1652 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1657 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1612 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1610 + def tag_opening; end + + # : () -> serialized_html_doctype_node + # + # source://herb//lib/herb/ast/nodes.rb#1633 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1662 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?children: Array[Herb::AST::Node], ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLDoctypeNode + # + # source://herb//lib/herb/ast/nodes.rb#1628 + def build(tag_opening: T.unsafe(nil), children: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1623 + def type; end + end +end + +# : type serialized_html_element_node = { +# | open_tag: (Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode)?, +# | tag_name: Herb::Token?, +# | body: Array[Herb::AST::Node], +# | close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode)?, +# | is_void: bool, +# | element_source: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#652 +class Herb::AST::HTMLElementNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], (Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode)?, Herb::Token?, Array[Herb::AST::Node], (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode)?, bool, String?) -> void + # + # @return [HTMLElementNode] a new instance of HTMLElementNode + # + # source://herb//lib/herb/ast/nodes.rb#663 + def initialize(type, location, errors, open_tag, tag_name, body, close_tag, is_void, element_source); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#696 + def accept(visitor); end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#657 + def body; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#701 + def child_nodes; end + + # : (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode)? + # + # source://herb//lib/herb/ast/nodes.rb#658 + def close_tag; end + + # : (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode)? + # + # source://herb//lib/herb/ast/nodes.rb#658 + def close_tag=(_arg0); end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#706 + def compact_child_nodes; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#660 + def element_source; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#711 + def inspect; end + + # : bool + # + # source://herb//lib/herb/ast/nodes.rb#659 + def is_void; end + + # : (Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode)? + # + # source://herb//lib/herb/ast/nodes.rb#655 + def open_tag; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#656 + def tag_name; end + + # : () -> serialized_html_element_node + # + # source://herb//lib/herb/ast/nodes.rb#684 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#716 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?open_tag: (Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode)?, ?tag_name: Herb::Token?, ?body: Array[Herb::AST::Node], ?close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode)?, ?is_void: bool, ?element_source: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLElementNode + # + # source://herb//lib/herb/ast/nodes.rb#679 + def build(open_tag: T.unsafe(nil), tag_name: T.unsafe(nil), body: T.unsafe(nil), close_tag: T.unsafe(nil), is_void: T.unsafe(nil), element_source: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#674 + def type; end + end +end + +# : type serialized_html_omitted_close_tag_node = { +# | tag_name: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#493 +class Herb::AST::HTMLOmittedCloseTagNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?) -> void + # + # @return [HTMLOmittedCloseTagNode] a new instance of HTMLOmittedCloseTagNode + # + # source://herb//lib/herb/ast/nodes.rb#499 + def initialize(type, location, errors, tag_name); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#522 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#527 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#532 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#537 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#496 + def tag_name; end + + # : () -> serialized_html_omitted_close_tag_node + # + # source://herb//lib/herb/ast/nodes.rb#515 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#542 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_name: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLOmittedCloseTagNode + # + # source://herb//lib/herb/ast/nodes.rb#510 + def build(tag_name: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#505 + def type; end + end +end + +# : type serialized_html_open_tag_node = { +# | tag_opening: Herb::Token?, +# | tag_name: Herb::Token?, +# | tag_closing: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | is_void: bool, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#200 +class Herb::AST::HTMLOpenTagNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::Node], bool) -> void + # + # @return [HTMLOpenTagNode] a new instance of HTMLOpenTagNode + # + # source://herb//lib/herb/ast/nodes.rb#210 + def initialize(type, location, errors, tag_opening, tag_name, tag_closing, children, is_void); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#241 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#246 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#206 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#251 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#256 + def inspect; end + + # : bool + # + # source://herb//lib/herb/ast/nodes.rb#207 + def is_void; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#205 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#204 + def tag_name; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#203 + def tag_opening; end + + # : () -> serialized_html_open_tag_node + # + # source://herb//lib/herb/ast/nodes.rb#230 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#261 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?tag_name: Herb::Token?, ?tag_closing: Herb::Token?, ?children: Array[Herb::AST::Node], ?is_void: bool, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLOpenTagNode + # + # source://herb//lib/herb/ast/nodes.rb#225 + def build(tag_opening: T.unsafe(nil), tag_name: T.unsafe(nil), tag_closing: T.unsafe(nil), children: T.unsafe(nil), is_void: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#220 + def type; end + end +end + +# : type serialized_html_text_node = { +# | content: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1440 +class Herb::AST::HTMLTextNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], String?) -> void + # + # @return [HTMLTextNode] a new instance of HTMLTextNode + # + # source://herb//lib/herb/ast/nodes.rb#1446 + def initialize(type, location, errors, content); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1469 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1474 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1479 + def compact_child_nodes; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#1443 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1484 + def inspect; end + + # : () -> serialized_html_text_node + # + # source://herb//lib/herb/ast/nodes.rb#1462 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1489 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?content: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLTextNode + # + # source://herb//lib/herb/ast/nodes.rb#1457 + def build(content: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1452 + def type; end + end +end + +# : type serialized_html_virtual_close_tag_node = { +# | tag_name: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#570 +class Herb::AST::HTMLVirtualCloseTagNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?) -> void + # + # @return [HTMLVirtualCloseTagNode] a new instance of HTMLVirtualCloseTagNode + # + # source://herb//lib/herb/ast/nodes.rb#576 + def initialize(type, location, errors, tag_name); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#599 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#604 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#609 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#614 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#573 + def tag_name; end + + # : () -> serialized_html_virtual_close_tag_node + # + # source://herb//lib/herb/ast/nodes.rb#592 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#619 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_name: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HTMLVirtualCloseTagNode + # + # source://herb//lib/herb/ast/nodes.rb#587 + def build(tag_name: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#582 + def type; end + end +end + +# source://herb//lib/herb/ast/helpers.rb#6 +module Herb::AST::Helpers + # : (Herb::AST::Node?) -> Array[untyped] + # + # source://herb//lib/herb/ast/helpers.rb#100 + def branch_open_tags(node); end + + # : (String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#39 + def erb_comment?(opening); end + + # : (Herb::AST::Node?) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#44 + def erb_comment_node?(node); end + + # : (String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#52 + def erb_custom_opening?(opening); end + + # : (String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#62 + def erb_escaped?(opening); end + + # : (Herb::AST::Node?) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#8 + def erb_node?(node); end + + # : (String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#57 + def erb_omitted?(opening); end + + # : (Herb::AST::Node?) -> String + # + # source://herb//lib/herb/ast/helpers.rb#13 + def erb_opening(node); end + + # : (String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#67 + def erb_output?(opening); end + + # : (Herb::AST::Node?) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#23 + def erb_outputs?(node); end + + # : (Herb::AST::Node?) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#30 + def erb_statement?(node); end + + # : (Herb::AST::ERBContentNode) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#109 + def inline_ruby_comment?(node); end + + # : (Herb::AST::Node?) -> Herb::AST::HTMLOmittedCloseTagNode? + # + # source://herb//lib/herb/ast/helpers.rb#72 + def omitted_close_tag(node); end + + # : (Herb::AST::Node?) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/helpers.rb#83 + def omitted_close_tag?(node); end + + # : (Herb::AST::Node?) -> Array[untyped] + # + # source://herb//lib/herb/ast/helpers.rb#88 + def open_tags_for(open_tag); end +end + +# : type serialized_herb_directive_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | key: Herb::Token?, +# | arguments: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#5165 +class Herb::AST::HerbDirectiveNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?) -> void + # + # @return [HerbDirectiveNode] a new instance of HerbDirectiveNode + # + # source://herb//lib/herb/ast/nodes.rb#5175 + def initialize(type, location, errors, tag_opening, content, tag_closing, key, arguments); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#5206 + def accept(visitor); end + + # : () -> String + # + # source://herb//lib/herb/ast/herb_directive_node.rb#13 + def argument; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5172 + def arguments; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#5211 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#5216 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5169 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/herb_directive_node.rb#8 + def directive; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5221 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5171 + def key; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5170 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5168 + def tag_opening; end + + # : () -> serialized_herb_directive_node + # + # source://herb//lib/herb/ast/nodes.rb#5195 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#5226 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?key: Herb::Token?, ?arguments: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HerbDirectiveNode + # + # source://herb//lib/herb/ast/nodes.rb#5190 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), key: T.unsafe(nil), arguments: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5185 + def type; end + end +end + +# : type serialized_herb_state_declaration_node = { +# | name: Herb::Token?, +# | default_value: Herb::AST::RubyLiteralNode?, +# | kind: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#5268 +class Herb::AST::HerbStateDeclarationNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::AST::RubyLiteralNode?, String?) -> void + # + # @return [HerbStateDeclarationNode] a new instance of HerbStateDeclarationNode + # + # source://herb//lib/herb/ast/nodes.rb#5276 + def initialize(type, location, errors, name, default_value, kind); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#5303 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#5308 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#5313 + def compact_child_nodes; end + + # : Herb::AST::RubyLiteralNode? + # + # source://herb//lib/herb/ast/nodes.rb#5272 + def default_value; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5318 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#5273 + def kind; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5271 + def name; end + + # : () -> serialized_herb_state_declaration_node + # + # source://herb//lib/herb/ast/nodes.rb#5294 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#5323 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?name: Herb::Token?, ?default_value: Herb::AST::RubyLiteralNode?, ?kind: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HerbStateDeclarationNode + # + # source://herb//lib/herb/ast/nodes.rb#5289 + def build(name: T.unsafe(nil), default_value: T.unsafe(nil), kind: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5284 + def type; end + end +end + +# : type serialized_herb_state_directive_node = { +# | tag_opening: Herb::Token?, +# | content: Herb::Token?, +# | tag_closing: Herb::Token?, +# | key: Herb::Token?, +# | signature: Herb::Token?, +# | states: Array[Herb::AST::HerbStateDeclarationNode]?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#5365 +class Herb::AST::HerbStateDirectiveNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::HerbStateDeclarationNode]?) -> void + # + # @return [HerbStateDirectiveNode] a new instance of HerbStateDirectiveNode + # + # source://herb//lib/herb/ast/nodes.rb#5376 + def initialize(type, location, errors, tag_opening, content, tag_closing, key, signature, states); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#5409 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#5414 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#5419 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5369 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5424 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5371 + def key; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5372 + def signature; end + + # : Array[Herb::AST::HerbStateDeclarationNode]? + # + # source://herb//lib/herb/ast/nodes.rb#5373 + def states; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5370 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#5368 + def tag_opening; end + + # : () -> serialized_herb_state_directive_node + # + # source://herb//lib/herb/ast/nodes.rb#5397 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#5429 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?content: Herb::Token?, ?tag_closing: Herb::Token?, ?key: Herb::Token?, ?signature: Herb::Token?, ?states: Array[Herb::AST::HerbStateDeclarationNode]?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> HerbStateDirectiveNode + # + # source://herb//lib/herb/ast/nodes.rb#5392 + def build(tag_opening: T.unsafe(nil), content: T.unsafe(nil), tag_closing: T.unsafe(nil), key: T.unsafe(nil), signature: T.unsafe(nil), states: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#5387 + def type; end + end +end + +# : type serialized_literal_node = { +# | content: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#121 +class Herb::AST::LiteralNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], String?) -> void + # + # @return [LiteralNode] a new instance of LiteralNode + # + # source://herb//lib/herb/ast/nodes.rb#127 + def initialize(type, location, errors, content); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#150 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#155 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#160 + def compact_child_nodes; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#124 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#165 + def inspect; end + + # : () -> serialized_literal_node + # + # source://herb//lib/herb/ast/nodes.rb#143 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#170 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?content: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> LiteralNode + # + # source://herb//lib/herb/ast/nodes.rb#138 + def build(content: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#133 + def type; end + end +end + +# source://herb//lib/herb/ast/node.rb#13 +class Herb::AST::Node + # : (String, Location, ?Array[Herb::Errors::Error]) -> void + # + # @return [Node] a new instance of Node + # + # source://herb//lib/herb/ast/node.rb#20 + def initialize(type, location, errors = T.unsafe(nil)); end + + # : (Visitor) -> void + # + # @raise [NoMethodError] + # + # source://herb//lib/herb/ast/node.rb#104 + def accept(_visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # @raise [NoMethodError] + # + # source://herb//lib/herb/ast/node.rb#109 + def child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/node.rb#43 + def class_name; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/node.rb#116 + def compact_child_nodes; end + + # : () -> Array[Herb::AST::Node?] + # + # @raise [NoMethodError] + # + # source://herb//lib/herb/ast/node.rb#109 + def deconstruct; end + + # : Array[Herb::Errors::Error] + # + # source://herb//lib/herb/ast/node.rb#16 + def errors; end + + # : ( + # | Array[Herb::AST::Node|Herb::Errors::Error], + # | ?item_name: String, + # | ?prefix: String, + # | ?indent: Integer, + # | ?depth: Integer, + # | ?depth_limit: Integer + # | ) -> String + # + # source://herb//lib/herb/ast/node.rb#72 + def inspect_array(array, item_name: T.unsafe(nil), prefix: T.unsafe(nil), indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : (?prefix: String) -> String + # + # source://herb//lib/herb/ast/node.rb#58 + def inspect_errors(prefix: T.unsafe(nil)); end + + # : (Herb::Position) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/ast/node.rb#126 + def locatable?(position); end + + # : (Herb::Position) -> Herb::Locate::Result? + # + # source://herb//lib/herb/ast/node.rb#121 + def locate(position); end + + # : Location + # + # source://herb//lib/herb/ast/node.rb#15 + def location; end + + # : () -> String + # + # source://herb//lib/herb/ast/node.rb#48 + def node_name; end + + # : () -> Array[Herb::Errors::Error] + # + # source://herb//lib/herb/ast/node.rb#131 + def recursive_errors; end + + # : String? + # + # source://herb//lib/herb/ast/node.rb#17 + def source; end + + # : (String?) -> void + # + # source://herb//lib/herb/ast/node.rb#28 + def source=(source); end + + # : () -> serialized_node + # + # source://herb//lib/herb/ast/node.rb#34 + def to_hash; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/ast/node.rb#53 + def to_json(state = T.unsafe(nil)); end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # @raise [NotImplementedError] + # + # source://herb//lib/herb/ast/node.rb#99 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : String + # + # source://herb//lib/herb/ast/node.rb#14 + def type; end + + protected + + # : (Array[Herb::Errors::Error] accumulator) -> void + # + # source://herb//lib/herb/ast/node.rb#140 + def collect_errors(accumulator); end +end + +# : type serialized_ruby_html_attributes_splat_node = { +# | content: String?, +# | prefix: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1257 +class Herb::AST::RubyHTMLAttributesSplatNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], String?, String?) -> void + # + # @return [RubyHTMLAttributesSplatNode] a new instance of RubyHTMLAttributesSplatNode + # + # source://herb//lib/herb/ast/nodes.rb#1264 + def initialize(type, location, errors, content, prefix); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1289 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1294 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1299 + def compact_child_nodes; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#1260 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1304 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#1261 + def prefix; end + + # : () -> serialized_ruby_html_attributes_splat_node + # + # source://herb//lib/herb/ast/nodes.rb#1281 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1309 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?content: String?, ?prefix: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> RubyHTMLAttributesSplatNode + # + # source://herb//lib/herb/ast/nodes.rb#1276 + def build(content: T.unsafe(nil), prefix: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1271 + def type; end + end +end + +# : type serialized_ruby_literal_node = { +# | content: String?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1181 +class Herb::AST::RubyLiteralNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], String?) -> void + # + # @return [RubyLiteralNode] a new instance of RubyLiteralNode + # + # source://herb//lib/herb/ast/nodes.rb#1187 + def initialize(type, location, errors, content); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1210 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1215 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1220 + def compact_child_nodes; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#1184 + def content; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1225 + def inspect; end + + # : () -> serialized_ruby_literal_node + # + # source://herb//lib/herb/ast/nodes.rb#1203 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1230 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?content: String?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> RubyLiteralNode + # + # source://herb//lib/herb/ast/nodes.rb#1198 + def build(content: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1193 + def type; end + end +end + +# : type serialized_ruby_parameter_node = { +# | name: Herb::Token?, +# | default_value: Herb::AST::RubyLiteralNode?, +# | kind: String?, +# | required: bool, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#4742 +class Herb::AST::RubyParameterNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::AST::RubyLiteralNode?, String?, bool) -> void + # + # @return [RubyParameterNode] a new instance of RubyParameterNode + # + # source://herb//lib/herb/ast/nodes.rb#4751 + def initialize(type, location, errors, name, default_value, kind, required); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#4780 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#4785 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4790 + def compact_child_nodes; end + + # : Herb::AST::RubyLiteralNode? + # + # source://herb//lib/herb/ast/nodes.rb#4746 + def default_value; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4795 + def inspect; end + + # : String? + # + # source://herb//lib/herb/ast/nodes.rb#4747 + def kind; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4745 + def name; end + + # : bool + # + # source://herb//lib/herb/ast/nodes.rb#4748 + def required; end + + # : () -> serialized_ruby_parameter_node + # + # source://herb//lib/herb/ast/nodes.rb#4770 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#4800 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?name: Herb::Token?, ?default_value: Herb::AST::RubyLiteralNode?, ?kind: String?, ?required: bool, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> RubyParameterNode + # + # source://herb//lib/herb/ast/nodes.rb#4765 + def build(name: T.unsafe(nil), default_value: T.unsafe(nil), kind: T.unsafe(nil), required: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4760 + def type; end + end +end + +# : type serialized_ruby_render_keywords_node = { +# | partial: Herb::Token?, +# | template_path: Herb::Token?, +# | layout: Herb::Token?, +# | file: Herb::Token?, +# | inline_template: Herb::Token?, +# | body: Herb::Token?, +# | plain: Herb::Token?, +# | html: Herb::Token?, +# | renderable: Herb::Token?, +# | collection: Herb::Token?, +# | object: Herb::Token?, +# | as_name: Herb::Token?, +# | spacer_template: Herb::Token?, +# | formats: Herb::Token?, +# | variants: Herb::Token?, +# | handlers: Herb::Token?, +# | content_type: Herb::Token?, +# | locals: Array[Herb::AST::RubyRenderLocalNode]?, +# | state: Array[Herb::AST::HerbStateDeclarationNode]?, +# | state_location: Herb::Location?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#4358 +class Herb::AST::RubyRenderKeywordsNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Herb::Token?, Array[Herb::AST::RubyRenderLocalNode]?, Array[Herb::AST::HerbStateDeclarationNode]?, Herb::Location?) -> void + # + # @return [RubyRenderKeywordsNode] a new instance of RubyRenderKeywordsNode + # + # source://herb//lib/herb/ast/nodes.rb#4383 + def initialize(type, location, errors, partial, template_path, layout, file, inline_template, body, plain, html, renderable, collection, object, as_name, spacer_template, formats, variants, handlers, content_type, locals, state, state_location); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#4444 + def accept(visitor); end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4372 + def as_name; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4366 + def body; end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#4449 + def child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4370 + def collection; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4454 + def compact_child_nodes; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4377 + def content_type; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4364 + def file; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4374 + def formats; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4376 + def handlers; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4368 + def html; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4365 + def inline_template; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4459 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4363 + def layout; end + + # : Array[Herb::AST::RubyRenderLocalNode]? + # + # source://herb//lib/herb/ast/nodes.rb#4378 + def locals; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4371 + def object; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4361 + def partial; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4367 + def plain; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4369 + def renderable; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4373 + def spacer_template; end + + # : Array[Herb::AST::HerbStateDeclarationNode]? + # + # source://herb//lib/herb/ast/nodes.rb#4379 + def state; end + + # : Herb::Location? + # + # source://herb//lib/herb/ast/nodes.rb#4380 + def state_location; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4362 + def template_path; end + + # : () -> serialized_ruby_render_keywords_node + # + # source://herb//lib/herb/ast/nodes.rb#4418 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#4464 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4375 + def variants; end + + class << self + # : (?partial: Herb::Token?, ?template_path: Herb::Token?, ?layout: Herb::Token?, ?file: Herb::Token?, ?inline_template: Herb::Token?, ?body: Herb::Token?, ?plain: Herb::Token?, ?html: Herb::Token?, ?renderable: Herb::Token?, ?collection: Herb::Token?, ?object: Herb::Token?, ?as_name: Herb::Token?, ?spacer_template: Herb::Token?, ?formats: Herb::Token?, ?variants: Herb::Token?, ?handlers: Herb::Token?, ?content_type: Herb::Token?, ?locals: Array[Herb::AST::RubyRenderLocalNode]?, ?state: Array[Herb::AST::HerbStateDeclarationNode]?, ?state_location: Herb::Location?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> RubyRenderKeywordsNode + # + # source://herb//lib/herb/ast/nodes.rb#4413 + def build(partial: T.unsafe(nil), template_path: T.unsafe(nil), layout: T.unsafe(nil), file: T.unsafe(nil), inline_template: T.unsafe(nil), body: T.unsafe(nil), plain: T.unsafe(nil), html: T.unsafe(nil), renderable: T.unsafe(nil), collection: T.unsafe(nil), object: T.unsafe(nil), as_name: T.unsafe(nil), spacer_template: T.unsafe(nil), formats: T.unsafe(nil), variants: T.unsafe(nil), handlers: T.unsafe(nil), content_type: T.unsafe(nil), locals: T.unsafe(nil), state: T.unsafe(nil), state_location: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4408 + def type; end + end +end + +# : type serialized_ruby_render_local_node = { +# | name: Herb::Token?, +# | value: Herb::AST::RubyLiteralNode?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#4251 +class Herb::AST::RubyRenderLocalNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::AST::RubyLiteralNode?) -> void + # + # @return [RubyRenderLocalNode] a new instance of RubyRenderLocalNode + # + # source://herb//lib/herb/ast/nodes.rb#4258 + def initialize(type, location, errors, name, value); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#4283 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#4288 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#4293 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4298 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#4254 + def name; end + + # : () -> serialized_ruby_render_local_node + # + # source://herb//lib/herb/ast/nodes.rb#4275 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#4303 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : Herb::AST::RubyLiteralNode? + # + # source://herb//lib/herb/ast/nodes.rb#4255 + def value; end + + class << self + # : (?name: Herb::Token?, ?value: Herb::AST::RubyLiteralNode?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> RubyRenderLocalNode + # + # source://herb//lib/herb/ast/nodes.rb#4270 + def build(name: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#4265 + def type; end + end +end + +# : type serialized_whitespace_node = { +# | value: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1972 +class Herb::AST::WhitespaceNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?) -> void + # + # @return [WhitespaceNode] a new instance of WhitespaceNode + # + # source://herb//lib/herb/ast/nodes.rb#1978 + def initialize(type, location, errors, value); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#2001 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#2006 + def child_nodes; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#2011 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#2016 + def inspect; end + + # : () -> serialized_whitespace_node + # + # source://herb//lib/herb/ast/nodes.rb#1994 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#2021 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1975 + def value; end + + class << self + # : (?value: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> WhitespaceNode + # + # source://herb//lib/herb/ast/nodes.rb#1989 + def build(value: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1984 + def type; end + end +end + +# : type serialized_xml_declaration_node = { +# | tag_opening: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1697 +class Herb::AST::XMLDeclarationNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Array[Herb::AST::Node], Herb::Token?) -> void + # + # @return [XMLDeclarationNode] a new instance of XMLDeclarationNode + # + # source://herb//lib/herb/ast/nodes.rb#1705 + def initialize(type, location, errors, tag_opening, children, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1732 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1737 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1701 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1742 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1747 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1702 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1700 + def tag_opening; end + + # : () -> serialized_xml_declaration_node + # + # source://herb//lib/herb/ast/nodes.rb#1723 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1752 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?children: Array[Herb::AST::Node], ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> XMLDeclarationNode + # + # source://herb//lib/herb/ast/nodes.rb#1718 + def build(tag_opening: T.unsafe(nil), children: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1713 + def type; end + end +end + +# : type serialized_xml_processing_instruction_node = { +# | tag_opening: Herb::Token?, +# | target: Herb::Token?, +# | children: Array[Herb::AST::Node], +# | tag_closing: Herb::Token?, +# | } +# +# source://herb//lib/herb/ast/nodes.rb#1788 +class Herb::AST::XMLProcessingInstructionNode < ::Herb::AST::Node + include ::Herb::Colors + + # : (String, Location, Array[Herb::Errors::Error], Herb::Token?, Herb::Token?, Array[Herb::AST::Node], Herb::Token?) -> void + # + # @return [XMLProcessingInstructionNode] a new instance of XMLProcessingInstructionNode + # + # source://herb//lib/herb/ast/nodes.rb#1797 + def initialize(type, location, errors, tag_opening, target, children, tag_closing); end + + # : (Visitor) -> void + # + # source://herb//lib/herb/ast/nodes.rb#1826 + def accept(visitor); end + + # : () -> Array[Herb::AST::Node?] + # + # source://herb//lib/herb/ast/nodes.rb#1831 + def child_nodes; end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1793 + def children; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/ast/nodes.rb#1836 + def compact_child_nodes; end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1841 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1794 + def tag_closing; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1791 + def tag_opening; end + + # : Herb::Token? + # + # source://herb//lib/herb/ast/nodes.rb#1792 + def target; end + + # : () -> serialized_xml_processing_instruction_node + # + # source://herb//lib/herb/ast/nodes.rb#1816 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/ast/nodes.rb#1846 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + class << self + # : (?tag_opening: Herb::Token?, ?target: Herb::Token?, ?children: Array[Herb::AST::Node], ?tag_closing: Herb::Token?, ?location: Location, ?errors: Array[Herb::Errors::Error]) -> XMLProcessingInstructionNode + # + # source://herb//lib/herb/ast/nodes.rb#1811 + def build(tag_opening: T.unsafe(nil), target: T.unsafe(nil), children: T.unsafe(nil), tag_closing: T.unsafe(nil), location: T.unsafe(nil), errors: T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/ast/nodes.rb#1806 + def type; end + end +end + +# source://herb//lib/herb/analysis/partial_resolution.rb#6 +module Herb::Analysis; end + +# source://herb//lib/herb/analysis/partial_resolution.rb#7 +module Herb::Analysis::PartialResolution + class << self + # : (Array[String]) -> Array[String] + # + # source://herb//lib/herb/analysis/partial_resolution.rb#83 + def by_precedence(files); end + + # : (String, String | Pathname) -> Array[String] + # + # source://herb//lib/herb/analysis/partial_resolution.rb#104 + def layout_candidates_for(template_file, view_root); end + + # : (String, String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/analysis/partial_resolution.rb#73 + def outranks_template?(candidate, incumbent); end + + # : (String, String | Pathname) -> String? + # + # source://herb//lib/herb/analysis/partial_resolution.rb#130 + def partial_name_for(file, view_root); end + + # : (String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/analysis/partial_resolution.rb#52 + def partial_path?(file); end + + # : (String, String | Pathname) -> String? + # + # source://herb//lib/herb/analysis/partial_resolution.rb#88 + def template_name_for(file, view_root); end + + # : (String) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/analysis/partial_resolution.rb#45 + def template_path?(file); end + + # : (String) -> Integer + # + # source://herb//lib/herb/analysis/partial_resolution.rb#61 + def template_rank(file); end + + # : (String | Pathname) -> Pathname + # + # source://herb//lib/herb/analysis/partial_resolution.rb#33 + def view_root_for(project_path); end + + private + + # : (String, String | Pathname) -> String? + # + # source://herb//lib/herb/analysis/partial_resolution.rb#148 + def relative_to_view_root(file, view_root); end + end +end + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#27 +Herb::Analysis::PartialResolution::APPLICATION_LAYOUT = T.let(T.unsafe(nil), String) + +# source://herb//lib/herb/analysis/partial_resolution.rb#10 +Herb::Analysis::PartialResolution::EXTENSIONS = T.let(T.unsafe(nil), Array) + +# : Array[String] +# +# source://herb//lib/herb/analysis/partial_resolution.rb#19 +Herb::Analysis::PartialResolution::EXTENSION_ALTERNATIVES = T.let(T.unsafe(nil), String) + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#26 +Herb::Analysis::PartialResolution::LAYOUTS_DIRECTORY = T.let(T.unsafe(nil), String) + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#28 +Herb::Analysis::PartialResolution::MAILER_LAYOUT = T.let(T.unsafe(nil), String) + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#29 +Herb::Analysis::PartialResolution::MAILER_SUFFIX = T.let(T.unsafe(nil), String) + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#22 +Herb::Analysis::PartialResolution::PARTIAL_GLOB_PATTERN = T.let(T.unsafe(nil), String) + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#8 +Herb::Analysis::PartialResolution::PARTIAL_PREFIX = T.let(T.unsafe(nil), String) + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#21 +Herb::Analysis::PartialResolution::TEMPLATE_GLOB_PATTERN = T.let(T.unsafe(nil), String) + +# : String +# +# source://herb//lib/herb/analysis/partial_resolution.rb#24 +Herb::Analysis::PartialResolution::VIEW_ROOT = T.let(T.unsafe(nil), String) + +# Finds the file a render call names, and what the compile of that file calls itself. +# +# The engine resolves partials at compile time in more than one place, the render +# validator and the inliner among them, and each used to walk the filesystem on its own +# from the project's view root. This is the one object they ask instead, and the one an +# application can replace through `Herb::Engine.new(source, resolver: ...)` with a lookup +# that knows its real view paths, an engine's or a gem's, and how it names its templates. +# +# The default answers from the filesystem the way the engine always has. A name with a +# directory is looked up under the view root, a bare name next to the calling template +# and then under the view root, and the identifier is the path relative to the project, +# which is what the compile of that template reports as its own relative file path. +# +# source://herb//lib/herb/analysis/partial_resolver.rb#24 +class Herb::Analysis::PartialResolver + # : (?(String | Pathname)?, ?view_root: (String | Pathname | false)?) -> void + # + # @return [PartialResolver] a new instance of PartialResolver + # + # source://herb//lib/herb/analysis/partial_resolver.rb#36 + def initialize(project_path = T.unsafe(nil), view_root: T.unsafe(nil)); end + + # : (String, Pathname?) -> Array[Pathname] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#74 + def candidate_paths(name, source_directory); end + + # : (String, ?from: (String | Pathname)?) -> Array[Pathname] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#57 + def candidates(name, from: T.unsafe(nil)); end + + # : (Pathname) -> String + # + # source://herb//lib/herb/analysis/partial_resolver.rb#67 + def identifier_for(path); end + + # : (String, Pathname?) -> Array[String] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#92 + def non_partial_matches(name, source_directory); end + + # : Pathname + # + # source://herb//lib/herb/analysis/partial_resolver.rb#32 + def project_path; end + + # : (String, ?from: (String | Pathname)?, ?format: String?) -> Resolved? + # + # source://herb//lib/herb/analysis/partial_resolver.rb#46 + def resolve(name, from: T.unsafe(nil), format: T.unsafe(nil)); end + + # : (String, ?from: (String | Pathname)?, ?limit: Integer) -> Array[String] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#62 + def similar(name, from: T.unsafe(nil), limit: T.unsafe(nil)); end + + # : (String, Pathname?, ?limit: Integer) -> Array[String] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#84 + def similar_partials(name, source_directory, limit: T.unsafe(nil)); end + + # : Pathname? + # + # source://herb//lib/herb/analysis/partial_resolver.rb#33 + def view_root; end + + private + + # : (String, Pathname?) -> Array[Pathname] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#106 + def lookup_directories(name, source_directory); end + + # : (Pathname?) -> Array[String] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#115 + def partial_names(source_directory); end + + # : (Array[Pathname], String) -> Array[Pathname] + # + # source://herb//lib/herb/analysis/partial_resolver.rb#137 + def prefer_format(paths, format); end + + # : ((String | Pathname)?) -> Pathname? + # + # source://herb//lib/herb/analysis/partial_resolver.rb#127 + def source_directory(from); end +end + +class Herb::Analysis::PartialResolver::Resolved < ::Data + # Returns the value of attribute identifier + # + # @return [Object] the current value of identifier + def identifier; end + + # Returns the value of attribute path + # + # @return [Object] the current value of path + def path; end + + class << self + def [](*_arg0); end + def inspect; end + def members; end + def new(*_arg0); end + end +end + +# : String +# +# source://herb//lib/herb/analysis/partial_resolver.rb#30 +Herb::Analysis::PartialResolver::TEMPLATE_HINT = T.let(T.unsafe(nil), String) + +# What the native extension defines, declared in Ruby so that it can be read without reading C. +# +# Loading the extension reopens this module and defines each method for real, so nothing here +# runs in a working install. What is left when the extension does not load is a set of methods +# that say so, instead of the `NoMethodError` a missing definition would raise: +# +# Herb::Backend.parse(source) +# #=> NotImplementedError: Herb::Backend.parse is defined by the native extension, which did not load +# +# The public API is `Herb.parse` and its neighbours, which are Ruby and live in `lib/herb.rb`. +# This is only the seam they call through. +# +# source://herb//lib/herb/backend.rb#16 +module Herb::Backend + extend ::Herb::Backend::Unavailable + + class << self + def arena_stats(*_arg0); end + def default_erb_openings; end + def diff(*_arg0); end + def extract_html(_arg0); end + def extract_ruby(*_arg0); end + def leak_check(_arg0); end + def lex(*_arg0); end + def parse(*_arg0); end + def version; end + end +end + +# source://herb//lib/herb/backend.rb#17 +module Herb::Backend::Unavailable + # : (**untyped) -> untyped + # + # source://herb//lib/herb/backend.rb#44 + def arena_stats(**_arg0); end + + # : () -> Array[String] + # + # source://herb//lib/herb/backend.rb#54 + def default_erb_openings; end + + # : (String, String, **untyped) -> Herb::Diff::Result + # + # source://herb//lib/herb/backend.rb#39 + def diff(_old_source, _new_source, **_arg2); end + + # : (String) -> String + # + # source://herb//lib/herb/backend.rb#34 + def extract_html(_source); end + + # : (String, **untyped) -> String + # + # source://herb//lib/herb/backend.rb#29 + def extract_ruby(_source, **_arg1); end + + # : (String) -> untyped + # + # source://herb//lib/herb/backend.rb#49 + def leak_check(_source); end + + # : (String, **untyped) -> Herb::LexResult + # + # source://herb//lib/herb/backend.rb#24 + def lex(_source, **_arg1); end + + # : (String, **untyped) -> Herb::ParseResult + # + # source://herb//lib/herb/backend.rb#19 + def parse(_source, **_arg1); end + + # : () -> String + # + # source://herb//lib/herb/backend.rb#59 + def version; end + + private + + # : (Symbol?) -> bot + # + # @raise [NotImplementedError] + # + # source://herb//lib/herb/backend.rb#66 + def unavailable(name); end +end + +# source://herb//lib/herb/colors.rb#7 +module Herb::Colors + private + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#94 + def bold(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#80 + def bright_magenta(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#73 + def cyan(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#87 + def dimmed(string); end + + # : () -> bool + # + # source://herb//lib/herb/colors.rb#25 + def enabled?; end + + # : (String, Integer) -> String + # + # source://herb//lib/herb/colors.rb#101 + def fg(string, color); end + + # : (String, Integer, Integer) -> String + # + # source://herb//lib/herb/colors.rb#108 + def fg_bg(string, foreground, background); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#52 + def green(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#66 + def magenta(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#59 + def red(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#38 + def white(string); end + + # : [T] (bool) { () -> T } -> T + # + # source://herb//lib/herb/colors.rb#15 + def with_color(enabled); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#45 + def yellow(string); end + + class << self + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#94 + def bold(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#80 + def bright_magenta(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#73 + def cyan(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#87 + def dimmed(string); end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/colors.rb#25 + def enabled?; end + + # : (String, Integer) -> String + # + # source://herb//lib/herb/colors.rb#101 + def fg(string, color); end + + # : (String, Integer, Integer) -> String + # + # source://herb//lib/herb/colors.rb#108 + def fg_bg(string, foreground, background); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#52 + def green(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#66 + def magenta(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#59 + def red(string); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#38 + def white(string); end + + # : [T] (bool) { () -> T } -> T + # + # source://herb//lib/herb/colors.rb#15 + def with_color(enabled); end + + # : (String) -> String + # + # source://herb//lib/herb/colors.rb#45 + def yellow(string); end + end +end + +# source://herb//lib/herb/colors.rb#10 +Herb::Colors::CLEAR_SCREEN = T.let(T.unsafe(nil), String) + +# source://herb//lib/herb/colors.rb#8 +Herb::Colors::HIDE_CURSOR = T.let(T.unsafe(nil), String) + +# source://herb//lib/herb/colors.rb#9 +Herb::Colors::SHOW_CURSOR = T.let(T.unsafe(nil), String) + +# source://herb//lib/herb/diagnostic.rb#8 +class Herb::Diagnostic + # : (template: String, message: String, ?severity: Symbol?, ?kind: Symbol, ?origin: String, ?node: String?, ?code: String?, ?location: Herb::Location?, ?suggestion: String?, ?description: String?, ?docs_url: String?, ?value: String?, ?overlay: Symbol?, ?phase: Symbol, ?data: Hash[Symbol, untyped], ?error_class: Class?) -> void + # + # @return [Diagnostic] a new instance of Diagnostic + # + # source://herb//lib/herb/diagnostic.rb#29 + def initialize(template:, message:, severity: T.unsafe(nil), kind: T.unsafe(nil), origin: T.unsafe(nil), node: T.unsafe(nil), code: T.unsafe(nil), location: T.unsafe(nil), suggestion: T.unsafe(nil), description: T.unsafe(nil), docs_url: T.unsafe(nil), value: T.unsafe(nil), overlay: T.unsafe(nil), phase: T.unsafe(nil), data: T.unsafe(nil), error_class: T.unsafe(nil)); end + + # : String? + # + # source://herb//lib/herb/diagnostic.rb#14 + def code; end + + # : Hash[Symbol, untyped] + # + # source://herb//lib/herb/diagnostic.rb#25 + def data; end + + # : String? + # + # source://herb//lib/herb/diagnostic.rb#20 + def description; end + + # : String? + # + # source://herb//lib/herb/diagnostic.rb#21 + def docs_url; end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/diagnostic.rb#72 + def error?; end + + # : Class? + # + # source://herb//lib/herb/diagnostic.rb#26 + def error_class; end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/diagnostic.rb#87 + def hint?; end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/diagnostic.rb#82 + def info?; end + + # : () -> Array[untyped] + # + # source://herb//lib/herb/diagnostic.rb#99 + def key; end + + # : Symbol + # + # source://herb//lib/herb/diagnostic.rb#16 + def kind; end + + # : Herb::Location? + # + # source://herb//lib/herb/diagnostic.rb#18 + def location; end + + # : String + # + # source://herb//lib/herb/diagnostic.rb#12 + def message; end + + # : String? + # + # source://herb//lib/herb/diagnostic.rb#13 + def node; end + + # : String + # + # source://herb//lib/herb/diagnostic.rb#17 + def origin; end + + # : Symbol? + # + # source://herb//lib/herb/diagnostic.rb#23 + def overlay; end + + # : Symbol + # + # source://herb//lib/herb/diagnostic.rb#24 + def phase; end + + # : Symbol? + # + # source://herb//lib/herb/diagnostic.rb#15 + def severity; end + + # : String? + # + # source://herb//lib/herb/diagnostic.rb#19 + def suggestion; end + + # : String + # + # source://herb//lib/herb/diagnostic.rb#11 + def template; end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/diagnostic.rb#104 + def to_h; end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/diagnostic.rb#104 + def to_hash; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/diagnostic.rb#146 + def to_json(state = T.unsafe(nil)); end + + # : (?String?) -> String + # + # source://herb//lib/herb/diagnostic.rb#126 + def to_ruby(compiled = T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/diagnostic.rb#153 + def to_s; end + + # : String? + # + # source://herb//lib/herb/diagnostic.rb#22 + def value; end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/diagnostic.rb#77 + def warning?; end + + # : (String?) -> Diagnostic + # + # source://herb//lib/herb/diagnostic.rb#92 + def with_node(node); end + + private + + # : (Herb::Location) -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/diagnostic.rb#163 + def serialized_location(location); end + + # : (Herb::Position) -> Hash[Symbol, Integer] + # + # source://herb//lib/herb/diagnostic.rb#168 + def serialized_position(position); end + + class << self + # : (String, Hash[Symbol, untyped]) -> Diagnostic + # + # source://herb//lib/herb/diagnostic.rb#54 + def from_compiled(template, entry); end + + # : (Array[Herb::Errors::Error], template: String, ?origin: String) -> Array[Diagnostic] + # + # source://herb//lib/herb/diagnostic.rb#49 + def from_errors(errors, template:, origin: T.unsafe(nil)); end + end +end + +# : String +# +# source://herb//lib/herb/diagnostic.rb#9 +Herb::Diagnostic::UNKNOWN_ORIGIN = T.let(T.unsafe(nil), String) + +# source://herb//lib/herb/diff/operation.rb#5 +module Herb::Diff; end + +# source://herb//lib/herb/diff/operation.rb#15 +class Herb::Diff::Operation < ::Data + # : () -> String + # + # source://herb//lib/herb/diff/operation.rb#31 + def inspect; end + + # Returns the value of attribute new_index + # + # @return [Object] the current value of new_index + def new_index; end + + # Returns the value of attribute new_node + # + # @return [Object] the current value of new_node + def new_node; end + + # Returns the value of attribute old_index + # + # @return [Object] the current value of old_index + def old_index; end + + # Returns the value of attribute old_node + # + # @return [Object] the current value of old_node + def old_node; end + + # Returns the value of attribute path + # + # @return [Object] the current value of path + def path; end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/diff/operation.rb#17 + def to_h; end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/diff/operation.rb#17 + def to_hash; end + + # Returns the value of attribute type + # + # @return [Object] the current value of type + def type; end + + class << self + def [](*_arg0); end + def inspect; end + def members; end + def new(*_arg0); end + end +end + +# source://herb//lib/herb/diff/result.rb#6 +class Herb::Diff::Result + include ::Enumerable + + # : (bool, Array[Herb::Diff::Operation]) -> void + # + # @return [Result] a new instance of Result + # + # source://herb//lib/herb/diff/result.rb#12 + def initialize(identical, operations); end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/diff/result.rb#38 + def changed?; end + + # : () { (Herb::Diff::Operation) -> void } -> void + # : () -> Enumerator[Herb::Diff::Operation, void] + # + # source://herb//lib/herb/diff/result.rb#21 + def each(&block); end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/diff/result.rb#28 + def identical?; end + + # : () -> String + # + # source://herb//lib/herb/diff/result.rb#53 + def inspect; end + + # : () -> Integer + # + # source://herb//lib/herb/diff/result.rb#33 + def operation_count; end + + # : Array[Herb::Diff::Operation] + # + # source://herb//lib/herb/diff/result.rb#9 + def operations; end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/diff/result.rb#43 + def to_h; end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/diff/result.rb#43 + def to_hash; end +end + +# : type serialized_error = { +# | type: String, +# | location: serialized_location?, +# | message: String +# | } +# +# source://herb//lib/herb/errors.rb#13 +module Herb::Errors; end + +# source://herb//lib/herb/errors.rb#616 +class Herb::Errors::ConditionalElementConditionMismatchError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String, String, Integer, Integer, String, Integer, Integer) -> void + # + # @return [ConditionalElementConditionMismatchError] a new instance of ConditionalElementConditionMismatchError + # + # source://herb//lib/herb/errors.rb#628 + def initialize(type, location, message, tag_name, open_condition, open_line, open_column, close_condition, close_line, close_column); end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#625 + def close_column; end + + # : String? + # + # source://herb//lib/herb/errors.rb#623 + def close_condition; end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#624 + def close_line; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#640 + def inspect; end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#622 + def open_column; end + + # : String? + # + # source://herb//lib/herb/errors.rb#620 + def open_condition; end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#621 + def open_line; end + + # : String? + # + # source://herb//lib/herb/errors.rb#619 + def tag_name; end + + # : () -> serialized_conditional_element_condition_mismatch_error + # + # source://herb//lib/herb/errors.rb#645 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#658 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#576 +class Herb::Errors::ConditionalElementMultipleTagsError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Integer, Integer) -> void + # + # @return [ConditionalElementMultipleTagsError] a new instance of ConditionalElementMultipleTagsError + # + # source://herb//lib/herb/errors.rb#583 + def initialize(type, location, message, line, column); end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#580 + def column; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#590 + def inspect; end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#579 + def line; end + + # : () -> serialized_conditional_element_multiple_tags_error + # + # source://herb//lib/herb/errors.rb#595 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#603 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1983 +class Herb::Errors::DotNotationCasingError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [DotNotationCasingError] a new instance of DotNotationCasingError + # + # source://herb//lib/herb/errors.rb#1989 + def initialize(type, location, message, segment); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1995 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1986 + def segment; end + + # : () -> serialized_dot_notation_casing_error + # + # source://herb//lib/herb/errors.rb#2000 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#2007 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#556 +class Herb::Errors::ERBCaseInlinePatternMatchError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#560 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#565 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#536 +class Herb::Errors::ERBCaseWithConditionsError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#540 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#545 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#444 +class Herb::Errors::ERBControlFlowScopeError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [ERBControlFlowScopeError] a new instance of ERBControlFlowScopeError + # + # source://herb//lib/herb/errors.rb#450 + def initialize(type, location, message, keyword); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#456 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#447 + def keyword; end + + # : () -> serialized_erb_control_flow_scope_error + # + # source://herb//lib/herb/errors.rb#461 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#468 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#516 +class Herb::Errors::ERBMultipleBlocksInTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#520 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#525 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#926 +class Herb::Errors::EndTagWithTrailingSolidusError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [EndTagWithTrailingSolidusError] a new instance of EndTagWithTrailingSolidusError + # + # source://herb//lib/herb/errors.rb#932 + def initialize(type, location, message, tag_name); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#943 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#938 + def suggestion; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#929 + def tag_name; end + + # : () -> serialized_end_tag_with_trailing_solidus_error + # + # source://herb//lib/herb/errors.rb#948 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#955 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#14 +class Herb::Errors::Error + # : (String, Location?, String) -> void + # + # @return [Error] a new instance of Error + # + # source://herb//lib/herb/errors.rb#20 + def initialize(type, location, message); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#56 + def class_name; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#61 + def error_name; end + + # : Location? + # + # source://herb//lib/herb/errors.rb#16 + def location; end + + # : String + # + # source://herb//lib/herb/errors.rb#17 + def message; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#27 + def suggestion; end + + # : (template: String, ?origin: String) -> Herb::Diagnostic + # + # source://herb//lib/herb/errors.rb#32 + def to_diagnostic(template:, origin: T.unsafe(nil)); end + + # : () -> serialized_error + # + # source://herb//lib/herb/errors.rb#47 + def to_hash; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/errors.rb#66 + def to_json(state = T.unsafe(nil)); end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # @raise [NotImplementedError] + # + # source://herb//lib/herb/errors.rb#71 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end + + # : String + # + # source://herb//lib/herb/errors.rb#15 + def type; end +end + +# source://herb//lib/herb/errors.rb#1917 +class Herb::Errors::HerbStateDuplicateDeclarationError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1921 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1926 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1881 +class Herb::Errors::HerbStateInvalidParameterError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [HerbStateInvalidParameterError] a new instance of HerbStateInvalidParameterError + # + # source://herb//lib/herb/errors.rb#1887 + def initialize(type, location, message, parameter); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1893 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1884 + def parameter; end + + # : () -> serialized_herb_state_invalid_parameter_error + # + # source://herb//lib/herb/errors.rb#1898 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1905 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1805 +class Herb::Errors::HerbStateMissingParenthesisError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [HerbStateMissingParenthesisError] a new instance of HerbStateMissingParenthesisError + # + # source://herb//lib/herb/errors.rb#1811 + def initialize(type, location, message, rest); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1817 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1808 + def rest; end + + # : () -> serialized_herb_state_missing_parenthesis_error + # + # source://herb//lib/herb/errors.rb#1822 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1829 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1841 +class Herb::Errors::HerbStateNonCanonicalDirectiveError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String, String) -> void + # + # @return [HerbStateNonCanonicalDirectiveError] a new instance of HerbStateNonCanonicalDirectiveError + # + # source://herb//lib/herb/errors.rb#1848 + def initialize(type, location, message, found, expected); end + + # : String? + # + # source://herb//lib/herb/errors.rb#1845 + def expected; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1844 + def found; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1855 + def inspect; end + + # : () -> serialized_herb_state_non_canonical_directive_error + # + # source://herb//lib/herb/errors.rb#1860 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1868 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#768 +class Herb::Errors::InvalidCommentClosingTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [InvalidCommentClosingTagError] a new instance of InvalidCommentClosingTagError + # + # source://herb//lib/herb/errors.rb#774 + def initialize(type, location, message, closing_tag); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#771 + def closing_tag; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#780 + def inspect; end + + # : () -> serialized_invalid_comment_closing_tag_error + # + # source://herb//lib/herb/errors.rb#785 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#792 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1303 +class Herb::Errors::MalformedERBClosingTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token, Herb::Token) -> void + # + # @return [MalformedERBClosingTagError] a new instance of MalformedERBClosingTagError + # + # source://herb//lib/herb/errors.rb#1310 + def initialize(type, location, message, opening_tag, closing_tag); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1307 + def closing_tag; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1317 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1306 + def opening_tag; end + + # : () -> serialized_malformed_erb_closing_tag_error + # + # source://herb//lib/herb/errors.rb#1322 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1330 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1007 +class Herb::Errors::MissingAttributeValueError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [MissingAttributeValueError] a new instance of MissingAttributeValueError + # + # source://herb//lib/herb/errors.rb#1013 + def initialize(type, location, message, attribute_name); end + + # : String? + # + # source://herb//lib/herb/errors.rb#1010 + def attribute_name; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1026 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#1019 + def suggestion; end + + # : () -> serialized_missing_attribute_value_error + # + # source://herb//lib/herb/errors.rb#1031 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1038 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#205 +class Herb::Errors::MissingClosingTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [MissingClosingTagError] a new instance of MissingClosingTagError + # + # source://herb//lib/herb/errors.rb#211 + def initialize(type, location, message, opening_tag); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#222 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#208 + def opening_tag; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#217 + def suggestion; end + + # : () -> serialized_missing_closing_tag_error + # + # source://herb//lib/herb/errors.rb#227 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#234 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#480 +class Herb::Errors::MissingERBEndTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [MissingERBEndTagError] a new instance of MissingERBEndTagError + # + # source://herb//lib/herb/errors.rb#486 + def initialize(type, location, message, keyword); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#492 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#483 + def keyword; end + + # : () -> serialized_missing_erb_end_tag_error + # + # source://herb//lib/herb/errors.rb#497 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#504 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#162 +class Herb::Errors::MissingOpeningTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [MissingOpeningTagError] a new instance of MissingOpeningTagError + # + # source://herb//lib/herb/errors.rb#168 + def initialize(type, location, message, closing_tag); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#165 + def closing_tag; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#179 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#174 + def suggestion; end + + # : () -> serialized_missing_opening_tag_error + # + # source://herb//lib/herb/errors.rb#184 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#191 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1050 +class Herb::Errors::MissingWhitespaceBetweenAttributesError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [MissingWhitespaceBetweenAttributesError] a new instance of MissingWhitespaceBetweenAttributesError + # + # source://herb//lib/herb/errors.rb#1056 + def initialize(type, location, message, found); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1053 + def found; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1067 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#1062 + def suggestion; end + + # : () -> serialized_missing_whitespace_between_attributes_error + # + # source://herb//lib/herb/errors.rb#1072 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1079 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#719 +class Herb::Errors::NestedCommentError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token, Herb::Token) -> void + # + # @return [NestedCommentError] a new instance of NestedCommentError + # + # source://herb//lib/herb/errors.rb#726 + def initialize(type, location, message, comment_start, nested_start); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#722 + def comment_start; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#738 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#723 + def nested_start; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#733 + def suggestion; end + + # : () -> serialized_nested_comment_error + # + # source://herb//lib/herb/errors.rb#743 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#751 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1367 +class Herb::Errors::NestedERBTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token, Integer, Integer) -> void + # + # @return [NestedERBTagError] a new instance of NestedERBTagError + # + # source://herb//lib/herb/errors.rb#1375 + def initialize(type, location, message, opening_tag, nested_tag_line, nested_tag_column); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1383 + def inspect; end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#1372 + def nested_tag_column; end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#1371 + def nested_tag_line; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1370 + def opening_tag; end + + # : () -> serialized_nested_erb_tag_error + # + # source://herb//lib/herb/errors.rb#1388 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1397 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#806 +class Herb::Errors::OmittedClosingTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token, Herb::Position) -> void + # + # @return [OmittedClosingTagError] a new instance of OmittedClosingTagError + # + # source://herb//lib/herb/errors.rb#813 + def initialize(type, location, message, opening_tag, insertion_point); end + + # : Herb::Position? + # + # source://herb//lib/herb/errors.rb#810 + def insertion_point; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#820 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#809 + def opening_tag; end + + # : () -> serialized_omitted_closing_tag_error + # + # source://herb//lib/herb/errors.rb#825 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#833 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1413 +class Herb::Errors::RenderAmbiguousLocalsError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [RenderAmbiguousLocalsError] a new instance of RenderAmbiguousLocalsError + # + # source://herb//lib/herb/errors.rb#1419 + def initialize(type, location, message, partial); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1425 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1416 + def partial; end + + # : () -> serialized_render_ambiguous_locals_error + # + # source://herb//lib/herb/errors.rb#1430 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1437 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1509 +class Herb::Errors::RenderConflictingPartialError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String, String) -> void + # + # @return [RenderConflictingPartialError] a new instance of RenderConflictingPartialError + # + # source://herb//lib/herb/errors.rb#1516 + def initialize(type, location, message, positional_partial, keyword_partial); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1523 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1513 + def keyword_partial; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1512 + def positional_partial; end + + # : () -> serialized_render_conflicting_partial_error + # + # source://herb//lib/herb/errors.rb#1528 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1536 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1549 +class Herb::Errors::RenderInvalidAsOptionError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [RenderInvalidAsOptionError] a new instance of RenderInvalidAsOptionError + # + # source://herb//lib/herb/errors.rb#1555 + def initialize(type, location, message, as_value); end + + # : String? + # + # source://herb//lib/herb/errors.rb#1552 + def as_value; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1561 + def inspect; end + + # : () -> serialized_render_invalid_as_option_error + # + # source://herb//lib/herb/errors.rb#1566 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1573 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1605 +class Herb::Errors::RenderLayoutWithoutBlockError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [RenderLayoutWithoutBlockError] a new instance of RenderLayoutWithoutBlockError + # + # source://herb//lib/herb/errors.rb#1611 + def initialize(type, location, message, layout); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1617 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1608 + def layout; end + + # : () -> serialized_render_layout_without_block_error + # + # source://herb//lib/herb/errors.rb#1622 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1629 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1449 +class Herb::Errors::RenderMissingLocalsError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String, String) -> void + # + # @return [RenderMissingLocalsError] a new instance of RenderMissingLocalsError + # + # source://herb//lib/herb/errors.rb#1456 + def initialize(type, location, message, partial, keywords); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1463 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1453 + def keywords; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1452 + def partial; end + + # : () -> serialized_render_missing_locals_error + # + # source://herb//lib/herb/errors.rb#1468 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1476 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1489 +class Herb::Errors::RenderNoArgumentsError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1493 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1498 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1585 +class Herb::Errors::RenderObjectAndCollectionError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1589 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1594 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#395 +class Herb::Errors::RubyParseError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String, String, String) -> void + # + # @return [RubyParseError] a new instance of RubyParseError + # + # source://herb//lib/herb/errors.rb#403 + def initialize(type, location, message, error_message, diagnostic_id, level); end + + # : String? + # + # source://herb//lib/herb/errors.rb#399 + def diagnostic_id; end + + # : String? + # + # source://herb//lib/herb/errors.rb#398 + def error_message; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#416 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#400 + def level; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#411 + def suggestion; end + + # : () -> serialized_ruby_parse_error + # + # source://herb//lib/herb/errors.rb#421 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#430 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1347 +class Herb::Errors::StrayERBClosingTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1351 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1356 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1677 +class Herb::Errors::StrictLocalsBlockArgumentError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [StrictLocalsBlockArgumentError] a new instance of StrictLocalsBlockArgumentError + # + # source://herb//lib/herb/errors.rb#1683 + def initialize(type, location, message, name); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1689 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1680 + def name; end + + # : () -> serialized_strict_locals_block_argument_error + # + # source://herb//lib/herb/errors.rb#1694 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1701 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1785 +class Herb::Errors::StrictLocalsDuplicateDeclarationError < ::Herb::Errors::Error + include ::Herb::Colors + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1789 + def inspect; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1794 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1749 +class Herb::Errors::StrictLocalsMissingParenthesisError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [StrictLocalsMissingParenthesisError] a new instance of StrictLocalsMissingParenthesisError + # + # source://herb//lib/herb/errors.rb#1755 + def initialize(type, location, message, rest); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1761 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1752 + def rest; end + + # : () -> serialized_strict_locals_missing_parenthesis_error + # + # source://herb//lib/herb/errors.rb#1766 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1773 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1641 +class Herb::Errors::StrictLocalsPositionalArgumentError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [StrictLocalsPositionalArgumentError] a new instance of StrictLocalsPositionalArgumentError + # + # source://herb//lib/herb/errors.rb#1647 + def initialize(type, location, message, name); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1653 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1644 + def name; end + + # : () -> serialized_strict_locals_positional_argument_error + # + # source://herb//lib/herb/errors.rb#1658 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1665 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1713 +class Herb::Errors::StrictLocalsSplatArgumentError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String) -> void + # + # @return [StrictLocalsSplatArgumentError] a new instance of StrictLocalsSplatArgumentError + # + # source://herb//lib/herb/errors.rb#1719 + def initialize(type, location, message, name); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1725 + def inspect; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1716 + def name; end + + # : () -> serialized_strict_locals_splat_argument_error + # + # source://herb//lib/herb/errors.rb#1730 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1737 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#248 +class Herb::Errors::TagNamesMismatchError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token, Herb::Token) -> void + # + # @return [TagNamesMismatchError] a new instance of TagNamesMismatchError + # + # source://herb//lib/herb/errors.rb#255 + def initialize(type, location, message, opening_tag, closing_tag); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#252 + def closing_tag; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#269 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#251 + def opening_tag; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#262 + def suggestion; end + + # : () -> serialized_tag_names_mismatch_error + # + # source://herb//lib/herb/errors.rb#274 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#282 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#2021 +class Herb::Errors::TimeoutError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Integer) -> void + # + # @return [TimeoutError] a new instance of TimeoutError + # + # source://herb//lib/herb/errors.rb#2027 + def initialize(type, location, message, timeout_ms); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#2033 + def inspect; end + + # : Integer? + # + # source://herb//lib/herb/errors.rb#2024 + def timeout_ms; end + + # : () -> serialized_timeout_error + # + # source://herb//lib/herb/errors.rb#2038 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#2045 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#888 +class Herb::Errors::UnclosedCloseTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnclosedCloseTagError] a new instance of UnclosedCloseTagError + # + # source://herb//lib/herb/errors.rb#894 + def initialize(type, location, message, tag_name); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#900 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#891 + def tag_name; end + + # : () -> serialized_unclosed_close_tag_error + # + # source://herb//lib/herb/errors.rb#905 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#912 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#676 +class Herb::Errors::UnclosedCommentError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnclosedCommentError] a new instance of UnclosedCommentError + # + # source://herb//lib/herb/errors.rb#682 + def initialize(type, location, message, comment_start); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#679 + def comment_start; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#693 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#688 + def suggestion; end + + # : () -> serialized_unclosed_comment_error + # + # source://herb//lib/herb/errors.rb#698 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#705 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1265 +class Herb::Errors::UnclosedERBTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnclosedERBTagError] a new instance of UnclosedERBTagError + # + # source://herb//lib/herb/errors.rb#1271 + def initialize(type, location, message, opening_tag); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1277 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1268 + def opening_tag; end + + # : () -> serialized_unclosed_erb_tag_error + # + # source://herb//lib/herb/errors.rb#1282 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1289 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#352 +class Herb::Errors::UnclosedElementError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnclosedElementError] a new instance of UnclosedElementError + # + # source://herb//lib/herb/errors.rb#358 + def initialize(type, location, message, opening_tag); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#369 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#355 + def opening_tag; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#364 + def suggestion; end + + # : () -> serialized_unclosed_element_error + # + # source://herb//lib/herb/errors.rb#374 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#381 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#850 +class Herb::Errors::UnclosedOpenTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnclosedOpenTagError] a new instance of UnclosedOpenTagError + # + # source://herb//lib/herb/errors.rb#856 + def initialize(type, location, message, tag_name); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#862 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#853 + def tag_name; end + + # : () -> serialized_unclosed_open_tag_error + # + # source://herb//lib/herb/errors.rb#867 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#874 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#969 +class Herb::Errors::UnclosedQuoteError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnclosedQuoteError] a new instance of UnclosedQuoteError + # + # source://herb//lib/herb/errors.rb#975 + def initialize(type, location, message, opening_quote); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#981 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#972 + def opening_quote; end + + # : () -> serialized_unclosed_quote_error + # + # source://herb//lib/herb/errors.rb#986 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#993 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1093 +class Herb::Errors::UnexpectedCharacterInAttributeNameError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnexpectedCharacterInAttributeNameError] a new instance of UnexpectedCharacterInAttributeNameError + # + # source://herb//lib/herb/errors.rb#1099 + def initialize(type, location, message, character); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1096 + def character; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1110 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#1105 + def suggestion; end + + # : () -> serialized_unexpected_character_in_attribute_name_error + # + # source://herb//lib/herb/errors.rb#1115 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1122 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1136 +class Herb::Errors::UnexpectedCharacterInUnquotedAttributeValueError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnexpectedCharacterInUnquotedAttributeValueError] a new instance of UnexpectedCharacterInUnquotedAttributeValueError + # + # source://herb//lib/herb/errors.rb#1142 + def initialize(type, location, message, character); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1139 + def character; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1153 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#1148 + def suggestion; end + + # : () -> serialized_unexpected_character_in_unquoted_attribute_value_error + # + # source://herb//lib/herb/errors.rb#1158 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1165 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1179 +class Herb::Errors::UnexpectedEqualsSignBeforeAttributeNameError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnexpectedEqualsSignBeforeAttributeNameError] a new instance of UnexpectedEqualsSignBeforeAttributeNameError + # + # source://herb//lib/herb/errors.rb#1185 + def initialize(type, location, message, equals); end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1182 + def equals; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1196 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#1191 + def suggestion; end + + # : () -> serialized_unexpected_equals_sign_before_attribute_name_error + # + # source://herb//lib/herb/errors.rb#1201 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1208 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#76 +class Herb::Errors::UnexpectedError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String, String, String) -> void + # + # @return [UnexpectedError] a new instance of UnexpectedError + # + # source://herb//lib/herb/errors.rb#84 + def initialize(type, location, message, description, expected, found); end + + # : String? + # + # source://herb//lib/herb/errors.rb#79 + def description; end + + # : String? + # + # source://herb//lib/herb/errors.rb#80 + def expected; end + + # : String? + # + # source://herb//lib/herb/errors.rb#81 + def found; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#92 + def inspect; end + + # : () -> serialized_unexpected_error + # + # source://herb//lib/herb/errors.rb#97 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#106 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1222 +class Herb::Errors::UnexpectedSolidusInTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token) -> void + # + # @return [UnexpectedSolidusInTagError] a new instance of UnexpectedSolidusInTagError + # + # source://herb//lib/herb/errors.rb#1228 + def initialize(type, location, message, solidus); end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1239 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1225 + def solidus; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#1234 + def suggestion; end + + # : () -> serialized_unexpected_solidus_in_tag_error + # + # source://herb//lib/herb/errors.rb#1244 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1251 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#120 +class Herb::Errors::UnexpectedTokenError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, String, Herb::Token) -> void + # + # @return [UnexpectedTokenError] a new instance of UnexpectedTokenError + # + # source://herb//lib/herb/errors.rb#127 + def initialize(type, location, message, expected_type, found); end + + # : String? + # + # source://herb//lib/herb/errors.rb#123 + def expected_type; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#124 + def found; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#134 + def inspect; end + + # : () -> serialized_unexpected_token_error + # + # source://herb//lib/herb/errors.rb#139 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#147 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#299 +class Herb::Errors::VoidElementClosingTagError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token, String, String) -> void + # + # @return [VoidElementClosingTagError] a new instance of VoidElementClosingTagError + # + # source://herb//lib/herb/errors.rb#307 + def initialize(type, location, message, tag_name, expected, found); end + + # : String? + # + # source://herb//lib/herb/errors.rb#303 + def expected; end + + # : String? + # + # source://herb//lib/herb/errors.rb#304 + def found; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#322 + def inspect; end + + # : () -> String? + # + # source://herb//lib/herb/errors.rb#315 + def suggestion; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#302 + def tag_name; end + + # : () -> serialized_void_element_closing_tag_error + # + # source://herb//lib/herb/errors.rb#327 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#336 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# source://herb//lib/herb/errors.rb#1937 +class Herb::Errors::VoidElementContentError < ::Herb::Errors::Error + include ::Herb::Colors + + # : (String, Location?, String, Herb::Token, String, String) -> void + # + # @return [VoidElementContentError] a new instance of VoidElementContentError + # + # source://herb//lib/herb/errors.rb#1945 + def initialize(type, location, message, tag_name, helper_name, content_type); end + + # : String? + # + # source://herb//lib/herb/errors.rb#1942 + def content_type; end + + # : String? + # + # source://herb//lib/herb/errors.rb#1941 + def helper_name; end + + # : () -> String + # + # source://herb//lib/herb/errors.rb#1953 + def inspect; end + + # : Herb::Token? + # + # source://herb//lib/herb/errors.rb#1940 + def tag_name; end + + # : () -> serialized_void_element_content_error + # + # source://herb//lib/herb/errors.rb#1958 + def to_hash; end + + # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String + # + # source://herb//lib/herb/errors.rb#1967 + def tree_inspect(indent: T.unsafe(nil), depth: T.unsafe(nil), depth_limit: T.unsafe(nil)); end +end + +# Identifies content by what it is instead of by where it lives or when it was touched. +# +# Herb::Fingerprint.file(asset) #=> "9f2a1c4e…" +# Herb::Fingerprint.template(source) #=> "d242d277…" +# +# source://herb//lib/herb/fingerprint.rb#12 +module Herb::Fingerprint + class << self + # : () -> Hash[Array[untyped], String] + # + # source://herb//lib/herb/fingerprint.rb#71 + def cache; end + + # : () -> void + # + # source://herb//lib/herb/fingerprint.rb#64 + def clear_cache; end + + # : ((String | Pathname)?) -> String? + # + # source://herb//lib/herb/fingerprint.rb#24 + def file(path); end + + # : (String?) -> String? + # + # source://herb//lib/herb/fingerprint.rb#17 + def of(content); end + + # : (String?) -> String? + # + # source://herb//lib/herb/fingerprint.rb#59 + def short(digest); end + + # : (String) -> String + # + # source://herb//lib/herb/fingerprint.rb#76 + def strip_bom(bytes); end + + # : (String?) -> String? + # + # source://herb//lib/herb/fingerprint.rb#33 + def template(source); end + + # : ((String | Pathname)?) -> String? + # + # source://herb//lib/herb/fingerprint.rb#40 + def template_file(path); end + end +end + +# : String +# +# source://herb//lib/herb/fingerprint.rb#13 +Herb::Fingerprint::BOM = T.let(T.unsafe(nil), String) + +# : Integer +# +# source://herb//lib/herb/fingerprint.rb#14 +Herb::Fingerprint::SHORT_LENGTH = T.let(T.unsafe(nil), Integer) + +# source://herb//lib/herb/lex_result.rb#5 +class Herb::LexResult < ::Herb::Result + # : (Array[Herb::Token], String, Array[Herb::Warnings::Warning], Array[Herb::Errors::Error]) -> void + # + # @return [LexResult] a new instance of LexResult + # + # source://herb//lib/herb/lex_result.rb#9 + def initialize(value, source, warnings, errors); end + + # : TokenList + # + # source://herb//lib/herb/lex_result.rb#6 + def value; end +end + +# Finds the most specific node at a position, and the nodes it sits inside. +# +# result = document.locate(Herb::Position.from(2, 7)) +# +# result.node #=> the innermost node whose location contains the position +# result.ancestors #=> every node it sits inside, nearest first +# +# A node and a parse result both answer, so a walk starts from whichever one a caller already +# holds. `Herb::AST::Node#locate` and `Herb::ParseResult#locate` are the same walk from different +# starting points. +# +# Everything that reads a position back from a rendered page, an editor, or a diagnostic needs +# this, and every caller was writing its own descent. A finding at `2:7` is a node before it is +# anything a person can act on. +# +# `ancestors` reads nearest first, the way `caller` does, so the enclosing element a caller wants +# is the first one that answers: +# +# result.ancestors.find { |node| node.is_a?(Herb::AST::HTMLElementNode) } +# +# A node's location contains its start and stops short of its end, so two nodes sitting next to +# each other never both answer for the character between them. A position past the end of the +# source belongs to no node, and the answer is `nil`. +# +# Columns are 0-based character offsets into their line, which is what the parser reports. +# `Herb::Position#to_one_based` is what turns one into what an editor shows. +# +# `Herb::Locate::Result` holds what was found, and what it was found inside. +# +# result.node #=> # +# result.ancestors #=> [#<...HTMLAttributeNameNode>, #<...HTMLAttributeNode>, ...] +# +# source://herb//lib/herb/locate.rb#37 +class Herb::Locate + # : (Herb::Position) -> void + # + # @return [Locate] a new instance of Locate + # + # source://herb//lib/herb/locate.rb#84 + def initialize(position); end + + # : ((Herb::AST::Node | Herb::ParseResult)) -> Result? + # + # source://herb//lib/herb/locate.rb#93 + def call(node); end + + # : ((Herb::AST::Node | Herb::ParseResult)) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/locate.rb#102 + def locatable?(node); end + + private + + # : (Herb::AST::Node) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/locate.rb#123 + def contains?(node); end + + # : (Herb::AST::Node, Array[Herb::AST::Node]) -> Result? + # + # source://herb//lib/herb/locate.rb#109 + def descend(node, ancestors); end + + # : (Herb::AST::Node) -> Herb::Location? + # + # source://herb//lib/herb/locate.rb#140 + def extent(node); end + + # : (Herb::Location?, Herb::Location) -> Herb::Location + # + # source://herb//lib/herb/locate.rb#154 + def union(first, second); end + + # : (Herb::AST::Node) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/locate.rb#133 + def within_extent?(node); end + + class << self + # : ((Herb::AST::Node | Herb::ParseResult), Herb::Position) -> Result? + # + # source://herb//lib/herb/locate.rb#69 + def call(node, position); end + + # : ((Herb::AST::Node | Herb::ParseResult), Herb::Position) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/locate.rb#74 + def locatable?(node, position); end + + # : ((Herb::AST::Node | Herb::ParseResult)) -> Herb::AST::Node + # + # source://herb//lib/herb/locate.rb#79 + def root(node); end + end +end + +# source://herb//lib/herb/locate.rb#38 +class Herb::Locate::Result + # : (Herb::AST::Node, Array[Herb::AST::Node]) -> void + # + # @return [Result] a new instance of Result + # + # source://herb//lib/herb/locate.rb#43 + def initialize(node, ancestors); end + + # : Array[Herb::AST::Node] + # + # source://herb//lib/herb/locate.rb#40 + def ancestors; end + + # : (untyped) -> Herb::AST::Node? + # + # source://herb//lib/herb/locate.rb#51 + def innermost(kind); end + + # : () -> String + # + # source://herb//lib/herb/locate.rb#63 + def inspect; end + + # : Herb::AST::Node + # + # source://herb//lib/herb/locate.rb#39 + def node; end + + # : () -> Array[Herb::AST::Node] + # + # source://herb//lib/herb/locate.rb#58 + def path; end +end + +# : type serialized_location = { +# | start: serialized_position, +# | end: serialized_position +# | } +# +# source://herb//lib/herb/location.rb#9 +class Herb::Location + # : (Position, Position) -> void + # + # @return [Location] a new instance of Location + # + # source://herb//lib/herb/location.rb#14 + def initialize(start_position, end_position); end + + # : (Position) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/location.rb#38 + def contains?(position); end + + # : (Location) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/location.rb#43 + def covers?(other); end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/location.rb#48 + def empty?; end + + # : Position + # + # source://herb//lib/herb/location.rb#11 + def end; end + + # : () -> String + # + # source://herb//lib/herb/location.rb#71 + def inspect; end + + # : Position + # + # source://herb//lib/herb/location.rb#10 + def start; end + + # : () -> serialized_location + # + # source://herb//lib/herb/location.rb#53 + def to_hash; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/location.rb#61 + def to_json(state = T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/location.rb#66 + def tree_inspect; end + + class << self + # : (Integer, Integer, Integer, Integer) -> Location + # + # source://herb//lib/herb/location.rb#28 + def [](start_line, start_column, end_line, end_column); end + + # : (Integer, Integer, Integer, Integer) -> Location + # + # source://herb//lib/herb/location.rb#20 + def from(start_line, start_column, end_line, end_column); end + + # : () -> Location + # + # source://herb//lib/herb/location.rb#33 + def zero; end + end +end + +# source://herb//lib/herb/parse_result.rb#9 +class Herb::ParseResult < ::Herb::Result + # : (Herb::AST::DocumentNode, String, Array[Herb::Warnings::Warning], Array[Herb::Errors::Error], Herb::ParserOptions, ?Integer?) -> void + # + # @return [ParseResult] a new instance of ParseResult + # + # source://herb//lib/herb/parse_result.rb#15 + def initialize(value, source, warnings, errors, options, error_count = T.unsafe(nil)); end + + # : Integer? + # + # source://herb//lib/herb/parse_result.rb#12 + def error_count; end + + # : () -> Array[Herb::Errors::Error] + # + # source://herb//lib/herb/parse_result.rb#30 + def errors; end + + # : (Herb::Position) -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/parse_result.rb#47 + def locatable?(position); end + + # : (Herb::Position) -> Herb::Locate::Result? + # + # source://herb//lib/herb/parse_result.rb#42 + def locate(position); end + + # : Herb::ParserOptions + # + # source://herb//lib/herb/parse_result.rb#11 + def options; end + + # : () -> String + # + # source://herb//lib/herb/parse_result.rb#37 + def pretty_errors; end + + # : Herb::AST::DocumentNode + # + # source://herb//lib/herb/parse_result.rb#10 + def value; end + + # : (Visitor) -> void + # + # source://herb//lib/herb/parse_result.rb#52 + def visit(visitor); end +end + +# source://herb//lib/herb/parser_options.rb#8 +class Herb::ParserOptions + # : (?action_view_helpers: bool, ?analyze: bool, ?arena_stats: bool, ?dot_notation_tags: bool, ?erb_openers: Array[String], ?herb_directives: bool, ?html: bool, ?iteration_nodes: bool, ?max_errors: Integer?, ?prism_nodes: bool, ?prism_nodes_deep: bool, ?prism_program: bool, ?render_nodes: bool, ?strict: bool, ?strict_locals: bool, ?timeout: Numeric, ?track_locations: bool, ?track_whitespace: bool, ?transform_conditionals: bool) -> void + # + # @return [ParserOptions] a new instance of ParserOptions + # + # source://herb//lib/herb/parser_options.rb#49 + def initialize(action_view_helpers: T.unsafe(nil), analyze: T.unsafe(nil), arena_stats: T.unsafe(nil), dot_notation_tags: T.unsafe(nil), erb_openers: T.unsafe(nil), herb_directives: T.unsafe(nil), html: T.unsafe(nil), iteration_nodes: T.unsafe(nil), max_errors: T.unsafe(nil), prism_nodes: T.unsafe(nil), prism_nodes_deep: T.unsafe(nil), prism_program: T.unsafe(nil), render_nodes: T.unsafe(nil), strict: T.unsafe(nil), strict_locals: T.unsafe(nil), timeout: T.unsafe(nil), track_locations: T.unsafe(nil), track_whitespace: T.unsafe(nil), transform_conditionals: T.unsafe(nil)); end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#9 + def action_view_helpers; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#10 + def analyze; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#11 + def arena_stats; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#12 + def dot_notation_tags; end + + # : Array[String] + # + # source://herb//lib/herb/parser_options.rb#13 + def erb_openers; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#14 + def herb_directives; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#15 + def html; end + + # : () -> String + # + # source://herb//lib/herb/parser_options.rb#97 + def inspect; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#16 + def iteration_nodes; end + + # : Integer? + # + # source://herb//lib/herb/parser_options.rb#17 + def max_errors; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#18 + def prism_nodes; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#19 + def prism_nodes_deep; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#20 + def prism_program; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#21 + def render_nodes; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#22 + def strict; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#23 + def strict_locals; end + + # : Numeric + # + # source://herb//lib/herb/parser_options.rb#24 + def timeout; end + + # : () -> Hash[Symbol, (bool | Numeric | Array[String] | nil)] + # + # source://herb//lib/herb/parser_options.rb#72 + def to_h; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#25 + def track_locations; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#26 + def track_whitespace; end + + # : bool + # + # source://herb//lib/herb/parser_options.rb#27 + def transform_conditionals; end +end + +# : bool +# +# source://herb//lib/herb/parser_options.rb#29 +Herb::ParserOptions::DEFAULT_ACTION_VIEW_HELPERS = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#30 +Herb::ParserOptions::DEFAULT_ANALYZE = T.let(T.unsafe(nil), TrueClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#31 +Herb::ParserOptions::DEFAULT_CAPTURE_ARENA_STATS = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#32 +Herb::ParserOptions::DEFAULT_DOT_NOTATION_TAGS = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#33 +Herb::ParserOptions::DEFAULT_HERB_DIRECTIVES = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#34 +Herb::ParserOptions::DEFAULT_HTML = T.let(T.unsafe(nil), TrueClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#35 +Herb::ParserOptions::DEFAULT_ITERATION_NODES = T.let(T.unsafe(nil), FalseClass) + +# : Integer +# +# source://herb//lib/herb/parser_options.rb#36 +Herb::ParserOptions::DEFAULT_MAX_ERRORS = T.let(T.unsafe(nil), Integer) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#37 +Herb::ParserOptions::DEFAULT_PRISM_NODES = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#38 +Herb::ParserOptions::DEFAULT_PRISM_NODES_DEEP = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#39 +Herb::ParserOptions::DEFAULT_PRISM_PROGRAM = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#40 +Herb::ParserOptions::DEFAULT_RENDER_NODES = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#41 +Herb::ParserOptions::DEFAULT_STRICT = T.let(T.unsafe(nil), TrueClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#42 +Herb::ParserOptions::DEFAULT_STRICT_LOCALS = T.let(T.unsafe(nil), FalseClass) + +# : Numeric +# +# source://herb//lib/herb/parser_options.rb#43 +Herb::ParserOptions::DEFAULT_TIMEOUT = T.let(T.unsafe(nil), Integer) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#44 +Herb::ParserOptions::DEFAULT_TRACK_LOCATIONS = T.let(T.unsafe(nil), TrueClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#45 +Herb::ParserOptions::DEFAULT_TRACK_WHITESPACE = T.let(T.unsafe(nil), FalseClass) + +# : bool +# +# source://herb//lib/herb/parser_options.rb#46 +Herb::ParserOptions::DEFAULT_TRANSFORM_CONDITIONALS = T.let(T.unsafe(nil), FalseClass) + +# : type serialized_position = { line: Integer, column: Integer } +# +# source://herb//lib/herb/position.rb#6 +class Herb::Position + include ::Comparable + + # : (Integer, Integer) -> void + # + # @return [Position] a new instance of Position + # + # source://herb//lib/herb/position.rb#13 + def initialize(line, column); end + + # : (untyped) -> Integer? + # + # source://herb//lib/herb/position.rb#34 + def <=>(other); end + + # : Integer + # + # source://herb//lib/herb/position.rb#10 + def column; end + + # : () -> String + # + # source://herb//lib/herb/position.rb#61 + def inspect; end + + # : Integer + # + # source://herb//lib/herb/position.rb#9 + def line; end + + # : () -> serialized_position + # + # source://herb//lib/herb/position.rb#41 + def to_hash; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/position.rb#51 + def to_json(state = T.unsafe(nil)); end + + # : () -> serialized_position + # + # source://herb//lib/herb/position.rb#46 + def to_one_based; end + + # : () -> String + # + # source://herb//lib/herb/position.rb#56 + def tree_inspect; end + + class << self + # : (Integer, Integer) -> Position + # + # source://herb//lib/herb/position.rb#19 + def [](line, column); end + + # : (Integer, Integer) -> Position + # + # source://herb//lib/herb/position.rb#24 + def from(line, column); end + + # : () -> Position + # + # source://herb//lib/herb/position.rb#29 + def zero; end + end +end + +# source://herb//lib/herb/prism_inspect.rb#4 +module Herb::PrismInspect + class << self + # : (Prism::Node, String, String) -> String + # + # source://herb//lib/herb/prism_inspect.rb#29 + def inspect_prism_node(node, source, prefix); end + + # : (String, String, String) -> String + # + # source://herb//lib/herb/prism_inspect.rb#9 + def inspect_prism_serialized(serialized_bytes, source, prefix); end + + private + + # : (untyped) -> Array[[Symbol, untyped]] + # + # source://herb//lib/herb/prism_inspect.rb#107 + def display_fields(node); end + + # : (Prism::Location) -> String + # + # source://herb//lib/herb/prism_inspect.rb#112 + def format_location(location); end + + # : (Symbol, Array[untyped], String, String, String, String) -> String + # + # source://herb//lib/herb/prism_inspect.rb#81 + def inspect_array_field(name, value, source, prefix, symbol, child_prefix); end + + # : (Symbol, untyped, String, String, String, String) -> String + # + # source://herb//lib/herb/prism_inspect.rb#50 + def inspect_field(name, value, source, prefix, symbol, child_prefix); end + + # : (Symbol, Prism::Node, String, String, String, String) -> String + # + # source://herb//lib/herb/prism_inspect.rb#70 + def inspect_node_field(name, value, source, prefix, symbol, child_prefix); end + end +end + +# source://herb//lib/herb/prism_inspect.rb#5 +Herb::PrismInspect::SKIP_FIELDS = T.let(T.unsafe(nil), Array) + +# : type serialized_range = [Integer, Integer] +# +# source://herb//lib/herb/range.rb#6 +class Herb::Range + # : (Integer, Integer) -> void + # + # @return [Range] a new instance of Range + # + # source://herb//lib/herb/range.rb#11 + def initialize(from, to); end + + # : Integer + # + # source://herb//lib/herb/range.rb#7 + def from; end + + # : () -> String + # + # source://herb//lib/herb/range.rb#47 + def inspect; end + + # : Integer + # + # source://herb//lib/herb/range.rb#8 + def to; end + + # : () -> serialized_range + # + # source://herb//lib/herb/range.rb#32 + def to_a; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/range.rb#37 + def to_json(state = T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/range.rb#52 + def to_s; end + + # : () -> String + # + # source://herb//lib/herb/range.rb#42 + def tree_inspect; end + + class << self + # : (Integer, Integer) -> Range + # + # source://herb//lib/herb/range.rb#17 + def [](from, to); end + + # : (Integer, Integer) -> Range + # + # source://herb//lib/herb/range.rb#22 + def from(from, to); end + + # : () -> Range + # + # source://herb//lib/herb/range.rb#27 + def zero; end + end +end + +# source://herb//lib/herb/result.rb#5 +class Herb::Result + # : (String, Array[Herb::Warnings::Warning], Array[Herb::Errors::Error]) -> void + # + # @return [Result] a new instance of Result + # + # source://herb//lib/herb/result.rb#11 + def initialize(source, warnings, errors); end + + # : Array[Herb::Errors::Error] + # + # source://herb//lib/herb/result.rb#8 + def errors; end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/result.rb#23 + def failed?; end + + # : String + # + # source://herb//lib/herb/result.rb#6 + def source; end + + # : () -> bool + # + # @return [Boolean] + # + # source://herb//lib/herb/result.rb#18 + def success?; end + + # : Array[Herb::Warnings::Warning] + # + # source://herb//lib/herb/result.rb#7 + def warnings; end +end + +# : type serialized_token = { +# | value: String, +# | range: serialized_range?, +# | location: serialized_location?, +# | type: String +# | } +# +# source://herb//lib/herb/token.rb#11 +class Herb::Token + include ::Herb::Colors + + # : (String, Range, Location, String) -> void + # + # @return [Token] a new instance of Token + # + # source://herb//lib/herb/token.rb#25 + def initialize(value, range, location, type); end + + # : (Position?) -> String + # + # source://herb//lib/herb/token.rb#71 + def colorize_position(position); end + + # : () -> String + # + # source://herb//lib/herb/token.rb#64 + def colorize_range; end + + # : () -> String + # + # source://herb//lib/herb/token.rb#78 + def inspect; end + + # : Location + # + # source://herb//lib/herb/token.rb#16 + def location; end + + # : Range + # + # source://herb//lib/herb/token.rb#15 + def range; end + + # : () -> serialized_token + # + # source://herb//lib/herb/token.rb#33 + def to_hash; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/token.rb#43 + def to_json(state = T.unsafe(nil)); end + + # : () -> String + # + # source://herb//lib/herb/token.rb#48 + def tree_inspect; end + + # : String + # + # source://herb//lib/herb/token.rb#17 + def type; end + + # : String + # + # source://herb//lib/herb/token.rb#14 + def value; end + + # : () -> String + # + # source://herb//lib/herb/token.rb#55 + def value_inspect; end + + class << self + # : (String | Symbol, String, ?location: Location, ?range: Range) -> Token + # + # source://herb//lib/herb/token.rb#20 + def from(type, value, location: T.unsafe(nil), range: T.unsafe(nil)); end + end +end + +# source://herb//lib/herb/token_list.rb#7 +class Herb::TokenList < ::SimpleDelegator + # : () -> String + # + # source://herb//lib/herb/token_list.rb#9 + def inspect; end + + private + + # : () -> Array[Token] + # + # source://herb//lib/herb/token_list.rb#16 + def items; end +end + +# source://herb//lib/herb/version.rb#5 +Herb::VERSION = T.let(T.unsafe(nil), String) + +# source://herb//lib/herb/visitor/parser_option_requirements.rb#5 +class Herb::Visitor + include ::Herb::AST::Helpers + include ::Herb::Visitor::ParserOptionRequirements + extend ::Herb::Visitor::ParserOptionRequirements::ClassMethods + + # : (Herb::AST::Node?) -> void + # + # source://herb//lib/herb/visitor.rb#18 + def visit(node); end + + # : (Array[Herb::AST::Node?]) -> void + # + # source://herb//lib/herb/visitor.rb#23 + def visit_all(nodes); end + + # : (Herb::AST::CDATANode) -> void + # + # source://herb//lib/herb/visitor.rb#164 + def visit_cdata_node(node); end + + # : (Herb::AST::Node) -> void + # + # source://herb//lib/herb/visitor.rb#28 + def visit_child_nodes(node); end + + # : (Herb::AST::DocumentNode) -> void + # + # source://herb//lib/herb/visitor.rb#43 + def visit_document_node(node); end + + # : (Herb::AST::ERBBeginNode) -> void + # + # source://herb//lib/herb/visitor.rb#274 + def visit_erb_begin_node(node); end + + # : (Herb::AST::ERBBlockNode) -> void + # + # source://herb//lib/herb/visitor.rb#204 + def visit_erb_block_node(node); end + + # : (Herb::AST::ERBCaseMatchNode) -> void + # + # source://herb//lib/herb/visitor.rb#232 + def visit_erb_case_match_node(node); end + + # : (Herb::AST::ERBCaseNode) -> void + # + # source://herb//lib/herb/visitor.rb#225 + def visit_erb_case_node(node); end + + # : (Herb::AST::ERBCommentNode) -> void + # + # source://herb//lib/herb/visitor.rb#354 + def visit_erb_comment_node(node); end + + # : (Herb::AST::ERBContentNode) -> void + # + # source://herb//lib/herb/visitor.rb#176 + def visit_erb_content_node(node); end + + # : (Herb::AST::ERBElseNode) -> void + # + # source://herb//lib/herb/visitor.rb#190 + def visit_erb_else_node(node); end + + # : (Herb::AST::ERBEndNode) -> void + # + # source://herb//lib/herb/visitor.rb#183 + def visit_erb_end_node(node); end + + # : (Herb::AST::ERBEnsureNode) -> void + # + # source://herb//lib/herb/visitor.rb#267 + def visit_erb_ensure_node(node); end + + # : (Herb::AST::ERBForNode) -> void + # + # source://herb//lib/herb/visitor.rb#253 + def visit_erb_for_node(node); end + + # : (Herb::AST::ERBIfNode) -> void + # + # source://herb//lib/herb/visitor.rb#197 + def visit_erb_if_node(node); end + + # : (Herb::AST::ERBInNode) -> void + # + # source://herb//lib/herb/visitor.rb#327 + def visit_erb_in_node(node); end + + # : (Herb::AST::ERBIterationBlockNode) -> void + # + # source://herb//lib/herb/visitor.rb#211 + def visit_erb_iteration_block_node(node); end + + # : (Herb::AST::Node) -> void + # + # source://herb//lib/herb/visitor.rb#38 + def visit_erb_node(node); end + + # : (Herb::AST::ERBOpenTagNode) -> void + # + # source://herb//lib/herb/visitor.rb#127 + def visit_erb_open_tag_node(node); end + + # : (Herb::AST::ERBRenderNode) -> void + # + # source://herb//lib/herb/visitor.rb#300 + def visit_erb_render_node(node); end + + # : (Herb::AST::ERBRescueNode) -> void + # + # source://herb//lib/herb/visitor.rb#260 + def visit_erb_rescue_node(node); end + + # : (Herb::AST::ERBStrictLocalsNode) -> void + # + # source://herb//lib/herb/visitor.rb#313 + def visit_erb_strict_locals_node(node); end + + # : (Herb::AST::ERBUnlessNode) -> void + # + # source://herb//lib/herb/visitor.rb#281 + def visit_erb_unless_node(node); end + + # : (Herb::AST::ERBUntilNode) -> void + # + # source://herb//lib/herb/visitor.rb#246 + def visit_erb_until_node(node); end + + # : (Herb::AST::ERBWhenNode) -> void + # + # source://herb//lib/herb/visitor.rb#218 + def visit_erb_when_node(node); end + + # : (Herb::AST::ERBWhileNode) -> void + # + # source://herb//lib/herb/visitor.rb#239 + def visit_erb_while_node(node); end + + # : (Herb::AST::ERBYieldNode) -> void + # + # source://herb//lib/herb/visitor.rb#320 + def visit_erb_yield_node(node); end + + # : (Herb::AST::HerbDirectiveNode) -> void + # + # source://herb//lib/herb/visitor.rb#334 + def visit_herb_directive_node(node); end + + # : (Herb::AST::HerbStateDeclarationNode) -> void + # + # source://herb//lib/herb/visitor.rb#341 + def visit_herb_state_declaration_node(node); end + + # : (Herb::AST::HerbStateDirectiveNode) -> void + # + # source://herb//lib/herb/visitor.rb#347 + def visit_herb_state_directive_node(node); end + + # : (Herb::AST::HTMLAttributeNameNode) -> void + # + # source://herb//lib/herb/visitor.rb#103 + def visit_html_attribute_name_node(node); end + + # : (Herb::AST::HTMLAttributeNode) -> void + # + # source://herb//lib/herb/visitor.rb#109 + def visit_html_attribute_node(node); end + + # : (Herb::AST::HTMLAttributeValueNode) -> void + # + # source://herb//lib/herb/visitor.rb#97 + def visit_html_attribute_value_node(node); end + + # : (Herb::AST::HTMLCloseTagNode) -> void + # + # source://herb//lib/herb/visitor.rb#67 + def visit_html_close_tag_node(node); end + + # : (Herb::AST::HTMLCommentNode) -> void + # + # source://herb//lib/herb/visitor.rb#140 + def visit_html_comment_node(node); end + + # : (Herb::AST::HTMLConditionalElementNode) -> void + # + # source://herb//lib/herb/visitor.rb#91 + def visit_html_conditional_element_node(node); end + + # : (Herb::AST::HTMLConditionalOpenTagNode) -> void + # + # source://herb//lib/herb/visitor.rb#61 + def visit_html_conditional_open_tag_node(node); end + + # : (Herb::AST::HTMLDoctypeNode) -> void + # + # source://herb//lib/herb/visitor.rb#146 + def visit_html_doctype_node(node); end + + # : (Herb::AST::HTMLElementNode) -> void + # + # source://herb//lib/herb/visitor.rb#85 + def visit_html_element_node(node); end + + # : (Herb::AST::HTMLOmittedCloseTagNode) -> void + # + # source://herb//lib/herb/visitor.rb#73 + def visit_html_omitted_close_tag_node(node); end + + # : (Herb::AST::HTMLOpenTagNode) -> void + # + # source://herb//lib/herb/visitor.rb#55 + def visit_html_open_tag_node(node); end + + # : (Herb::AST::HTMLTextNode) -> void + # + # source://herb//lib/herb/visitor.rb#134 + def visit_html_text_node(node); end + + # : (Herb::AST::HTMLVirtualCloseTagNode) -> void + # + # source://herb//lib/herb/visitor.rb#79 + def visit_html_virtual_close_tag_node(node); end + + # : (Herb::AST::LiteralNode) -> void + # + # source://herb//lib/herb/visitor.rb#49 + def visit_literal_node(node); end + + # : (Herb::AST::Node) -> void + # + # source://herb//lib/herb/visitor.rb#33 + def visit_node(node); end + + # : (Herb::AST::RubyHTMLAttributesSplatNode) -> void + # + # source://herb//lib/herb/visitor.rb#121 + def visit_ruby_html_attributes_splat_node(node); end + + # : (Herb::AST::RubyLiteralNode) -> void + # + # source://herb//lib/herb/visitor.rb#115 + def visit_ruby_literal_node(node); end + + # : (Herb::AST::RubyParameterNode) -> void + # + # source://herb//lib/herb/visitor.rb#307 + def visit_ruby_parameter_node(node); end + + # : (Herb::AST::RubyRenderKeywordsNode) -> void + # + # source://herb//lib/herb/visitor.rb#294 + def visit_ruby_render_keywords_node(node); end + + # : (Herb::AST::RubyRenderLocalNode) -> void + # + # source://herb//lib/herb/visitor.rb#288 + def visit_ruby_render_local_node(node); end + + # : (Herb::AST::WhitespaceNode) -> void + # + # source://herb//lib/herb/visitor.rb#170 + def visit_whitespace_node(node); end + + # : (Herb::AST::XMLDeclarationNode) -> void + # + # source://herb//lib/herb/visitor.rb#152 + def visit_xml_declaration_node(node); end + + # : (Herb::AST::XMLProcessingInstructionNode) -> void + # + # source://herb//lib/herb/visitor.rb#158 + def visit_xml_processing_instruction_node(node); end +end + +# Lets a visitor declare the parser options the AST it is handed has to carry, so that +# whoever parses can satisfy them before visiting. +# +# class PrismProgramVisitor < Herb::Visitor +# required_parser_option prism_program: true +# recommended_parser_option strict: false +# end +# +# A required option is one the visitor cannot work without, and a recommended one is a soft +# requirement it only works better with. `Herb::Visitor.parser_options_for` resolves both for +# a set of visitors, raising on a conflicting requirement and warning on a conflicting +# recommendation. +# +# `Herb::Visitor` includes this, so every visitor has it. Anything else that is passed to +# `Herb::Engine` as a visitor can include it too. +# +# source://herb//lib/herb/visitor/parser_option_requirements.rb#22 +module Herb::Visitor::ParserOptionRequirements + mixes_in_class_methods ::Herb::Visitor::ParserOptionRequirements::ClassMethods + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#134 + def recommended_parser_options; end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#129 + def required_parser_options; end + + private + + # : () -> untyped + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#146 + def declaring_class; end + + class << self + # : (untyped) -> untyped + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#139 + def class_of(object); end + + # : (untyped) -> void + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#24 + def included(base); end + end +end + +# source://herb//lib/herb/visitor/parser_option_requirements.rb#30 +module Herb::Visitor::ParserOptionRequirements::ClassMethods + # : (untyped) -> void + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#52 + def inherited(subclass); end + + # : (Array[untyped], ?Hash[Symbol, untyped]) -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#60 + def parser_options_for(visitors, parser_options = T.unsafe(nil)); end + + # : (**untyped) -> void + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#37 + def recommended_parser_option(**options); end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#47 + def recommended_parser_options; end + + # : (**untyped) -> void + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#32 + def required_parser_option(**options); end + + # : () -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#42 + def required_parser_options; end + + private + + # : (Array[untyped], Hash[Symbol, untyped]) -> void + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#88 + def apply_recommended_parser_options(visitors, options); end + + # : (Array[untyped], Hash[Symbol, untyped]) -> void + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#72 + def apply_required_parser_options(visitors, options); end + + # : (Symbol) -> Hash[Symbol, untyped] + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#105 + def declared_parser_options(kind); end + + # : (untyped) -> String + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#123 + def describe(visitor); end + + # : (Array[untyped], Symbol) { (untyped, Symbol, untyped) -> void } -> void + # + # source://herb//lib/herb/visitor/parser_option_requirements.rb#112 + def each_declared_parser_option(visitors, reader); end +end + +# source://herb//lib/herb/warnings.rb#5 +module Herb::Warnings; end + +# TODO: move to `config.yml` so they are in line with the way errors are defined and generated. +# +# source://herb//lib/herb/warnings.rb#49 +class Herb::Warnings::UnkeyedCollectionWarning < ::Herb::Warnings::Warning + # : (Location, ?String?, ?tag_name: String?) -> void + # + # @return [UnkeyedCollectionWarning] a new instance of UnkeyedCollectionWarning + # + # source://herb//lib/herb/warnings.rb#54 + def initialize(location, expression = T.unsafe(nil), tag_name: T.unsafe(nil)); end + + # : String? + # + # source://herb//lib/herb/warnings.rb#50 + def expression; end + + # : String? + # + # source://herb//lib/herb/warnings.rb#51 + def tag_name; end +end + +# : type serialized_warning = { +# | type: String, +# | location: serialized_location?, +# | message: String +# | } +# +# source://herb//lib/herb/warnings.rb#11 +class Herb::Warnings::Warning + # : (String, Location, String) -> void + # + # @return [Warning] a new instance of Warning + # + # source://herb//lib/herb/warnings.rb#17 + def initialize(type, location, message); end + + # : () -> String + # + # source://herb//lib/herb/warnings.rb#33 + def class_name; end + + # : Location? + # + # source://herb//lib/herb/warnings.rb#13 + def location; end + + # : String + # + # source://herb//lib/herb/warnings.rb#14 + def message; end + + # : () -> serialized_warning + # + # source://herb//lib/herb/warnings.rb#24 + def to_hash; end + + # : (?untyped) -> String + # + # source://herb//lib/herb/warnings.rb#43 + def to_json(state = T.unsafe(nil)); end + + # : String + # + # source://herb//lib/herb/warnings.rb#12 + def type; end + + # : () -> String + # + # source://herb//lib/herb/warnings.rb#38 + def warning_name; end +end diff --git a/spec/query_packwerk/file_cache_spec.rb b/spec/query_packwerk/file_cache_spec.rb new file mode 100644 index 0000000..96913b3 --- /dev/null +++ b/spec/query_packwerk/file_cache_spec.rb @@ -0,0 +1,105 @@ +# typed: false +# frozen_string_literal: true + +RSpec.describe QueryPackwerk::FileCache do + subject(:file_cache) { described_class.new } + + def sources_in(file_name, class_name: '::Billing::Invoice') + file_cache + .get_full_sources(file_name: file_name, class_name: class_name) + .map { |node| [node.loc.line, node.source] } + end + + describe '#get_full_sources' do + it 'finds references in the Ruby code of an ERB template, on their template lines' do + write_file('app/views/invoices/show.html.erb', <<~ERB) +
+ <%# Billing::Invoice in a comment is not a reference %> <%= Billing::Invoice.count %> +

Escaped: <%%= Billing::Invoice %>

+ <% if Billing::Invoice.overdue?(@account) %> +

<%= Billing::Invoice.for(@account).total %>

+ <% end %> + <%= form_with model: @account do |form| %> + <%= form.text_field :name %> <%= Billing::Invoice.statuses.first %> + <% end %> +
+ ERB + + expect(sources_in('app/views/invoices/show.html.erb')).to eq( + [ + [2, 'Billing::Invoice.count'], + [4, 'Billing::Invoice.overdue?(@account)'], + [5, 'Billing::Invoice.for(@account).total'], + [8, 'Billing::Invoice.statuses.first'] + ] + ) + end + + %w[app/views/invoices/show.js.erb app/views/invoices/show.erb].each do |file_name| + it "finds references in #{file_name}" do + write_file(file_name, "var count = <%= Billing::Invoice.count %>;\n") + + expect(sources_in(file_name)).to eq([[1, 'Billing::Invoice.count']]) + end + end + + it 'finds a reference that is the only code in a template' do + write_file('app/views/invoices/_name.html.erb', "

<%= Billing::Invoice %>

\n") + + expect(sources_in('app/views/invoices/_name.html.erb')).to eq([[1, 'Billing::Invoice']]) + end + + it 'finds nothing, without a warning, in an ERB template without Ruby code' do + write_file('app/views/pages/about.html.erb', "

About

\n") + + expect { sources_in('app/views/pages/about.html.erb') }.not_to output.to_stderr + expect(sources_in('app/views/pages/about.html.erb')).to eq([]) + end + + it 'finds nothing, without a warning, in a Ruby file with only comments' do + write_file('app/models/invoice.rb', "# frozen_string_literal: true\n") + + expect { sources_in('app/models/invoice.rb') }.not_to output.to_stderr + expect(sources_in('app/models/invoice.rb')).to eq([]) + end + + %w[app/models/invoice.rb app/views/invoices/show.html.erb].each do |file_name| + it "finds nothing, without a warning, when #{file_name} does not exist" do + expect { sources_in(file_name) }.not_to output.to_stderr + expect(sources_in(file_name)).to eq([]) + end + end + + it 'warns, once, that it found nothing in a file it could not parse' do + write_file('app/views/invoices/show.html.erb', <<~ERB) + <% if Billing::Invoice.overdue?(@account) %> +

Overdue

+ <% end %> + <% end %> + ERB + + expect do + sources_in('app/views/invoices/show.html.erb') + sources_in('app/views/invoices/show.html.erb', class_name: '::Billing::Payment') + end.to output(%r{\ACould not parse app/views/invoices/show\.html\.erb:4 \(.+\), so its violations are not included\n\z}) + .to_stderr + expect(sources_in('app/views/invoices/show.html.erb')).to eq([]) + end + + %w[ + lib/tasks/billing.rake app/views/invoices/show.xml.builder billing.gemspec config.ru Gemfile Rakefile + ].each do |file_name| + it "finds references in #{file_name}" do + write_file(file_name, "Billing::Invoice.find(1)\n") + + expect(sources_in(file_name)).to eq([[1, 'Billing::Invoice.find(1)']]) + end + end + + it 'finds nothing in a file that packwerk does not parse' do + write_file('Gemfile.lock', "Billing::Invoice.find(1)\n") + + expect(sources_in('Gemfile.lock')).to eq([]) + end + end +end diff --git a/spec/query_packwerk/violation_spec.rb b/spec/query_packwerk/violation_spec.rb new file mode 100644 index 0000000..3f7d14f --- /dev/null +++ b/spec/query_packwerk/violation_spec.rb @@ -0,0 +1,83 @@ +# typed: false +# frozen_string_literal: true + +RSpec.describe QueryPackwerk::Violation do + include_context 'pseudo packs' + + context 'when the violating file is an ERB template' do + subject(:violation) do + described_class.new( + original_violation: ParsePackwerk::Violation.new( + type: 'privacy', + to_package_name: package_name, + class_name: '::HoneyProductionNectar', + files: [template] + ), + consuming_pack: ParsePackwerk.find(package_name) + ) + end + + let(:template) { 'packs/hive_dashboard/app/views/apiaries/show.html.erb' } + let(:template_source) do + <<~ERB +
+

<%= @apiary.name %>

+ <% if HoneyProductionNectar.as_of_now.exists?(apiary_id: @apiary.id) %> +

<%= HoneyProductionNectar.as_of_now.find_by(apiary_id: @apiary.id).volume %>

+ <% end %> +
+ ERB + end + + before do + write_file(template, template_source) + end + + it 'counts each reference' do + expect(violation.count).to eq(2) + end + + it 'shows context from the template rather than the extracted Ruby' do + contexts = violation.sources_with_contexts.values.flatten + + expect(contexts.size).to eq(2) + expect(contexts).to all(include('<% if HoneyProductionNectar.as_of_now.exists?(apiary_id: @apiary.id) %>')) + end + + it 'shows the lines around each reference' do + expect(violation.sources_with_contexts(start_offset: 1, end_offset: 1).values.flatten).to eq( + [ + <<~CONTEXT, + > #{template}:3 (L2..4) + +

<%= @apiary.name %>

+ <% if HoneyProductionNectar.as_of_now.exists?(apiary_id: @apiary.id) %> +

<%= HoneyProductionNectar.as_of_now.find_by(apiary_id: @apiary.id).volume %>

+ CONTEXT + <<~CONTEXT + > #{template}:4 (L3..5) + + <% if HoneyProductionNectar.as_of_now.exists?(apiary_id: @apiary.id) %> +

<%= HoneyProductionNectar.as_of_now.find_by(apiary_id: @apiary.id).volume %>

+ <% end %> + CONTEXT + ] + ) + end + + context 'when a reference is near the top of the template' do + let(:template_source) do + <<~ERB +

<%= HoneyProductionNectar.as_of_now.volume %>

+

Updated daily

+

Volumes are in liters

+ + ERB + end + + it 'shows context from the top of the template' do + expect(violation.sources_with_contexts.values.flatten).to eq(["> #{template}:1 (L1..4)\n\n#{template_source}"]) + end + end + end +end diff --git a/spec/query_packwerk/violations_spec.rb b/spec/query_packwerk/violations_spec.rb index 2c56e19..3a812d3 100644 --- a/spec/query_packwerk/violations_spec.rb +++ b/spec/query_packwerk/violations_spec.rb @@ -79,4 +79,21 @@ ) end end + + describe '#sources_with_contexts' do + it 'shows the given number of lines around each source' do + contexts = described_class.all.sources_with_contexts(start_offset: 1, end_offset: 0) + + expect(contexts['::Backfills::BackfillPollinationCoveredPeriodDates']).to eq( + 'Backfills::BackfillPollinationCoveredPeriodDates.run!' => [ + <<~CONTEXT + > db/data/20210309211702_backfill_pollination_covered_period_dates.rb:3 (L2..3) + + def up + Backfills::BackfillPollinationCoveredPeriodDates.run! + CONTEXT + ] + ) + end + end end