mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Allow Yul literals longer than 32-bytes when used as literal arguments for builtins
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
contract C {
|
||||
uint immutable long___name___that___definitely___exceeds___the___thirty___two___byte___limit = 0;
|
||||
}
|
||||
// ----
|
||||
@@ -0,0 +1,17 @@
|
||||
object "a" {
|
||||
code {
|
||||
setimmutable(
|
||||
"long___name___that___definitely___exceeds___the___thirty___two___byte___limit",
|
||||
0x1234567890123456789012345678901234567890
|
||||
)
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Assembly:
|
||||
// /* "source":152:194 */
|
||||
// 0x1234567890123456789012345678901234567890
|
||||
// /* "source":32:204 */
|
||||
// assignImmutable("0x85a5b1db611c82c46f5fa18e39ae218397536256c451e5de155a86de843a9ad6")
|
||||
// Bytecode: 73123456789012345678901234567890123456789050
|
||||
// Opcodes: PUSH20 0x1234567890123456789012345678901234567890 POP
|
||||
// SourceMappings: 152:42:0:-:0;32:172
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
let x := byte(31, "11112222333344445555666677778888")
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
||||
// ----
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
let addr := loadimmutable("address")
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
||||
// ----
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
{
|
||||
setimmutable(loadimmutable("abc"), "abc")
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
||||
// ----
|
||||
// TypeError 9114: (6-18): Function expects direct literals as arguments.
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
setimmutable("address", 0x1234567890123456789012345678901234567890)
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
||||
// ----
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
let name := "long___name___that___definitely___exceeds___the___thirty___two___byte___limit"
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
||||
// ----
|
||||
// TypeError 3069: (18-97): String literal too long (77 > 32)
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
let x := byte(40, "long___value__that___definitely___exceeds___the___thirty___two___byte___limit")
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
||||
// ----
|
||||
// TypeError 3069: (24-103): String literal too long (77 > 32)
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
setimmutable(
|
||||
"long___name___that___definitely___exceeds___the___thirty___two___byte___limit",
|
||||
0x1234567890123456789012345678901234567890
|
||||
)
|
||||
}
|
||||
// ====
|
||||
// dialect: evm
|
||||
// ----
|
||||
Reference in New Issue
Block a user