Skip to content

Commit e2fa42a

Browse files
Vipul-Cariappaaaronj0
authored andcommitted
use Cpp::GetOperatorFromSpelling
1 parent b5e398d commit e2fa42a

File tree

1 file changed

+4
-66
lines changed

1 file changed

+4
-66
lines changed

clingwrapper/src/clingwrapper.cxx

Lines changed: 4 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1586,7 +1586,7 @@ Cppyy::TCppMethod_t Cppyy::GetMethodTemplate(
15861586
std::vector<Cppyy::TCppMethod_t> unresolved_candidate_methods;
15871587
Cpp::GetClassTemplatedMethods(pureName, scope,
15881588
unresolved_candidate_methods);
1589-
if (unresolved_candidate_methods.empty()) {
1589+
if (unresolved_candidate_methods.empty() && name.find("operator") == 0) {
15901590
// try operators
15911591
Cppyy::GetClassOperators(scope, pureName, unresolved_candidate_methods);
15921592
}
@@ -1636,38 +1636,8 @@ static inline std::string type_remap(const std::string& n1,
16361636
void Cppyy::GetClassOperators(Cppyy::TCppScope_t klass,
16371637
const std::string& opname,
16381638
std::vector<TCppScope_t>& operators) {
1639-
if (opname == "operator+")
1640-
Cpp::GetOperator(klass, Cpp::Operator::OP_Plus, operators);
1641-
else if (opname == "operator-")
1642-
Cpp::GetOperator(klass, Cpp::Operator::OP_Minus, operators);
1643-
else if (opname == "operator*")
1644-
Cpp::GetOperator(klass, Cpp::Operator::OP_Star, operators);
1645-
else if (opname == "operator/")
1646-
Cpp::GetOperator(klass, Cpp::Operator::OP_Slash, operators);
1647-
else if (opname == "operator<")
1648-
Cpp::GetOperator(klass, Cpp::Operator::OP_Less, operators);
1649-
else if (opname == "operator<=")
1650-
Cpp::GetOperator(klass, Cpp::Operator::OP_LessEqual, operators);
1651-
else if (opname == "operator>")
1652-
Cpp::GetOperator(klass, Cpp::Operator::OP_Greater, operators);
1653-
else if (opname == "operator>=")
1654-
Cpp::GetOperator(klass, Cpp::Operator::OP_GreaterEqual, operators);
1655-
else if (opname == "operator==")
1656-
Cpp::GetOperator(klass, Cpp::Operator::OP_EqualEqual, operators);
1657-
else if (opname == "operator!=")
1658-
Cpp::GetOperator(klass, Cpp::Operator::OP_ExclaimEqual, operators);
1659-
else if (opname == "operator<<")
1660-
Cpp::GetOperator(klass, Cpp::Operator::OP_LessLess, operators);
1661-
else if (opname == "operator>>")
1662-
Cpp::GetOperator(klass, Cpp::Operator::OP_GreaterGreater, operators);
1663-
else if (opname == "operator&")
1664-
Cpp::GetOperator(klass, Cpp::Operator::OP_Amp, operators);
1665-
else if (opname == "operator|")
1666-
Cpp::GetOperator(klass, Cpp::Operator::OP_Pipe, operators);
1667-
else if (opname == "operator()")
1668-
Cpp::GetOperator(klass, Cpp::Operator::OP_Call, operators);
1669-
else if (opname == "operator[]")
1670-
Cpp::GetOperator(klass, Cpp::Operator::OP_Subscript, operators);
1639+
std::string op = opname.substr(8);
1640+
Cpp::GetOperator(klass, Cpp::GetOperatorFromSpelling(op), operators);
16711641
}
16721642

16731643
Cppyy::TCppMethod_t Cppyy::GetGlobalOperator(
@@ -1682,39 +1652,7 @@ Cppyy::TCppMethod_t Cppyy::GetGlobalOperator(
16821652
}
16831653

16841654
std::vector<TCppScope_t> overloads;
1685-
if (opname == "+")
1686-
Cpp::GetOperator(scope, Cpp::Operator::OP_Plus, overloads);
1687-
else if (opname == "-")
1688-
Cpp::GetOperator(scope, Cpp::Operator::OP_Minus, overloads);
1689-
else if (opname == "*")
1690-
Cpp::GetOperator(scope, Cpp::Operator::OP_Star, overloads);
1691-
else if (opname == "/")
1692-
Cpp::GetOperator(scope, Cpp::Operator::OP_Slash, overloads);
1693-
else if (opname == "<")
1694-
Cpp::GetOperator(scope, Cpp::Operator::OP_Less, overloads);
1695-
else if (opname == "<=")
1696-
Cpp::GetOperator(scope, Cpp::Operator::OP_LessEqual, overloads);
1697-
else if (opname == ">")
1698-
Cpp::GetOperator(scope, Cpp::Operator::OP_Greater, overloads);
1699-
else if (opname == ">=")
1700-
Cpp::GetOperator(scope, Cpp::Operator::OP_GreaterEqual, overloads);
1701-
else if (opname == "==")
1702-
Cpp::GetOperator(scope, Cpp::Operator::OP_EqualEqual, overloads);
1703-
else if (opname == "!=")
1704-
Cpp::GetOperator(scope, Cpp::Operator::OP_ExclaimEqual, overloads);
1705-
else if (opname == "<<")
1706-
Cpp::GetOperator(scope, Cpp::Operator::OP_LessLess, overloads);
1707-
else if (opname == ">>")
1708-
Cpp::GetOperator(scope, Cpp::Operator::OP_GreaterGreater, overloads);
1709-
else if (opname == "&")
1710-
Cpp::GetOperator(scope, Cpp::Operator::OP_Amp, overloads);
1711-
else if (opname == "|")
1712-
Cpp::GetOperator(scope, Cpp::Operator::OP_Pipe, overloads);
1713-
else if (opname == "()")
1714-
Cpp::GetOperator(scope, Cpp::Operator::OP_Call, overloads);
1715-
else if (opname == "[]")
1716-
Cpp::GetOperator(scope, Cpp::Operator::OP_Subscript, overloads);
1717-
1655+
Cpp::GetOperator(scope, Cpp::GetOperatorFromSpelling(opname), overloads);
17181656

17191657
std::vector<Cppyy::TCppMethod_t> unresolved_candidate_methods;
17201658
for (auto overload: overloads) {

0 commit comments

Comments
 (0)