diff --git a/src/compiler/build_tables/parse_item_set_builder.cc b/src/compiler/build_tables/parse_item_set_builder.cc index b0531d37..36c3942f 100644 --- a/src/compiler/build_tables/parse_item_set_builder.cc +++ b/src/compiler/build_tables/parse_item_set_builder.cc @@ -16,8 +16,6 @@ using std::get; using std::pair; using std::tuple; using std::make_tuple; -using std::shared_ptr; -using std::make_shared; using rules::Symbol; using rules::NONE; diff --git a/src/compiler/rule.cc b/src/compiler/rule.cc index 55508c77..a20d0baa 100644 --- a/src/compiler/rule.cc +++ b/src/compiler/rule.cc @@ -115,7 +115,6 @@ Rule::~Rule() noexcept { bool Rule::operator==(const Rule &other) const { if (type != other.type) return false; switch (type) { - case Rule::BlankType: return blank == other.blank; case Rule::CharacterSetType: return character_set == other.character_set; case Rule::StringType: return string == other.string; case Rule::PatternType: return pattern == other.pattern; @@ -125,6 +124,7 @@ bool Rule::operator==(const Rule &other) const { case Rule::MetadataType: return metadata == other.metadata; case Rule::RepeatType: return repeat == other.repeat; case Rule::SeqType: return seq == other.seq; + default: return blank == other.blank; } } @@ -219,7 +219,6 @@ size_t hash::operator()(const Metadata &metadata) const { size_t hash::operator()(const Rule &rule) const { size_t result = hash()(rule.type); switch (rule.type) { - case Rule::BlankType: return result ^ hash()(rule.blank); case Rule::CharacterSetType: return result ^ hash()(rule.character_set); case Rule::StringType: return result ^ hash()(rule.string); case Rule::PatternType: return result ^ hash()(rule.pattern); @@ -229,6 +228,7 @@ size_t hash::operator()(const Rule &rule) const { case Rule::MetadataType: return result ^ hash()(rule.metadata); case Rule::RepeatType: return result ^ hash()(rule.repeat); case Rule::SeqType: return result ^ hash()(rule.seq); + default: return result ^ hash()(rule.blank); } } diff --git a/src/compiler/rule.h b/src/compiler/rule.h index 9e0ada18..0dca6f38 100644 --- a/src/compiler/rule.h +++ b/src/compiler/rule.h @@ -74,7 +74,6 @@ struct Rule { template inline auto accept(FunctionType function) const -> decltype(function(blank)) { switch (type) { - case BlankType: return function(blank); case CharacterSetType: return function(character_set); case StringType: return function(string); case PatternType: return function(pattern); @@ -84,6 +83,7 @@ struct Rule { case MetadataType: return function(metadata); case RepeatType: return function(repeat); case SeqType: return function(seq); + default: return function(blank); } } diff --git a/src/compiler/rules/character_set.cc b/src/compiler/rules/character_set.cc index 089fce6a..5b0c3464 100644 --- a/src/compiler/rules/character_set.cc +++ b/src/compiler/rules/character_set.cc @@ -41,7 +41,7 @@ static set add_chars(set *left, const set &right) static vector consolidate_ranges(const set &chars) { vector result; for (uint32_t c : chars) { - size_t size = result.size(); + auto size = result.size(); if (size >= 2 && result[size - 2].max == (c - 2)) { result.pop_back(); result.back().max = c; diff --git a/src/compiler/rules/character_set.h b/src/compiler/rules/character_set.h index 7a8ae715..0c991c43 100644 --- a/src/compiler/rules/character_set.h +++ b/src/compiler/rules/character_set.h @@ -3,6 +3,7 @@ #include #include +#include namespace tree_sitter { namespace rules {