Add linkersymbol() builtin to Yul EVM dialect

This commit is contained in:
Kamil Śliwak
2020-06-24 15:06:52 +02:00
parent 1b09b4f950
commit a331d4449d
9 changed files with 111 additions and 1 deletions
@@ -0,0 +1,6 @@
{
let addr := linkersymbol("contract/library.sol:L")
}
// ====
// dialect: evm
// ----
@@ -0,0 +1,6 @@
{
let addr:u256 := linkersymbol("contract/library.sol:L")
}
// ====
// dialect: evmTyped
// ----
@@ -0,0 +1,7 @@
{
linkersymbol("contract/library.sol:L")
}
// ====
// dialect: ewasm
// ----
// DeclarationError 4619: (6-18): Function not found.
@@ -0,0 +1,8 @@
{
let library_name := "contract/library.sol:L"
let addr := linkersymbol(library_name)
}
// ====
// dialect: evm
// ----
// TypeError 9114: (67-79): Function expects direct literals as arguments.
@@ -0,0 +1,6 @@
{
let addr := linkersymbol("contract/long___name___that___definitely___exceeds___the___thirty___two___byte___limit.sol:L")
}
// ====
// dialect: evm
// ----