argotorg / argotorg/solidity

Rethink (or maybe even remove?) ``super``

Open
#7,261 17 comments 0 reactions 0 assignees View on GitHub
breaking change :warning: high impact language design :rage4: medium effort must have eventually needs design
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.