ICE in ArrayType::interfaceType when super[] is used as an array type in abi.decode
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
## Description
The compiler panics with `Expected detailed error message!` in `ArrayType::interfaceType()` at `Types.cpp:1992` when `super[]` is used as an array element type inside `abi.decode`.
Using `super` in an array context should produce a proper compiler error, not an ICE.
MRE:
```solidity
contract C { function f() public pure { abi.decode(hex"", (super[])); } }
```
Reproduce: save as `mre.sol`, run `solc --bin mre.sol`.
Output:
```
Internal compiler error:
/solidity/libsolidity/ast/Types.cpp(1992): Throw in function virtual TypeResult solidity::frontend::ArrayType::interfaceType(bool) const
Dynamic exception type: boost::wrapexcept
std::exception::what: Expected detailed error message!
[solidity::util::tag_comment*] = Expected detailed error message!
```
Expected behavior: compilation error about invalid use of `super` as a type, not ICE.
Git commit: 68d1a77
solc 0.8.35-develop.2026.4.18
Contributor guide
Research direction
Save the provided MRE as mre.sol and reproduce the ICE with solc --bin mre.sol. Then inspect ArrayType::interfaceType() at Types.cpp:1992 and trace how super[] reaches that path. Done means the compiler reports a proper invalid-use-of-super error instead of an internal compiler error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- blockchain, compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100