`ir` output is not included in Standard JSON when requesting all outputs via `*`
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 29
Description
Currently, when you request all outputs in Standard JSON with `"outputSelection": {"*": {"*": ["*"]}`, the `ir` and `irOptimized` outputs are not included.
This seems to be because the IR generation used to be considered experimental: https://github.com/ethereum/solidity/blob/dabecb600f35a089f0206ebecec1fd12647df62b/libsolidity/interface/StandardCompiler.cpp#L191-L196
In 0.8.13 it became a stable feature, and I think that these outputs should have been added to `*` back then.
Contributor guide
Research direction
Start in libsolidity/interface/StandardCompiler.cpp around lines 191-196, where the output-selection behavior is described in the issue. Trace how the `*` selection is expanded for Standard JSON and compare it with the stable `ir` and `irOptimized` outputs. Done means requesting all outputs via `{"*":{"*":["*"]}}` includes both outputs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100