mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[TMP] Extra asserts in places that crash on map::at()
This commit is contained in:
parent
206c06f0b3
commit
1d502033ff
@ -792,6 +792,7 @@ experimental::Type TypeInference::memberType(Type _type, std::string _memberName
|
|||||||
if (helper.isTypeConstant(type))
|
if (helper.isTypeConstant(type))
|
||||||
{
|
{
|
||||||
auto constructor = std::get<0>(helper.destTypeConstant(type));
|
auto constructor = std::get<0>(helper.destTypeConstant(type));
|
||||||
|
solAssert(annotation().members.count(constructor) != 0);
|
||||||
if (auto* typeMember = util::valueOrNullptr(annotation().members.at(constructor), _memberName))
|
if (auto* typeMember = util::valueOrNullptr(annotation().members.at(constructor), _memberName))
|
||||||
return polymorphicInstance(typeMember->type);
|
return polymorphicInstance(typeMember->type);
|
||||||
else
|
else
|
||||||
@ -1095,7 +1096,11 @@ TypeRegistration::TypeClassInstantiations const& typeClassInstantiations(Analysi
|
|||||||
// TODO: better mechanism than fetching by name.
|
// TODO: better mechanism than fetching by name.
|
||||||
auto& annotation = _analysis.annotation<TypeRegistration>();
|
auto& annotation = _analysis.annotation<TypeRegistration>();
|
||||||
auto& inferenceAnnotation = _analysis.annotation<TypeInference>();
|
auto& inferenceAnnotation = _analysis.annotation<TypeInference>();
|
||||||
return annotation.builtinClassInstantiations.at(inferenceAnnotation.builtinClassesByName.at(_analysis.typeSystem().typeClassName(_class)));
|
|
||||||
|
std::string name = _analysis.typeSystem().typeClassName(_class);
|
||||||
|
solAssert(inferenceAnnotation.builtinClassesByName.count(name) != 0);
|
||||||
|
solAssert(annotation.builtinClassInstantiations.count(inferenceAnnotation.builtinClassesByName.at(name)) != 0);
|
||||||
|
return annotation.builtinClassInstantiations.at(inferenceAnnotation.builtinClassesByName.at(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user