mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #4018 from ethereum/disable-bytes0
Disable FixedBytesType(0) aka bytes0
This commit is contained in:
commit
15024154ab
@ -1264,17 +1264,12 @@ bool StringLiteralType::isValidUTF8() const
|
|||||||
return dev::validateUTF8(m_value);
|
return dev::validateUTF8(m_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
shared_ptr<FixedBytesType> FixedBytesType::smallestTypeForLiteral(string const& _literal)
|
|
||||||
{
|
|
||||||
if (_literal.length() <= 32)
|
|
||||||
return make_shared<FixedBytesType>(_literal.length());
|
|
||||||
return shared_ptr<FixedBytesType>();
|
|
||||||
}
|
|
||||||
|
|
||||||
FixedBytesType::FixedBytesType(int _bytes): m_bytes(_bytes)
|
FixedBytesType::FixedBytesType(int _bytes): m_bytes(_bytes)
|
||||||
{
|
{
|
||||||
solAssert(m_bytes >= 0 && m_bytes <= 32,
|
solAssert(
|
||||||
"Invalid byte number for fixed bytes type: " + dev::toString(m_bytes));
|
m_bytes > 0 && m_bytes <= 32,
|
||||||
|
"Invalid byte number for fixed bytes type: " + dev::toString(m_bytes)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FixedBytesType::isImplicitlyConvertibleTo(Type const& _convertTo) const
|
bool FixedBytesType::isImplicitlyConvertibleTo(Type const& _convertTo) const
|
||||||
|
@ -505,10 +505,6 @@ class FixedBytesType: public Type
|
|||||||
public:
|
public:
|
||||||
virtual Category category() const override { return Category::FixedBytes; }
|
virtual Category category() const override { return Category::FixedBytes; }
|
||||||
|
|
||||||
/// @returns the smallest bytes type for the given literal or an empty pointer
|
|
||||||
/// if no type fits.
|
|
||||||
static std::shared_ptr<FixedBytesType> smallestTypeForLiteral(std::string const& _literal);
|
|
||||||
|
|
||||||
explicit FixedBytesType(int _bytes);
|
explicit FixedBytesType(int _bytes);
|
||||||
|
|
||||||
virtual bool isImplicitlyConvertibleTo(Type const& _convertTo) const override;
|
virtual bool isImplicitlyConvertibleTo(Type const& _convertTo) const override;
|
||||||
|
11
test/libsolidity/syntaxTests/empty_string_var.sol
Normal file
11
test/libsolidity/syntaxTests/empty_string_var.sol
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
contract C {
|
||||||
|
function f() {
|
||||||
|
var a = "";
|
||||||
|
bytes1 b = bytes1(a);
|
||||||
|
bytes memory c = bytes(a);
|
||||||
|
string memory d = string(a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ----
|
||||||
|
// Warning: (34-39): Use of the "var" keyword is deprecated.
|
||||||
|
// TypeError: (61-70): Explicit type conversion not allowed from "string memory" to "bytes1".
|
5
test/libsolidity/syntaxTests/types/bytes0.sol
Normal file
5
test/libsolidity/syntaxTests/types/bytes0.sol
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
contract C {
|
||||||
|
bytes0 b0 = 1;
|
||||||
|
}
|
||||||
|
// ----
|
||||||
|
// DeclarationError: (15-21): Identifier not found or not unique.
|
5
test/libsolidity/syntaxTests/types/bytes256.sol
Normal file
5
test/libsolidity/syntaxTests/types/bytes256.sol
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
contract C {
|
||||||
|
bytes256 b256 = 1;
|
||||||
|
}
|
||||||
|
// ----
|
||||||
|
// DeclarationError: (15-23): Identifier not found or not unique.
|
5
test/libsolidity/syntaxTests/types/bytes33.sol
Normal file
5
test/libsolidity/syntaxTests/types/bytes33.sol
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
contract C {
|
||||||
|
bytes33 b33 = 1;
|
||||||
|
}
|
||||||
|
// ----
|
||||||
|
// DeclarationError: (15-22): Identifier not found or not unique.
|
36
test/libsolidity/syntaxTests/types/bytesm.sol
Normal file
36
test/libsolidity/syntaxTests/types/bytesm.sol
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
contract C {
|
||||||
|
byte b = byte(1);
|
||||||
|
bytes1 b1 = b;
|
||||||
|
bytes2 b2 = b1;
|
||||||
|
bytes3 b3 = b2;
|
||||||
|
bytes4 b4 = b3;
|
||||||
|
bytes5 b5 = b4;
|
||||||
|
bytes6 b6 = b5;
|
||||||
|
bytes7 b7 = b6;
|
||||||
|
bytes8 b8 = b7;
|
||||||
|
bytes9 b9 = b8;
|
||||||
|
bytes10 b10 = b9;
|
||||||
|
bytes11 b11 = b10;
|
||||||
|
bytes12 b12 = b11;
|
||||||
|
bytes13 b13 = b12;
|
||||||
|
bytes14 b14 = b13;
|
||||||
|
bytes15 b15 = b14;
|
||||||
|
bytes16 b16 = b15;
|
||||||
|
bytes17 b17 = b16;
|
||||||
|
bytes18 b18 = b17;
|
||||||
|
bytes19 b19 = b18;
|
||||||
|
bytes20 b20 = b19;
|
||||||
|
bytes21 b21 = b20;
|
||||||
|
bytes22 b22 = b21;
|
||||||
|
bytes23 b23 = b22;
|
||||||
|
bytes24 b24 = b23;
|
||||||
|
bytes25 b25 = b24;
|
||||||
|
bytes26 b26 = b25;
|
||||||
|
bytes27 b27 = b26;
|
||||||
|
bytes28 b28 = b27;
|
||||||
|
bytes29 b29 = b28;
|
||||||
|
bytes30 b30 = b29;
|
||||||
|
bytes31 b31 = b30;
|
||||||
|
bytes32 b32 = b31;
|
||||||
|
}
|
||||||
|
// ----
|
Loading…
Reference in New Issue
Block a user