Merge pull request #3209 from ethereum/unimplemented-msgs

Add explanation to unimplemented assertions
This commit is contained in:
chriseth 2017-11-16 04:32:51 -05:00 committed by GitHub
commit 0c1fc594ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 3 deletions

View File

@ -483,7 +483,7 @@ string ABIFunctions::abiEncodingFunctionCalldataArray(
_to.identifier() + _to.identifier() +
(_encodeAsLibraryTypes ? "_library" : ""); (_encodeAsLibraryTypes ? "_library" : "");
return createFunction(functionName, [&]() { return createFunction(functionName, [&]() {
solUnimplementedAssert(fromArrayType.isByteArray(), ""); solUnimplementedAssert(fromArrayType.isByteArray(), "Only byte arrays can be encoded from calldata currently.");
// TODO if this is not a byte array, we might just copy byte-by-byte anyway, // TODO if this is not a byte array, we might just copy byte-by-byte anyway,
// because the encoding is position-independent, but we have to check that. // because the encoding is position-independent, but we have to check that.
Whiskers templ(R"( Whiskers templ(R"(
@ -754,7 +754,7 @@ string ABIFunctions::abiEncodingFunctionStruct(
_to.identifier() + _to.identifier() +
(_encodeAsLibraryTypes ? "_library" : ""); (_encodeAsLibraryTypes ? "_library" : "");
solUnimplementedAssert(!_from.dataStoredIn(DataLocation::CallData), ""); solUnimplementedAssert(!_from.dataStoredIn(DataLocation::CallData), "Encoding struct from calldata is not yet supported.");
solAssert(&_from.structDefinition() == &_to.structDefinition(), ""); solAssert(&_from.structDefinition() == &_to.structDefinition(), "");
return createFunction(functionName, [&]() { return createFunction(functionName, [&]() {

View File

@ -121,7 +121,7 @@ void CompilerUtils::storeInMemoryDynamic(Type const& _type, bool _padToWordBound
{ {
if (auto ref = dynamic_cast<ReferenceType const*>(&_type)) if (auto ref = dynamic_cast<ReferenceType const*>(&_type))
{ {
solUnimplementedAssert(ref->location() == DataLocation::Memory, ""); solUnimplementedAssert(ref->location() == DataLocation::Memory, "Only in-memory reference type can be stored.");
storeInMemoryDynamic(IntegerType(256), _padToWordBoundaries); storeInMemoryDynamic(IntegerType(256), _padToWordBoundaries);
} }
else if (auto str = dynamic_cast<StringLiteralType const*>(&_type)) else if (auto str = dynamic_cast<StringLiteralType const*>(&_type))