MCPcopy Create free account
hub / github.com/GothenburgBitFactory/taskwarrior / operator==

Method operator==

src/Variant.cpp:785–915  ·  view source on GitHub ↗

///////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

783
784////////////////////////////////////////////////////////////////////////////////
785bool Variant::operator==(const Variant& other) const {
786 Variant left(*this);
787 Variant right(other);
788
789 if (left._type == type_string) Lexer::dequote(left._string);
790
791 if (right._type == type_string) Lexer::dequote(right._string);
792
793 switch (left._type) {
794 case type_boolean:
795 switch (right._type) {
796 case type_boolean:
797 return left._bool == right._bool;
798 case type_integer:
799 left.cast(type_integer);
800 return left._integer == right._integer;
801 case type_real:
802 left.cast(type_real);
803 return left._real == right._real;
804 case type_string:
805 left.cast(type_string);
806 return left._string == right._string;
807 case type_date:
808 left.cast(type_date);
809 return left._date == right._date;
810 case type_duration:
811 left.cast(type_duration);
812 return left._duration == right._duration;
813 }
814 break;
815
816 case type_integer:
817 switch (right._type) {
818 case type_boolean:
819 right.cast(type_integer);
820 return left._integer == right._integer;
821 case type_integer:
822 return left._integer == right._integer;
823 case type_real:
824 left.cast(type_real);
825 return left._real == right._real;
826 case type_string:
827 left.cast(type_string);
828 return left._string == right._string;
829 case type_date:
830 left.cast(type_date);
831 return left._date == right._date;
832 case type_duration:
833 left.cast(type_duration);
834 return left._duration == right._duration;
835 }
836 break;
837
838 case type_real:
839 switch (right._type) {
840 case type_boolean:
841 right.cast(type_real);
842 return left._real == right._real;

Callers

nothing calls this directly

Calls 3

castMethod · 0.80
sourceMethod · 0.80
trivialMethod · 0.80

Tested by

no test coverage detected