Merge pull request #5994 from ethereum/error-to-assert

Turn unreachable error into assert
This commit is contained in:
chriseth 2019-02-13 17:54:01 +01:00 committed by GitHub
commit f003696d7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2090,12 +2090,11 @@ bool TypeChecker::visit(MemberAccess const& _memberAccess)
annotation.type = possibleMembers.front().type; annotation.type = possibleMembers.front().type;
if (auto funType = dynamic_cast<FunctionType const*>(annotation.type.get())) if (auto funType = dynamic_cast<FunctionType const*>(annotation.type.get()))
if (funType->bound() && !exprType->isImplicitlyConvertibleTo(*funType->selfType())) solAssert(
m_errorReporter.typeError( !funType->bound() || exprType->isImplicitlyConvertibleTo(*funType->selfType()),
_memberAccess.location(), "Function \"" + memberName + "\" cannot be called on an object of type " +
"Function \"" + memberName + "\" cannot be called on an object of type " + exprType->toString() + " (expected " + funType->selfType()->toString() + ")."
exprType->toString() + " (expected " + funType->selfType()->toString() + ")." );
);
if (auto const* structType = dynamic_cast<StructType const*>(exprType.get())) if (auto const* structType = dynamic_cast<StructType const*>(exprType.get()))
annotation.isLValue = !structType->dataStoredIn(DataLocation::CallData); annotation.isLValue = !structType->dataStoredIn(DataLocation::CallData);