Rethink (or maybe even remove?) ``super``
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
Given the inheritance changes in 0.6.0 I think we should check where and how ``super`` fits into that and whether we should keep, remove or change it.
E.g. in
```
contract A { function f() virtual {} }
contract B { function f() virtual {} }
contract C is A B { function f() override(A, B) {
super.f();
} }
```
using ``super`` would defeat the purpose of the whole construction with overrides and unambiguous inheritance...
Contributor guide
Research direction
No files, tests, or entry points are named in the issue. Start by reviewing the 0.6.0 inheritance changes and the A/B/C example's use of super. Done requires deciding whether super should be kept, removed, or changed without undermining unambiguous inheritance and override behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- solidity
- Domain
- compilers
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100