Disallow ``codecopy`` in pure functions (and check for other cases)
Open
breaking change :warning:
low effort
low impact
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 29
Description
Related to https://github.com/ethereum/solidity/issues/8153 and following https://github.com/ethereum/solidity/pull/12256 we should make sure we actually are as strict as we want to be for ``pure`` functions.
In particular, we should disallow ``codecopy`` with 0.9.0, but we should double-check if there is other cases that we should strengthen as well.
Contributor guide
Research direction
Start by reviewing issue #8153 and pull request #12256, then inspect the existing checks governing which operations pure functions may use. The work is done when codecopy is rejected in pure functions for 0.9.0 and any additional cases requiring stricter enforcement are identified and covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- blockchain, compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100