@@ -527,28 +527,20 @@ using namespace semver::detail;
527
527
528
528
class range {
529
529
public:
530
- constexpr explicit range (std::string_view str) noexcept : str_{str} {}
531
-
532
- constexpr bool satisfies (const version& ver, bool include_prerelease) const {
533
- range_parser parser{str_};
534
-
535
- auto is_logical_or = [&parser]() constexpr noexcept -> bool { return parser.current_token .type == range_token_type::logical_or; };
536
-
537
- auto is_operator = [&parser]() constexpr noexcept -> bool { return parser.current_token .type == range_token_type::range_operator; };
538
-
539
- auto is_number = [&parser]() constexpr noexcept -> bool { return parser.current_token .type == range_token_type::number; };
530
+ constexpr explicit range (std::string_view str) noexcept : parser{str} {}
540
531
532
+ constexpr bool satisfies (const version& ver, bool include_prerelease) {
541
533
const bool has_prerelease = ver.prerelease_type != prerelease::none;
542
534
543
535
do {
544
- if (is_logical_or ()) {
536
+ if (is_logical_or_token ()) {
545
537
parser.advance_token (range_token_type::logical_or);
546
538
}
547
539
548
540
bool contains = true ;
549
541
bool allow_compare = include_prerelease;
550
542
551
- while (is_operator () || is_number ()) {
543
+ while (is_operator_token () || is_number_token ()) {
552
544
const auto range = parser.parse_range ();
553
545
const bool equal_without_tags = equal_to (range.ver , ver, comparators_option::exclude_prerelease);
554
546
@@ -570,7 +562,7 @@ class range {
570
562
return true ;
571
563
}
572
564
573
- } while (is_logical_or ());
565
+ } while (is_logical_or_token ());
574
566
575
567
return false ;
576
568
}
@@ -797,7 +789,18 @@ class range {
797
789
}
798
790
};
799
791
800
- std::string_view str_;
792
+ [[nodiscard]] constexpr bool is_logical_or_token () const noexcept {
793
+ return parser.current_token .type == range_token_type::logical_or;
794
+ }
795
+ [[nodiscard]] constexpr bool is_operator_token () const noexcept {
796
+ return parser.current_token .type == range_token_type::range_operator;
797
+ }
798
+
799
+ [[nodiscard]] constexpr bool is_number_token () const noexcept {
800
+ return parser.current_token .type == range_token_type::number;
801
+ }
802
+
803
+ range_parser parser;
801
804
};
802
805
803
806
} // namespace semver::range::detail
0 commit comments