mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
114 lines
3.6 KiB
Solidity
114 lines
3.6 KiB
Solidity
// fallback---------->f----------+
|
|
// | |
|
|
// | |
|
|
// | |
|
|
// | |
|
|
// v v
|
|
// g h
|
|
//
|
|
//
|
|
// add
|
|
//
|
|
// unreferenced
|
|
|
|
pragma experimental solidity;
|
|
|
|
type uint256 = __builtin("word");
|
|
|
|
instantiation uint256: + {
|
|
function add(x, y) -> uint256 {
|
|
let a = uint256.rep(x);
|
|
let b = uint256.rep(y);
|
|
assembly {
|
|
a := add(a,b)
|
|
}
|
|
return uint256.abs(a);
|
|
}
|
|
}
|
|
|
|
function unreferenced(x:uint256) -> uint256
|
|
{
|
|
return x;
|
|
}
|
|
|
|
function f(x:uint256) -> uint256
|
|
{
|
|
return g(h(x));
|
|
}
|
|
|
|
function g(x:uint256) -> uint256
|
|
{
|
|
return x;
|
|
}
|
|
|
|
function h(x:uint256) -> uint256
|
|
{
|
|
return x;
|
|
}
|
|
|
|
contract C {
|
|
fallback() external {
|
|
let a: uint256->uint256 = f;
|
|
}
|
|
}
|
|
// ====
|
|
// EVMVersion: >=constantinople
|
|
// ----
|
|
// Warning 2264: (278-307): Experimental features are turned on. Do not use experimental features on live deployments.
|
|
// Info 4164: (309-342): Inferred type: word:(type, +)
|
|
// Info 4164: (344-564): Inferred type: void
|
|
// Info 4164: (375-562): Inferred type: (word, word) -> word
|
|
// Info 4164: (387-393): Inferred type: (word, word)
|
|
// Info 4164: (388-389): Inferred type: word
|
|
// Info 4164: (391-392): Inferred type: word
|
|
// Info 4164: (397-404): Inferred type: word
|
|
// Info 4164: (419-420): Inferred type: word
|
|
// Info 4164: (423-437): Inferred type: word
|
|
// Info 4164: (423-434): Inferred type: word -> word
|
|
// Info 4164: (423-430): Inferred type: word
|
|
// Info 4164: (435-436): Inferred type: word
|
|
// Info 4164: (451-452): Inferred type: word
|
|
// Info 4164: (455-469): Inferred type: word
|
|
// Info 4164: (455-466): Inferred type: word -> word
|
|
// Info 4164: (455-462): Inferred type: word
|
|
// Info 4164: (467-468): Inferred type: word
|
|
// Info 4164: (541-555): Inferred type: word
|
|
// Info 4164: (541-552): Inferred type: word -> word
|
|
// Info 4164: (541-548): Inferred type: word
|
|
// Info 4164: (553-554): Inferred type: word
|
|
// Info 4164: (566-627): Inferred type: word -> word
|
|
// Info 4164: (587-598): Inferred type: word
|
|
// Info 4164: (588-597): Inferred type: word
|
|
// Info 4164: (590-597): Inferred type: word
|
|
// Info 4164: (602-609): Inferred type: word
|
|
// Info 4164: (623-624): Inferred type: word
|
|
// Info 4164: (629-685): Inferred type: word -> word
|
|
// Info 4164: (639-650): Inferred type: word
|
|
// Info 4164: (640-649): Inferred type: word
|
|
// Info 4164: (642-649): Inferred type: word
|
|
// Info 4164: (654-661): Inferred type: word
|
|
// Info 4164: (675-682): Inferred type: word
|
|
// Info 4164: (675-676): Inferred type: word -> word
|
|
// Info 4164: (677-681): Inferred type: word
|
|
// Info 4164: (677-678): Inferred type: word -> word
|
|
// Info 4164: (679-680): Inferred type: word
|
|
// Info 4164: (687-737): Inferred type: word -> word
|
|
// Info 4164: (697-708): Inferred type: word
|
|
// Info 4164: (698-707): Inferred type: word
|
|
// Info 4164: (700-707): Inferred type: word
|
|
// Info 4164: (712-719): Inferred type: word
|
|
// Info 4164: (733-734): Inferred type: word
|
|
// Info 4164: (739-789): Inferred type: word -> word
|
|
// Info 4164: (749-760): Inferred type: word
|
|
// Info 4164: (750-759): Inferred type: word
|
|
// Info 4164: (752-759): Inferred type: word
|
|
// Info 4164: (764-771): Inferred type: word
|
|
// Info 4164: (785-786): Inferred type: word
|
|
// Info 4164: (808-872): Inferred type: () -> ()
|
|
// Info 4164: (816-818): Inferred type: ()
|
|
// Info 4164: (842-861): Inferred type: word -> word
|
|
// Info 4164: (845-861): Inferred type: word -> word
|
|
// Info 4164: (845-852): Inferred type: word
|
|
// Info 4164: (854-861): Inferred type: word
|
|
// Info 4164: (864-865): Inferred type: word -> word
|