MCPcopy Create free account
hub / github.com/argotorg/solidity / typeEquals

Method typeEquals

libsolidity/experimental/ast/TypeSystem.cpp:92–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

90}
91
92bool TypeEnvironment::typeEquals(Type _lhs, Type _rhs) const
93{
94 return std::visit(util::GenericVisitor{
95 [&](TypeVariable _left, TypeVariable _right) {
96 if (_left.index() == _right.index())
97 {
98 solAssert(_left.sort() == _right.sort());
99 return true;
100 }
101 return false;
102 },
103 [&](TypeConstant _left, TypeConstant _right) {
104 if (_left.constructor != _right.constructor)
105 return false;
106 if (_left.arguments.size() != _right.arguments.size())
107 return false;
108 for (auto&& [left, right]: ranges::zip_view(_left.arguments, _right.arguments))
109 if (!typeEquals(left, right))
110 return false;
111 return true;
112 },
113 [&](auto, auto) {
114 return false;
115 }
116 }, resolve(_lhs), resolve(_rhs));
117}
118
119
120bool TypeEnvironment::isFixedTypeVar(Type const& _typeVar) const

Callers 5

visitMethod · 0.80
substituteMethod · 0.80
translateReferenceMethod · 0.80
generateMethod · 0.80

Calls 3

indexMethod · 0.45
sortMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected