MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / SignaturesOverlap

Function SignaturesOverlap

common/decl.cc:89–107  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87namespace {
88
89bool SignaturesOverlap(const OverloadDecl& lhs, const OverloadDecl& rhs) {
90 if (lhs.member() != rhs.member()) {
91 return false;
92 }
93 const auto& lhs_args = lhs.args();
94 const auto& rhs_args = rhs.args();
95 const auto args_size = lhs_args.size();
96 if (args_size != rhs_args.size()) {
97 return false;
98 }
99 bool args_overlap = true;
100 for (size_t i = 0; i < args_size; ++i) {
101 args_overlap =
102 args_overlap &&
103 (common_internal::TypeIsAssignable(lhs_args[i], rhs_args[i]) ||
104 common_internal::TypeIsAssignable(rhs_args[i], lhs_args[i]));
105 }
106 return args_overlap;
107}
108
109template <typename Overload>
110void AddOverloadInternal(std::string_view function_name,

Callers 1

AddOverloadInternalFunction · 0.85

Calls 4

TypeIsAssignableFunction · 0.85
memberMethod · 0.80
argsMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected