Skip to content

Reset experimental mode and debug info selection in CompilerStack::reset() - #17010

Draft
zexoverz wants to merge 2 commits into
argotorg:developfrom
zexoverz:17004-reset-settings
Draft

zexoverz wants to merge 2 commits into
argotorg:developfrom
zexoverz:17004-reset-settings

Conversation

@zexoverz

Copy link
Copy Markdown

Fixes #17004. reset(false) reassigned every other setting in the !_keepSettings block but skipped m_experimental and m_debugInfoSelection, so a stack reused after setExperimental(true) or selectDebugInfo(DebugInfoSelection::None()) kept those into the next compilation. Both now go back to the header defaults, false and DebugInfoSelection::Default(). I went through the remaining public setters and did not find another member the block misses.

There is no getter for either, so the two new tests in SolidityCompiler.cpp observe them the way a caller would: the settings.experimental key in the metadata, and the source location comments in assemblyString. Each checks reset(true) keeps the value and reset(false) drops it, and each fails on develop without the change.

Checklist

AI Disclosure

  • No AI tools were used

Claude Code was used to draft the fix, the two unit tests and the Changelog line. I reviewed the diff, built soltest locally and ran the SolidityCompiler suite against it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CompilerStack full reset retains experimental and debug info settings

1 participant