argotorg / argotorg/solidity

ICE in ArrayType::interfaceType when super[] is used as an array type in abi.decode

Open
#16,673 1 comment 0 reactions 0 assignees View on GitHub
bug :bug: low impact medium effort nice to have
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.