gitextract_thz9iz3f/ ├── .circleci/ │ ├── README.md │ ├── cln-asan.supp │ ├── compare_bytecode_reports.sh │ ├── config.yml │ ├── osx_install_dependencies.sh │ ├── parallel_bytecode_report.sh │ ├── parallel_cli_tests.py │ ├── soltest.ps1 │ ├── soltest.sh │ └── soltest_all.sh ├── .clang-format ├── .codespellrc ├── .dockerignore ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── documentation_issue.md │ │ └── feature_request.md │ └── workflows/ │ ├── buildpack-deps.yml │ ├── stale.yml │ └── welcome-external-pr.yml ├── .gitignore ├── .gitmodules ├── .readthedocs.yml ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── CODING_STYLE.md ├── CONTRIBUTING.md ├── Changelog.md ├── LICENSE.txt ├── README.md ├── ReleaseChecklist.md ├── ReviewChecklist.md ├── SECURITY.md ├── cmake/ │ ├── EthBuildInfo.cmake │ ├── EthCcache.cmake │ ├── EthCheckCXXCompilerFlag.cmake │ ├── EthCompilerSettings.cmake │ ├── EthDependencies.cmake │ ├── EthOptions.cmake │ ├── EthPolicy.cmake │ ├── EthToolchains.cmake │ ├── EthUtils.cmake │ ├── FindCLN.cmake │ ├── FindGMP.cmake │ ├── FindZ3.cmake │ ├── fmtlib.cmake │ ├── nlohmann-json.cmake │ ├── range-v3.cmake │ ├── scripts/ │ │ └── buildinfo.cmake │ ├── submodules.cmake │ ├── templates/ │ │ ├── BuildInfo.h.in │ │ └── license.h.in │ └── toolchains/ │ ├── default.cmake │ ├── libfuzzer.cmake │ └── ossfuzz.cmake ├── docs/ │ ├── 050-breaking-changes.rst │ ├── 060-breaking-changes.rst │ ├── 070-breaking-changes.rst │ ├── 080-breaking-changes.rst │ ├── Makefile │ ├── README.md │ ├── _static/ │ │ ├── css/ │ │ │ ├── custom-dark.css │ │ │ ├── custom.css │ │ │ ├── fonts.css │ │ │ ├── pygments.css │ │ │ └── toggle.css │ │ └── js/ │ │ ├── constants.js │ │ ├── initialize.js │ │ └── toggle.js │ ├── _templates/ │ │ ├── footer.html │ │ ├── layout.html │ │ └── versions.html │ ├── abi-spec.rst │ ├── analysing-compilation-output.rst │ ├── assembly.rst │ ├── brand-guide.rst │ ├── bugs.json │ ├── bugs.rst │ ├── bugs_by_version.json │ ├── cheatsheet.rst │ ├── common-patterns.rst │ ├── conf.py │ ├── contracts/ │ │ ├── abstract-contracts.rst │ │ ├── constant-state-variables.rst │ │ ├── creating-contracts.rst │ │ ├── custom-storage-layout.rst │ │ ├── errors.rst │ │ ├── events.rst │ │ ├── function-modifiers.rst │ │ ├── functions.rst │ │ ├── inheritance.rst │ │ ├── interfaces.rst │ │ ├── libraries.rst │ │ ├── transient-storage.rst │ │ ├── using-for.rst │ │ └── visibility-and-getters.rst │ ├── contracts.rst │ ├── contributing.rst │ ├── control-structures.rst │ ├── credits-and-attribution.rst │ ├── docs.sh │ ├── examples/ │ │ ├── blind-auction.rst │ │ ├── micropayment.rst │ │ ├── modular.rst │ │ ├── safe-remote.rst │ │ └── voting.rst │ ├── ext/ │ │ ├── html_extra_template_renderer.py │ │ └── remix_code_links.py │ ├── grammar/ │ │ ├── SolidityLexer.g4 │ │ └── SolidityParser.g4 │ ├── grammar.rst │ ├── index.rst │ ├── installing-solidity.rst │ ├── internals/ │ │ ├── layout_in_calldata.rst │ │ ├── layout_in_memory.rst │ │ ├── layout_in_storage.rst │ │ ├── optimizer.rst │ │ ├── source_mappings.rst │ │ └── variable_cleanup.rst │ ├── introduction-to-smart-contracts.rst │ ├── ir-breaking-changes.rst │ ├── language-influences.rst │ ├── layout-of-source-files.rst │ ├── make.bat │ ├── metadata.rst │ ├── natspec-format.rst │ ├── path-resolution.rst │ ├── requirements.txt │ ├── resources.rst │ ├── robots.txt.template │ ├── security-considerations.rst │ ├── smtchecker.rst │ ├── solidity-by-example.rst │ ├── structure-of-a-contract.rst │ ├── style-guide.rst │ ├── types/ │ │ ├── conversion.rst │ │ ├── mapping-types.rst │ │ ├── operator-precedence-table.rst │ │ ├── operators.rst │ │ ├── reference-types.rst │ │ └── value-types.rst │ ├── types.rst │ ├── units-and-global-variables.rst │ ├── using-the-compiler.rst │ └── yul.rst ├── funding.json ├── libevmasm/ │ ├── AbstractAssemblyStack.h │ ├── Assembly.cpp │ ├── Assembly.h │ ├── AssemblyItem.cpp │ ├── AssemblyItem.h │ ├── BlockDeduplicator.cpp │ ├── BlockDeduplicator.h │ ├── CMakeLists.txt │ ├── CommonSubexpressionEliminator.cpp │ ├── CommonSubexpressionEliminator.h │ ├── ConstantOptimiser.cpp │ ├── ConstantOptimiser.h │ ├── ControlFlowGraph.cpp │ ├── ControlFlowGraph.h │ ├── Disassemble.cpp │ ├── Disassemble.h │ ├── EVMAssemblyStack.cpp │ ├── EVMAssemblyStack.h │ ├── Ethdebug.cpp │ ├── Ethdebug.h │ ├── EthdebugSchema.cpp │ ├── EthdebugSchema.h │ ├── Exceptions.h │ ├── ExpressionClasses.cpp │ ├── ExpressionClasses.h │ ├── GasMeter.cpp │ ├── GasMeter.h │ ├── Inliner.cpp │ ├── Inliner.h │ ├── Instruction.cpp │ ├── Instruction.h │ ├── JumpdestRemover.cpp │ ├── JumpdestRemover.h │ ├── KnownState.cpp │ ├── KnownState.h │ ├── LinkerObject.cpp │ ├── LinkerObject.h │ ├── PathGasMeter.cpp │ ├── PathGasMeter.h │ ├── PeepholeOptimiser.cpp │ ├── PeepholeOptimiser.h │ ├── RuleList.h │ ├── SemanticInformation.cpp │ ├── SemanticInformation.h │ ├── SimplificationRule.h │ ├── SimplificationRules.cpp │ ├── SimplificationRules.h │ └── SubAssemblyID.h ├── liblangutil/ │ ├── CMakeLists.txt │ ├── CharStream.cpp │ ├── CharStream.h │ ├── CharStreamProvider.h │ ├── Common.h │ ├── DebugData.h │ ├── DebugInfoSelection.cpp │ ├── DebugInfoSelection.h │ ├── EVMVersion.cpp │ ├── EVMVersion.h │ ├── ErrorReporter.cpp │ ├── ErrorReporter.h │ ├── Exceptions.cpp │ ├── Exceptions.h │ ├── ParserBase.cpp │ ├── ParserBase.h │ ├── Scanner.cpp │ ├── Scanner.h │ ├── SemVerHandler.cpp │ ├── SemVerHandler.h │ ├── SourceLocation.cpp │ ├── SourceLocation.h │ ├── SourceReferenceExtractor.cpp │ ├── SourceReferenceExtractor.h │ ├── SourceReferenceFormatter.cpp │ ├── SourceReferenceFormatter.h │ ├── Token.cpp │ ├── Token.h │ └── UniqueErrorReporter.h ├── libsmtutil/ │ ├── BMCSolverInterface.h │ ├── CHCSmtLib2Interface.cpp │ ├── CHCSmtLib2Interface.h │ ├── CHCSolverInterface.h │ ├── CMakeLists.txt │ ├── Exceptions.h │ ├── Helpers.h │ ├── SMTLib2Context.cpp │ ├── SMTLib2Context.h │ ├── SMTLib2Interface.cpp │ ├── SMTLib2Interface.h │ ├── SMTLib2Parser.cpp │ ├── SMTLib2Parser.h │ ├── SMTPortfolio.cpp │ ├── SMTPortfolio.h │ ├── SolverInterface.h │ ├── Sorts.cpp │ └── Sorts.h ├── libsolc/ │ ├── CMakeLists.txt │ ├── libsolc.cpp │ └── libsolc.h ├── libsolidity/ │ ├── CMakeLists.txt │ ├── analysis/ │ │ ├── ConstantEvaluator.cpp │ │ ├── ConstantEvaluator.h │ │ ├── ContractLevelChecker.cpp │ │ ├── ContractLevelChecker.h │ │ ├── ControlFlowAnalyzer.cpp │ │ ├── ControlFlowAnalyzer.h │ │ ├── ControlFlowBuilder.cpp │ │ ├── ControlFlowBuilder.h │ │ ├── ControlFlowGraph.cpp │ │ ├── ControlFlowGraph.h │ │ ├── ControlFlowRevertPruner.cpp │ │ ├── ControlFlowRevertPruner.h │ │ ├── DeclarationContainer.cpp │ │ ├── DeclarationContainer.h │ │ ├── DeclarationTypeChecker.cpp │ │ ├── DeclarationTypeChecker.h │ │ ├── DocStringAnalyser.cpp │ │ ├── DocStringAnalyser.h │ │ ├── DocStringTagParser.cpp │ │ ├── DocStringTagParser.h │ │ ├── FunctionCallGraph.cpp │ │ ├── FunctionCallGraph.h │ │ ├── GlobalContext.cpp │ │ ├── GlobalContext.h │ │ ├── ImmutableValidator.cpp │ │ ├── ImmutableValidator.h │ │ ├── NameAndTypeResolver.cpp │ │ ├── NameAndTypeResolver.h │ │ ├── OverrideChecker.cpp │ │ ├── OverrideChecker.h │ │ ├── PostTypeChecker.cpp │ │ ├── PostTypeChecker.h │ │ ├── PostTypeContractLevelChecker.cpp │ │ ├── PostTypeContractLevelChecker.h │ │ ├── ReferencesResolver.cpp │ │ ├── ReferencesResolver.h │ │ ├── Scoper.cpp │ │ ├── Scoper.h │ │ ├── StaticAnalyzer.cpp │ │ ├── StaticAnalyzer.h │ │ ├── SyntaxChecker.cpp │ │ ├── SyntaxChecker.h │ │ ├── TypeChecker.cpp │ │ ├── TypeChecker.h │ │ ├── ViewPureChecker.cpp │ │ └── ViewPureChecker.h │ ├── ast/ │ │ ├── AST.cpp │ │ ├── AST.h │ │ ├── ASTAnnotations.cpp │ │ ├── ASTAnnotations.h │ │ ├── ASTEnums.h │ │ ├── ASTForward.h │ │ ├── ASTJsonExporter.cpp │ │ ├── ASTJsonExporter.h │ │ ├── ASTJsonImporter.cpp │ │ ├── ASTJsonImporter.h │ │ ├── ASTUtils.cpp │ │ ├── ASTUtils.h │ │ ├── ASTVisitor.h │ │ ├── AST_accept.h │ │ ├── CallGraph.cpp │ │ ├── CallGraph.h │ │ ├── ExperimentalFeatures.h │ │ ├── TypeProvider.cpp │ │ ├── TypeProvider.h │ │ ├── Types.cpp │ │ ├── Types.h │ │ └── UserDefinableOperators.h │ ├── codegen/ │ │ ├── ABIFunctions.cpp │ │ ├── ABIFunctions.h │ │ ├── ArrayUtils.cpp │ │ ├── ArrayUtils.h │ │ ├── Compiler.cpp │ │ ├── Compiler.h │ │ ├── CompilerContext.cpp │ │ ├── CompilerContext.h │ │ ├── CompilerUtils.cpp │ │ ├── CompilerUtils.h │ │ ├── ContractCompiler.cpp │ │ ├── ContractCompiler.h │ │ ├── ExpressionCompiler.cpp │ │ ├── ExpressionCompiler.h │ │ ├── LValue.cpp │ │ ├── LValue.h │ │ ├── MultiUseYulFunctionCollector.cpp │ │ ├── MultiUseYulFunctionCollector.h │ │ ├── ReturnInfo.cpp │ │ ├── ReturnInfo.h │ │ ├── YulUtilFunctions.cpp │ │ ├── YulUtilFunctions.h │ │ └── ir/ │ │ ├── Common.cpp │ │ ├── Common.h │ │ ├── IRGenerationContext.cpp │ │ ├── IRGenerationContext.h │ │ ├── IRGenerator.cpp │ │ ├── IRGenerator.h │ │ ├── IRGeneratorForStatements.cpp │ │ ├── IRGeneratorForStatements.h │ │ ├── IRLValue.h │ │ ├── IRVariable.cpp │ │ ├── IRVariable.h │ │ └── README.md │ ├── experimental/ │ │ ├── analysis/ │ │ │ ├── Analysis.cpp │ │ │ ├── Analysis.h │ │ │ ├── DebugWarner.cpp │ │ │ ├── DebugWarner.h │ │ │ ├── FunctionDependencyAnalysis.cpp │ │ │ ├── FunctionDependencyAnalysis.h │ │ │ ├── SyntaxRestrictor.cpp │ │ │ ├── SyntaxRestrictor.h │ │ │ ├── TypeClassRegistration.cpp │ │ │ ├── TypeClassRegistration.h │ │ │ ├── TypeInference.cpp │ │ │ ├── TypeInference.h │ │ │ ├── TypeRegistration.cpp │ │ │ └── TypeRegistration.h │ │ ├── ast/ │ │ │ ├── FunctionCallGraph.h │ │ │ ├── Type.cpp │ │ │ ├── Type.h │ │ │ ├── TypeSystem.cpp │ │ │ ├── TypeSystem.h │ │ │ ├── TypeSystemHelper.cpp │ │ │ └── TypeSystemHelper.h │ │ └── codegen/ │ │ ├── Common.cpp │ │ ├── Common.h │ │ ├── IRGenerationContext.h │ │ ├── IRGenerator.cpp │ │ ├── IRGenerator.h │ │ ├── IRGeneratorForStatements.cpp │ │ └── IRGeneratorForStatements.h │ ├── formal/ │ │ ├── ArraySlicePredicate.cpp │ │ ├── ArraySlicePredicate.h │ │ ├── BMC.cpp │ │ ├── BMC.h │ │ ├── CHC.cpp │ │ ├── CHC.h │ │ ├── Cvc5SMTLib2Interface.cpp │ │ ├── Cvc5SMTLib2Interface.h │ │ ├── EldaricaCHCSmtLib2Interface.cpp │ │ ├── EldaricaCHCSmtLib2Interface.h │ │ ├── EncodingContext.cpp │ │ ├── EncodingContext.h │ │ ├── ExpressionFormatter.cpp │ │ ├── ExpressionFormatter.h │ │ ├── ModelChecker.cpp │ │ ├── ModelChecker.h │ │ ├── ModelCheckerSettings.cpp │ │ ├── ModelCheckerSettings.h │ │ ├── Predicate.cpp │ │ ├── Predicate.h │ │ ├── PredicateInstance.cpp │ │ ├── PredicateInstance.h │ │ ├── PredicateSort.cpp │ │ ├── PredicateSort.h │ │ ├── SMTEncoder.cpp │ │ ├── SMTEncoder.h │ │ ├── SSAVariable.cpp │ │ ├── SSAVariable.h │ │ ├── SymbolicState.cpp │ │ ├── SymbolicState.h │ │ ├── SymbolicTypes.cpp │ │ ├── SymbolicTypes.h │ │ ├── SymbolicVariables.cpp │ │ ├── SymbolicVariables.h │ │ ├── Z3CHCSmtLib2Interface.cpp │ │ ├── Z3CHCSmtLib2Interface.h │ │ ├── Z3SMTLib2Interface.cpp │ │ └── Z3SMTLib2Interface.h │ ├── interface/ │ │ ├── ABI.cpp │ │ ├── ABI.h │ │ ├── CompilerStack.cpp │ │ ├── CompilerStack.h │ │ ├── DebugSettings.h │ │ ├── FileReader.cpp │ │ ├── FileReader.h │ │ ├── GasEstimator.cpp │ │ ├── GasEstimator.h │ │ ├── ImportRemapper.cpp │ │ ├── ImportRemapper.h │ │ ├── Natspec.cpp │ │ ├── Natspec.h │ │ ├── OptimiserSettings.h │ │ ├── ReadFile.h │ │ ├── SMTSolverCommand.cpp │ │ ├── SMTSolverCommand.h │ │ ├── StandardCompiler.cpp │ │ ├── StandardCompiler.h │ │ ├── StorageLayout.cpp │ │ ├── StorageLayout.h │ │ ├── UniversalCallback.h │ │ ├── Version.cpp │ │ └── Version.h │ ├── lsp/ │ │ ├── DocumentHoverHandler.cpp │ │ ├── DocumentHoverHandler.h │ │ ├── FileRepository.cpp │ │ ├── FileRepository.h │ │ ├── GotoDefinition.cpp │ │ ├── GotoDefinition.h │ │ ├── HandlerBase.cpp │ │ ├── HandlerBase.h │ │ ├── LanguageServer.cpp │ │ ├── LanguageServer.h │ │ ├── RenameSymbol.cpp │ │ ├── RenameSymbol.h │ │ ├── SemanticTokensBuilder.cpp │ │ ├── SemanticTokensBuilder.h │ │ ├── Transport.cpp │ │ ├── Transport.h │ │ ├── Utils.cpp │ │ └── Utils.h │ └── parsing/ │ ├── DocStringParser.cpp │ ├── DocStringParser.h │ ├── Parser.cpp │ ├── Parser.h │ └── Token.h ├── libsolutil/ │ ├── Algorithms.h │ ├── AnsiColorized.h │ ├── Assertions.h │ ├── CMakeLists.txt │ ├── Common.h │ ├── CommonData.cpp │ ├── CommonData.h │ ├── CommonIO.cpp │ ├── CommonIO.h │ ├── DisjointSet.cpp │ ├── DisjointSet.h │ ├── DominatorFinder.h │ ├── ErrorCodes.h │ ├── Exceptions.cpp │ ├── Exceptions.h │ ├── FixedHash.h │ ├── FunctionSelector.h │ ├── IpfsHash.cpp │ ├── IpfsHash.h │ ├── JSON.cpp │ ├── JSON.h │ ├── Keccak256.cpp │ ├── Keccak256.h │ ├── LEB128.h │ ├── LazyInit.h │ ├── Numeric.cpp │ ├── Numeric.h │ ├── Profiler.cpp │ ├── Profiler.h │ ├── Result.h │ ├── SetOnce.h │ ├── StackTooDeepString.h │ ├── StringUtils.cpp │ ├── StringUtils.h │ ├── SwarmHash.cpp │ ├── SwarmHash.h │ ├── TemporaryDirectory.cpp │ ├── TemporaryDirectory.h │ ├── UTF8.cpp │ ├── UTF8.h │ ├── Views.h │ ├── Visitor.h │ ├── Whiskers.cpp │ ├── Whiskers.h │ ├── picosha2.h │ └── vector_ref.h ├── libstdlib/ │ ├── CMakeLists.txt │ ├── src/ │ │ └── stub.sol │ ├── stdlib.h.in │ └── stdlib.src.h.in ├── libyul/ │ ├── AST.cpp │ ├── AST.h │ ├── ASTForward.h │ ├── ASTLabelRegistry.cpp │ ├── ASTLabelRegistry.h │ ├── AsmAnalysis.cpp │ ├── AsmAnalysis.h │ ├── AsmAnalysisInfo.h │ ├── AsmJsonConverter.cpp │ ├── AsmJsonConverter.h │ ├── AsmJsonImporter.cpp │ ├── AsmJsonImporter.h │ ├── AsmParser.cpp │ ├── AsmParser.h │ ├── AsmPrinter.cpp │ ├── AsmPrinter.h │ ├── Builtins.h │ ├── CMakeLists.txt │ ├── CompilabilityChecker.cpp │ ├── CompilabilityChecker.h │ ├── ControlFlowSideEffects.h │ ├── ControlFlowSideEffectsCollector.cpp │ ├── ControlFlowSideEffectsCollector.h │ ├── Dialect.cpp │ ├── Dialect.h │ ├── Exceptions.h │ ├── FunctionReferenceResolver.cpp │ ├── FunctionReferenceResolver.h │ ├── Object.cpp │ ├── Object.h │ ├── ObjectOptimizer.cpp │ ├── ObjectOptimizer.h │ ├── ObjectParser.cpp │ ├── ObjectParser.h │ ├── Scope.cpp │ ├── Scope.h │ ├── ScopeFiller.cpp │ ├── ScopeFiller.h │ ├── SideEffects.h │ ├── Utilities.cpp │ ├── Utilities.h │ ├── YulName.h │ ├── YulStack.cpp │ ├── YulStack.h │ ├── YulString.h │ ├── backends/ │ │ └── evm/ │ │ ├── AbstractAssembly.h │ │ ├── AsmCodeGen.cpp │ │ ├── AsmCodeGen.h │ │ ├── ConstantOptimiser.cpp │ │ ├── ConstantOptimiser.h │ │ ├── ControlFlowGraph.h │ │ ├── ControlFlowGraphBuilder.cpp │ │ ├── ControlFlowGraphBuilder.h │ │ ├── EVMBuiltins.cpp │ │ ├── EVMBuiltins.h │ │ ├── EVMCodeTransform.cpp │ │ ├── EVMCodeTransform.h │ │ ├── EVMDialect.cpp │ │ ├── EVMDialect.h │ │ ├── EVMMetrics.cpp │ │ ├── EVMMetrics.h │ │ ├── EVMObjectCompiler.cpp │ │ ├── EVMObjectCompiler.h │ │ ├── EthAssemblyAdapter.cpp │ │ ├── EthAssemblyAdapter.h │ │ ├── NoOutputAssembly.cpp │ │ ├── NoOutputAssembly.h │ │ ├── OptimizedEVMCodeTransform.cpp │ │ ├── OptimizedEVMCodeTransform.h │ │ ├── StackHelpers.h │ │ ├── StackLayoutGenerator.cpp │ │ ├── StackLayoutGenerator.h │ │ ├── VariableReferenceCounter.cpp │ │ ├── VariableReferenceCounter.h │ │ └── ssa/ │ │ ├── BridgeFinder.h │ │ ├── CodeTransform.cpp │ │ ├── CodeTransform.h │ │ ├── ControlFlow.cpp │ │ ├── ControlFlow.h │ │ ├── JunkAdmittingBlocksFinder.cpp │ │ ├── JunkAdmittingBlocksFinder.h │ │ ├── LivenessAnalysis.cpp │ │ ├── LivenessAnalysis.h │ │ ├── PhiInverse.cpp │ │ ├── PhiInverse.h │ │ ├── SSACFG.cpp │ │ ├── SSACFG.h │ │ ├── SSACFGBuilder.cpp │ │ ├── SSACFGBuilder.h │ │ ├── SSACFGLoopNestingForest.cpp │ │ ├── SSACFGLoopNestingForest.h │ │ ├── Stack.cpp │ │ ├── Stack.h │ │ ├── StackLayout.h │ │ ├── StackLayoutGenerator.cpp │ │ ├── StackLayoutGenerator.h │ │ ├── StackShuffler.cpp │ │ ├── StackShuffler.h │ │ ├── StackUtils.cpp │ │ ├── StackUtils.h │ │ ├── io/ │ │ │ ├── DotExporterBase.cpp │ │ │ ├── DotExporterBase.h │ │ │ ├── JSONExporter.cpp │ │ │ └── JSONExporter.h │ │ └── traversal/ │ │ ├── ForwardTopologicalSort.cpp │ │ └── ForwardTopologicalSort.h │ └── optimiser/ │ ├── ASTCopier.cpp │ ├── ASTCopier.h │ ├── ASTWalker.cpp │ ├── ASTWalker.h │ ├── BlockFlattener.cpp │ ├── BlockFlattener.h │ ├── BlockHasher.cpp │ ├── BlockHasher.h │ ├── CallGraphGenerator.cpp │ ├── CallGraphGenerator.h │ ├── CircularReferencesPruner.cpp │ ├── CircularReferencesPruner.h │ ├── CommonSubexpressionEliminator.cpp │ ├── CommonSubexpressionEliminator.h │ ├── ConditionalSimplifier.cpp │ ├── ConditionalSimplifier.h │ ├── ConditionalUnsimplifier.cpp │ ├── ConditionalUnsimplifier.h │ ├── ControlFlowSimplifier.cpp │ ├── ControlFlowSimplifier.h │ ├── DataFlowAnalyzer.cpp │ ├── DataFlowAnalyzer.h │ ├── DeadCodeEliminator.cpp │ ├── DeadCodeEliminator.h │ ├── Disambiguator.cpp │ ├── Disambiguator.h │ ├── EqualStoreEliminator.cpp │ ├── EqualStoreEliminator.h │ ├── EquivalentFunctionCombiner.cpp │ ├── EquivalentFunctionCombiner.h │ ├── EquivalentFunctionDetector.cpp │ ├── EquivalentFunctionDetector.h │ ├── ExpressionInliner.cpp │ ├── ExpressionInliner.h │ ├── ExpressionJoiner.cpp │ ├── ExpressionJoiner.h │ ├── ExpressionSimplifier.cpp │ ├── ExpressionSimplifier.h │ ├── ExpressionSplitter.cpp │ ├── ExpressionSplitter.h │ ├── ForLoopConditionIntoBody.cpp │ ├── ForLoopConditionIntoBody.h │ ├── ForLoopConditionOutOfBody.cpp │ ├── ForLoopConditionOutOfBody.h │ ├── ForLoopInitRewriter.cpp │ ├── ForLoopInitRewriter.h │ ├── FullInliner.cpp │ ├── FullInliner.h │ ├── FunctionCallFinder.cpp │ ├── FunctionCallFinder.h │ ├── FunctionGrouper.cpp │ ├── FunctionGrouper.h │ ├── FunctionHoister.cpp │ ├── FunctionHoister.h │ ├── FunctionSpecializer.cpp │ ├── FunctionSpecializer.h │ ├── InlinableExpressionFunctionFinder.cpp │ ├── InlinableExpressionFunctionFinder.h │ ├── KnowledgeBase.cpp │ ├── KnowledgeBase.h │ ├── LabelIDDispenser.cpp │ ├── LabelIDDispenser.h │ ├── LoadResolver.cpp │ ├── LoadResolver.h │ ├── LoopInvariantCodeMotion.cpp │ ├── LoopInvariantCodeMotion.h │ ├── Metrics.cpp │ ├── Metrics.h │ ├── NameCollector.cpp │ ├── NameCollector.h │ ├── NameDispenser.cpp │ ├── NameDispenser.h │ ├── NameDisplacer.cpp │ ├── NameDisplacer.h │ ├── NameSimplifier.cpp │ ├── NameSimplifier.h │ ├── OptimiserStep.h │ ├── OptimizerUtilities.cpp │ ├── OptimizerUtilities.h │ ├── README.md │ ├── Rematerialiser.cpp │ ├── Rematerialiser.h │ ├── SSAReverser.cpp │ ├── SSAReverser.h │ ├── SSATransform.cpp │ ├── SSATransform.h │ ├── SSAValueTracker.cpp │ ├── SSAValueTracker.h │ ├── Semantics.cpp │ ├── Semantics.h │ ├── SimplificationRules.cpp │ ├── SimplificationRules.h │ ├── StackCompressor.cpp │ ├── StackCompressor.h │ ├── StackLimitEvader.cpp │ ├── StackLimitEvader.h │ ├── StackToMemoryMover.cpp │ ├── StackToMemoryMover.h │ ├── StructuralSimplifier.cpp │ ├── StructuralSimplifier.h │ ├── Substitution.cpp │ ├── Substitution.h │ ├── Suite.cpp │ ├── Suite.h │ ├── SyntacticalEquality.cpp │ ├── SyntacticalEquality.h │ ├── UnusedAssignEliminator.cpp │ ├── UnusedAssignEliminator.h │ ├── UnusedFunctionParameterPruner.cpp │ ├── UnusedFunctionParameterPruner.h │ ├── UnusedFunctionsCommon.cpp │ ├── UnusedFunctionsCommon.h │ ├── UnusedPruner.cpp │ ├── UnusedPruner.h │ ├── UnusedStoreBase.cpp │ ├── UnusedStoreBase.h │ ├── UnusedStoreEliminator.cpp │ ├── UnusedStoreEliminator.h │ ├── VarDeclInitializer.cpp │ ├── VarDeclInitializer.h │ ├── VarNameCleaner.cpp │ └── VarNameCleaner.h ├── scripts/ │ ├── ASTImportTest.sh │ ├── AntlrBatchTestRig.java │ ├── Dockerfile │ ├── Dockerfile_alpine │ ├── build.sh │ ├── build_emscripten.sh │ ├── bytecodecompare/ │ │ ├── prepare_report.js │ │ └── prepare_report.py │ ├── check_style.sh │ ├── check_symlinks.sh │ ├── chk_shellscripts/ │ │ └── chk_shellscripts.sh │ ├── ci/ │ │ ├── base64DecToArr.js │ │ ├── build.sh │ │ ├── build_emscripten.sh │ │ ├── build_ossfuzz.sh │ │ ├── build_win.sh │ │ ├── docker_upgrade.sh │ │ ├── install_and_check_minimum_requirements.sh │ │ ├── mini-lz4.js │ │ ├── notification/ │ │ │ ├── matrix_notification.sh │ │ │ └── templates/ │ │ │ ├── build_fail.json │ │ │ ├── build_release.json │ │ │ └── build_success.json │ │ ├── pack_soljson.sh │ │ └── post_style_errors_on_github.sh │ ├── codespell_ignored_lines.txt │ ├── codespell_whitelist.txt │ ├── common/ │ │ ├── cmdline_helpers.py │ │ ├── git_helpers.py │ │ └── rest_api_helpers.py │ ├── common.sh │ ├── common_cmdline.sh │ ├── create_source_tarball.sh │ ├── docker/ │ │ └── buildpack-deps/ │ │ ├── Dockerfile.emscripten │ │ ├── Dockerfile.ubuntu.clang.ossfuzz │ │ ├── Dockerfile.ubuntu2404 │ │ ├── Dockerfile.ubuntu2404.arm │ │ ├── Dockerfile.ubuntu2404.clang │ │ ├── README.md │ │ └── emscripten.jam │ ├── docker_deploy_manual.sh │ ├── docs_version_pragma_check.sh │ ├── download_ossfuzz_corpus.sh │ ├── error_codes.py │ ├── externalTests/ │ │ ├── benchmark_diff.py │ │ ├── common.sh │ │ ├── download_benchmarks.py │ │ ├── merge_benchmarks.sh │ │ ├── parse_eth_gas_report.py │ │ ├── runners/ │ │ │ ├── base.py │ │ │ └── foundry.py │ │ ├── summarize_benchmarks.sh │ │ ├── test_helpers.py │ │ └── update_external_repos.sh │ ├── extract_test_cases.py │ ├── gas_diff_stats.py │ ├── get_nightly_version.sh │ ├── get_version.sh │ ├── install_deps.ps1 │ ├── install_evmone.ps1 │ ├── isolate_tests.py │ ├── isoltest.sh │ ├── list_contributors.sh │ ├── prerelease_suffix.sh │ ├── pylint_all.py │ ├── pylintrc │ ├── regressions.py │ ├── run_proofs.sh │ ├── solc-bin/ │ │ ├── bytecode_reports_for_modified_binaries.sh │ │ └── compare_bytecode_reports.sh │ ├── soltest.sh │ ├── splitSources.py │ ├── test_antlr_grammar.sh │ ├── test_emscripten.sh │ ├── tests.sh │ ├── uniqueErrors.sh │ ├── update_bugs_by_version.py │ ├── wasm-rebuild/ │ │ ├── README │ │ ├── docker-scripts/ │ │ │ ├── genbytecode.sh │ │ │ ├── isolate_tests.py │ │ │ ├── patch.sh │ │ │ ├── rebuild_current.sh │ │ │ └── rebuild_tags.sh │ │ └── rebuild.sh │ └── yul_coverage.sh ├── snap/ │ └── snapcraft.yaml ├── solc/ │ ├── CMakeLists.txt │ ├── CommandLineInterface.cpp │ ├── CommandLineInterface.h │ ├── CommandLineParser.cpp │ ├── CommandLineParser.h │ ├── Exceptions.h │ └── main.cpp ├── test/ │ ├── .solhint.json │ ├── .solhintignore │ ├── CMakeLists.txt │ ├── Common.cpp │ ├── Common.h │ ├── CommonSyntaxTest.cpp │ ├── CommonSyntaxTest.h │ ├── EVMHost.cpp │ ├── EVMHost.h │ ├── ExecutionFramework.cpp │ ├── ExecutionFramework.h │ ├── FilesystemUtils.cpp │ ├── FilesystemUtils.h │ ├── InteractiveTests.h │ ├── Metadata.cpp │ ├── Metadata.h │ ├── TestCase.cpp │ ├── TestCase.h │ ├── TestCaseReader.cpp │ ├── TestCaseReader.h │ ├── benchmarks/ │ │ ├── OptimizorClub.sol │ │ ├── chains.sol │ │ ├── external-setup.sh │ │ ├── external.sh │ │ ├── local.sh │ │ └── verifier.sol │ ├── buglistTests.js │ ├── buglist_test_vectors.md │ ├── cmdlineTests/ │ │ ├── abi_via_ir/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── abiencoderv2_no_warning/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── asm_json/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── asm_json_import_sourcelist_with_null_elements/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── asm_json_no_pretty_print/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── asm_json_subassembly_id_representation/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── asm_json_yul_export_evm_asm_import/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── ast_compact_json_no_pretty_json/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ast_compact_json_storage_layout_specifier/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ast_compact_json_with_base_path/ │ │ │ ├── args │ │ │ ├── c.sol │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ast_ir/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ast_json_import_wrong_evmVersion/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── combined_json_abi/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── combined_json_generated_sources/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── combined_json_no_pretty_print/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── combined_json_stop_after_parsing/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── combined_json_with_base_path/ │ │ │ ├── args │ │ │ ├── c.sol │ │ │ ├── input.sol │ │ │ └── output │ │ ├── combined_json_with_devdoc/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── combined_json_with_userdoc/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── constant_optimizer_yul/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── debug_info_in_yul_and_evm_asm_print_all/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── debug_info_in_yul_and_evm_asm_print_all_and_none/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── debug_info_in_yul_and_evm_asm_print_location_only/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── debug_info_in_yul_and_evm_asm_print_none/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── debug_info_in_yul_and_evm_asm_print_snippet_only/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── debug_info_in_yul_snippet_escaping/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── dup_opt_peephole/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── eof_unavailable_before_osaka/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── error_codes/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── ethdebug_debuginfo_without_experimental_flag/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── ethdebug_eof_container_osaka/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ethdebug_on_abstract/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ethdebug_on_interface/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── events_in_abi/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evm_version_byzantium/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── evm_version_constantinople/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── evmasm_difficulty_post_paris/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evmasm_difficulty_pre_paris/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evmasm_prevrandao_post_paris/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evmasm_prevrandao_pre_paris/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evmasm_transient_storage_inline_assembly/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evmasm_transient_storage_inline_assembly_via_ir/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evmasm_transient_storage_state_variable/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── evmasm_transient_storage_state_variable_via_ir/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── exp_base_literal/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── experimental_feature_without_experimental_flag/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── experimental_flag_with_standard_json/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.json │ │ ├── function_debug_info/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── function_debug_info_via_yul/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── hashes/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── import_asm_json_all_valid_flags/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_difficulty_prevrandao/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_eof_unavailable_before_osaka/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_hex_subassembly_indices/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_invalid_data_not_hex/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_invalid_data_not_object/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_invalid_jumptype_instruction/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_invalid_value/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_missing_subobject_indices/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_no_optimize/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_no_value/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_non_unique_sources/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_optimize/ │ │ │ ├── args │ │ │ ├── exit │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_out_of_range_data_index/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_random_order_data_index/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_unrecognized_field/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_untagged_jumpdest/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── import_asm_json_verbatim/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_yul_more_subobjects/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── import_asm_json_yul_subobjects/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── inheritance_repeated_definition_error/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── inline_assembly_function_name_clash/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_compiler_inheritance_nosubobjects/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_compiler_subobjects/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_optimized_transient_storage_value_type/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_optimized_with_optimize/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_subobject_order/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_unoptimized_with_optimize/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_unoptimized_with_optimize_via_ir/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_with_assembly_no_memoryguard_creation/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── ir_with_assembly_no_memoryguard_runtime/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── keccak_optimization_deploy_code/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── keccak_optimization_low_runs/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── linker_mode_invalid_option_no_optimize_yul/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── exit │ │ ├── linker_mode_invalid_option_optimize/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── exit │ │ ├── linker_mode_invalid_option_optimize_runs/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── exit │ │ ├── linker_mode_invalid_option_optimize_yul/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── exit │ │ ├── linker_mode_invalid_option_yul_optimizations/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── exit │ │ ├── linker_mode_output_selection_invalid/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── exit │ │ ├── linking_qualified_library_name/ │ │ │ ├── args │ │ │ ├── contract1.sol │ │ │ ├── math.sol │ │ │ └── output │ │ ├── linking_solidity/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── linking_solidity_unresolved_references/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── linking_standard_solidity/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── linking_standard_solidity_quote_in_file_name/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── linking_standard_solidity_unresolved_references/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── linking_standard_yul/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── linking_standard_yul_quote_in_file_name/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── linking_standard_yul_unresolved_references/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── linking_strict_assembly/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_strict_assembly_duplicate_library_name/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── linking_strict_assembly_qualified_library_qualified_reference/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_strict_assembly_qualified_library_unqualified_reference/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_strict_assembly_same_library_name_different_files/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_strict_assembly_same_library_name_different_files_in_link_references/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_strict_assembly_unqualified_library_qualified_reference/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_strict_assembly_unqualified_library_unqualified_reference/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_strict_assembly_unresolved_references/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── linking_unqualified_library_name/ │ │ │ ├── args │ │ │ ├── contract1.sol │ │ │ ├── contract2.sol │ │ │ ├── error.sol │ │ │ ├── math.sol │ │ │ └── output │ │ ├── mcopy_bytes_array_abi_decode/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── mcopy_bytes_array_returned_from_function/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── mcopy_string_literal_returned_from_function/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── memoryguard_shadowing_by_inline_assembly_identifiers/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── message_format/ │ │ │ ├── err │ │ │ └── input.sol │ │ ├── message_format_utf8/ │ │ │ ├── err │ │ │ └── input.sol │ │ ├── metadata/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── metadata_experimental/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── metadata_via_ssa_cfg/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── model_checker_bmc_loop_iterations/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_bmc_loop_iterations_invalid_arg/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_bmc_loop_iterations_no_argument/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_contracts_all/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_contracts_all_explicit/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_contracts_contract_missing/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_contracts_empty_contract/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_contracts_empty_source/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_contracts_inexistent_contract/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_contracts_inexistent_source/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_contracts_one_contract_missing/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_contracts_only_one/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_contracts_source_missing/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_divModSlacks_default_all/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_divModSlacks_default_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_divModSlacks_default_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_divModSlacks_false_all/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_divModSlacks_false_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_divModSlacks_false_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_engine_all/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_engine_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_engine_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_engine_none/ │ │ │ ├── args │ │ │ └── input.sol │ │ ├── model_checker_ext_calls_empty_arg/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_ext_calls_trusted_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_ext_calls_untrusted_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_ext_calls_wrong_arg/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_invariants_all/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_invariants_contract/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_invariants_contract_eld/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_invariants_contract_reentrancy/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_invariants_reentrancy/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_invariants_wrong/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_print_query_all/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_print_query_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_print_query_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_proved_safe_default_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_proved_safe_default_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_proved_safe_default_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_proved_safe_true_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_proved_safe_true_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_proved_safe_true_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unproved_default_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unproved_default_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unproved_default_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unproved_true_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unproved_true_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unproved_true_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unsupported_default_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unsupported_default_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unsupported_default_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unsupported_true_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unsupported_true_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_show_unsupported_true_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_solvers_cvc5/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_solvers_cvc5_eld/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_solvers_eld/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_solvers_smtlib2/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_solvers_wrong/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_solvers_wrong2/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_solvers_z3/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_solvers_z3_implicit/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_solvers_z3_smtlib2/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_all_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_all_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_all_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_assert_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_assert_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_balance_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_balance_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_constant_condition_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_constant_condition_chc/ │ │ │ ├── args │ │ │ └── input.sol │ │ ├── model_checker_targets_default_all_engines/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_default_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_default_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_div_by_zero_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_div_by_zero_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_error/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── model_checker_targets_out_of_bounds_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_out_of_bounds_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_overflow_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_overflow_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_pop_empty_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_pop_empty_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_underflow_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_underflow_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_underflow_overflow_assert_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_underflow_overflow_assert_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_underflow_overflow_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_targets_underflow_overflow_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_timeout_all/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_timeout_bmc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── model_checker_timeout_chc/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── input.sol │ │ ├── name_simplifier/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── no_cbor_metadata/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── no_cbor_metadata_with_metadata_hash/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── no_contract_combined_json/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── no_import_callback/ │ │ │ ├── args │ │ │ ├── contract_1.sol │ │ │ ├── contract_2.sol │ │ │ ├── err │ │ │ └── exit │ │ ├── object_compiler/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── optimize_full_storage_write/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_BlockDeDuplicator/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_array_sload/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_enabled_invalid_yul_optimizer_enabled_and_disabled/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── optimizer_inliner_add/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_inliner_call_from_constructor/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_inliner_dynamic_reference/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_inliner_dynamic_reference_constructor/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_inliner_inc/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_inliner_multireturn/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── optimizer_user_yul/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── pretty_json_indent_only/ │ │ │ ├── args │ │ │ ├── input.json │ │ │ ├── no-pretty-print │ │ │ ├── output │ │ │ └── output.json │ │ ├── pretty_json_standard/ │ │ │ ├── args │ │ │ ├── input.json │ │ │ ├── no-pretty-print │ │ │ └── output.json │ │ ├── pretty_json_standard_indent/ │ │ │ ├── args │ │ │ ├── input.json │ │ │ ├── no-pretty-print │ │ │ ├── output │ │ │ └── output.json │ │ ├── require_overload/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── require_with_error_ir/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── require_with_string_ir/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── revert_strings/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── stack_too_deep_from_code_transform/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── standard_cli_import_ast_storage_layout_specifier_missing_expression/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── standard_cli_output_selection_invalid/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.json │ │ ├── standard_debug_info_in_evm_asm_via_ir_location/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_debug_info_in_yul_and_evm_asm_print_all/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_debug_info_in_yul_and_evm_asm_print_location_only/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_debug_info_in_yul_and_evm_asm_print_none/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_debug_info_in_yul_and_evm_asm_print_snippet_only/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_debug_info_in_yul_location/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_default_success/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_empty_file_name/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_eof_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_eof_unavailable_before_osaka/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_evm_version_byzantium/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_evm_version_constantinople/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_file_not_found/ │ │ │ ├── args │ │ │ ├── err │ │ │ └── exit │ │ ├── standard_function_debug_info/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_generatedSources/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_immutable_references/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_eof_unavailable_before_osaka/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_immutable_references/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_invalid_input_array/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_invalid_key_inside_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_invalid_key_other_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_invalid_no_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_invalid_opcode/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_invalid_two_sources/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_link_references/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_multiple_keys_inside_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_no_optimize/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_no_output_selection/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_asm_json_optimize/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_ast/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_ast_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_ast_select_bytecode/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_with_comments/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_with_comments_simple/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_import_with_invalid_utf8/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_invalid_option_no_optimize_yul/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.json │ │ ├── standard_invalid_option_optimize/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.json │ │ ├── standard_invalid_option_optimize_runs/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.json │ │ ├── standard_invalid_option_optimize_yul/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.json │ │ ├── standard_invalid_option_yul_optimizations/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.json │ │ ├── standard_irOptimized_ast_requested/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_irOptimized_requested/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_ir_ast_requested/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_ir_requested/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_ir_unoptimized_with_optimize/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_ir_unoptimized_with_optimize_via_ir/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_json_no_pretty_print/ │ │ │ ├── input.json │ │ │ ├── no-pretty-print │ │ │ └── output.json │ │ ├── standard_metadata/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_metadata_experimental/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_method_identifiers_requested/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_method_identifiers_requested_empty/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_missing_key_useLiteralContent/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_bmc_loop_iterations/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_bmc_loop_iterations_invalid_arg/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_all/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_all_explicit/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_empty_array/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_empty_contract/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_empty_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_inexistent_contract/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_multi_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_only_one/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_wrong_key_sources/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_wrong_key_sources_2/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_wrong_key_sources_3/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_contracts_wrong_key_sources_4/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_divModSlacks_default_all/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_divModSlacks_default_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_divModSlacks_default_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_divModSlacks_false_all/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_divModSlacks_false_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_divModSlacks_false_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_divModSlacks_wrong/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_engine_all/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_engine_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_engine_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_engine_none/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_ext_calls_empty_arg/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_ext_calls_trusted_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_ext_calls_untrusted_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_ext_calls_wrong_arg_1/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_ext_calls_wrong_arg_2/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_invariants_contract/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_invariants_contract_reentrancy/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_invariants_reentrancy/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_invariants_wrong_key/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_invariants_wrong_type/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_invariants_wrong_type_2/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_print_query_all/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_print_query_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_print_query_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_print_query_invalid_arg/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_default_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_default_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_default_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_false_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_false_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_false_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_true_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_true_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_true_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_proved_safe_wrong/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_default_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_false_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_false_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_false_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_true_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_true_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_true_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unproved_wrong/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_default_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_default_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_default_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_false_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_false_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_false_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_true_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_true_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_true_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_show_unsupported_wrong/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_solvers_none/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_solvers_smtlib2/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_solvers_z3/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_solvers_z3_smtlib2/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_assert_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_assert_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_balance_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_balance_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_constantCondition_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_constantCondition_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_default_all_engines/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_default_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_default_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_div_by_zero_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_div_by_zero_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_empty_array/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_out_of_bounds_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_out_of_bounds_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_overflow_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_overflow_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_pop_empty_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_pop_empty_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_underflow_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_underflow_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_underflow_overflow_assert_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_underflow_overflow_assert_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_underflow_overflow_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_underflow_overflow_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_wrong_target_types/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_wrong_target_types_2/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_targets_wrong_targets/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_timeout_all/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_timeout_bmc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_timeout_chc/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_timeout_wrong_key/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_model_checker_timeout_wrong_value/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_no_append_cbor/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_no_append_cbor_with_metadata_hash/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_no_import_callback/ │ │ │ ├── B.sol │ │ │ ├── args │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_non_utf8_filename/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_non_utf8_filename2/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_only_ast_requested/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_generatedSources/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_invalid_detail_type/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_invalid_details/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_no_yul/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yul/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_no_object/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_empty_sequence_metadata/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_empty_sequence_whitespaces_metadata/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_invalid_abbreviation/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_invalid_nested_delimiter/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_mutliple_delimiters/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_nested_brackets/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_nesting_too_deep/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_no_yul/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_no_yul_empty_string/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_no_yul_whitespaces/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_type/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_unbalanced_closing_bracket/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_unbalanced_opening_bracket/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_with_cleanup_sequence/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_with_empty_cleanup_sequence/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_with_empty_optimisation_sequence/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_with_empty_sequence/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_with_empty_sequence_no_yul/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_optimiserSteps_with_whitespace_newline_sequence_no_yul/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_optimizer_yulDetails_without_yul/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_debuginfo_ethdebug_compatible/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_debuginfo_ethdebug_incompatible/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_debuginfo_ethdebug_with_interfaces_and_abstracts/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_all_blank/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_all_sources_blank_contract_named_blank/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_all_sources_single_contract_multiple_matches/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_all_sources_single_contract_single_match/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_all_sources_star_contract_named_star/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_all_star/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_duplicate_matching_source_and_contract_selectors/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_empty/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_ethdebug_bytecode_and_deployedbytecode_ir/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_bytecode_and_deployedbytecode_iroptimized/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_bytecode_and_deployedbytecode_optimizer_ir/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_ethdebug_bytecode_and_deployedbytecode_optimizer_iroptimized/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_ethdebug_bytecode_ir/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_bytecode_iroptimized/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_deployedbytecode_ir/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_deployedbytecode_iroptimized/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_ir/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_iroptimized/ │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_output_selection_ethdebug_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_ethdebug_no_viair/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_ethdebug_optimize_ir/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_ethdebug_optimize_iroptimized/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_ir_ast_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_multiple_matching_source_and_contract_selectors/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_multiple_matching_source_and_contract_selectors_full_pipeline/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_no_output_selected/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_single_all/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_single_source_single_contract_multiple_matches/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_single_source_single_contract_single_match/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_unrecognized_output/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_unrecognized_source_and_contract_selectors/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_wrong_type/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_wrong_type_contract/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_wrong_type_output/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_wrong_type_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_output_selection_yul_cfg_json_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_outputs_on_analysis_error_fatal/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_outputs_on_analysis_error_fatal_after_current_step/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_outputs_on_analysis_error_non_fatal/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_outputs_on_compilation_error/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_outputs_on_parsing_error/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_parsing_import_absolute_paths/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_raw_utf16_filename/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_secondary_source_location/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_stack_too_deep_from_code_transform/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_stop_after_parsing_ast_requested/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_stop_after_parsing_bytecode_requested/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_stop_after_parsing_non_binary_output_requested/ │ │ │ ├── args │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_undeployable_contract_all_outputs/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_urls_existing_and_missing/ │ │ │ ├── contract.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_urls_missing/ │ │ │ ├── contract.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_via_ssa_cfg_ethdebug/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_via_ssa_cfg_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_via_ssa_cfg_via_ir_false/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_viair_requested/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_key_auxiliary_input/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_key_metadata/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_key_optimizer/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_key_root/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_key_settings/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_key_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_auxiliary_input/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_auxiliary_input_smtlib2responses/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_auxiliary_input_smtlib2responses_member/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_metadata/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_optimizer/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_remappings/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_remappings_entry/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_root/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_settings/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_source/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_sources/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_wrong_type_useLiteralContent/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_cfg_json_export/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_code_generation_error/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_debug_info_ethdebug_compatible_output/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_debug_info_ethdebug_compatible_output_eof/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_debug_info_ethdebug_incompatible_output/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_debug_info_ethdebug_verbatim_unimplemented/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_debug_info_print_all/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_debug_info_print_location_only/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_debug_info_print_none/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_debug_info_print_snippet_only/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_embedded_object_name/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_eof_unavailable_before_osaka/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_ethdebug_assign_immutable/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_ethdebug_bytecode_ir/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_ethdebug_bytecode_iroptimized/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_ethdebug_deployed_bytecode/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_ethdebug_deployed_bytecode_and_bytecode/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_ethdebug_eof/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_ethdebug_ir/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_ethdebug_iroptimize/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ ├── output.json │ │ │ └── strip-ethdebug │ │ ├── standard_yul_ethdebug_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_ethdebug_optimize_ir/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_ethdebug_optimize_iroptimized/ │ │ │ ├── args │ │ │ ├── in.yul │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_evm_version_byzantium/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_evm_version_constantinople/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_immutable_references/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_invalid_object_name/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_ir_ast_no_experimental/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_multiple_files/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_multiple_files_selected/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_object/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_object_invalid_sub/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_object_name/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_optimiserSteps/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_optimized/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_output_warning/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_single_file_via_urls/ │ │ │ ├── args │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_stack_opt/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── standard_yul_stack_opt_disabled/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── stdin/ │ │ │ ├── args │ │ │ └── stdin │ │ ├── stop_after_parsing_abi/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── stop_after_parsing_ast/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── storage_layout_already_defined_in_ancestor/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── storage_layout_bytes/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_dyn_array/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_many/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_mapping/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_smoke/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_smoke_two_contracts/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_specifier_repeated_definition_error/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── storage_layout_specifier_smoke/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── storage_layout_specifier_smoke_ir_codegen/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── storage_layout_specifier_storage_layout_output/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── storage_layout_string/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_struct/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_struct_packed/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_transient_value_types/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_user_defined/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── storage_layout_user_defined_no_pretty_print/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── storage_layout_value_types/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_layout_value_types_packed/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── storage_transient_storage_collision_ir_output/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── strict_asm_asm_json_arbitrary_source_index/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── stdin │ │ ├── strict_asm_asm_json_subobjects_with_debug/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── strict_asm_asm_json_with_debug_info_annotations/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── strict_asm_asm_json_without_debug_info_annotations/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── strict_asm_asm_json_yul_verbatim/ │ │ │ ├── args │ │ │ ├── output │ │ │ └── stdin │ │ ├── strict_asm_ast_compact_json/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_code_generation_error/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_debug_info_print_all/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_debug_info_print_location_only/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_debug_info_print_none/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_debug_info_print_snippet_only/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_eof_container_osaka/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_eof_dataloadn_osaka/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_eof_unavailable_before_osaka/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_evm_version_byzantium/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_evm_version_constantinople/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_invalid_option_output_dir/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_jump/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_msize_with_optimizer/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_msize_without_optimizer/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_only_cr/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_optimizer_invalid_yul_optimizer_enabled_and_disabled/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_optimizer_steps/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_options_in_non_asm_mode/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── strict_asm_output_selection_asm_only/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_output_selection_bin_only/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_output_selection_invalid/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_output_selection_ir_optimized_only/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_warning/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_warning_and_error_optimize/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.yul │ │ ├── strict_asm_warning_optimize/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_warning_optimize_unreachable/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.yul │ │ │ └── output │ │ ├── strict_asm_yul_cfg_json_export/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── structured_documentation_source_location/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── too_long_line/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── too_long_line_both_sides_short/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── too_long_line_edge_in/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── too_long_line_edge_out/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── too_long_line_left_short/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── too_long_line_multiline/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── too_long_line_right_short/ │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── transient_storage_layout/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── transient_storage_layout_smoke_empty/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── transient_storage_layout_smoke_two_contracts/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── transient_storage_layout_value_types/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── transient_storage_layout_value_types_interleaved_with_storage/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── transient_storage_layout_value_types_packed/ │ │ │ ├── in.sol │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── undeployable_contract_empty_outputs/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── via_ssa_cfg_ethdebug/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── via_ssa_cfg_without_experimental/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── viair_abicoder_v1/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── viair_msize_without_optimizer/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── viair_subobject_optimization/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── viair_subobjects/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_cfg_json_export/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_function_name_clashes/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── yul_function_name_clashes_different_params/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── yul_optimize_runs/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── yul_optimizer_disabled_sequence_empty/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_erc7201_literal_comptime_evaluation/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_erc7201_param_calldata/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_erc7201_param_memory/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_erc7201_param_storage/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_steps/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_steps_disabled/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── yul_optimizer_steps_invalid_abbreviation/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── yul_optimizer_steps_invalid_substitution_in_expression_simplifier/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_steps_nested_brackets/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_steps_nesting_too_deep/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── yul_optimizer_steps_short_sequence/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_steps_unbalanced_closing_bracket/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── yul_optimizer_steps_unbalanced_opening_bracket/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── exit │ │ │ └── input.sol │ │ ├── yul_optimizer_steps_with_empty_cleanup_sequence/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_steps_with_empty_optimization_sequence/ │ │ │ ├── args │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_optimizer_steps_without_optimize_empty_sequence/ │ │ │ ├── args │ │ │ ├── err │ │ │ ├── input.sol │ │ │ └── output │ │ ├── yul_string_format_ascii/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── yul_string_format_ascii_bytes32/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── yul_string_format_ascii_bytes32_from_number/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── yul_string_format_ascii_long/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── yul_string_format_hex/ │ │ │ ├── input.json │ │ │ └── output.json │ │ ├── yul_verbatim/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── yul_verbatim_msize/ │ │ │ ├── args │ │ │ ├── input.yul │ │ │ └── output │ │ ├── ~assembler_modes/ │ │ │ └── test.sh │ │ ├── ~ast_export_with_stop_after_parsing/ │ │ │ └── test.sh │ │ ├── ~ast_import_export/ │ │ │ └── test.sh │ │ ├── ~bytecode_equivalence_independent_of_import_discovery_order/ │ │ │ ├── inputs.sol │ │ │ └── test.py │ │ ├── ~bytecode_equivalence_with_unused_contracts/ │ │ │ ├── inputs.sol │ │ │ └── test.py │ │ ├── ~cli_and_standard_json_equivalence/ │ │ │ └── test.sh │ │ ├── ~compilation_tests/ │ │ │ └── test.sh │ │ ├── ~deduplicator-verbatim-bug/ │ │ │ ├── test.sh │ │ │ └── verbatim_inside_identical_blocks.yul │ │ ├── ~documentation_examples/ │ │ │ └── test.sh │ │ ├── ~evmasm_import_export/ │ │ │ └── test.sh │ │ ├── ~library_checksum/ │ │ │ └── test.sh │ │ ├── ~library_long_names/ │ │ │ └── test.sh │ │ ├── ~linking/ │ │ │ └── test.sh │ │ ├── ~name_dependent_cse_bug/ │ │ │ ├── cse_bug.yul │ │ │ └── test.sh │ │ ├── ~overwriting_files/ │ │ │ └── test.sh │ │ ├── ~soljson_via_fuzzer/ │ │ │ └── test.sh │ │ ├── ~standard_input/ │ │ │ └── test.sh │ │ ├── ~unknown_options/ │ │ │ └── test.sh │ │ ├── ~update_bugs_by_version/ │ │ │ └── test.sh │ │ └── ~via_ir_equivalence/ │ │ └── test.sh │ ├── cmdlineTests.sh │ ├── compilationTests/ │ │ ├── MultiSigWallet/ │ │ │ ├── Factory.sol │ │ │ ├── LICENSE │ │ │ ├── MultiSigWallet.sol │ │ │ ├── MultiSigWalletFactory.sol │ │ │ ├── MultiSigWalletWithDailyLimit.sol │ │ │ ├── MultiSigWalletWithDailyLimitFactory.sol │ │ │ ├── README.md │ │ │ └── TestToken.sol │ │ ├── README.md │ │ ├── corion/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── announcementTypes.sol │ │ │ ├── ico.sol │ │ │ ├── module.sol │ │ │ ├── moduleHandler.sol │ │ │ ├── multiOwner.sol │ │ │ ├── owned.sol │ │ │ ├── premium.sol │ │ │ ├── provider.sol │ │ │ ├── publisher.sol │ │ │ ├── safeMath.sol │ │ │ ├── schelling.sol │ │ │ ├── token.sol │ │ │ └── tokenDB.sol │ │ ├── gnosis/ │ │ │ ├── Events/ │ │ │ │ ├── CategoricalEvent.sol │ │ │ │ ├── Event.sol │ │ │ │ ├── EventFactory.sol │ │ │ │ └── ScalarEvent.sol │ │ │ ├── LICENSE │ │ │ ├── MarketMakers/ │ │ │ │ ├── LMSRMarketMaker.sol │ │ │ │ └── MarketMaker.sol │ │ │ ├── Markets/ │ │ │ │ ├── Campaign.sol │ │ │ │ ├── CampaignFactory.sol │ │ │ │ ├── Market.sol │ │ │ │ ├── MarketFactory.sol │ │ │ │ ├── StandardMarket.sol │ │ │ │ └── StandardMarketFactory.sol │ │ │ ├── Migrations.sol │ │ │ ├── Oracles/ │ │ │ │ ├── CentralizedOracle.sol │ │ │ │ ├── CentralizedOracleFactory.sol │ │ │ │ ├── DifficultyOracle.sol │ │ │ │ ├── DifficultyOracleFactory.sol │ │ │ │ ├── FutarchyOracle.sol │ │ │ │ ├── FutarchyOracleFactory.sol │ │ │ │ ├── MajorityOracle.sol │ │ │ │ ├── MajorityOracleFactory.sol │ │ │ │ ├── Oracle.sol │ │ │ │ ├── SignedMessageOracle.sol │ │ │ │ ├── SignedMessageOracleFactory.sol │ │ │ │ ├── UltimateOracle.sol │ │ │ │ └── UltimateOracleFactory.sol │ │ │ ├── README.md │ │ │ ├── Tokens/ │ │ │ │ ├── EtherToken.sol │ │ │ │ ├── OutcomeToken.sol │ │ │ │ ├── StandardToken.sol │ │ │ │ └── Token.sol │ │ │ └── Utils/ │ │ │ └── Math.sol │ │ └── milestonetracker/ │ │ ├── LICENSE │ │ ├── MilestoneTracker.sol │ │ ├── README.md │ │ └── RLP.sol │ ├── contracts/ │ │ ├── AuctionRegistrar.cpp │ │ ├── ContractInterface.h │ │ └── Wallet.cpp │ ├── docsCodeStyle.sh │ ├── ethdebugSchemaTests/ │ │ ├── conftest.py │ │ ├── input_file.json │ │ ├── input_file_eof.json │ │ └── test_ethdebug_schema_conformity.py │ ├── evmc/ │ │ ├── CMakeLists.txt │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bytes.hpp │ │ ├── evmc.h │ │ ├── evmc.hpp │ │ ├── filter_iterator.hpp │ │ ├── helpers.h │ │ ├── hex.hpp │ │ ├── loader.c │ │ ├── loader.h │ │ ├── mocked_host.hpp │ │ └── utils.h │ ├── externalTests/ │ │ ├── README.md │ │ ├── bleeps.sh │ │ ├── brink.sh │ │ ├── chainlink.sh │ │ ├── colony.sh │ │ ├── elementfi.sh │ │ ├── ens.sh │ │ ├── euler.sh │ │ ├── gnosis.sh │ │ ├── gp2.sh │ │ ├── pool-together.sh │ │ ├── prb-math.py │ │ ├── solc-js/ │ │ │ ├── DAO/ │ │ │ │ ├── DAO.sol │ │ │ │ ├── ManagedAccount.sol │ │ │ │ ├── Token.sol │ │ │ │ └── TokenCreation.sol │ │ │ ├── asm-json.js │ │ │ ├── determinism.js │ │ │ └── solc-js.sh │ │ ├── trident.sh │ │ ├── uniswap.sh │ │ ├── yield-liquidator.sh │ │ └── zeppelin.sh │ ├── external_tests.py │ ├── formal/ │ │ ├── README.md │ │ ├── and_distributed_over_shl.py │ │ ├── byte_big.py │ │ ├── byte_equivalence.py │ │ ├── checked_int_add.py │ │ ├── checked_int_div.py │ │ ├── checked_int_mul_12.py │ │ ├── checked_int_sub.py │ │ ├── checked_uint_add.py │ │ ├── checked_uint_mul_12.py │ │ ├── checked_uint_sub.py │ │ ├── combine_byte_shl.py │ │ ├── combine_byte_shr_1.py │ │ ├── combine_byte_shr_2.py │ │ ├── combine_div_shl_one_32.py │ │ ├── combine_mul_shl_one_64.py │ │ ├── combine_shl_shr_by_constant_64.py │ │ ├── combine_shr_shl_by_constant_64.py │ │ ├── eq_sub.py │ │ ├── exp_neg_one.py │ │ ├── exp_to_shl.py │ │ ├── mod_add_to_addmod.py │ │ ├── mod_mul_to_mulmod.py │ │ ├── move_and_across_shl_128.py │ │ ├── move_and_across_shr_128.py │ │ ├── move_and_inside_or.py │ │ ├── opcodes.py │ │ ├── redundant_store_unrelated.py │ │ ├── repeated_and.py │ │ ├── repeated_or.py │ │ ├── replace_mul_by_shift.py │ │ ├── rule.py │ │ ├── shl_workaround_8.py │ │ ├── signed_integer_cleanup_function.py │ │ ├── signextend.py │ │ ├── signextend_and.py │ │ ├── signextend_equivalence.py │ │ ├── signextend_shl.py │ │ ├── signextend_shr.py │ │ ├── smod.py │ │ ├── sub_not_zero_x_to_not_x_256.py │ │ ├── sub_sub.py │ │ ├── unsigned_integer_cleanup_function.py │ │ └── util.py │ ├── libevmasm/ │ │ ├── Assembler.cpp │ │ ├── EVMAssemblyTest.cpp │ │ ├── EVMAssemblyTest.h │ │ ├── Optimiser.cpp │ │ ├── PlainAssemblyParser.cpp │ │ ├── PlainAssemblyParser.h │ │ └── evmAssemblyTests/ │ │ └── isoltestTesting/ │ │ ├── code_generation_error.asmjson │ │ ├── comments.asm │ │ ├── empty.asm │ │ ├── invalid_json.asmjson │ │ ├── jumps.asm │ │ ├── nontrivial_subassembly_ids.asm │ │ ├── operations.asm │ │ ├── push.asm │ │ ├── pushsize.asm │ │ ├── pushsubsize.asm │ │ ├── settings_eof_version.asmjson │ │ ├── settings_evm_version.asmjson │ │ ├── settings_optimizer_constant_optimizer.asmjson │ │ ├── settings_optimizer_cse.asmjson │ │ ├── settings_optimizer_deduplicate.asmjson │ │ ├── settings_optimizer_expected_executions_per_deployment.asmjson │ │ ├── settings_optimizer_inliner.asmjson │ │ ├── settings_optimizer_jumpdest_remover.asmjson │ │ ├── settings_optimizer_peephole.asmjson │ │ ├── settings_optimizer_preset.asmjson │ │ ├── settings_outputs.asmjson │ │ ├── smoke.asmjson │ │ ├── smoke_plain.asm │ │ ├── subassemblies.asm │ │ ├── subassemblies_empty.asm │ │ └── subassemblies_nested.asm │ ├── liblangutil/ │ │ ├── CharStream.cpp │ │ ├── Scanner.cpp │ │ └── SourceLocation.cpp │ ├── libsolidity/ │ │ ├── ABIDecoderTests.cpp │ │ ├── ABIEncoderTests.cpp │ │ ├── ABIJson/ │ │ │ ├── basic_test.sol │ │ │ ├── constructor_abi.sol │ │ │ ├── empty_contract.sol │ │ │ ├── empty_name_input_parameter_with_named_one.sol │ │ │ ├── empty_name_return_parameters.sol │ │ │ ├── errors.sol │ │ │ ├── errors_referenced.sol │ │ │ ├── event_emitted_from_foreign_contract.sol │ │ │ ├── event_emitted_in_base_contract.sol │ │ │ ├── event_file_level.sol │ │ │ ├── event_from_aggregated_contract_not_emitted.sol │ │ │ ├── event_inheritance.sol │ │ │ ├── event_structs.sol │ │ │ ├── events.sol │ │ │ ├── events_anonymous.sol │ │ │ ├── events_indirect.sol │ │ │ ├── events_repetitions.sol │ │ │ ├── function_type.sol │ │ │ ├── function_type_extended.sol │ │ │ ├── global_struct.sol │ │ │ ├── include_fallback_function.sol │ │ │ ├── inherited.sol │ │ │ ├── internal_constructor.sol │ │ │ ├── library_function.sol │ │ │ ├── mapping.sol │ │ │ ├── multiple_methods.sol │ │ │ ├── multiple_methods_order.sol │ │ │ ├── multiple_params.sol │ │ │ ├── payable_constructor_abi.sol │ │ │ ├── payable_fallback_function.sol │ │ │ ├── payable_function.sol │ │ │ ├── pure_function.sol │ │ │ ├── receive_ether_and_fallback_function.sol │ │ │ ├── receive_ether_function.sol │ │ │ ├── return_param_in_abi.sol │ │ │ ├── return_structs.sol │ │ │ ├── return_structs_with_contracts.sol │ │ │ ├── same_event_defined_twice.sol │ │ │ ├── structs_and_arrays.sol │ │ │ ├── structs_in_libraries.sol │ │ │ ├── user_defined_value_type.sol │ │ │ └── view_function.sol │ │ ├── ABIJsonTest.cpp │ │ ├── ABIJsonTest.h │ │ ├── ABITestsCommon.h │ │ ├── ASTJSON/ │ │ │ ├── abstract_contract.json │ │ │ ├── abstract_contract.sol │ │ │ ├── abstract_contract_parseOnly.json │ │ │ ├── address_payable.json │ │ │ ├── address_payable.sol │ │ │ ├── address_payable_parseOnly.json │ │ │ ├── array_type_name.json │ │ │ ├── array_type_name.sol │ │ │ ├── array_type_name_parseOnly.json │ │ │ ├── assembly/ │ │ │ │ ├── call.json │ │ │ │ ├── call.sol │ │ │ │ ├── call_legacy.json │ │ │ │ ├── call_parseOnly.json │ │ │ │ ├── empty_block.json │ │ │ │ ├── empty_block.sol │ │ │ │ ├── empty_block_legacy.json │ │ │ │ ├── empty_block_parseOnly.json │ │ │ │ ├── empty_let_variable_declaration.json │ │ │ │ ├── empty_let_variable_declaration.sol │ │ │ │ ├── empty_let_variable_declaration_parseOnly.json │ │ │ │ ├── function.json │ │ │ │ ├── function.sol │ │ │ │ ├── function_legacy.json │ │ │ │ ├── function_parseOnly.json │ │ │ │ ├── leave.json │ │ │ │ ├── leave.sol │ │ │ │ ├── leave_legacy.json │ │ │ │ ├── leave_parseOnly.json │ │ │ │ ├── loop.json │ │ │ │ ├── loop.sol │ │ │ │ ├── loop_legacy.json │ │ │ │ ├── loop_parseOnly.json │ │ │ │ ├── nested_functions.json │ │ │ │ ├── nested_functions.sol │ │ │ │ ├── nested_functions_legacy.json │ │ │ │ ├── nested_functions_parseOnly.json │ │ │ │ ├── slot_offset.json │ │ │ │ ├── slot_offset.sol │ │ │ │ ├── slot_offset_legacy.json │ │ │ │ ├── slot_offset_parseOnly.json │ │ │ │ ├── stringlit.json │ │ │ │ ├── stringlit.sol │ │ │ │ ├── stringlit_legacy.json │ │ │ │ ├── stringlit_parseOnly.json │ │ │ │ ├── switch.json │ │ │ │ ├── switch.sol │ │ │ │ ├── switch_default.json │ │ │ │ ├── switch_default.sol │ │ │ │ ├── switch_default_legacy.json │ │ │ │ ├── switch_default_parseOnly.json │ │ │ │ ├── switch_legacy.json │ │ │ │ ├── switch_parseOnly.json │ │ │ │ ├── var_access.json │ │ │ │ ├── var_access.sol │ │ │ │ ├── var_access_legacy.json │ │ │ │ └── var_access_parseOnly.json │ │ │ ├── ast_internal_function_different_ids_export.json │ │ │ ├── ast_internal_function_different_ids_export.sol │ │ │ ├── ast_internal_function_id_export.json │ │ │ ├── ast_internal_function_id_export.sol │ │ │ ├── base_constructor_call.json │ │ │ ├── base_constructor_call.sol │ │ │ ├── base_constructor_call_parseOnly.json │ │ │ ├── constructor.json │ │ │ ├── constructor.sol │ │ │ ├── constructor_parseOnly.json │ │ │ ├── contract_dep_order.json │ │ │ ├── contract_dep_order.sol │ │ │ ├── contract_dep_order_parseOnly.json │ │ │ ├── documentation.json │ │ │ ├── documentation.sol │ │ │ ├── documentation_local_variable.json │ │ │ ├── documentation_local_variable.sol │ │ │ ├── documentation_local_variable_parseOnly.json │ │ │ ├── documentation_on_statements.json │ │ │ ├── documentation_on_statements.sol │ │ │ ├── documentation_on_statements_parseOnly.json │ │ │ ├── documentation_parseOnly.json │ │ │ ├── documentation_triple.json │ │ │ ├── documentation_triple.sol │ │ │ ├── documentation_triple_parseOnly.json │ │ │ ├── emit_event_from_module_via_member_access.json │ │ │ ├── emit_event_from_module_via_member_access.sol │ │ │ ├── enum_natspec.json │ │ │ ├── enum_natspec.sol │ │ │ ├── enum_natspec_parseOnly.json │ │ │ ├── enum_value.json │ │ │ ├── enum_value.sol │ │ │ ├── enum_value_declaration.json │ │ │ ├── enum_value_declaration.sol │ │ │ ├── enum_value_declaration_parseOnly.json │ │ │ ├── enum_value_natspec.json │ │ │ ├── enum_value_natspec.sol │ │ │ ├── enum_value_natspec_parseOnly.json │ │ │ ├── enum_value_parseOnly.json │ │ │ ├── error_from_module_via_member_access.json │ │ │ ├── error_from_module_via_member_access.sol │ │ │ ├── event_aggregated_contract.json │ │ │ ├── event_aggregated_contract.sol │ │ │ ├── event_definition.json │ │ │ ├── event_definition.sol │ │ │ ├── event_definition_parseOnly.json │ │ │ ├── event_emited_in_base_contract.json │ │ │ ├── event_emited_in_base_contract.sol │ │ │ ├── event_emitted_from_foreign_contract.json │ │ │ ├── event_emitted_from_foreign_contract.sol │ │ │ ├── event_emitted_from_foreign_contract_parseOnly.json │ │ │ ├── event_inheritance.json │ │ │ ├── event_inheritance.sol │ │ │ ├── event_with_variables_of_internal_types.sol │ │ │ ├── event_with_variables_of_internal_types_parseOnly.json │ │ │ ├── fail_after_parsing.sol │ │ │ ├── fail_after_parsing_parseOnly.json │ │ │ ├── fallback.json │ │ │ ├── fallback.sol │ │ │ ├── fallback_and_receive_ether.json │ │ │ ├── fallback_and_receive_ether.sol │ │ │ ├── fallback_and_receive_ether_parseOnly.json │ │ │ ├── fallback_parseOnly.json │ │ │ ├── fallback_payable.json │ │ │ ├── fallback_payable.sol │ │ │ ├── fallback_payable_parseOnly.json │ │ │ ├── function_type.json │ │ │ ├── function_type.sol │ │ │ ├── function_type_parseOnly.json │ │ │ ├── global_enum.json │ │ │ ├── global_enum.sol │ │ │ ├── global_enum_parseOnly.json │ │ │ ├── global_struct.json │ │ │ ├── global_struct.sol │ │ │ ├── global_struct_parseOnly.json │ │ │ ├── indirect_event.json │ │ │ ├── indirect_event.sol │ │ │ ├── indirect_event_parseOnly.json │ │ │ ├── inheritance_specifier.json │ │ │ ├── inheritance_specifier.sol │ │ │ ├── inheritance_specifier_parseOnly.json │ │ │ ├── license.json │ │ │ ├── license.sol │ │ │ ├── license_parseOnly.json │ │ │ ├── long_type_name_binary_operation.json │ │ │ ├── long_type_name_binary_operation.sol │ │ │ ├── long_type_name_binary_operation_parseOnly.json │ │ │ ├── long_type_name_identifier.json │ │ │ ├── long_type_name_identifier.sol │ │ │ ├── long_type_name_identifier_parseOnly.json │ │ │ ├── mappings.json │ │ │ ├── mappings.sol │ │ │ ├── mappings_parseOnly.json │ │ │ ├── modifier_definition.json │ │ │ ├── modifier_definition.sol │ │ │ ├── modifier_definition_parseOnly.json │ │ │ ├── modifier_invocation.json │ │ │ ├── modifier_invocation.sol │ │ │ ├── modifier_invocation_parseOnly.json │ │ │ ├── mutability.json │ │ │ ├── mutability.sol │ │ │ ├── mutability_parseOnly.json │ │ │ ├── non_utf8.json │ │ │ ├── non_utf8.sol │ │ │ ├── non_utf8_parseOnly.json │ │ │ ├── not_existing_import.sol │ │ │ ├── not_existing_import_parseOnly.json │ │ │ ├── override.json │ │ │ ├── override.sol │ │ │ ├── override_parseOnly.json │ │ │ ├── placeholder_statement.json │ │ │ ├── placeholder_statement.sol │ │ │ ├── placeholder_statement_parseOnly.json │ │ │ ├── pragma_experimental_solidity.sol │ │ │ ├── pragma_experimental_solidity_parseOnly.json │ │ │ ├── receive_ether.json │ │ │ ├── receive_ether.sol │ │ │ ├── receive_ether_parseOnly.json │ │ │ ├── short_type_name.json │ │ │ ├── short_type_name.sol │ │ │ ├── short_type_name_parseOnly.json │ │ │ ├── short_type_name_ref.json │ │ │ ├── short_type_name_ref.sol │ │ │ ├── short_type_name_ref_parseOnly.json │ │ │ ├── smoke.json │ │ │ ├── smoke.sol │ │ │ ├── smoke_parseOnly.json │ │ │ ├── source_location.json │ │ │ ├── source_location.sol │ │ │ ├── source_location_parseOnly.json │ │ │ ├── storage_layout_specifier.json │ │ │ ├── storage_layout_specifier.sol │ │ │ ├── string.json │ │ │ ├── string.sol │ │ │ ├── string_parseOnly.json │ │ │ ├── struct_natspec.json │ │ │ ├── struct_natspec.sol │ │ │ ├── struct_natspec_parseOnly.json │ │ │ ├── two_base_functions.json │ │ │ ├── two_base_functions.sol │ │ │ ├── two_base_functions_parseOnly.json │ │ │ ├── unicode.json │ │ │ ├── unicode.sol │ │ │ ├── unicode_parseOnly.json │ │ │ ├── used_errors.json │ │ │ ├── used_errors.sol │ │ │ ├── used_errors_parseOnly.json │ │ │ ├── userDefinedValueType.json │ │ │ ├── userDefinedValueType.sol │ │ │ ├── userDefinedValueType_parseOnly.json │ │ │ ├── user_defined_operator.json │ │ │ ├── user_defined_operator.sol │ │ │ ├── using_for_directive.json │ │ │ ├── using_for_directive.sol │ │ │ ├── using_for_directive_parseOnly.json │ │ │ ├── yul_hex_literal.json │ │ │ ├── yul_hex_literal.sol │ │ │ └── yul_hex_literal_parseOnly.json │ │ ├── ASTJSONTest.cpp │ │ ├── ASTJSONTest.h │ │ ├── ASTPropertyTest.cpp │ │ ├── ASTPropertyTest.h │ │ ├── AnalysisFramework.cpp │ │ ├── AnalysisFramework.h │ │ ├── Assembly.cpp │ │ ├── ErrorCheck.cpp │ │ ├── ErrorCheck.h │ │ ├── FunctionDependencyGraphTest.cpp │ │ ├── FunctionDependencyGraphTest.h │ │ ├── GasCosts.cpp │ │ ├── GasMeter.cpp │ │ ├── GasTest.cpp │ │ ├── GasTest.h │ │ ├── Imports.cpp │ │ ├── InlineAssembly.cpp │ │ ├── LibSolc.cpp │ │ ├── MemoryGuardTest.cpp │ │ ├── MemoryGuardTest.h │ │ ├── Metadata.cpp │ │ ├── NatspecJSONTest.cpp │ │ ├── NatspecJSONTest.h │ │ ├── OptimizedIRCachingTest.cpp │ │ ├── OptimizedIRCachingTest.h │ │ ├── SMTCheckerTest.cpp │ │ ├── SMTCheckerTest.h │ │ ├── SemVerMatcher.cpp │ │ ├── SemanticTest.cpp │ │ ├── SemanticTest.h │ │ ├── SolidityCompiler.cpp │ │ ├── SolidityEndToEndTest.cpp │ │ ├── SolidityExecutionFramework.cpp │ │ ├── SolidityExecutionFramework.h │ │ ├── SolidityExpressionCompiler.cpp │ │ ├── SolidityNameAndTypeResolution.cpp │ │ ├── SolidityOptimizer.cpp │ │ ├── SolidityParser.cpp │ │ ├── SolidityTypes.cpp │ │ ├── StandardCompiler.cpp │ │ ├── SyntaxTest.cpp │ │ ├── SyntaxTest.h │ │ ├── ViewPureChecker.cpp │ │ ├── analysis/ │ │ │ └── FunctionCallGraph.cpp │ │ ├── astPropertyTests/ │ │ │ ├── blank_test_case.sol │ │ │ ├── forLoop/ │ │ │ │ ├── isSimpleCounterLoop_negative_cases.sol │ │ │ │ └── isSimpleCounterLoop_positive_cases.sol │ │ │ ├── multiple_nested_properties_per_node.sol │ │ │ ├── multiple_properties_per_node.sol │ │ │ ├── nested_properties.sol │ │ │ ├── property_expectation_with_colon.sol │ │ │ ├── simple_properties.sol │ │ │ └── transient_data_location.sol │ │ ├── functionDependencyGraphTests/ │ │ │ ├── callgraph.sol │ │ │ └── callgraph_no_leaves.sol │ │ ├── gasTests/ │ │ │ ├── abiv2.sol │ │ │ ├── abiv2_optimised.sol │ │ │ ├── data_storage.sol │ │ │ ├── dispatch_large.sol │ │ │ ├── dispatch_large_optimised.sol │ │ │ ├── dispatch_medium.sol │ │ │ ├── dispatch_medium_optimised.sol │ │ │ ├── dispatch_small.sol │ │ │ ├── dispatch_small_optimised.sol │ │ │ ├── exp.sol │ │ │ ├── exp_optimized.sol │ │ │ └── storage_costs.sol │ │ ├── interface/ │ │ │ └── FileReader.cpp │ │ ├── lsp/ │ │ │ ├── analyze-full-project/ │ │ │ │ ├── C.sol │ │ │ │ ├── D.sol │ │ │ │ └── E.sol │ │ │ ├── didChange_template.sol │ │ │ ├── didOpen_with_import.sol │ │ │ ├── goto/ │ │ │ │ ├── goto_definition.sol │ │ │ │ ├── goto_definition_imports.sol │ │ │ │ ├── lib.sol │ │ │ │ ├── publish_diagnostics_1.sol │ │ │ │ └── publish_diagnostics_2.sol │ │ │ ├── hover/ │ │ │ │ └── hover.sol │ │ │ ├── include-paths/ │ │ │ │ ├── default_include.sol │ │ │ │ ├── file_at_include_path.sol │ │ │ │ ├── file_not_found_in_searchpath.sol │ │ │ │ └── using-custom-includes.sol │ │ │ ├── include-paths-nested/ │ │ │ │ ├── A/ │ │ │ │ │ ├── B/ │ │ │ │ │ │ ├── C/ │ │ │ │ │ │ │ └── foo.sol │ │ │ │ │ │ └── foo.sol │ │ │ │ │ └── foo.sol │ │ │ │ └── foo.sol │ │ │ ├── include-paths-nested-2/ │ │ │ │ ├── A/ │ │ │ │ │ ├── B/ │ │ │ │ │ │ ├── C/ │ │ │ │ │ │ │ └── foo.sol │ │ │ │ │ │ └── foo.sol │ │ │ │ │ └── foo.sol │ │ │ │ └── foo.sol │ │ │ ├── other-include-dir/ │ │ │ │ └── otherlib/ │ │ │ │ ├── otherlib.sol │ │ │ │ └── second.sol │ │ │ ├── publish_diagnostics_3.sol │ │ │ ├── rename/ │ │ │ │ ├── contract.sol │ │ │ │ ├── function.sol │ │ │ │ ├── functionCall.sol │ │ │ │ ├── import_directive.sol │ │ │ │ └── variable.sol │ │ │ └── semanticTokens/ │ │ │ ├── enums.sol │ │ │ ├── functions.sol │ │ │ ├── modifiers.sol │ │ │ └── structs.sol │ │ ├── memoryGuardTests/ │ │ │ ├── comment/ │ │ │ │ ├── constructor_safe_deploy_unsafe.sol │ │ │ │ ├── constructor_unsafe_deploy_safe.sol │ │ │ │ ├── free_function.sol │ │ │ │ ├── multi_annotation.sol │ │ │ │ ├── multiple_contracts.sol │ │ │ │ ├── safe_and_unmarked_empty.sol │ │ │ │ └── safe_and_unmarked_unsafe.sol │ │ │ ├── dialectString/ │ │ │ │ ├── constructor_safe_deploy_unsafe.sol │ │ │ │ ├── constructor_unsafe_deploy_safe.sol │ │ │ │ ├── free_function.sol │ │ │ │ ├── multiple_contracts.sol │ │ │ │ ├── safe_and_unmarked_empty.sol │ │ │ │ ├── safe_and_unmarked_unsafe.sol │ │ │ │ └── stub.sol │ │ │ ├── marked_empty.sol │ │ │ ├── marked_with_memory_access.sol │ │ │ ├── shadowing_memoryguard_with_inline_assembly_identifiers.sol │ │ │ ├── stub.sol │ │ │ ├── unmarked_but_no_memory_access.sol │ │ │ ├── unmarked_empty.sol │ │ │ ├── unmarked_with_memory_access_mcopy.sol │ │ │ ├── unmarked_with_memory_access_mcopy_zero_size.sol │ │ │ ├── unmarked_with_memory_access_mstore.sol │ │ │ └── unmarked_with_memory_assignment.sol │ │ ├── natspecJSON/ │ │ │ ├── custom.sol │ │ │ ├── custom_inheritance.sol │ │ │ ├── dev_and_user_basic_test.sol │ │ │ ├── dev_and_user_no_doc.sol │ │ │ ├── dev_author_at_function.sol │ │ │ ├── dev_constructor.sol │ │ │ ├── dev_constructor_and_function.sol │ │ │ ├── dev_constructor_return.sol │ │ │ ├── dev_contract_doc.sol │ │ │ ├── dev_contract_no_doc.sol │ │ │ ├── dev_default_inherit.sol │ │ │ ├── dev_default_inherit_variable.sol │ │ │ ├── dev_desc_after_nl.sol │ │ │ ├── dev_different_return_name.sol │ │ │ ├── dev_different_return_name_multiple.sol │ │ │ ├── dev_different_return_name_multiple_partly_unnamed.sol │ │ │ ├── dev_different_return_name_multiple_unnamed.sol │ │ │ ├── dev_documenting_no_param_description.sol │ │ │ ├── dev_documenting_no_param_name.sol │ │ │ ├── dev_documenting_no_param_name_end.sol │ │ │ ├── dev_documenting_no_return_param_name.sol │ │ │ ├── dev_documenting_nonexistent_param.sol │ │ │ ├── dev_explicit_inherit.sol │ │ │ ├── dev_explicit_inherit2.sol │ │ │ ├── dev_explicit_inherit_complex.sol │ │ │ ├── dev_explicit_inherit_partial.sol │ │ │ ├── dev_explicit_inherit_partial2.sol │ │ │ ├── dev_explicit_inherit_variable.sol │ │ │ ├── dev_inherit_parameter_mismatch.sol │ │ │ ├── dev_multiline_comment.sol │ │ │ ├── dev_multiline_param_description.sol │ │ │ ├── dev_multiline_return.sol │ │ │ ├── dev_multiple_functions.sol │ │ │ ├── dev_multiple_params.sol │ │ │ ├── dev_multiple_params_mixed_whitespace.sol │ │ │ ├── dev_return.sol │ │ │ ├── dev_return_desc_after_nl.sol │ │ │ ├── dev_return_desc_multiple.sol │ │ │ ├── dev_return_desc_multiple_unnamed.sol │ │ │ ├── dev_return_desc_multiple_unnamed_mixed.sol │ │ │ ├── dev_return_desc_multiple_unnamed_mixed_2.sol │ │ │ ├── dev_return_name_no_description.sol │ │ │ ├── dev_return_no_params.sol │ │ │ ├── dev_struct_getter_override.sol │ │ │ ├── dev_struct_getter_override_different_return_parameter_names.sol │ │ │ ├── dev_struct_getter_override_no_return_name.sol │ │ │ ├── dev_title_at_function_error.sol │ │ │ ├── docstring_double_empty.sol │ │ │ ├── docstring_named_return_parameter.sol │ │ │ ├── docstring_parameter.sol │ │ │ ├── docstring_private_state_variable.sol │ │ │ ├── docstring_state_variable.sol │ │ │ ├── docstring_struct.sol │ │ │ ├── docstring_variable.sol │ │ │ ├── emit_event_from_foreign_contract.sol │ │ │ ├── emit_event_from_foreign_contract_no_inheritance.sol │ │ │ ├── emit_event_from_foreign_contract_with_same_signature.sol │ │ │ ├── emit_event_from_module_via_member_access.sol │ │ │ ├── emit_file_level_event.sol │ │ │ ├── emit_file_level_event_inheritance.sol │ │ │ ├── emit_file_level_event_with_same_signature_as_foreign_event.sol │ │ │ ├── emit_same_signature_event_different_libraries.sol │ │ │ ├── emit_same_signature_event_different_libraries_missing_natspec.sol │ │ │ ├── emit_same_signature_event_library_contract.sol │ │ │ ├── emit_same_signature_event_library_contract_missing_natspec.sol │ │ │ ├── emit_same_signature_event_library_inherited.sol │ │ │ ├── emit_same_signature_event_library_inherited_missing_natspec.sol │ │ │ ├── empty_comment.sol │ │ │ ├── enum.sol │ │ │ ├── enum_value.sol │ │ │ ├── error.sol │ │ │ ├── error_from_module_via_member_access.sol │ │ │ ├── error_multiple.sol │ │ │ ├── event.sol │ │ │ ├── event_inheritance.sol │ │ │ ├── event_inheritance_interface.sol │ │ │ ├── invalid/ │ │ │ │ ├── docstring_author_function.sol │ │ │ │ ├── docstring_author_title_state_variable.sol │ │ │ │ ├── docstring_empty_description.sol │ │ │ │ ├── docstring_empty_tag.sol │ │ │ │ ├── docstring_inherit_modifier_no_return.sol │ │ │ │ ├── docstring_inherit_modifier_no_return2.sol │ │ │ │ ├── docstring_inheritdoc.sol │ │ │ │ ├── docstring_inheritdoc2.sol │ │ │ │ ├── docstring_inheritdoc3.sol │ │ │ │ ├── docstring_inheritdoc_emptys.sol │ │ │ │ ├── docstring_inheritdoc_twice.sol │ │ │ │ ├── docstring_inheritdoc_wrong_type.sol │ │ │ │ ├── docstring_named_return_param_mismatch.sol │ │ │ │ ├── docstring_non_public_state_variable_with_return.sol │ │ │ │ ├── docstring_parameter.sol │ │ │ │ ├── docstring_return_size_mismatch.sol │ │ │ │ ├── docstring_state_variable_too_many_return_tags.sol │ │ │ │ ├── docstring_too_many_return_tags.sol │ │ │ │ ├── inherit_doc_events.sol │ │ │ │ └── invalid_tag.sol │ │ │ ├── multiline_notice_without_tag.sol │ │ │ ├── notice_without_tag.sol │ │ │ ├── private_state_variable.sol │ │ │ ├── public_state_variable.sol │ │ │ ├── public_state_variable_struct.sol │ │ │ ├── public_state_variable_struct_repeated.sol │ │ │ ├── return_param_amount_differs.sol │ │ │ ├── return_param_amount_differs2.sol │ │ │ ├── slash3_slash3.sol │ │ │ ├── slash3_slash4.sol │ │ │ ├── slash4.sol │ │ │ ├── star3.sol │ │ │ ├── storage_layout_specifier_no_doc.sol │ │ │ ├── struct_no_docs.sol │ │ │ ├── unused_file_level_event.sol │ │ │ ├── user_basic_test.sol │ │ │ ├── user_constructor.sol │ │ │ ├── user_constructor_and_function.sol │ │ │ ├── user_default_inherit.sol │ │ │ ├── user_default_inherit_variable.sol │ │ │ ├── user_empty_contract.sol │ │ │ ├── user_empty_natspec_test.sol │ │ │ ├── user_explicit_inherit.sol │ │ │ ├── user_explicit_inherit2.sol │ │ │ ├── user_explicit_inherit_partial.sol │ │ │ ├── user_explicit_inherit_partial2.sol │ │ │ ├── user_explicit_inherit_variable.sol │ │ │ ├── user_inherit_parameter_mismatch.sol │ │ │ ├── user_multiline_comment.sol │ │ │ ├── user_multiline_empty_lines.sol │ │ │ ├── user_multiple_functions.sol │ │ │ └── user_newline_break.sol │ │ ├── optimizedIRCaching/ │ │ │ ├── bytecode_dependency_creation.sol │ │ │ ├── bytecode_dependency_creation_and_runtime.sol │ │ │ ├── bytecode_dependency_creation_and_runtime_shared.sol │ │ │ ├── bytecode_dependency_runtime.sol │ │ │ ├── bytecode_dependency_shared_by_multiple_contracts.sol │ │ │ ├── multiple_contracts.sol │ │ │ ├── no_contracts.sol │ │ │ └── single_contract.sol │ │ ├── semanticTests/ │ │ │ ├── abiEncodeDecode/ │ │ │ │ ├── abi_decode_calldata.sol │ │ │ │ ├── abi_decode_simple.sol │ │ │ │ ├── abi_decode_simple_storage.sol │ │ │ │ ├── abi_encode_call.sol │ │ │ │ ├── abi_encode_call_declaration.sol │ │ │ │ ├── abi_encode_call_is_consistent.sol │ │ │ │ ├── abi_encode_call_memory.sol │ │ │ │ ├── abi_encode_call_special_args.sol │ │ │ │ ├── abi_encode_call_uint_bytes.sol │ │ │ │ ├── abi_encode_empty_string_v1.sol │ │ │ │ ├── abi_encode_with_selector.sol │ │ │ │ ├── abi_encode_with_selectorv2.sol │ │ │ │ ├── abi_encode_with_signature.sol │ │ │ │ ├── abi_encode_with_signaturev2.sol │ │ │ │ ├── contract_array.sol │ │ │ │ ├── contract_array_v2.sol │ │ │ │ ├── offset_overflow_in_array_decoding.sol │ │ │ │ ├── offset_overflow_in_array_decoding_2.sol │ │ │ │ └── offset_overflow_in_array_decoding_3.sol │ │ │ ├── abiEncoderV1/ │ │ │ │ ├── abi_decode_dynamic_array.sol │ │ │ │ ├── abi_decode_fixed_arrays.sol │ │ │ │ ├── abi_decode_static_array.sol │ │ │ │ ├── abi_decode_static_array_v2.sol │ │ │ │ ├── abi_decode_trivial.sol │ │ │ │ ├── abi_decode_v2.sol │ │ │ │ ├── abi_decode_v2_calldata.sol │ │ │ │ ├── abi_decode_v2_storage.sol │ │ │ │ ├── abi_encode.sol │ │ │ │ ├── abi_encode_call.sol │ │ │ │ ├── abi_encode_calldata_slice.sol │ │ │ │ ├── abi_encode_decode_simple.sol │ │ │ │ ├── abi_encode_empty_string.sol │ │ │ │ ├── abi_encode_rational.sol │ │ │ │ ├── bool_out_of_bounds.sol │ │ │ │ ├── byte_arrays.sol │ │ │ │ ├── calldata_arrays_too_large.sol │ │ │ │ ├── calldata_bytes_bytes32_arrays.sol │ │ │ │ ├── cleanup/ │ │ │ │ │ └── cleanup.sol │ │ │ │ ├── decode_slice.sol │ │ │ │ ├── dynamic_arrays.sol │ │ │ │ ├── dynamic_memory_copy.sol │ │ │ │ ├── enums.sol │ │ │ │ ├── memory_dynamic_array_and_calldata_bytes.sol │ │ │ │ ├── memory_params_in_external_function.sol │ │ │ │ ├── return_dynamic_types_cross_call_advanced.sol │ │ │ │ ├── return_dynamic_types_cross_call_out_of_range_1.sol │ │ │ │ ├── return_dynamic_types_cross_call_out_of_range_2.sol │ │ │ │ ├── return_dynamic_types_cross_call_simple.sol │ │ │ │ └── struct/ │ │ │ │ └── struct_storage_ptr.sol │ │ │ ├── abiEncoderV2/ │ │ │ │ ├── abi_encode_calldata_slice.sol │ │ │ │ ├── abi_encode_empty_string_v2.sol │ │ │ │ ├── abi_encode_rational_v2.sol │ │ │ │ ├── abi_encode_v2.sol │ │ │ │ ├── abi_encode_v2_in_function_inherited_in_v1_contract.sol │ │ │ │ ├── abi_encode_v2_in_modifier_used_in_v1_contract.sol │ │ │ │ ├── abi_encoder_v2_head_overflow_with_static_array_cleanup_bug.sol │ │ │ │ ├── bool_out_of_bounds.sol │ │ │ │ ├── byte_arrays.sol │ │ │ │ ├── calldata_array.sol │ │ │ │ ├── calldata_array_dynamic.sol │ │ │ │ ├── calldata_array_dynamic_index_access.sol │ │ │ │ ├── calldata_array_dynamic_static_dynamic.sol │ │ │ │ ├── calldata_array_dynamic_static_in_library.sol │ │ │ │ ├── calldata_array_dynamic_static_short_decode.sol │ │ │ │ ├── calldata_array_dynamic_static_short_reencode.sol │ │ │ │ ├── calldata_array_function_types.sol │ │ │ │ ├── calldata_array_multi_dynamic.sol │ │ │ │ ├── calldata_array_short.sol │ │ │ │ ├── calldata_array_short_no_revert_string.sol │ │ │ │ ├── calldata_array_static.sol │ │ │ │ ├── calldata_array_static_dynamic_static.sol │ │ │ │ ├── calldata_array_static_index_access.sol │ │ │ │ ├── calldata_array_struct_dynamic.sol │ │ │ │ ├── calldata_array_two_dynamic.sol │ │ │ │ ├── calldata_array_two_static.sol │ │ │ │ ├── calldata_dynamic_array_to_memory.sol │ │ │ │ ├── calldata_nested_array_reencode.sol │ │ │ │ ├── calldata_nested_array_static_reencode.sol │ │ │ │ ├── calldata_overlapped_dynamic_arrays.sol │ │ │ │ ├── calldata_overlapped_nested_dynamic_arrays.sol │ │ │ │ ├── calldata_struct_array_reencode.sol │ │ │ │ ├── calldata_struct_dynamic.sol │ │ │ │ ├── calldata_struct_member_offset.sol │ │ │ │ ├── calldata_struct_simple.sol │ │ │ │ ├── calldata_three_dimensional_dynamic_array_index_access.sol │ │ │ │ ├── calldata_with_garbage.sol │ │ │ │ ├── cleanup/ │ │ │ │ │ ├── address.sol │ │ │ │ │ ├── bool.sol │ │ │ │ │ ├── bytesx.sol │ │ │ │ │ ├── cleanup.sol │ │ │ │ │ ├── dynamic_array.sol │ │ │ │ │ ├── function.sol │ │ │ │ │ ├── intx.sol │ │ │ │ │ ├── reencoded_calldata_string.sol │ │ │ │ │ ├── simple_struct.sol │ │ │ │ │ ├── static_array.sol │ │ │ │ │ └── uintx.sol │ │ │ │ ├── dynamic_arrays.sol │ │ │ │ ├── dynamic_nested_arrays.sol │ │ │ │ ├── enums.sol │ │ │ │ ├── memory_dynamic_array_and_calldata_bytes.sol │ │ │ │ ├── memory_dynamic_array_and_calldata_static_array.sol │ │ │ │ ├── memory_params_in_external_function.sol │ │ │ │ ├── storage_array_encoding.sol │ │ │ │ └── struct/ │ │ │ │ ├── mediocre2_struct.sol │ │ │ │ ├── mediocre_struct.sol │ │ │ │ ├── struct_function.sol │ │ │ │ ├── struct_short.sol │ │ │ │ ├── struct_simple.sol │ │ │ │ ├── struct_validation.sol │ │ │ │ └── validation_function_type_inside_struct.sol │ │ │ ├── accessor/ │ │ │ │ ├── accessor_for_const_state_variable.sol │ │ │ │ └── accessor_for_state_variable.sol │ │ │ ├── arithmetics/ │ │ │ │ ├── addmod_mulmod.sol │ │ │ │ ├── addmod_mulmod_zero.sol │ │ │ │ ├── block_inside_unchecked.sol │ │ │ │ ├── check_var_init.sol │ │ │ │ ├── checked_add_v1.sol │ │ │ │ ├── checked_add_v2.sol │ │ │ │ ├── checked_called_by_unchecked.sol │ │ │ │ ├── checked_modifier_called_by_unchecked.sol │ │ │ │ ├── divisiod_by_zero.sol │ │ │ │ ├── exp_associativity.sol │ │ │ │ ├── signed_mod.sol │ │ │ │ ├── unchecked_called_by_checked.sol │ │ │ │ └── unchecked_div_by_zero.sol │ │ │ ├── array/ │ │ │ │ ├── arrayMemoryAllocation/ │ │ │ │ │ ├── array_2d_zeroed_memory_index_access.sol │ │ │ │ │ ├── array_array_static.sol │ │ │ │ │ ├── array_static_return_param_zeroed_memory_index_access.sol │ │ │ │ │ ├── array_static_zeroed_memory_index_access.sol │ │ │ │ │ └── array_zeroed_memory_index_access.sol │ │ │ │ ├── array_2d_assignment.sol │ │ │ │ ├── array_2d_new.sol │ │ │ │ ├── array_3d_assignment.sol │ │ │ │ ├── array_3d_new.sol │ │ │ │ ├── array_function_pointers.sol │ │ │ │ ├── array_memory_as_parameter.sol │ │ │ │ ├── array_memory_create.sol │ │ │ │ ├── array_memory_index_access.sol │ │ │ │ ├── array_push_return_reference.sol │ │ │ │ ├── array_push_with_arg.sol │ │ │ │ ├── array_storage_index_access.sol │ │ │ │ ├── array_storage_index_boundary_test.sol │ │ │ │ ├── array_storage_index_zeroed_test.sol │ │ │ │ ├── array_storage_length_access.sol │ │ │ │ ├── array_storage_pop_zero_length.sol │ │ │ │ ├── array_storage_push_empty.sol │ │ │ │ ├── array_storage_push_empty_length_address.sol │ │ │ │ ├── array_storage_push_pop.sol │ │ │ │ ├── arrays_complex_from_and_to_storage.sol │ │ │ │ ├── byte_array_storage_layout.sol │ │ │ │ ├── byte_array_transitional_2.sol │ │ │ │ ├── bytes_length_member.sol │ │ │ │ ├── bytes_to_fixed_bytes_cleanup.sol │ │ │ │ ├── bytes_to_fixed_bytes_simple.sol │ │ │ │ ├── bytes_to_fixed_bytes_too_long.sol │ │ │ │ ├── calldata_array.sol │ │ │ │ ├── calldata_array_as_argument_internal_function.sol │ │ │ │ ├── calldata_array_dynamic_invalid.sol │ │ │ │ ├── calldata_array_dynamic_invalid_static_middle.sol │ │ │ │ ├── calldata_array_of_struct.sol │ │ │ │ ├── calldata_array_two_dimensional.sol │ │ │ │ ├── calldata_array_two_dimensional_1.sol │ │ │ │ ├── calldata_bytes_array_bounds.sol │ │ │ │ ├── calldata_slice_access.sol │ │ │ │ ├── concat/ │ │ │ │ │ ├── bytes_concat_2_args.sol │ │ │ │ │ ├── bytes_concat_3_args.sol │ │ │ │ │ ├── bytes_concat_as_argument.sol │ │ │ │ │ ├── bytes_concat_different_types.sol │ │ │ │ │ ├── bytes_concat_empty_argument_list.sol │ │ │ │ │ ├── bytes_concat_empty_strings.sol │ │ │ │ │ └── bytes_concat_nested.sol │ │ │ │ ├── constant_var_as_array_length.sol │ │ │ │ ├── copying/ │ │ │ │ │ ├── array_copy_calldata_storage.sol │ │ │ │ │ ├── array_copy_cleanup_uint128.sol │ │ │ │ │ ├── array_copy_cleanup_uint40.sol │ │ │ │ │ ├── array_copy_clear_storage.sol │ │ │ │ │ ├── array_copy_clear_storage_packed.sol │ │ │ │ │ ├── array_copy_different_packing.sol │ │ │ │ │ ├── array_copy_including_array.sol │ │ │ │ │ ├── array_copy_memory_to_storage.sol │ │ │ │ │ ├── array_copy_nested_array.sol │ │ │ │ │ ├── array_copy_storage_abi_signed.sol │ │ │ │ │ ├── array_copy_storage_storage_different_base.sol │ │ │ │ │ ├── array_copy_storage_storage_different_base_nested.sol │ │ │ │ │ ├── array_copy_storage_storage_dyn_dyn.sol │ │ │ │ │ ├── array_copy_storage_storage_dynamic_dynamic.sol │ │ │ │ │ ├── array_copy_storage_storage_static_dynamic.sol │ │ │ │ │ ├── array_copy_storage_storage_static_simple.sol │ │ │ │ │ ├── array_copy_storage_storage_static_static.sol │ │ │ │ │ ├── array_copy_storage_storage_struct.sol │ │ │ │ │ ├── array_copy_storage_to_memory.sol │ │ │ │ │ ├── array_copy_storage_to_memory_nested.sol │ │ │ │ │ ├── array_copy_target_leftover.sol │ │ │ │ │ ├── array_copy_target_leftover2.sol │ │ │ │ │ ├── array_copy_target_simple.sol │ │ │ │ │ ├── array_copy_target_simple_2.sol │ │ │ │ │ ├── array_elements_to_mapping.sol │ │ │ │ │ ├── array_nested_calldata_to_memory.sol │ │ │ │ │ ├── array_nested_calldata_to_storage.sol │ │ │ │ │ ├── array_nested_memory_to_storage.sol │ │ │ │ │ ├── array_nested_storage_to_memory.sol │ │ │ │ │ ├── array_of_function_external_storage_to_storage_dynamic.sol │ │ │ │ │ ├── array_of_function_external_storage_to_storage_dynamic_different_mutability.sol │ │ │ │ │ ├── array_of_struct_calldata_to_memory.sol │ │ │ │ │ ├── array_of_struct_calldata_to_storage.sol │ │ │ │ │ ├── array_of_struct_memory_to_storage.sol │ │ │ │ │ ├── array_of_structs_containing_arrays_calldata_to_memory.sol │ │ │ │ │ ├── array_of_structs_containing_arrays_calldata_to_storage.sol │ │ │ │ │ ├── array_of_structs_containing_arrays_memory_to_storage.sol │ │ │ │ │ ├── array_storage_multi_items_per_slot.sol │ │ │ │ │ ├── array_to_mapping.sol │ │ │ │ │ ├── arrays_from_and_to_storage.sol │ │ │ │ │ ├── bytes_calldata_to_string_calldata.sol │ │ │ │ │ ├── bytes_inside_mappings.sol │ │ │ │ │ ├── bytes_memory_to_storage.sol │ │ │ │ │ ├── bytes_storage_to_memory.sol │ │ │ │ │ ├── bytes_storage_to_storage.sol │ │ │ │ │ ├── calldata_1d_array_into_2d_memory_array_element.sol │ │ │ │ │ ├── calldata_2d_bytes_to_memory.sol │ │ │ │ │ ├── calldata_2d_bytes_to_memory_2.sol │ │ │ │ │ ├── calldata_array_dynamic_to_storage.sol │ │ │ │ │ ├── calldata_array_of_struct_to_memory.sol │ │ │ │ │ ├── calldata_array_static_to_memory.sol │ │ │ │ │ ├── calldata_array_to_mapping.sol │ │ │ │ │ ├── calldata_bytes_array_to_memory.sol │ │ │ │ │ ├── calldata_bytes_to_storage.sol │ │ │ │ │ ├── calldata_dyn_2d_bytes_to_memory.sol │ │ │ │ │ ├── calldata_dynamic_array_to_memory.sol │ │ │ │ │ ├── calldata_nested_array_copy_to_memory.sol │ │ │ │ │ ├── calldata_to_storage_different_base.sol │ │ │ │ │ ├── cleanup_during_multi_element_per_slot_copy.sol │ │ │ │ │ ├── copy_byte_array_in_struct_to_storage.sol │ │ │ │ │ ├── copy_byte_array_to_storage.sol │ │ │ │ │ ├── copy_function_internal_storage_array.sol │ │ │ │ │ ├── copy_internal_function_array_to_storage.sol │ │ │ │ │ ├── copy_removes_bytes_data.sol │ │ │ │ │ ├── copying_bytes_multiassign.sol │ │ │ │ │ ├── dirty_memory_bytes_to_storage_copy.sol │ │ │ │ │ ├── dirty_memory_bytes_to_storage_copy_ir.sol │ │ │ │ │ ├── elements_of_nested_array_of_structs_calldata_to_storage.sol │ │ │ │ │ ├── elements_of_nested_array_of_structs_memory_to_storage.sol │ │ │ │ │ ├── empty_bytes_copy.sol │ │ │ │ │ ├── function_type_array_to_storage.sol │ │ │ │ │ ├── memory_dyn_2d_bytes_to_storage.sol │ │ │ │ │ ├── memory_to_storage_different_base.sol │ │ │ │ │ ├── nested_array_element_calldata_to_memory.sol │ │ │ │ │ ├── nested_array_element_calldata_to_storage.sol │ │ │ │ │ ├── nested_array_element_memory_to_memory.sol │ │ │ │ │ ├── nested_array_element_memory_to_storage.sol │ │ │ │ │ ├── nested_array_element_storage_to_memory.sol │ │ │ │ │ ├── nested_array_element_storage_to_storage.sol │ │ │ │ │ ├── nested_array_of_structs_calldata_to_memory.sol │ │ │ │ │ ├── nested_array_of_structs_calldata_to_storage.sol │ │ │ │ │ ├── nested_array_of_structs_memory_to_memory.sol │ │ │ │ │ ├── nested_array_of_structs_memory_to_storage.sol │ │ │ │ │ ├── nested_array_of_structs_storage_to_storage.sol │ │ │ │ │ ├── nested_array_of_structs_with_nested_array_from_storage_to_memory.sol │ │ │ │ │ ├── nested_dynamic_array_element_calldata_to_storage.sol │ │ │ │ │ ├── storage_memory_nested.sol │ │ │ │ │ ├── storage_memory_nested_bytes.sol │ │ │ │ │ ├── storage_memory_nested_from_pointer.sol │ │ │ │ │ ├── storage_memory_nested_struct.sol │ │ │ │ │ ├── storage_memory_packed.sol │ │ │ │ │ ├── storage_memory_packed_dyn.sol │ │ │ │ │ └── string_calldata_to_bytes_calldata.sol │ │ │ │ ├── create_dynamic_array_with_zero_length.sol │ │ │ │ ├── create_memory_array.sol │ │ │ │ ├── create_memory_array_too_large.sol │ │ │ │ ├── create_memory_byte_array.sol │ │ │ │ ├── create_multiple_dynamic_arrays.sol │ │ │ │ ├── delete/ │ │ │ │ │ ├── bytes_delete_element.sol │ │ │ │ │ ├── delete_bytes_array.sol │ │ │ │ │ ├── delete_memory_array.sol │ │ │ │ │ ├── delete_on_array_of_structs.sol │ │ │ │ │ ├── delete_removes_bytes_data.sol │ │ │ │ │ ├── delete_storage_array.sol │ │ │ │ │ ├── delete_storage_array_packed.sol │ │ │ │ │ └── memory_arrays_delete.sol │ │ │ │ ├── dynamic_array_cleanup.sol │ │ │ │ ├── dynamic_arrays_in_storage.sol │ │ │ │ ├── dynamic_multi_array_cleanup.sol │ │ │ │ ├── dynamic_out_of_bounds_array_access.sol │ │ │ │ ├── evm_exceptions_out_of_band_access.sol │ │ │ │ ├── external_array_args.sol │ │ │ │ ├── fixed_array_cleanup.sol │ │ │ │ ├── fixed_arrays_as_return_type.sol │ │ │ │ ├── fixed_arrays_in_constructors.sol │ │ │ │ ├── fixed_arrays_in_storage.sol │ │ │ │ ├── fixed_bytes_length_access.sol │ │ │ │ ├── fixed_out_of_bounds_array_access.sol │ │ │ │ ├── function_array_cross_calls.sol │ │ │ │ ├── function_memory_array.sol │ │ │ │ ├── indexAccess/ │ │ │ │ │ ├── arrays_complex_memory_index_access.sol │ │ │ │ │ ├── bytes_index_access.sol │ │ │ │ │ ├── bytes_index_access_memory.sol │ │ │ │ │ ├── bytes_memory_index_access.sol │ │ │ │ │ ├── fixed_bytes_index_access.sol │ │ │ │ │ ├── index_access.sol │ │ │ │ │ ├── inline_array_index_access_ints.sol │ │ │ │ │ ├── inline_array_index_access_strings.sol │ │ │ │ │ ├── memory_arrays_dynamic_index_access_write.sol │ │ │ │ │ └── memory_arrays_index_access_write.sol │ │ │ │ ├── inline_array_return.sol │ │ │ │ ├── inline_array_singleton.sol │ │ │ │ ├── inline_array_storage_to_memory_conversion_ints.sol │ │ │ │ ├── inline_array_storage_to_memory_conversion_strings.sol │ │ │ │ ├── inline_array_strings_from_document.sol │ │ │ │ ├── invalid_encoding_for_storage_byte_array.sol │ │ │ │ ├── long_byte_array_cleanup_after_delete.sol │ │ │ │ ├── long_byte_array_cleanup_after_overwrite_with_long.sol │ │ │ │ ├── memory.sol │ │ │ │ ├── memory_arrays_of_various_sizes.sol │ │ │ │ ├── nested_calldata_storage.sol │ │ │ │ ├── nested_calldata_storage2.sol │ │ │ │ ├── pop/ │ │ │ │ │ ├── array_pop.sol │ │ │ │ │ ├── array_pop_array_transition.sol │ │ │ │ │ ├── array_pop_empty_exception.sol │ │ │ │ │ ├── array_pop_isolated.sol │ │ │ │ │ ├── array_pop_storage_empty.sol │ │ │ │ │ ├── array_pop_uint16_transition.sol │ │ │ │ │ ├── array_pop_uint24_transition.sol │ │ │ │ │ ├── byte_array_pop.sol │ │ │ │ │ ├── byte_array_pop_copy_long.sol │ │ │ │ │ ├── byte_array_pop_empty_exception.sol │ │ │ │ │ ├── byte_array_pop_isolated.sol │ │ │ │ │ ├── byte_array_pop_long_storage_empty.sol │ │ │ │ │ ├── byte_array_pop_long_storage_empty_garbage_ref.sol │ │ │ │ │ ├── byte_array_pop_masking_long.sol │ │ │ │ │ ├── byte_array_pop_storage_empty.sol │ │ │ │ │ └── parenthesized.sol │ │ │ │ ├── push/ │ │ │ │ │ ├── array_push.sol │ │ │ │ │ ├── array_push_nested.sol │ │ │ │ │ ├── array_push_nested_from_calldata.sol │ │ │ │ │ ├── array_push_nested_from_memory.sol │ │ │ │ │ ├── array_push_packed_array.sol │ │ │ │ │ ├── array_push_struct.sol │ │ │ │ │ ├── array_push_struct_from_calldata.sol │ │ │ │ │ ├── byte_array_push.sol │ │ │ │ │ ├── byte_array_push_transition.sol │ │ │ │ │ ├── nested_bytes_push.sol │ │ │ │ │ ├── push_no_args_1d.sol │ │ │ │ │ ├── push_no_args_2d.sol │ │ │ │ │ ├── push_no_args_bytes.sol │ │ │ │ │ └── push_no_args_struct.sol │ │ │ │ ├── reusing_memory.sol │ │ │ │ ├── short_fixed_array_cleanup.sol │ │ │ │ ├── slices/ │ │ │ │ │ ├── array_calldata_assignment.sol │ │ │ │ │ ├── array_slice_calldata_as_argument_of_external_calls.sol │ │ │ │ │ ├── array_slice_calldata_to_calldata.sol │ │ │ │ │ ├── array_slice_calldata_to_memory.sol │ │ │ │ │ └── array_slice_calldata_to_storage.sol │ │ │ │ ├── storage_array_ref.sol │ │ │ │ ├── string_allocation_bug.sol │ │ │ │ ├── string_bytes_conversion.sol │ │ │ │ ├── string_literal_assign_to_storage_bytes.sol │ │ │ │ └── strings_in_struct.sol │ │ │ ├── builtinFunctions/ │ │ │ │ ├── assignment_to_const_var_involving_keccak.sol │ │ │ │ ├── blobhash.sol │ │ │ │ ├── blobhash_shadow_resolution.sol │ │ │ │ ├── blockhash.sol │ │ │ │ ├── blockhash_shadow_resolution.sol │ │ │ │ ├── erc7201_equivalent_solidity_spec.sol │ │ │ │ ├── erc7201_equivalent_solidity_spec_comptime.sol │ │ │ │ ├── erc7201_layout_specifier_slot_match_comptime.sol │ │ │ │ ├── erc7201_overflow_expression.sol │ │ │ │ ├── erc7201_param_abi_encode.sol │ │ │ │ ├── erc7201_param_array_string_literal.sol │ │ │ │ ├── erc7201_param_locations.sol │ │ │ │ ├── erc7201_param_pure_function.sol │ │ │ │ ├── erc7201_param_string_concat.sol │ │ │ │ ├── erc7201_param_string_literal_with_escaped_chars.sol │ │ │ │ ├── erc7201_param_ternary_operator.sol │ │ │ │ ├── erc7201_param_unicode_string_literal.sol │ │ │ │ ├── erc7201_param_unicode_string_variable.sol │ │ │ │ ├── erc7201_param_with_zero_last_byte_of_inner_hash.sol │ │ │ │ ├── erc7201_param_with_zero_last_byte_of_inner_hash_comptime.sol │ │ │ │ ├── function_types_sig.sol │ │ │ │ ├── iterated_keccak256_with_bytes.sol │ │ │ │ ├── keccak256.sol │ │ │ │ ├── keccak256_empty.sol │ │ │ │ ├── keccak256_multiple_arguments.sol │ │ │ │ ├── keccak256_multiple_arguments_with_numeric_literals.sol │ │ │ │ ├── keccak256_multiple_arguments_with_string_literals.sol │ │ │ │ ├── keccak256_packed.sol │ │ │ │ ├── keccak256_packed_complex_types.sol │ │ │ │ ├── keccak256_with_bytes.sol │ │ │ │ ├── msg_sig.sol │ │ │ │ ├── msg_sig_after_internal_call_is_same.sol │ │ │ │ ├── ripemd160.sol │ │ │ │ ├── ripemd160_empty.sol │ │ │ │ ├── ripemd160_packed.sol │ │ │ │ ├── sha256.sol │ │ │ │ ├── sha256_empty.sol │ │ │ │ └── sha256_packed.sol │ │ │ ├── calldata/ │ │ │ │ ├── calldata_array_access.sol │ │ │ │ ├── calldata_array_dynamic_bytes.sol │ │ │ │ ├── calldata_array_index_range_access.sol │ │ │ │ ├── calldata_array_length.sol │ │ │ │ ├── calldata_array_three_dimensional.sol │ │ │ │ ├── calldata_attached_to_bytes.sol │ │ │ │ ├── calldata_attached_to_dynamic_array_or_slice.sol │ │ │ │ ├── calldata_attached_to_static_array.sol │ │ │ │ ├── calldata_attached_to_struct.sol │ │ │ │ ├── calldata_bytes_array_bounds.sol │ │ │ │ ├── calldata_bytes_external.sol │ │ │ │ ├── calldata_bytes_internal.sol │ │ │ │ ├── calldata_bytes_to_memory.sol │ │ │ │ ├── calldata_bytes_to_memory_encode.sol │ │ │ │ ├── calldata_internal_function_pointer.sol │ │ │ │ ├── calldata_internal_library.sol │ │ │ │ ├── calldata_internal_multi_array.sol │ │ │ │ ├── calldata_internal_multi_fixed_array.sol │ │ │ │ ├── calldata_memory_mixed.sol │ │ │ │ ├── calldata_string_array.sol │ │ │ │ ├── calldata_struct.sol │ │ │ │ ├── calldata_struct_cleaning.sol │ │ │ │ ├── calldata_struct_internal.sol │ │ │ │ └── copy_from_calldata_removes_bytes_data.sol │ │ │ ├── cleanup/ │ │ │ │ ├── bool_conversion_v1.sol │ │ │ │ ├── bool_conversion_v2.sol │ │ │ │ ├── byte_array_to_storage_cleanup.sol │ │ │ │ ├── cleanup_address_types_shortening.sol │ │ │ │ ├── cleanup_address_types_v1.sol │ │ │ │ ├── cleanup_address_types_v2.sol │ │ │ │ ├── cleanup_bytes_types_shortening_OldCodeGen.sol │ │ │ │ ├── cleanup_bytes_types_shortening_newCodeGen.sol │ │ │ │ ├── cleanup_bytes_types_v1.sol │ │ │ │ ├── cleanup_bytes_types_v2.sol │ │ │ │ ├── cleanup_in_compound_assign.sol │ │ │ │ ├── dirty_calldata_bytes.sol │ │ │ │ ├── dirty_calldata_dynamic_array.sol │ │ │ │ ├── exp_cleanup.sol │ │ │ │ ├── exp_cleanup_direct.sol │ │ │ │ ├── exp_cleanup_nonzero_base.sol │ │ │ │ ├── exp_cleanup_smaller_base.sol │ │ │ │ ├── indexed_log_topic_during_explicit_downcast.sol │ │ │ │ └── indexed_log_topic_during_explicit_downcast_during_emissions.sol │ │ │ ├── constantEvaluator/ │ │ │ │ ├── negative_fractional_mod.sol │ │ │ │ └── rounding.sol │ │ │ ├── constants/ │ │ │ │ ├── asm_address_constant_regression.sol │ │ │ │ ├── asm_constant_file_level.sol │ │ │ │ ├── assign_type_info.sol │ │ │ │ ├── constant_string.sol │ │ │ │ ├── constant_string_at_file_level.sol │ │ │ │ ├── constant_variables.sol │ │ │ │ ├── constants_at_file_level_referencing.sol │ │ │ │ ├── consteval_array_length.sol │ │ │ │ ├── function_unreferenced.sol │ │ │ │ ├── same_constants_different_files.sol │ │ │ │ └── simple_constant_variables_test.sol │ │ │ ├── constructor/ │ │ │ │ ├── arrays_in_constructors.sol │ │ │ │ ├── base_constructor_arguments.sol │ │ │ │ ├── bytes_in_constructors_packer.sol │ │ │ │ ├── bytes_in_constructors_unpacker.sol │ │ │ │ ├── callvalue_check.sol │ │ │ │ ├── constructor_arguments_external.sol │ │ │ │ ├── constructor_arguments_internal.sol │ │ │ │ ├── constructor_function_argument.sol │ │ │ │ ├── constructor_function_complex.sol │ │ │ │ ├── constructor_static_array_argument.sol │ │ │ │ ├── evm_exceptions_in_constructor_call_fail.sol │ │ │ │ ├── function_usage_in_constructor_arguments.sol │ │ │ │ ├── functions_called_by_constructor.sol │ │ │ │ ├── functions_called_by_constructor_through_dispatch.sol │ │ │ │ ├── inline_member_init_inheritence_without_constructor.sol │ │ │ │ ├── no_callvalue_check.sol │ │ │ │ ├── order_of_evaluation.sol │ │ │ │ ├── payable_constructor.sol │ │ │ │ ├── state_variable_initialization.sol │ │ │ │ ├── store_function_in_constructor.sol │ │ │ │ ├── store_function_in_constructor_packed.sol │ │ │ │ ├── store_internal_unused_function_in_constructor.sol │ │ │ │ ├── store_internal_unused_library_function_in_constructor.sol │ │ │ │ └── transient_state_variable_initialization.sol │ │ │ ├── conversions/ │ │ │ │ ├── function_type_array_to_storage.sol │ │ │ │ └── string_to_bytes.sol │ │ │ ├── deployedCodeExclusion/ │ │ │ │ ├── bound_function.sol │ │ │ │ ├── library_function.sol │ │ │ │ ├── library_function_deployed.sol │ │ │ │ ├── module_function.sol │ │ │ │ ├── module_function_deployed.sol │ │ │ │ ├── static_base_function.sol │ │ │ │ ├── static_base_function_deployed.sol │ │ │ │ ├── subassembly_deduplication.sol │ │ │ │ ├── super_function.sol │ │ │ │ ├── super_function_deployed.sol │ │ │ │ ├── virtual_function.sol │ │ │ │ └── virtual_function_deployed.sol │ │ │ ├── ecrecover/ │ │ │ │ ├── ecrecover.sol │ │ │ │ ├── ecrecover_abiV2.sol │ │ │ │ ├── failing_ecrecover_invalid_input.sol │ │ │ │ ├── failing_ecrecover_invalid_input_asm.sol │ │ │ │ └── failing_ecrecover_invalid_input_proper.sol │ │ │ ├── enums/ │ │ │ │ ├── constructing_enums_from_ints.sol │ │ │ │ ├── enum_explicit_overflow.sol │ │ │ │ ├── enum_explicit_overflow_homestead.sol │ │ │ │ ├── enum_referencing.sol │ │ │ │ ├── enum_with_256_members.sol │ │ │ │ ├── invalid_enum_logged.sol │ │ │ │ ├── minmax.sol │ │ │ │ ├── using_contract_enums_with_explicit_contract_name.sol │ │ │ │ ├── using_enums.sol │ │ │ │ ├── using_inherited_enum.sol │ │ │ │ └── using_inherited_enum_excplicitly.sol │ │ │ ├── errors/ │ │ │ │ ├── error_in_library_and_interface.sol │ │ │ │ ├── error_selector.sol │ │ │ │ ├── error_static_calldata_uint_array_and_dynamic_array.sol │ │ │ │ ├── error_throw_from_module_via_member_access.sol │ │ │ │ ├── errors_by_parameter_type.sol │ │ │ │ ├── named_error_args.sol │ │ │ │ ├── named_parameters_shadowing_types.sol │ │ │ │ ├── panic_via_import.sol │ │ │ │ ├── require_different_errors_same_parameters.sol │ │ │ │ ├── require_error_condition_evaluated_only_once.sol │ │ │ │ ├── require_error_evaluation_order_1.sol │ │ │ │ ├── require_error_evaluation_order_2.sol │ │ │ │ ├── require_error_evaluation_order_3.sol │ │ │ │ ├── require_error_function_join_control_flow.sol │ │ │ │ ├── require_error_function_pointer_parameter.sol │ │ │ │ ├── require_error_multiple_arguments.sol │ │ │ │ ├── require_error_stack_check.sol │ │ │ │ ├── require_error_string_literal.sol │ │ │ │ ├── require_error_string_memory.sol │ │ │ │ ├── require_error_uint256.sol │ │ │ │ ├── require_inherited_error.sol │ │ │ │ ├── revert_conversion.sol │ │ │ │ ├── simple.sol │ │ │ │ ├── small_error_optimization.sol │ │ │ │ ├── using_structs.sol │ │ │ │ ├── via_contract_type.sol │ │ │ │ ├── via_import.sol │ │ │ │ └── weird_name.sol │ │ │ ├── events/ │ │ │ │ ├── emit_three_identical_events.sol │ │ │ │ ├── emit_two_identical_events.sol │ │ │ │ ├── event.sol │ │ │ │ ├── event_access_through_base_name_emit.sol │ │ │ │ ├── event_anonymous.sol │ │ │ │ ├── event_anonymous_with_signature_collision.sol │ │ │ │ ├── event_anonymous_with_signature_collision2.sol │ │ │ │ ├── event_anonymous_with_topics.sol │ │ │ │ ├── event_constructor.sol │ │ │ │ ├── event_dynamic_array_memory.sol │ │ │ │ ├── event_dynamic_array_memory_v2.sol │ │ │ │ ├── event_dynamic_array_storage.sol │ │ │ │ ├── event_dynamic_array_storage_v2.sol │ │ │ │ ├── event_dynamic_nested_array_memory_v2.sol │ │ │ │ ├── event_dynamic_nested_array_storage_v2.sol │ │ │ │ ├── event_emit.sol │ │ │ │ ├── event_emit_file_level.sol │ │ │ │ ├── event_emit_from_a_foreign_contract.sol │ │ │ │ ├── event_emit_from_a_foreign_contract_same_name.sol │ │ │ │ ├── event_emit_from_module_via_member_access.sol │ │ │ │ ├── event_emit_from_other_contract.sol │ │ │ │ ├── event_emit_interface_event_via_library.sol │ │ │ │ ├── event_emit_via_interface.sol │ │ │ │ ├── event_indexed_function.sol │ │ │ │ ├── event_indexed_function2.sol │ │ │ │ ├── event_indexed_mixed.sol │ │ │ │ ├── event_indexed_string.sol │ │ │ │ ├── event_lots_of_data.sol │ │ │ │ ├── event_no_arguments.sol │ │ │ │ ├── event_really_lots_of_data.sol │ │ │ │ ├── event_really_lots_of_data_from_storage.sol │ │ │ │ ├── event_really_really_lots_of_data_from_storage.sol │ │ │ │ ├── event_selector.sol │ │ │ │ ├── event_selector_file_level.sol │ │ │ │ ├── event_shadowing_file_level.sol │ │ │ │ ├── event_signature_in_library.sol │ │ │ │ ├── event_static_calldata_uint_array_and_dynamic_array.sol │ │ │ │ ├── event_string.sol │ │ │ │ ├── event_struct_memory_v2.sol │ │ │ │ ├── event_struct_storage_v2.sol │ │ │ │ ├── events_with_same_name.sol │ │ │ │ ├── events_with_same_name_file_level.sol │ │ │ │ ├── events_with_same_name_inherited_emit.sol │ │ │ │ └── simple.sol │ │ │ ├── experimental/ │ │ │ │ ├── stub.sol │ │ │ │ └── type_class.sol │ │ │ ├── exponentiation/ │ │ │ │ ├── literal_base.sol │ │ │ │ ├── signed_base.sol │ │ │ │ └── small_exp.sol │ │ │ ├── expressions/ │ │ │ │ ├── bit_operators.sol │ │ │ │ ├── bytes_comparison.sol │ │ │ │ ├── conditional_expression_different_types.sol │ │ │ │ ├── conditional_expression_false_literal.sol │ │ │ │ ├── conditional_expression_functions.sol │ │ │ │ ├── conditional_expression_multiple.sol │ │ │ │ ├── conditional_expression_storage_memory_1.sol │ │ │ │ ├── conditional_expression_storage_memory_2.sol │ │ │ │ ├── conditional_expression_true_literal.sol │ │ │ │ ├── conditional_expression_tuples.sol │ │ │ │ ├── conditional_expression_with_return_values.sol │ │ │ │ ├── exp_operator_const.sol │ │ │ │ ├── exp_operator_const_signed.sol │ │ │ │ ├── exp_zero_literal.sol │ │ │ │ ├── inc_dec_operators.sol │ │ │ │ ├── module_from_ternary_expression.sol │ │ │ │ ├── tuple_from_ternary_expression.sol │ │ │ │ ├── unary_too_long_literal.sol │ │ │ │ └── uncalled_address_transfer_send.sol │ │ │ ├── externalContracts/ │ │ │ │ ├── FixedFeeRegistrar.sol │ │ │ │ ├── _base64/ │ │ │ │ │ ├── base64_inline_asm.sol │ │ │ │ │ └── base64_no_inline_asm.sol │ │ │ │ ├── _prbmath/ │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ ├── PRBMathCommon.sol │ │ │ │ │ ├── PRBMathSD59x18.sol │ │ │ │ │ ├── PRBMathUD60x18.sol │ │ │ │ │ └── README.md │ │ │ │ ├── _stringutils/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ └── stringutils.sol │ │ │ │ ├── base64.sol │ │ │ │ ├── deposit_contract.sol │ │ │ │ ├── prbmath_signed.sol │ │ │ │ ├── prbmath_unsigned.sol │ │ │ │ ├── ramanujan_pi.sol │ │ │ │ ├── snark.sol │ │ │ │ └── strings.sol │ │ │ ├── externalSource/ │ │ │ │ ├── _external/ │ │ │ │ │ ├── external.sol │ │ │ │ │ ├── external.sol=sol │ │ │ │ │ ├── import.sol │ │ │ │ │ ├── import_with_subdir.sol │ │ │ │ │ ├── other_external.sol │ │ │ │ │ └── subdir/ │ │ │ │ │ ├── import.sol │ │ │ │ │ └── sub_external.sol │ │ │ │ ├── _nonNormalizedPaths/ │ │ │ │ │ ├── a.sol │ │ │ │ │ ├── c.sol │ │ │ │ │ └── d.sol │ │ │ │ ├── _relativeImports/ │ │ │ │ │ ├── D/ │ │ │ │ │ │ └── d.sol │ │ │ │ │ ├── c.sol │ │ │ │ │ ├── dir/ │ │ │ │ │ │ ├── B/ │ │ │ │ │ │ │ └── b.sol │ │ │ │ │ │ ├── G/ │ │ │ │ │ │ │ └── g.sol │ │ │ │ │ │ ├── a.sol │ │ │ │ │ │ └── contract.sol │ │ │ │ │ └── h.sol │ │ │ │ ├── _sourceNameStartingWithDots/ │ │ │ │ │ ├── b.sol │ │ │ │ │ ├── dir/ │ │ │ │ │ │ ├── a.sol │ │ │ │ │ │ └── contract.sol │ │ │ │ │ ├── dot_a.sol │ │ │ │ │ └── dot_dot_b.sol │ │ │ │ ├── multiple_equals_signs.sol │ │ │ │ ├── multiple_external_source.sol │ │ │ │ ├── multisource.sol │ │ │ │ ├── non_normalized_paths.sol │ │ │ │ ├── relative_imports.sol │ │ │ │ ├── source.sol │ │ │ │ ├── source_import.sol │ │ │ │ ├── source_import_subdir.sol │ │ │ │ ├── source_name_starting_with_dots.sol │ │ │ │ └── source_remapping.sol │ │ │ ├── fallback/ │ │ │ │ ├── call_forward_bytes.sol │ │ │ │ ├── falback_return.sol │ │ │ │ ├── fallback_argument.sol │ │ │ │ ├── fallback_argument_to_storage.sol │ │ │ │ ├── fallback_or_receive.sol │ │ │ │ ├── fallback_override.sol │ │ │ │ ├── fallback_override2.sol │ │ │ │ ├── fallback_override_multi.sol │ │ │ │ ├── fallback_return_data.sol │ │ │ │ ├── inherited.sol │ │ │ │ └── short_data_calls_fallback.sol │ │ │ ├── freeFunctions/ │ │ │ │ ├── easy.sol │ │ │ │ ├── free_namesake_contract_function.sol │ │ │ │ ├── free_runtimecode.sol │ │ │ │ ├── import.sol │ │ │ │ ├── libraries_from_free.sol │ │ │ │ ├── new_operator.sol │ │ │ │ ├── overloads.sol │ │ │ │ ├── recursion.sol │ │ │ │ └── storage_calldata_refs.sol │ │ │ ├── functionCall/ │ │ │ │ ├── array_multiple_local_vars.sol │ │ │ │ ├── bare_call_no_returndatacopy.sol │ │ │ │ ├── call_attached_library_function_on_function.sol │ │ │ │ ├── call_attached_library_function_on_storage_variable.sol │ │ │ │ ├── call_attached_library_function_on_string.sol │ │ │ │ ├── call_function_returning_function.sol │ │ │ │ ├── call_function_returning_nothing_via_pointer.sol │ │ │ │ ├── call_internal_function_via_expression.sol │ │ │ │ ├── call_internal_function_with_multislot_arguments_via_pointer.sol │ │ │ │ ├── call_options_overload.sol │ │ │ │ ├── calling_nonexisting_contract_throws.sol │ │ │ │ ├── calling_other_functions.sol │ │ │ │ ├── calling_uninitialized_function.sol │ │ │ │ ├── calling_uninitialized_function_in_detail.sol │ │ │ │ ├── calling_uninitialized_function_through_array.sol │ │ │ │ ├── conditional_with_arguments.sol │ │ │ │ ├── creation_function_call_no_args.sol │ │ │ │ ├── creation_function_call_with_args.sol │ │ │ │ ├── creation_function_call_with_salt.sol │ │ │ │ ├── delegatecall_return_value.sol │ │ │ │ ├── delegatecall_return_value_pre_byzantium.sol │ │ │ │ ├── disordered_named_args.sol │ │ │ │ ├── eof/ │ │ │ │ │ ├── call_options_overload.sol │ │ │ │ │ ├── calling_nonexisting_contract.sol │ │ │ │ │ ├── external_call_at_construction_time.sol │ │ │ │ │ └── external_call_to_nonexisting.sol │ │ │ │ ├── external_call.sol │ │ │ │ ├── external_call_at_construction_time.sol │ │ │ │ ├── external_call_dynamic_returndata.sol │ │ │ │ ├── external_call_to_nonexisting.sol │ │ │ │ ├── external_call_to_nonexisting_debugstrings.sol │ │ │ │ ├── external_call_value.sol │ │ │ │ ├── external_function.sol │ │ │ │ ├── external_public_override.sol │ │ │ │ ├── failed_create.sol │ │ │ │ ├── file_level_call_via_module.sol │ │ │ │ ├── gas_and_value_basic.sol │ │ │ │ ├── inheritance/ │ │ │ │ │ ├── base_base_overload.sol │ │ │ │ │ ├── base_overload.sol │ │ │ │ │ ├── call_base.sol │ │ │ │ │ ├── call_base_base.sol │ │ │ │ │ ├── call_base_base_explicit.sol │ │ │ │ │ ├── call_base_explicit.sol │ │ │ │ │ ├── call_unimplemented_base.sol │ │ │ │ │ ├── super_skip_unimplemented_in_abstract_contract.sol │ │ │ │ │ └── super_skip_unimplemented_in_interface.sol │ │ │ │ ├── mapping_array_internal_argument.sol │ │ │ │ ├── mapping_internal_argument.sol │ │ │ │ ├── mapping_internal_return.sol │ │ │ │ ├── member_accessors.sol │ │ │ │ ├── multiple_functions.sol │ │ │ │ ├── multiple_return_values.sol │ │ │ │ ├── named_args.sol │ │ │ │ ├── named_args_overload.sol │ │ │ │ ├── precompile_extcodesize_check.sol │ │ │ │ ├── return_size_bigger_than_expected.sol │ │ │ │ ├── return_size_shorter_than_expected.sol │ │ │ │ ├── return_size_shorter_than_expected_evm_version_after_homestead.sol │ │ │ │ ├── send_zero_ether.sol │ │ │ │ ├── transaction_status.sol │ │ │ │ └── value_test.sol │ │ │ ├── functionSelector/ │ │ │ │ └── function_selector_via_contract_name.sol │ │ │ ├── functionTypes/ │ │ │ │ ├── address_member.sol │ │ │ │ ├── call_to_zero_initialized_function_type_ir.sol │ │ │ │ ├── call_to_zero_initialized_function_type_legacy.sol │ │ │ │ ├── comparison_operator_for_external_function_cleans_dirty_bits.sol │ │ │ │ ├── comparison_operators_for_external_functions.sol │ │ │ │ ├── duplicated_function_definition_with_same_id_in_internal_dispatcher.sol │ │ │ │ ├── external_functions_with_calldata_args_assigned_to_function_pointers_with_memory_type.sol │ │ │ │ ├── function_delete_stack.sol │ │ │ │ ├── function_delete_storage.sol │ │ │ │ ├── function_external_delete_storage.sol │ │ │ │ ├── function_type_library_internal.sol │ │ │ │ ├── inline_array_with_value_call_option.sol │ │ │ │ ├── mapping_of_functions.sol │ │ │ │ ├── pass_function_types_externally.sol │ │ │ │ ├── pass_function_types_internally.sol │ │ │ │ ├── same_function_in_construction_and_runtime.sol │ │ │ │ ├── same_function_in_construction_and_runtime_equality_check.sol │ │ │ │ ├── selector_1.sol │ │ │ │ ├── selector_2.sol │ │ │ │ ├── selector_assignment_expression.sol │ │ │ │ ├── selector_expression_side_effect.sol │ │ │ │ ├── selector_ternary.sol │ │ │ │ ├── selector_ternary_function_pointer_from_function_call.sol │ │ │ │ ├── stack_height_check_on_adding_gas_variable_to_function.sol │ │ │ │ ├── store_function.sol │ │ │ │ ├── struct_with_external_function.sol │ │ │ │ ├── struct_with_functions.sol │ │ │ │ ├── ternary_contract_internal_function.sol │ │ │ │ ├── ternary_contract_library_internal_function.sol │ │ │ │ ├── ternary_contract_public_function.sol │ │ │ │ └── uninitialized_internal_storage_function_call.sol │ │ │ ├── getters/ │ │ │ │ ├── array_mapping_struct.sol │ │ │ │ ├── arrays.sol │ │ │ │ ├── bytes.sol │ │ │ │ ├── mapping.sol │ │ │ │ ├── mapping_array_struct.sol │ │ │ │ ├── mapping_of_string.sol │ │ │ │ ├── mapping_to_struct.sol │ │ │ │ ├── mapping_with_names.sol │ │ │ │ ├── string_and_bytes.sol │ │ │ │ ├── struct_with_bytes.sol │ │ │ │ ├── struct_with_bytes_simple.sol │ │ │ │ ├── transient_value_types.sol │ │ │ │ ├── transient_value_types_multi_frame_call.sol │ │ │ │ └── value_types.sol │ │ │ ├── immutable/ │ │ │ │ ├── assign_at_declaration.sol │ │ │ │ ├── assign_from_immutables.sol │ │ │ │ ├── delete.sol │ │ │ │ ├── fun_read_in_ctor.sol │ │ │ │ ├── getter.sol │ │ │ │ ├── getter_call_in_constructor.sol │ │ │ │ ├── immutable_signed.sol │ │ │ │ ├── immutable_tag_too_large_bug.sol │ │ │ │ ├── increment_decrement.sol │ │ │ │ ├── inheritance.sol │ │ │ │ ├── internal_function_pointer.sol │ │ │ │ ├── multi_creation.sol │ │ │ │ ├── multiple_initializations.sol │ │ │ │ ├── read_in_ctor.sol │ │ │ │ ├── small_types_in_reverse.sol │ │ │ │ ├── stub.sol │ │ │ │ ├── uninitialized.sol │ │ │ │ └── use_scratch.sol │ │ │ ├── inheritance/ │ │ │ │ ├── access_base_storage.sol │ │ │ │ ├── address_overload_resolution.sol │ │ │ │ ├── base_access_to_function_type_variables.sol │ │ │ │ ├── constructor_inheritance_init_order.sol │ │ │ │ ├── constructor_inheritance_init_order_2.sol │ │ │ │ ├── constructor_inheritance_init_order_3_legacy.sol │ │ │ │ ├── constructor_inheritance_init_order_3_viaIR.sol │ │ │ │ ├── constructor_with_params.sol │ │ │ │ ├── constructor_with_params_diamond_inheritance.sol │ │ │ │ ├── constructor_with_params_inheritance.sol │ │ │ │ ├── constructor_with_params_inheritance_2.sol │ │ │ │ ├── dataLocation/ │ │ │ │ │ └── external_public_calldata.sol │ │ │ │ ├── derived_overload_base_function_direct.sol │ │ │ │ ├── derived_overload_base_function_indirect.sol │ │ │ │ ├── explicit_base_class.sol │ │ │ │ ├── inherited_constant_state_var.sol │ │ │ │ ├── inherited_function.sol │ │ │ │ ├── inherited_function_calldata_calldata_interface.sol │ │ │ │ ├── inherited_function_calldata_memory.sol │ │ │ │ ├── inherited_function_calldata_memory_interface.sol │ │ │ │ ├── inherited_function_from_a_library.sol │ │ │ │ ├── inherited_function_through_dispatch.sol │ │ │ │ ├── interface_inheritance_conversions.sol │ │ │ │ ├── member_notation_ctor.sol │ │ │ │ ├── overloaded_function_call_resolve_to_first.sol │ │ │ │ ├── overloaded_function_call_resolve_to_second.sol │ │ │ │ ├── overloaded_function_call_with_if_else.sol │ │ │ │ ├── pass_dynamic_arguments_to_the_base.sol │ │ │ │ ├── pass_dynamic_arguments_to_the_base_base.sol │ │ │ │ ├── pass_dynamic_arguments_to_the_base_base_with_gap.sol │ │ │ │ ├── state_variables_init_order.sol │ │ │ │ ├── state_variables_init_order_2.sol │ │ │ │ ├── state_variables_init_order_3.sol │ │ │ │ ├── super_in_constructor.sol │ │ │ │ ├── super_in_constructor_assignment.sol │ │ │ │ ├── super_overload.sol │ │ │ │ ├── transient_storage_state_variable.sol │ │ │ │ ├── transient_storage_state_variable_abstract_contract.sol │ │ │ │ └── value_for_constructor.sol │ │ │ ├── inlineAssembly/ │ │ │ │ ├── basefee_berlin_function.sol │ │ │ │ ├── blobbasefee_shanghai_function.sol │ │ │ │ ├── blobhash.sol │ │ │ │ ├── blobhash_index_exceeding_blob_count.sol │ │ │ │ ├── blobhash_pre_cancun.sol │ │ │ │ ├── calldata_array_assign_dynamic.sol │ │ │ │ ├── calldata_array_assign_static.sol │ │ │ │ ├── calldata_array_read.sol │ │ │ │ ├── calldata_assign.sol │ │ │ │ ├── calldata_assign_from_nowhere.sol │ │ │ │ ├── calldata_length_read.sol │ │ │ │ ├── calldata_offset_read.sol │ │ │ │ ├── calldata_offset_read_write.sol │ │ │ │ ├── calldata_struct_assign.sol │ │ │ │ ├── calldata_struct_assign_and_return.sol │ │ │ │ ├── chainid.sol │ │ │ │ ├── clz.sol │ │ │ │ ├── clz_pre_osaka.sol │ │ │ │ ├── constant_access.sol │ │ │ │ ├── constant_access_referencing.sol │ │ │ │ ├── difficulty.sol │ │ │ │ ├── external_function_pointer_address.sol │ │ │ │ ├── external_function_pointer_address_assignment.sol │ │ │ │ ├── external_function_pointer_selector.sol │ │ │ │ ├── external_function_pointer_selector_assignment.sol │ │ │ │ ├── external_identifier_access_shadowing.sol │ │ │ │ ├── for_loop_break.sol │ │ │ │ ├── for_loop_continue.sol │ │ │ │ ├── for_loop_nested.sol │ │ │ │ ├── function_name_clash.sol │ │ │ │ ├── inline_assembly_embedded_function_call.sol │ │ │ │ ├── inline_assembly_for.sol │ │ │ │ ├── inline_assembly_for2.sol │ │ │ │ ├── inline_assembly_function_call.sol │ │ │ │ ├── inline_assembly_function_call2.sol │ │ │ │ ├── inline_assembly_function_call_assignment.sol │ │ │ │ ├── inline_assembly_if.sol │ │ │ │ ├── inline_assembly_in_modifiers.sol │ │ │ │ ├── inline_assembly_memory_access.sol │ │ │ │ ├── inline_assembly_read_and_write_stack.sol │ │ │ │ ├── inline_assembly_recursion.sol │ │ │ │ ├── inline_assembly_storage_access.sol │ │ │ │ ├── inline_assembly_storage_access_inside_function.sol │ │ │ │ ├── inline_assembly_storage_access_local_var.sol │ │ │ │ ├── inline_assembly_storage_access_via_pointer.sol │ │ │ │ ├── inline_assembly_switch.sol │ │ │ │ ├── inline_assembly_transient_storage_access_inside_function.sol │ │ │ │ ├── inline_assembly_write_to_stack.sol │ │ │ │ ├── inlineasm_empty_let.sol │ │ │ │ ├── keccak256_assembly.sol │ │ │ │ ├── keccak256_optimization.sol │ │ │ │ ├── keccak256_optimizer_bug_different_memory_location.sol │ │ │ │ ├── keccak256_optimizer_cache_bug.sol │ │ │ │ ├── keccak_optimization_bug_string.sol │ │ │ │ ├── keccak_yul_optimization.sol │ │ │ │ ├── leave.sol │ │ │ │ ├── mcopy.sol │ │ │ │ ├── mcopy_as_identifier_pre_cancun.sol │ │ │ │ ├── mcopy_empty.sol │ │ │ │ ├── mcopy_overlap.sol │ │ │ │ ├── optimize_memory_store_multi_block.sol │ │ │ │ ├── optimize_memory_store_multi_block_bugreport.sol │ │ │ │ ├── prevrandao.sol │ │ │ │ ├── selfbalance.sol │ │ │ │ ├── shadowing_local_function_opcode.sol │ │ │ │ ├── slot_access.sol │ │ │ │ ├── slot_access_via_mapping_pointer.sol │ │ │ │ ├── tload_tstore_not_reserved_before_cancun.sol │ │ │ │ ├── transient_storage_creation.sol │ │ │ │ ├── transient_storage_low_level_calls.sol │ │ │ │ ├── transient_storage_multiple_calls_different_transactions.sol │ │ │ │ ├── transient_storage_multiple_transactions.sol │ │ │ │ ├── transient_storage_reset_between_creation_runtime.sol │ │ │ │ ├── transient_storage_sanity_checks.sol │ │ │ │ ├── transient_storage_selfdestruct.sol │ │ │ │ ├── transient_storage_simple_reentrancy_lock.sol │ │ │ │ ├── truefalse.sol │ │ │ │ └── tstore_hidden_staticcall.sol │ │ │ ├── integer/ │ │ │ │ ├── basic.sol │ │ │ │ ├── int.sol │ │ │ │ ├── many_local_variables.sol │ │ │ │ ├── small_signed_types.sol │ │ │ │ └── uint.sol │ │ │ ├── interfaceID/ │ │ │ │ ├── homer.sol │ │ │ │ ├── homer_interfaceId.sol │ │ │ │ ├── interfaceId_events.sol │ │ │ │ ├── interfaces.sol │ │ │ │ ├── lisa.sol │ │ │ │ └── lisa_interfaceId.sol │ │ │ ├── isoltestTesting/ │ │ │ │ ├── account.sol │ │ │ │ ├── balance_other_contract.sol │ │ │ │ ├── balance_with_balance.sol │ │ │ │ ├── balance_with_balance2.sol │ │ │ │ ├── balance_without_balance.sol │ │ │ │ ├── builtins.sol │ │ │ │ ├── effects.sol │ │ │ │ ├── empty_contract.sol │ │ │ │ ├── format_raw_string_with_control_chars.sol │ │ │ │ ├── isoltestFormatting.sol │ │ │ │ ├── precompiles_ignoring_trailing_input.sol │ │ │ │ └── storage/ │ │ │ │ ├── storage_empty.sol │ │ │ │ └── storage_nonempty.sol │ │ │ ├── libraries/ │ │ │ │ ├── attached_internal_library_function_accepting_calldata.sol │ │ │ │ ├── attached_internal_library_function_returning_calldata.sol │ │ │ │ ├── attached_public_library_function_accepting_calldata.sol.sol │ │ │ │ ├── attached_public_library_function_returning_calldata.sol │ │ │ │ ├── external_call_with_function_pointer_parameter.sol │ │ │ │ ├── external_call_with_storage_array_parameter.sol │ │ │ │ ├── external_call_with_storage_mapping_parameter.sol │ │ │ │ ├── internal_call_attached_with_parentheses.sol │ │ │ │ ├── internal_call_unattached_with_parentheses.sol │ │ │ │ ├── internal_library_function.sol │ │ │ │ ├── internal_library_function_attached_to_address.sol │ │ │ │ ├── internal_library_function_attached_to_address_named_send_transfer.sol │ │ │ │ ├── internal_library_function_attached_to_array_named_pop_push.sol │ │ │ │ ├── internal_library_function_attached_to_bool.sol │ │ │ │ ├── internal_library_function_attached_to_contract.sol │ │ │ │ ├── internal_library_function_attached_to_dynamic_array.sol │ │ │ │ ├── internal_library_function_attached_to_enum.sol │ │ │ │ ├── internal_library_function_attached_to_external_function_type.sol │ │ │ │ ├── internal_library_function_attached_to_fixed_array.sol │ │ │ │ ├── internal_library_function_attached_to_fixed_bytes.sol │ │ │ │ ├── internal_library_function_attached_to_integer.sol │ │ │ │ ├── internal_library_function_attached_to_interface.sol │ │ │ │ ├── internal_library_function_attached_to_internal_function_type.sol │ │ │ │ ├── internal_library_function_attached_to_internal_function_type_named_selector.sol │ │ │ │ ├── internal_library_function_attached_to_literal.sol │ │ │ │ ├── internal_library_function_attached_to_mapping.sol │ │ │ │ ├── internal_library_function_attached_to_string_accepting_memory.sol │ │ │ │ ├── internal_library_function_attached_to_string_accepting_storage.sol │ │ │ │ ├── internal_library_function_attached_to_struct.sol │ │ │ │ ├── internal_library_function_calling_private.sol │ │ │ │ ├── internal_library_function_pointer.sol │ │ │ │ ├── internal_library_function_return_var_size.sol │ │ │ │ ├── internal_types_in_library.sol │ │ │ │ ├── library_address.sol │ │ │ │ ├── library_address_homestead.sol │ │ │ │ ├── library_address_via_module.sol │ │ │ │ ├── library_call_in_homestead.sol │ │ │ │ ├── library_delegatecall_guard_pure.sol │ │ │ │ ├── library_delegatecall_guard_view_needed.sol │ │ │ │ ├── library_delegatecall_guard_view_not_needed.sol │ │ │ │ ├── library_delegatecall_guard_view_staticcall.sol │ │ │ │ ├── library_enum_as_an_expression.sol │ │ │ │ ├── library_function_selectors.sol │ │ │ │ ├── library_function_selectors_struct.sol │ │ │ │ ├── library_references_preserve.sol │ │ │ │ ├── library_return_struct_with_mapping.sol │ │ │ │ ├── library_staticcall_delegatecall.sol │ │ │ │ ├── library_stray_values.sol │ │ │ │ ├── library_struct_as_an_expression.sol │ │ │ │ ├── mapping_arguments_in_library.sol │ │ │ │ ├── mapping_returns_in_library.sol │ │ │ │ ├── mapping_returns_in_library_named.sol │ │ │ │ ├── payable_function_calls_library.sol │ │ │ │ ├── stub.sol │ │ │ │ ├── stub_internal.sol │ │ │ │ ├── using_for_by_name.sol │ │ │ │ ├── using_for_function_on_int.sol │ │ │ │ ├── using_for_overload.sol │ │ │ │ ├── using_for_storage_structs.sol │ │ │ │ ├── using_library_mappings_public.sol │ │ │ │ ├── using_library_mappings_return.sol │ │ │ │ └── using_library_structs.sol │ │ │ ├── literals/ │ │ │ │ ├── denominations.sol │ │ │ │ ├── denominations_in_array_sizes.sol │ │ │ │ ├── escape.sol │ │ │ │ ├── ether.sol │ │ │ │ ├── fractional_denominations.sol │ │ │ │ ├── gwei.sol │ │ │ │ ├── hex_string_with_non_printable_characters.sol │ │ │ │ ├── hex_string_with_underscore.sol │ │ │ │ ├── scientific_notation.sol │ │ │ │ ├── ternary_operator_with_literal_types_overflow.sol │ │ │ │ └── wei.sol │ │ │ ├── memoryManagement/ │ │ │ │ ├── assembly_access.sol │ │ │ │ ├── memory_types_initialisation.sol │ │ │ │ ├── return_variable.sol │ │ │ │ ├── static_memory_array_allocation.sol │ │ │ │ └── struct_allocation.sol │ │ │ ├── metaTypes/ │ │ │ │ └── name_other_contract.sol │ │ │ ├── modifiers/ │ │ │ │ ├── access_through_contract_name.sol │ │ │ │ ├── access_through_module_name.sol │ │ │ │ ├── break_in_modifier.sol │ │ │ │ ├── continue_in_modifier.sol │ │ │ │ ├── evaluation_order.sol │ │ │ │ ├── function_modifier.sol │ │ │ │ ├── function_modifier_calling_functions_in_creation_context.sol │ │ │ │ ├── function_modifier_empty.sol │ │ │ │ ├── function_modifier_for_constructor.sol │ │ │ │ ├── function_modifier_library.sol │ │ │ │ ├── function_modifier_library_inheritance.sol │ │ │ │ ├── function_modifier_local_variables.sol │ │ │ │ ├── function_modifier_loop.sol │ │ │ │ ├── function_modifier_loop_viair.sol │ │ │ │ ├── function_modifier_multi_invocation.sol │ │ │ │ ├── function_modifier_multi_invocation_viair.sol │ │ │ │ ├── function_modifier_multi_with_return.sol │ │ │ │ ├── function_modifier_multiple_times.sol │ │ │ │ ├── function_modifier_multiple_times_local_vars.sol │ │ │ │ ├── function_modifier_overriding.sol │ │ │ │ ├── function_modifier_return_reference.sol │ │ │ │ ├── function_return_parameter.sol │ │ │ │ ├── function_return_parameter_complex.sol │ │ │ │ ├── modifer_recursive.sol │ │ │ │ ├── modifier_in_constructor_ice.sol │ │ │ │ ├── modifier_init_return.sol │ │ │ │ ├── modifiers_in_construction_context.sol │ │ │ │ ├── return_does_not_skip_modifier.sol │ │ │ │ ├── return_in_modifier.sol │ │ │ │ ├── stacked_return_with_modifiers.sol │ │ │ │ └── transient_state_variable_value_type.sol │ │ │ ├── multiSource/ │ │ │ │ ├── circular_import.sol │ │ │ │ ├── circular_import_2.sol │ │ │ │ ├── circular_reimport.sol │ │ │ │ ├── circular_reimport_2.sol │ │ │ │ ├── free_different_interger_types.sol │ │ │ │ ├── free_function_resolution_base_contract.sol │ │ │ │ ├── free_function_resolution_override_virtual.sol │ │ │ │ ├── free_function_resolution_override_virtual_super.sol │ │ │ │ ├── free_function_resolution_override_virtual_transitive.sol │ │ │ │ ├── free_function_transitive_import.sol │ │ │ │ ├── import.sol │ │ │ │ ├── import_overloaded_function.sol │ │ │ │ ├── imported_free_function_via_alias.sol │ │ │ │ ├── imported_free_function_via_alias_direct_call.sol │ │ │ │ └── reimport_imported_function.sol │ │ │ ├── operators/ │ │ │ │ ├── compound_assign.sol │ │ │ │ ├── compound_assign_transient_storage.sol │ │ │ │ ├── shifts/ │ │ │ │ │ ├── bitwise_shifting_constantinople.sol │ │ │ │ │ ├── bitwise_shifting_constantinople_combined.sol │ │ │ │ │ ├── bitwise_shifting_constants_constantinople.sol │ │ │ │ │ ├── shift_bytes_cleanup.sol │ │ │ │ │ ├── shift_bytes_cleanup_viaYul.sol │ │ │ │ │ ├── shift_cleanup.sol │ │ │ │ │ ├── shift_cleanup_garbled.sol │ │ │ │ │ ├── shift_constant_left.sol │ │ │ │ │ ├── shift_constant_left_assignment.sol │ │ │ │ │ ├── shift_constant_right.sol │ │ │ │ │ ├── shift_constant_right_assignment.sol │ │ │ │ │ ├── shift_left.sol │ │ │ │ │ ├── shift_left_assignment.sol │ │ │ │ │ ├── shift_left_assignment_different_type.sol │ │ │ │ │ ├── shift_left_larger_type.sol │ │ │ │ │ ├── shift_left_uint32.sol │ │ │ │ │ ├── shift_left_uint8.sol │ │ │ │ │ ├── shift_negative_constant_left.sol │ │ │ │ │ ├── shift_negative_constant_right.sol │ │ │ │ │ ├── shift_overflow.sol │ │ │ │ │ ├── shift_right.sol │ │ │ │ │ ├── shift_right_assignment.sol │ │ │ │ │ ├── shift_right_garbled_signed_v1.sol │ │ │ │ │ ├── shift_right_garbled_signed_v2.sol │ │ │ │ │ ├── shift_right_garbled_v1.sol │ │ │ │ │ ├── shift_right_garbled_v2.sol │ │ │ │ │ ├── shift_right_negative_literal.sol │ │ │ │ │ ├── shift_right_negative_lvalue.sol │ │ │ │ │ ├── shift_right_negative_lvalue_assignment.sol │ │ │ │ │ ├── shift_right_negative_lvalue_int16.sol │ │ │ │ │ ├── shift_right_negative_lvalue_int32.sol │ │ │ │ │ ├── shift_right_negative_lvalue_int8.sol │ │ │ │ │ ├── shift_right_negative_lvalue_signextend_int16_v1.sol │ │ │ │ │ ├── shift_right_negative_lvalue_signextend_int16_v2.sol │ │ │ │ │ ├── shift_right_negative_lvalue_signextend_int32_v1.sol │ │ │ │ │ ├── shift_right_negative_lvalue_signextend_int32_v2.sol │ │ │ │ │ ├── shift_right_negative_lvalue_signextend_int8_v1.sol │ │ │ │ │ ├── shift_right_negative_lvalue_signextend_int8_v2.sol │ │ │ │ │ ├── shift_right_uint32.sol │ │ │ │ │ ├── shift_right_uint8.sol │ │ │ │ │ ├── shift_underflow_negative_rvalue.sol │ │ │ │ │ └── shifts.sol │ │ │ │ ├── transient_storage_variable_increment_decrement.sol │ │ │ │ └── userDefined/ │ │ │ │ ├── all_possible_operators.sol │ │ │ │ ├── all_possible_user_defined_value_types_with_operators.sol │ │ │ │ ├── attaching_and_defining_operator_with_same_function.sol │ │ │ │ ├── checked_operators.sol │ │ │ │ ├── consecutive_operator_invocations.sol │ │ │ │ ├── fixed_point_udvt_with_operators.sol │ │ │ │ ├── multiple_operator_definitions_different_types_different_functions_separate_directives.sol │ │ │ │ ├── multiple_operator_definitions_same_type_same_function_same_directive.sol │ │ │ │ ├── operator_definition_shadowing_builtin_keccak256.sol │ │ │ │ ├── operator_evaluation_order.sol │ │ │ │ ├── operator_making_pure_external_call.sol │ │ │ │ ├── operator_making_view_external_call.sol │ │ │ │ ├── operator_parameter_and_return_cleanup_between_calls.sol │ │ │ │ ├── operator_parameter_cleanup.sol │ │ │ │ ├── operator_precendence.sol │ │ │ │ ├── operator_return_parameter_cleanup.sol │ │ │ │ ├── recursive_operator.sol │ │ │ │ └── unchecked_operators.sol │ │ │ ├── optimizer/ │ │ │ │ ├── shift_bytes.sol │ │ │ │ └── unused_store_storage_removal_bug.sol │ │ │ ├── payable/ │ │ │ │ └── no_nonpayable_circumvention_by_modifier.sol │ │ │ ├── receive/ │ │ │ │ ├── empty_calldata_calls_receive.sol │ │ │ │ ├── ether_and_data.sol │ │ │ │ └── inherited.sol │ │ │ ├── revertStrings/ │ │ │ │ ├── array_slices.sol │ │ │ │ ├── bubble.sol │ │ │ │ ├── calldata_array_dynamic_invalid.sol │ │ │ │ ├── calldata_array_dynamic_static_short_decode.sol │ │ │ │ ├── calldata_array_dynamic_static_short_reencode.sol │ │ │ │ ├── calldata_array_invalid_length.sol │ │ │ │ ├── calldata_arrays_too_large.sol │ │ │ │ ├── calldata_tail_short.sol │ │ │ │ ├── calldata_too_short_v1.sol │ │ │ │ ├── called_contract_has_code.sol │ │ │ │ ├── empty_v1.sol │ │ │ │ ├── empty_v2.sol │ │ │ │ ├── enum_v1.sol │ │ │ │ ├── enum_v2.sol │ │ │ │ ├── ether_non_payable_function.sol │ │ │ │ ├── function_entry_checks_v1.sol │ │ │ │ ├── function_entry_checks_v2.sol │ │ │ │ ├── invalid_abi_decoding_calldata_v1.sol │ │ │ │ ├── invalid_abi_decoding_memory_v1.sol │ │ │ │ ├── library_non_view_call.sol │ │ │ │ ├── short_input_array.sol │ │ │ │ ├── short_input_bytes.sol │ │ │ │ ├── transfer.sol │ │ │ │ └── unknown_sig_no_fallback.sol │ │ │ ├── reverts/ │ │ │ │ ├── assert_require.sol │ │ │ │ ├── eof/ │ │ │ │ │ └── revert_return_area.sol │ │ │ │ ├── error_struct.sol │ │ │ │ ├── invalid_enum_as_external_arg.sol │ │ │ │ ├── invalid_enum_as_external_ret.sol │ │ │ │ ├── invalid_enum_compared.sol │ │ │ │ ├── invalid_enum_stored.sol │ │ │ │ ├── invalid_instruction.sol │ │ │ │ ├── revert.sol │ │ │ │ ├── revert_return_area.sol │ │ │ │ └── simple_throw.sol │ │ │ ├── saltedCreate/ │ │ │ │ ├── eof/ │ │ │ │ │ └── salted_create_with_value.sol │ │ │ │ ├── prediction_example.sol │ │ │ │ ├── salted_create.sol │ │ │ │ └── salted_create_with_value.sol │ │ │ ├── scoping/ │ │ │ │ └── c99_scoping_activation.sol │ │ │ ├── shanghai/ │ │ │ │ ├── evmone_support.sol │ │ │ │ └── push0.sol │ │ │ ├── smoke/ │ │ │ │ ├── alignment.sol │ │ │ │ ├── arrays.sol │ │ │ │ ├── basic.sol │ │ │ │ ├── bytes_and_strings.sol │ │ │ │ ├── constructor.sol │ │ │ │ ├── failure.sol │ │ │ │ ├── fallback.sol │ │ │ │ ├── multiline.sol │ │ │ │ ├── multiline_comments.sol │ │ │ │ └── structs.sol │ │ │ ├── specialFunctions/ │ │ │ │ ├── abi_encode_with_signature_from_string.sol │ │ │ │ ├── abi_functions_member_access.sol │ │ │ │ └── keccak256_optimized.sol │ │ │ ├── state/ │ │ │ │ ├── blobhash.sol │ │ │ │ ├── block_basefee.sol │ │ │ │ ├── block_blobbasefee.sol │ │ │ │ ├── block_chainid.sol │ │ │ │ ├── block_coinbase.sol │ │ │ │ ├── block_difficulty.sol │ │ │ │ ├── block_difficulty_post_paris.sol │ │ │ │ ├── block_gaslimit.sol │ │ │ │ ├── block_number.sol │ │ │ │ ├── block_prevrandao.sol │ │ │ │ ├── block_prevrandao_pre_paris.sol │ │ │ │ ├── block_timestamp.sol │ │ │ │ ├── blockhash_basic.sol │ │ │ │ ├── gasleft.sol │ │ │ │ ├── msg_data.sol │ │ │ │ ├── msg_sender.sol │ │ │ │ ├── msg_sig.sol │ │ │ │ ├── msg_value.sol │ │ │ │ ├── tx_gasprice.sol │ │ │ │ ├── tx_origin.sol │ │ │ │ ├── uncalled_blobhash.sol │ │ │ │ └── uncalled_blockhash.sol │ │ │ ├── statements/ │ │ │ │ ├── do_while_loop_continue.sol │ │ │ │ └── empty_for_loop.sol │ │ │ ├── storage/ │ │ │ │ ├── accessors_mapping_for_array.sol │ │ │ │ ├── array_accessor.sol │ │ │ │ ├── chop_sign_bits.sol │ │ │ │ ├── complex_accessors.sol │ │ │ │ ├── delete_overlapping_transient_after_inherited_storage_same_value_type.sol │ │ │ │ ├── delete_overlapping_transient_after_storage_array_delete_different_base_type.sol │ │ │ │ ├── delete_overlapping_transient_after_storage_array_pop_same_base_type.sol │ │ │ │ ├── delete_overlapping_transient_after_storage_delete_same_value_type.sol │ │ │ │ ├── delete_overlapping_transient_after_storage_mapping_delete_same_value_type.sol │ │ │ │ ├── delete_overlapping_transient_after_storage_struct_delete_same_value_type.sol │ │ │ │ ├── delete_overlapping_transient_before_inherited_storage_same_value_type.sol │ │ │ │ ├── delete_overlapping_transient_before_storage_array_delete_different_base_type.sol │ │ │ │ ├── delete_overlapping_transient_before_storage_array_partial_assignment_same_base_type.sol │ │ │ │ ├── delete_overlapping_transient_before_storage_delete_same_value_type.sol │ │ │ │ ├── delete_overlapping_transient_before_storage_mapping_delete_same_value_type.sol │ │ │ │ ├── delete_overlapping_transient_before_storage_struct_delete_same_value_type.sol │ │ │ │ ├── empty_nonempty_empty.sol │ │ │ │ ├── mapping_state.sol │ │ │ │ ├── mapping_string_key.sol │ │ │ │ ├── mappings_array2d_pop_delete.sol │ │ │ │ ├── mappings_array_pop_delete.sol │ │ │ │ ├── packed_functions.sol │ │ │ │ ├── packed_storage_overflow.sol │ │ │ │ ├── packed_storage_signed.sol │ │ │ │ ├── packed_storage_structs_bytes.sol │ │ │ │ ├── packed_storage_structs_enum.sol │ │ │ │ ├── packed_storage_structs_uint.sol │ │ │ │ ├── simple_accessor.sol │ │ │ │ ├── state_smoke_test.sol │ │ │ │ ├── static_array_copy_cleanup.sol │ │ │ │ ├── storage_boundary_array_and_partial_assignment_with_layout.sol │ │ │ │ ├── storage_boundary_array_assignment.sol │ │ │ │ ├── storage_boundary_array_copy.sol │ │ │ │ ├── storage_boundary_array_delete.sol │ │ │ │ ├── storage_boundary_array_delete_overlapping_variable.sol │ │ │ │ ├── storage_boundary_array_packing_not_overlapping_variable.sol │ │ │ │ ├── storage_boundary_array_partial_assignment.sol │ │ │ │ ├── storage_boundary_delete_overflow_bug.sol │ │ │ │ ├── storage_boundary_packed_array.sol │ │ │ │ ├── storage_boundary_struct_array_mixed_types.sol │ │ │ │ ├── storage_boundary_struct_array_multislot.sol │ │ │ │ ├── storage_boundary_struct_array_packed.sol │ │ │ │ ├── storage_packed_array_copy.sol │ │ │ │ └── struct_accessor.sol │ │ │ ├── storageLayoutSpecifier/ │ │ │ │ ├── base_slot_max_value.sol │ │ │ │ ├── constructor.sol │ │ │ │ ├── delete.sol │ │ │ │ ├── delete_transient_storage.sol │ │ │ │ ├── dynamic_array_storage_end.sol │ │ │ │ ├── function_from_base_contract.sol │ │ │ │ ├── getters.sol │ │ │ │ ├── inheritance_from_abstract_contract.sol │ │ │ │ ├── inheritance_from_interface.sol │ │ │ │ ├── inheritance_from_same_base_state_var_slots.sol │ │ │ │ ├── inheritance_simple.sol │ │ │ │ ├── inheritance_state_variable_slot_offset.sol │ │ │ │ ├── inline_assembly_direct_load.sol │ │ │ │ ├── inline_assembly_direct_store.sol │ │ │ │ ├── last_allowed_storage_slot.sol │ │ │ │ ├── mapping_storage_end.sol │ │ │ │ ├── multiple_inheritance.sol │ │ │ │ ├── multiple_inheritance_state_var_slots.sol │ │ │ │ ├── state_variable_arithmetic_expression.sol │ │ │ │ ├── state_variable_constant_and_immutable.sol │ │ │ │ ├── state_variable_dynamic_array.sol │ │ │ │ ├── state_variable_enum.sol │ │ │ │ ├── state_variable_mapping.sol │ │ │ │ ├── state_variable_reference_types_slot_offset.sol │ │ │ │ ├── state_variable_slot_offset.sol │ │ │ │ ├── state_variable_struct.sol │ │ │ │ ├── state_variables_transient.sol │ │ │ │ ├── storage_reference_array.sol │ │ │ │ ├── storage_reference_inheritance.sol │ │ │ │ ├── storage_reference_library_function.sol │ │ │ │ ├── transient_state_variable_slot_offset.sol │ │ │ │ ├── variable_cleanup.sol │ │ │ │ ├── variable_cleanup_sstore.sol │ │ │ │ └── virtual_functions.sol │ │ │ ├── strings/ │ │ │ │ ├── concat/ │ │ │ │ │ ├── string_concat_2_args.sol │ │ │ │ │ ├── string_concat_different_types.sol │ │ │ │ │ ├── string_concat_empty_argument_list.sol │ │ │ │ │ ├── string_concat_empty_strings.sol │ │ │ │ │ └── string_concat_nested.sol │ │ │ │ ├── constant_string_literal.sol │ │ │ │ ├── empty_storage_string.sol │ │ │ │ ├── empty_string.sol │ │ │ │ ├── empty_string_input.sol │ │ │ │ ├── return_string.sol │ │ │ │ ├── string_escapes.sol │ │ │ │ ├── unicode_escapes.sol │ │ │ │ └── unicode_string.sol │ │ │ ├── structs/ │ │ │ │ ├── array_of_recursive_struct.sol │ │ │ │ ├── calldata/ │ │ │ │ │ ├── calldata_nested_structs.sol │ │ │ │ │ ├── calldata_struct.sol │ │ │ │ │ ├── calldata_struct_and_ints.sol │ │ │ │ │ ├── calldata_struct_array_member.sol │ │ │ │ │ ├── calldata_struct_array_member_dynamic.sol │ │ │ │ │ ├── calldata_struct_as_argument_of_lib_function.sol │ │ │ │ │ ├── calldata_struct_as_memory_argument.sol │ │ │ │ │ ├── calldata_struct_struct_member.sol │ │ │ │ │ ├── calldata_struct_struct_member_dynamic.sol │ │ │ │ │ ├── calldata_struct_to_memory.sol │ │ │ │ │ ├── calldata_struct_to_memory_tuple_assignment.sol │ │ │ │ │ ├── calldata_struct_to_storage.sol │ │ │ │ │ ├── calldata_struct_with_array_to_memory.sol │ │ │ │ │ ├── calldata_struct_with_bytes_to_memory.sol │ │ │ │ │ ├── calldata_struct_with_nested_array_to_memory.sol │ │ │ │ │ ├── calldata_struct_with_nested_array_to_storage.sol │ │ │ │ │ ├── calldata_structs.sol │ │ │ │ │ ├── dynamic_nested.sol │ │ │ │ │ └── dynamically_encoded.sol │ │ │ │ ├── conversion/ │ │ │ │ │ ├── recursive_storage_memory.sol │ │ │ │ │ └── recursive_storage_memory_complex.sol │ │ │ │ ├── copy_from_mapping.sol │ │ │ │ ├── copy_from_storage.sol │ │ │ │ ├── copy_struct_array_from_storage.sol │ │ │ │ ├── copy_struct_with_nested_array_from_calldata_to_memory.sol │ │ │ │ ├── copy_struct_with_nested_array_from_calldata_to_storage.sol │ │ │ │ ├── copy_struct_with_nested_array_from_memory_to_memory.sol │ │ │ │ ├── copy_struct_with_nested_array_from_storage_to_storage.sol │ │ │ │ ├── copy_substructures_from_mapping.sol │ │ │ │ ├── copy_substructures_to_mapping.sol │ │ │ │ ├── copy_to_mapping.sol │ │ │ │ ├── delete_struct.sol │ │ │ │ ├── event.sol │ │ │ │ ├── function_type_copy.sol │ │ │ │ ├── global.sol │ │ │ │ ├── lone_struct_array_type.sol │ │ │ │ ├── memory_struct_named_constructor.sol │ │ │ │ ├── memory_structs_as_function_args.sol │ │ │ │ ├── memory_structs_nested.sol │ │ │ │ ├── memory_structs_nested_load.sol │ │ │ │ ├── memory_structs_read_write.sol │ │ │ │ ├── msg_data_to_struct_member_copy.sol │ │ │ │ ├── multislot_struct_allocation.sol │ │ │ │ ├── nested_struct_allocation.sol │ │ │ │ ├── packed_storage_structs_delete.sol │ │ │ │ ├── recursive_struct_2.sol │ │ │ │ ├── recursive_structs.sol │ │ │ │ ├── simple_struct_allocation.sol │ │ │ │ ├── struct_assign_reference_to_struct.sol │ │ │ │ ├── struct_constructor_nested.sol │ │ │ │ ├── struct_containing_bytes_copy_and_delete.sol │ │ │ │ ├── struct_copy.sol │ │ │ │ ├── struct_copy_via_local.sol │ │ │ │ ├── struct_delete_member.sol │ │ │ │ ├── struct_delete_storage.sol │ │ │ │ ├── struct_delete_storage_nested_small.sol │ │ │ │ ├── struct_delete_storage_small.sol │ │ │ │ ├── struct_delete_storage_with_array.sol │ │ │ │ ├── struct_delete_storage_with_arrays_small.sol │ │ │ │ ├── struct_delete_struct_in_mapping.sol │ │ │ │ ├── struct_memory_to_storage.sol │ │ │ │ ├── struct_memory_to_storage_function_ptr.sol │ │ │ │ ├── struct_named_constructor.sol │ │ │ │ ├── struct_reference.sol │ │ │ │ ├── struct_referencing.sol │ │ │ │ ├── struct_storage_push_zero_value.sol │ │ │ │ ├── struct_storage_to_mapping.sol │ │ │ │ ├── struct_storage_to_memory.sol │ │ │ │ ├── struct_storage_to_memory_function_ptr.sol │ │ │ │ ├── structs.sol │ │ │ │ └── using_for_function_on_struct.sol │ │ │ ├── tryCatch/ │ │ │ │ ├── assert.sol │ │ │ │ ├── assert_pre_byzantium.sol │ │ │ │ ├── create.sol │ │ │ │ ├── invalid_error_encoding.sol │ │ │ │ ├── lowLevel.sol │ │ │ │ ├── malformed_error.sol │ │ │ │ ├── malformed_panic.sol │ │ │ │ ├── malformed_panic_2.sol │ │ │ │ ├── malformed_panic_3.sol │ │ │ │ ├── malformed_panic_4.sol │ │ │ │ ├── nested.sol │ │ │ │ ├── panic.sol │ │ │ │ ├── require.sol │ │ │ │ ├── require_pre_byzantium.sol │ │ │ │ ├── return_function.sol │ │ │ │ ├── simple.sol │ │ │ │ ├── simple_notuple.sol │ │ │ │ ├── structured.sol │ │ │ │ ├── structuredAndLowLevel.sol │ │ │ │ └── try_catch_library_call.sol │ │ │ ├── types/ │ │ │ │ ├── array_mapping_abstract_constructor_param.sol │ │ │ │ ├── assign_calldata_value_type.sol │ │ │ │ ├── convert_fixed_bytes_to_fixed_bytes_greater_size.sol │ │ │ │ ├── convert_fixed_bytes_to_fixed_bytes_same_size.sol │ │ │ │ ├── convert_fixed_bytes_to_fixed_bytes_smaller_size.sol │ │ │ │ ├── convert_fixed_bytes_to_uint_greater_size.sol │ │ │ │ ├── convert_fixed_bytes_to_uint_same_min_size.sol │ │ │ │ ├── convert_fixed_bytes_to_uint_same_type.sol │ │ │ │ ├── convert_fixed_bytes_to_uint_smaller_size.sol │ │ │ │ ├── convert_uint_to_fixed_bytes_greater_size.sol │ │ │ │ ├── convert_uint_to_fixed_bytes_same_min_size.sol │ │ │ │ ├── convert_uint_to_fixed_bytes_same_size.sol │ │ │ │ ├── convert_uint_to_fixed_bytes_smaller_size.sol │ │ │ │ ├── external_function_to_address.sol │ │ │ │ ├── mapping/ │ │ │ │ │ ├── copy_from_mapping_to_mapping.sol │ │ │ │ │ ├── copy_struct_to_array_stored_in_mapping.sol │ │ │ │ │ └── user_defined_types_mapping_storage.sol │ │ │ │ ├── mapping_abstract_constructor_param.sol │ │ │ │ ├── mapping_contract_key.sol │ │ │ │ ├── mapping_contract_key_getter.sol │ │ │ │ ├── mapping_contract_key_library.sol │ │ │ │ ├── mapping_enum_key_getter_v1.sol │ │ │ │ ├── mapping_enum_key_getter_v2.sol │ │ │ │ ├── mapping_enum_key_library_v1.sol │ │ │ │ ├── mapping_enum_key_library_v2.sol │ │ │ │ ├── mapping_enum_key_v1.sol │ │ │ │ ├── mapping_enum_key_v2.sol │ │ │ │ ├── mapping_simple.sol │ │ │ │ ├── nested_tuples.sol │ │ │ │ ├── packing_signed_types.sol │ │ │ │ ├── packing_unpacking_types.sol │ │ │ │ ├── strings.sol │ │ │ │ ├── struct_mapping_abstract_constructor_param.sol │ │ │ │ ├── tuple_assign_multi_slot_grow.sol │ │ │ │ └── type_conversion_cleanup.sol │ │ │ ├── underscore/ │ │ │ │ └── as_function.sol │ │ │ ├── uninitializedFunctionPointer/ │ │ │ │ ├── invalidInConstructor.sol │ │ │ │ ├── invalidStoredInConstructor.sol │ │ │ │ ├── store2.sol │ │ │ │ ├── storeInConstructor.sol │ │ │ │ ├── uninitialized_internal_storage_function_legacy.sol │ │ │ │ └── uninitialized_internal_storage_function_via_yul.sol │ │ │ ├── userDefinedValueType/ │ │ │ │ ├── abicodec.sol │ │ │ │ ├── assembly_access_bytes2_abicoder_v1.sol │ │ │ │ ├── assembly_access_bytes2_abicoder_v2.sol │ │ │ │ ├── calldata.sol │ │ │ │ ├── calldata_to_storage.sol │ │ │ │ ├── cleanup.sol │ │ │ │ ├── cleanup_abicoderv1.sol │ │ │ │ ├── constant.sol │ │ │ │ ├── conversion.sol │ │ │ │ ├── conversion_abicoderv1.sol │ │ │ │ ├── dirty_slot.sol │ │ │ │ ├── dirty_uint8_read.sol │ │ │ │ ├── erc20.sol │ │ │ │ ├── fixedpoint.sol │ │ │ │ ├── immutable_signed.sol │ │ │ │ ├── in_parenthesis.sol │ │ │ │ ├── mapping_key.sol │ │ │ │ ├── memory_to_storage.sol │ │ │ │ ├── multisource.sol │ │ │ │ ├── multisource_module.sol │ │ │ │ ├── ownable.sol │ │ │ │ ├── parameter.sol │ │ │ │ ├── simple.sol │ │ │ │ ├── storage_layout.sol │ │ │ │ ├── storage_layout_struct.sol │ │ │ │ ├── storage_signed.sol │ │ │ │ ├── wrap_unwrap.sol │ │ │ │ ├── wrap_unwrap_via_contract_name.sol │ │ │ │ ├── zero_cost_abstraction_comparison_elementary.sol │ │ │ │ └── zero_cost_abstraction_comparison_userdefined.sol │ │ │ ├── using/ │ │ │ │ ├── calldata_memory_copy.sol │ │ │ │ ├── free_function_braces.sol │ │ │ │ ├── free_function_multi.sol │ │ │ │ ├── free_functions_individual.sol │ │ │ │ ├── imported_functions.sol │ │ │ │ ├── library_functions_inside_contract.sol │ │ │ │ ├── library_on_interface.sol │ │ │ │ ├── library_through_module.sol │ │ │ │ ├── module_renamed.sol │ │ │ │ ├── private_library_function.sol │ │ │ │ ├── recursive_import.sol │ │ │ │ ├── using_global_all_the_types.sol │ │ │ │ ├── using_global_for_global.sol │ │ │ │ ├── using_global_invisible.sol │ │ │ │ └── using_global_library.sol │ │ │ ├── variables/ │ │ │ │ ├── delete_local.sol │ │ │ │ ├── delete_locals.sol │ │ │ │ ├── delete_transient_state_variable.sol │ │ │ │ ├── delete_transient_state_variable_non_zero_offset.sol │ │ │ │ ├── mapping_local_assignment.sol │ │ │ │ ├── mapping_local_compound_assignment.sol │ │ │ │ ├── mapping_local_tuple_assignment.sol │ │ │ │ ├── public_state_overridding.sol │ │ │ │ ├── public_state_overridding_dynamic_struct.sol │ │ │ │ ├── public_state_overridding_mapping_to_dynamic_struct.sol │ │ │ │ ├── storing_invalid_boolean.sol │ │ │ │ ├── transient_function_type_state_variable.sol │ │ │ │ ├── transient_state_address_variable_members.sol │ │ │ │ ├── transient_state_enum_variable.sol │ │ │ │ ├── transient_state_variable.sol │ │ │ │ ├── transient_state_variable_cleanup_assignment.sol │ │ │ │ ├── transient_state_variable_cleanup_tstore.sol │ │ │ │ ├── transient_state_variable_slot_inline_assembly.sol │ │ │ │ ├── transient_state_variable_slots_and_offsets.sol │ │ │ │ ├── transient_state_variable_tuple_assignment.sol │ │ │ │ └── transient_state_variable_udvt.sol │ │ │ ├── various/ │ │ │ │ ├── address_code.sol │ │ │ │ ├── address_code_complex.sol │ │ │ │ ├── assignment_to_const_var_involving_expression.sol │ │ │ │ ├── balance.sol │ │ │ │ ├── byte_optimization_bug.sol │ │ │ │ ├── code_access_content.sol │ │ │ │ ├── code_access_create.sol │ │ │ │ ├── code_access_padding.sol │ │ │ │ ├── code_access_runtime.sol │ │ │ │ ├── code_length.sol │ │ │ │ ├── code_length_contract_member.sol │ │ │ │ ├── codebalance_assembly.sol │ │ │ │ ├── codehash.sol │ │ │ │ ├── codehash_assembly.sol │ │ │ │ ├── contract_binary_dependencies.sol │ │ │ │ ├── crazy_elementary_typenames_on_stack.sol │ │ │ │ ├── create_calldata.sol │ │ │ │ ├── create_random.sol │ │ │ │ ├── cross_contract_types.sol │ │ │ │ ├── decayed_tuple.sol │ │ │ │ ├── destructuring_assignment.sol │ │ │ │ ├── different_call_type_transient.sol │ │ │ │ ├── empty_name_return_parameter.sol │ │ │ │ ├── eof/ │ │ │ │ │ └── create_calldata.sol │ │ │ │ ├── erc20.sol │ │ │ │ ├── external_types_in_calls.sol │ │ │ │ ├── flipping_sign_tests.sol │ │ │ │ ├── gasleft_decrease.sol │ │ │ │ ├── gasleft_shadow_resolution.sol │ │ │ │ ├── inline_member_init.sol │ │ │ │ ├── inline_member_init_inheritence.sol │ │ │ │ ├── inline_tuple_with_rational_numbers.sol │ │ │ │ ├── iszero_bnot_correct.sol │ │ │ │ ├── literal_empty_string.sol │ │ │ │ ├── many_subassemblies.sol │ │ │ │ ├── memory_overwrite.sol │ │ │ │ ├── multi_modifiers.sol │ │ │ │ ├── multi_variable_declaration.sol │ │ │ │ ├── negative_stack_height.sol │ │ │ │ ├── nested_calldata_struct.sol │ │ │ │ ├── nested_calldata_struct_to_memory.sol │ │ │ │ ├── positive_integers_to_signed.sol │ │ │ │ ├── selfdestruct_post_cancun.sol │ │ │ │ ├── selfdestruct_post_cancun_multiple_beneficiaries.sol │ │ │ │ ├── selfdestruct_post_cancun_redeploy.sol │ │ │ │ ├── selfdestruct_pre_cancun.sol │ │ │ │ ├── selfdestruct_pre_cancun_multiple_beneficiaries.sol │ │ │ │ ├── selfdestruct_pre_cancun_redeploy.sol │ │ │ │ ├── senders_balance.sol │ │ │ │ ├── single_copy_with_multiple_inheritance.sol │ │ │ │ ├── skip_dynamic_types.sol │ │ │ │ ├── skip_dynamic_types_for_static_arrays_with_dynamic_elements.sol │ │ │ │ ├── skip_dynamic_types_for_structs.sol │ │ │ │ ├── state_variable_local_variable_mixture.sol │ │ │ │ ├── state_variable_under_contract_name.sol │ │ │ │ ├── staticcall_for_view_and_pure.sol │ │ │ │ ├── staticcall_for_view_and_pure_pre_byzantium.sol │ │ │ │ ├── storage_string_as_mapping_key_without_variable.sol │ │ │ │ ├── store_bytes.sol │ │ │ │ ├── string_tuples.sol │ │ │ │ ├── super.sol │ │ │ │ ├── super_alone.sol │ │ │ │ ├── super_parentheses.sol │ │ │ │ ├── swap_in_storage_overwrite.sol │ │ │ │ ├── test_underscore_in_hex.sol │ │ │ │ ├── transient_storage_reentrancy_lock.sol │ │ │ │ ├── tuples.sol │ │ │ │ ├── typed_multi_variable_declaration.sol │ │ │ │ └── write_storage_external.sol │ │ │ ├── viaYul/ │ │ │ │ ├── assert.sol │ │ │ │ ├── assert_and_require.sol │ │ │ │ ├── assign_tuple_from_function_call.sol │ │ │ │ ├── cleanup/ │ │ │ │ │ ├── checked_arithmetic.sol │ │ │ │ │ └── comparison.sol │ │ │ │ ├── comparison.sol │ │ │ │ ├── comparison_functions.sol │ │ │ │ ├── conditional/ │ │ │ │ │ ├── conditional_multiple.sol │ │ │ │ │ ├── conditional_true_false_literal.sol │ │ │ │ │ ├── conditional_tuple.sol │ │ │ │ │ ├── conditional_with_assignment.sol │ │ │ │ │ └── conditional_with_variables.sol │ │ │ │ ├── conversion/ │ │ │ │ │ ├── explicit_cast_assignment.sol │ │ │ │ │ ├── explicit_cast_function_call.sol │ │ │ │ │ ├── explicit_cast_local_assignment.sol │ │ │ │ │ ├── explicit_string_bytes_calldata_cast.sol │ │ │ │ │ ├── function_cast.sol │ │ │ │ │ ├── implicit_cast_assignment.sol │ │ │ │ │ ├── implicit_cast_function_call.sol │ │ │ │ │ └── implicit_cast_local_assignment.sol │ │ │ │ ├── copy_struct_invalid_ir_bug.sol │ │ │ │ ├── define_tuple_from_function_call.sol │ │ │ │ ├── delete.sol │ │ │ │ ├── detect_add_overflow.sol │ │ │ │ ├── detect_add_overflow_signed.sol │ │ │ │ ├── detect_div_overflow.sol │ │ │ │ ├── detect_mod_zero.sol │ │ │ │ ├── detect_mod_zero_signed.sol │ │ │ │ ├── detect_mul_overflow.sol │ │ │ │ ├── detect_mul_overflow_signed.sol │ │ │ │ ├── detect_sub_overflow.sol │ │ │ │ ├── detect_sub_overflow_signed.sol │ │ │ │ ├── dirty_calldata_struct.sol │ │ │ │ ├── dirty_memory_dynamic_array.sol │ │ │ │ ├── dirty_memory_int32.sol │ │ │ │ ├── dirty_memory_static_array.sol │ │ │ │ ├── dirty_memory_struct.sol │ │ │ │ ├── dirty_memory_uint32.sol │ │ │ │ ├── empty_return_corrupted_free_memory_pointer.sol │ │ │ │ ├── exp.sol │ │ │ │ ├── exp_literals.sol │ │ │ │ ├── exp_literals_success.sol │ │ │ │ ├── exp_neg.sol │ │ │ │ ├── exp_neg_overflow.sol │ │ │ │ ├── exp_overflow.sol │ │ │ │ ├── exp_various.sol │ │ │ │ ├── function_address.sol │ │ │ │ ├── function_entry_checks.sol │ │ │ │ ├── function_pointers.sol │ │ │ │ ├── function_selector.sol │ │ │ │ ├── if.sol │ │ │ │ ├── keccak.sol │ │ │ │ ├── local_address_assignment.sol │ │ │ │ ├── local_assignment.sol │ │ │ │ ├── local_bool_assignment.sol │ │ │ │ ├── local_tuple_assignment.sol │ │ │ │ ├── local_variable_without_init.sol │ │ │ │ ├── loops/ │ │ │ │ │ ├── break.sol │ │ │ │ │ ├── continue.sol │ │ │ │ │ ├── return.sol │ │ │ │ │ └── simple.sol │ │ │ │ ├── mapping_enum_key_getter.sol │ │ │ │ ├── mapping_getters.sol │ │ │ │ ├── mapping_string_key.sol │ │ │ │ ├── memory_struct_allow.sol │ │ │ │ ├── msg_sender.sol │ │ │ │ ├── negation_bug.sol │ │ │ │ ├── require.sol │ │ │ │ ├── return.sol │ │ │ │ ├── return_and_convert.sol │ │ │ │ ├── return_storage_pointers.sol │ │ │ │ ├── short_circuit.sol │ │ │ │ ├── simple_assignment.sol │ │ │ │ ├── simple_inline_asm.sol │ │ │ │ ├── smoke_test.sol │ │ │ │ ├── storage/ │ │ │ │ │ ├── dirty_storage_bytes.sol │ │ │ │ │ ├── dirty_storage_bytes_long.sol │ │ │ │ │ ├── dirty_storage_dynamic_array.sol │ │ │ │ │ ├── dirty_storage_static_array.sol │ │ │ │ │ ├── dirty_storage_struct.sol │ │ │ │ │ ├── mappings.sol │ │ │ │ │ ├── packed_storage.sol │ │ │ │ │ └── simple_storage.sol │ │ │ │ ├── string_format.sol │ │ │ │ ├── string_literals.sol │ │ │ │ ├── struct_member_access.sol │ │ │ │ ├── tuple_evaluation_order.sol │ │ │ │ ├── unary_fixedbytes.sol │ │ │ │ ├── unary_operations.sol │ │ │ │ ├── various_inline_asm.sol │ │ │ │ └── virtual_functions.sol │ │ │ └── virtualFunctions/ │ │ │ ├── internal_virtual_function_calls.sol │ │ │ ├── internal_virtual_function_calls_through_dispatch.sol │ │ │ ├── virtual_function_calls.sol │ │ │ ├── virtual_function_usage_in_constructor_arguments.sol │ │ │ ├── virtual_override_changing_mutability_internal.sol │ │ │ └── virtual_override_changing_mutability_public.sol │ │ ├── smtCheckerTests/ │ │ │ ├── abi/ │ │ │ │ ├── abi_decode_1_tuple.sol │ │ │ │ ├── abi_decode_array.sol │ │ │ │ ├── abi_decode_simple.sol │ │ │ │ ├── abi_encode_array_slice.sol │ │ │ │ ├── abi_encode_array_slice_2.sol │ │ │ │ ├── abi_encode_call_simple_1.sol │ │ │ │ ├── abi_encode_call_simple_2.sol │ │ │ │ ├── abi_encode_call_simple_3.sol │ │ │ │ ├── abi_encode_call_simple_4.sol │ │ │ │ ├── abi_encode_call_simple_5.sol │ │ │ │ ├── abi_encode_function.sol │ │ │ │ ├── abi_encode_hash.sol │ │ │ │ ├── abi_encode_no_arguments.sol │ │ │ │ ├── abi_encode_packed_array_slice.sol │ │ │ │ ├── abi_encode_packed_array_slice_2.sol │ │ │ │ ├── abi_encode_packed_hash.sol │ │ │ │ ├── abi_encode_packed_simple.sol │ │ │ │ ├── abi_encode_packed_string_literal.sol │ │ │ │ ├── abi_encode_packed_string_literal_no_unproved.sol │ │ │ │ ├── abi_encode_simple.sol │ │ │ │ ├── abi_encode_string_literal.sol │ │ │ │ ├── abi_encode_with_selector_array_slice.sol │ │ │ │ ├── abi_encode_with_selector_array_slice_2.sol │ │ │ │ ├── abi_encode_with_selector_hash.sol │ │ │ │ ├── abi_encode_with_selector_simple.sol │ │ │ │ ├── abi_encode_with_selector_string_literal.sol │ │ │ │ ├── abi_encode_with_selector_string_literal_2.sol │ │ │ │ ├── abi_encode_with_selector_vs_sig.sol │ │ │ │ ├── abi_encode_with_sig_array_slice.sol │ │ │ │ ├── abi_encode_with_sig_array_slice_2.sol │ │ │ │ ├── abi_encode_with_sig_hash.sol │ │ │ │ ├── abi_encode_with_sig_simple.sol │ │ │ │ └── abi_encode_with_sig_string_literal.sol │ │ │ ├── array_members/ │ │ │ │ ├── array_pop_length_1.sol │ │ │ │ ├── array_pop_length_2.sol │ │ │ │ ├── array_pop_length_3.sol │ │ │ │ ├── array_pop_length_4.sol │ │ │ │ ├── array_pop_length_5.sol │ │ │ │ ├── array_pop_length_6.sol │ │ │ │ ├── array_pop_length_7.sol │ │ │ │ ├── array_pop_length_8.sol │ │ │ │ ├── array_push_string_literal.sol │ │ │ │ ├── length_1d_assignment_2d_memory_to_memory.sol │ │ │ │ ├── length_1d_assignment_2d_storage_to_storage.sol │ │ │ │ ├── length_1d_copy_2d_memory_to_storage.sol │ │ │ │ ├── length_1d_copy_2d_storage_to_memory.sol │ │ │ │ ├── length_1d_mapping_array_1.sol │ │ │ │ ├── length_1d_mapping_array_2.sol │ │ │ │ ├── length_1d_mapping_array_2d_1.sol │ │ │ │ ├── length_1d_struct_array_1.sol │ │ │ │ ├── length_1d_struct_array_2d_1.sol │ │ │ │ ├── length_assignment_2d_memory_to_memory.sol │ │ │ │ ├── length_assignment_memory_to_memory.sol │ │ │ │ ├── length_assignment_storage_to_storage.sol │ │ │ │ ├── length_basic.sol │ │ │ │ ├── length_copy_memory_to_storage.sol │ │ │ │ ├── length_copy_storage_to_memory.sol │ │ │ │ ├── length_function_call.sol │ │ │ │ ├── length_same_after_assignment.sol │ │ │ │ ├── length_same_after_assignment_2.sol │ │ │ │ ├── length_same_after_assignment_2_fail.sol │ │ │ │ ├── length_same_after_assignment_3.sol │ │ │ │ ├── length_same_after_assignment_3_fail.sol │ │ │ │ ├── pop_1_safe.sol │ │ │ │ ├── pop_1_unsafe.sol │ │ │ │ ├── pop_2d_safe.sol │ │ │ │ ├── pop_2d_unsafe.sol │ │ │ │ ├── pop_constructor_safe.sol │ │ │ │ ├── pop_constructor_unsafe.sol │ │ │ │ ├── pop_loop_safe.sol │ │ │ │ ├── pop_loop_unsafe.sol │ │ │ │ ├── push_2d_arg_1_safe.sol │ │ │ │ ├── push_2d_arg_1_unsafe.sol │ │ │ │ ├── push_arg_1.sol │ │ │ │ ├── push_as_lhs_1d.sol │ │ │ │ ├── push_as_lhs_2d.sol │ │ │ │ ├── push_as_lhs_2d_2.sol │ │ │ │ ├── push_as_lhs_3d.sol │ │ │ │ ├── push_as_lhs_and_rhs_1d.sol │ │ │ │ ├── push_as_lhs_and_rhs_2d_1.sol │ │ │ │ ├── push_as_lhs_and_rhs_2d_2.sol │ │ │ │ ├── push_as_lhs_and_rhs_bytes.sol │ │ │ │ ├── push_as_lhs_bytes.sol │ │ │ │ ├── push_as_lhs_bytes_2d.sol │ │ │ │ ├── push_as_lhs_compound_assignment.sol │ │ │ │ ├── push_as_lhs_struct.sol │ │ │ │ ├── push_function_return_value.sol │ │ │ │ ├── push_overflow_1_safe.sol │ │ │ │ ├── push_overflow_1_safe_no_overflow_assumption.sol │ │ │ │ ├── push_overflow_2_safe.sol │ │ │ │ ├── push_overflow_2_safe_no_overflow_assumption.sol │ │ │ │ ├── push_push_no_args_1.sol │ │ │ │ ├── push_push_no_args_1_fail.sol │ │ │ │ ├── push_push_no_args_2.sol │ │ │ │ ├── push_push_no_args_2_fail.sol │ │ │ │ ├── push_storage_ref_safe_aliasing.sol │ │ │ │ ├── push_storage_ref_unsafe_aliasing.sol │ │ │ │ ├── push_storage_ref_unsafe_length.sol │ │ │ │ ├── push_struct_member_1.sol │ │ │ │ ├── push_struct_member_2.sol │ │ │ │ ├── push_zero_2d_safe.sol │ │ │ │ ├── push_zero_2d_unsafe.sol │ │ │ │ ├── push_zero_safe.sol │ │ │ │ ├── push_zero_unsafe.sol │ │ │ │ ├── storage_pointer_push_1.sol │ │ │ │ └── storage_pointer_push_1_safe.sol │ │ │ ├── blockchain_state/ │ │ │ │ ├── balance_non_zero.sol │ │ │ │ ├── balance_non_zero_2.sol │ │ │ │ ├── balance_receive.sol │ │ │ │ ├── balance_receive_2.sol │ │ │ │ ├── balance_receive_3.sol │ │ │ │ ├── balance_receive_4.sol │ │ │ │ ├── balance_receive_5.sol │ │ │ │ ├── balance_receive_calls.sol │ │ │ │ ├── balance_receive_ext_calls.sol │ │ │ │ ├── balance_receive_ext_calls_2.sol │ │ │ │ ├── balance_receive_ext_calls_mutex.sol │ │ │ │ ├── balance_spend.sol │ │ │ │ ├── balance_spend_2.sol │ │ │ │ ├── balance_zero.sol │ │ │ │ ├── balance_zero_2.sol │ │ │ │ ├── balance_zero_3.sol │ │ │ │ ├── balance_zero_4.sol │ │ │ │ ├── decreasing_balance.sol │ │ │ │ ├── free_function_1.sol │ │ │ │ ├── free_function_2.sol │ │ │ │ ├── library_internal_1.sol │ │ │ │ ├── library_internal_2.sol │ │ │ │ ├── library_public_1.sol │ │ │ │ ├── library_public_2.sol │ │ │ │ ├── library_public_3.sol │ │ │ │ ├── library_public_4.sol │ │ │ │ ├── this_does_not_change.sol │ │ │ │ ├── this_does_not_change_external_call.sol │ │ │ │ ├── this_does_not_change_internal_call.sol │ │ │ │ ├── transfer_1.sol │ │ │ │ ├── transfer_2.sol │ │ │ │ ├── transfer_3.sol │ │ │ │ └── transfer_4.sol │ │ │ ├── bmc_coverage/ │ │ │ │ ├── assert.sol │ │ │ │ ├── assert_in_constructor.sol │ │ │ │ ├── branches_with_return/ │ │ │ │ │ ├── branches_in_modifiers.sol │ │ │ │ │ ├── branches_in_modifiers_2.sol │ │ │ │ │ ├── constructor_state_variable_init.sol │ │ │ │ │ ├── constructor_state_variable_init_chain_alternate.sol │ │ │ │ │ ├── constructor_state_variable_init_diamond.sol │ │ │ │ │ ├── constructors.sol │ │ │ │ │ ├── nested_if.sol │ │ │ │ │ ├── return_in_both_branches.sol │ │ │ │ │ ├── simple_if.sol │ │ │ │ │ ├── simple_if2.sol │ │ │ │ │ ├── simple_if_array.sol │ │ │ │ │ ├── simple_if_state_var.sol │ │ │ │ │ ├── simple_if_struct.sol │ │ │ │ │ ├── simple_if_struct_2.sol │ │ │ │ │ ├── simple_if_tuple.sol │ │ │ │ │ └── triple_nested_if.sol │ │ │ │ ├── call_balance.sol │ │ │ │ ├── call_state_var.sol │ │ │ │ ├── compound_bitwise_or_uint_3.sol │ │ │ │ ├── cross_contract_getter_call.sol │ │ │ │ ├── funds.sol │ │ │ │ ├── implicit_constructor_with_function_calls.sol │ │ │ │ ├── math.sol │ │ │ │ ├── math_constructor.sol │ │ │ │ ├── msg_value_4.sol │ │ │ │ ├── range_check.sol │ │ │ │ ├── staticcall_balance.sol │ │ │ │ ├── staticcall_state_var.sol │ │ │ │ ├── timestamp.sol │ │ │ │ ├── try_multiple_catch_clauses_2.sol │ │ │ │ ├── try_multiple_returned_values_with_tuple.sol │ │ │ │ ├── unary_add_minus_overflow_detected.sol │ │ │ │ └── unchecked_function_call_with_unchecked_block.sol │ │ │ ├── bytes_concat/ │ │ │ │ ├── equals.sol │ │ │ │ ├── one_arg_call.sol │ │ │ │ └── simple.sol │ │ │ ├── complex/ │ │ │ │ ├── MerkleProof.sol │ │ │ │ ├── slither/ │ │ │ │ │ ├── const_state_variables.sol │ │ │ │ │ ├── data_dependency.sol │ │ │ │ │ └── external_function.sol │ │ │ │ └── warn_on_typecast.sol │ │ │ ├── control_flow/ │ │ │ │ ├── assignment_in_declaration.sol │ │ │ │ ├── branches_assert_condition_1.sol │ │ │ │ ├── branches_assert_condition_2.sol │ │ │ │ ├── branches_inside_modifiers_1.sol │ │ │ │ ├── branches_inside_modifiers_2.sol │ │ │ │ ├── branches_inside_modifiers_3.sol │ │ │ │ ├── branches_inside_modifiers_4.sol │ │ │ │ ├── branches_merge_variables_1.sol │ │ │ │ ├── branches_merge_variables_2.sol │ │ │ │ ├── branches_merge_variables_3.sol │ │ │ │ ├── branches_merge_variables_4.sol │ │ │ │ ├── branches_merge_variables_5.sol │ │ │ │ ├── branches_merge_variables_6.sol │ │ │ │ ├── branches_with_return/ │ │ │ │ │ ├── branches_in_modifiers.sol │ │ │ │ │ ├── branches_in_modifiers_2.sol │ │ │ │ │ ├── constructor_state_variable_init.sol │ │ │ │ │ ├── constructor_state_variable_init_chain_alternate.sol │ │ │ │ │ ├── constructor_state_variable_init_diamond.sol │ │ │ │ │ ├── constructors.sol │ │ │ │ │ ├── nested_if.sol │ │ │ │ │ ├── return_in_both_branches.sol │ │ │ │ │ ├── simple_if.sol │ │ │ │ │ ├── simple_if2.sol │ │ │ │ │ ├── simple_if_array.sol │ │ │ │ │ ├── simple_if_state_var.sol │ │ │ │ │ ├── simple_if_struct.sol │ │ │ │ │ ├── simple_if_struct_2.sol │ │ │ │ │ ├── simple_if_tuple.sol │ │ │ │ │ └── triple_nested_if.sol │ │ │ │ ├── function_call_inside_branch.sol │ │ │ │ ├── function_call_inside_branch_2.sol │ │ │ │ ├── function_call_inside_branch_3.sol │ │ │ │ ├── function_call_inside_branch_4.sol │ │ │ │ ├── function_call_inside_else_branch.sol │ │ │ │ ├── function_call_inside_modifier_branch.sol │ │ │ │ ├── function_call_inside_placeholder_inside_modifier_branch.sol │ │ │ │ ├── require.sol │ │ │ │ ├── return_1.sol │ │ │ │ ├── return_1_fail.sol │ │ │ │ ├── return_2.sol │ │ │ │ ├── return_2_fail.sol │ │ │ │ ├── revert.sol │ │ │ │ ├── revert_complex_flow.sol │ │ │ │ ├── short_circuit_and.sol │ │ │ │ ├── short_circuit_and_fail.sol │ │ │ │ ├── short_circuit_and_inside_branch.sol │ │ │ │ ├── short_circuit_and_need_both.sol │ │ │ │ ├── short_circuit_and_need_both_fail.sol │ │ │ │ ├── short_circuit_and_touched.sol │ │ │ │ ├── short_circuit_and_touched_function.sol │ │ │ │ ├── short_circuit_or.sol │ │ │ │ ├── short_circuit_or_fail.sol │ │ │ │ ├── short_circuit_or_inside_branch.sol │ │ │ │ ├── short_circuit_or_need_both.sol │ │ │ │ ├── short_circuit_or_need_both_fail.sol │ │ │ │ ├── short_circuit_or_touched.sol │ │ │ │ ├── short_circuit_or_touched_function.sol │ │ │ │ ├── side_effects_inside_if_1.sol │ │ │ │ ├── side_effects_inside_if_2.sol │ │ │ │ ├── side_effects_inside_if_3.sol │ │ │ │ ├── side_effects_inside_if_4.sol │ │ │ │ ├── side_effects_inside_ternary_1.sol │ │ │ │ ├── side_effects_inside_ternary_2.sol │ │ │ │ ├── side_effects_inside_ternary_3.sol │ │ │ │ ├── side_effects_inside_ternary_4.sol │ │ │ │ ├── try_catch_1.sol │ │ │ │ ├── try_catch_2.sol │ │ │ │ ├── virtual_function_call_inside_branch_1.sol │ │ │ │ ├── virtual_function_call_inside_branch_2.sol │ │ │ │ ├── ways_to_merge_variables_1.sol │ │ │ │ ├── ways_to_merge_variables_2.sol │ │ │ │ └── ways_to_merge_variables_3.sol │ │ │ ├── crypto/ │ │ │ │ ├── crypto_functions_compare_hashes.sol │ │ │ │ ├── crypto_functions_fail.sol │ │ │ │ ├── crypto_functions_not_same.sol │ │ │ │ ├── crypto_functions_over_blocks.sol │ │ │ │ ├── crypto_functions_same_array.sol │ │ │ │ ├── crypto_functions_same_input_over_state_same_output.sol │ │ │ │ ├── crypto_functions_same_input_over_state_same_output_fail.sol │ │ │ │ ├── crypto_functions_same_input_same_output.sol │ │ │ │ └── crypto_functions_same_string_literal.sol │ │ │ ├── deployment/ │ │ │ │ ├── deploy_bmc_trusted.sol │ │ │ │ ├── deploy_bmc_untrusted.sol │ │ │ │ ├── deploy_trusted.sol │ │ │ │ ├── deploy_trusted_addresses.sol │ │ │ │ ├── deploy_trusted_flow.sol │ │ │ │ ├── deploy_trusted_keep_storage_constraints.sol │ │ │ │ ├── deploy_trusted_state_flow.sol │ │ │ │ ├── deploy_trusted_state_flow_2.sol │ │ │ │ ├── deploy_trusted_state_flow_3.sol │ │ │ │ ├── deploy_trusted_state_flow_4.sol │ │ │ │ ├── deploy_untrusted.sol │ │ │ │ ├── deploy_untrusted_addresses.sol │ │ │ │ ├── deploy_untrusted_erase_storage_constraints.sol │ │ │ │ └── deployment_trusted_with_value_1.sol │ │ │ ├── external_calls/ │ │ │ │ ├── call_abstract_constructor_trusted_1.sol │ │ │ │ ├── call_abstract_constructor_trusted_2.sol │ │ │ │ ├── call_abstract_trusted_1.sol │ │ │ │ ├── call_abstract_trusted_2.sol │ │ │ │ ├── call_abstract_trusted_3.sol │ │ │ │ ├── call_constructor_1.sol │ │ │ │ ├── call_constructor_2.sol │ │ │ │ ├── call_mutex.sol │ │ │ │ ├── call_mutex_unsafe.sol │ │ │ │ ├── call_reentrancy_1.sol │ │ │ │ ├── call_reentrancy_view.sol │ │ │ │ ├── call_return_1.sol │ │ │ │ ├── call_return_2.sol │ │ │ │ ├── call_safe.sol │ │ │ │ ├── call_with_value_1.sol │ │ │ │ ├── call_with_value_2.sol │ │ │ │ ├── call_with_value_3.sol │ │ │ │ ├── external.sol │ │ │ │ ├── external_call_extra_parentheses_1.sol │ │ │ │ ├── external_call_extra_parentheses_2.sol │ │ │ │ ├── external_call_from_constructor_1.sol │ │ │ │ ├── external_call_from_constructor_1_trusted.sol │ │ │ │ ├── external_call_from_constructor_2.sol │ │ │ │ ├── external_call_from_constructor_2_trusted.sol │ │ │ │ ├── external_call_from_constructor_3.sol │ │ │ │ ├── external_call_from_constructor_3_trusted.sol │ │ │ │ ├── external_call_from_constructor_reentrancy_1.sol │ │ │ │ ├── external_call_indirect_1.sol │ │ │ │ ├── external_call_indirect_2.sol │ │ │ │ ├── external_call_indirect_3.sol │ │ │ │ ├── external_call_indirect_4.sol │ │ │ │ ├── external_call_indirect_5.sol │ │ │ │ ├── external_call_semantic_this_1.sol │ │ │ │ ├── external_call_semantic_this_2.sol │ │ │ │ ├── external_call_semantic_this_3.sol │ │ │ │ ├── external_call_state_var_address_inside_array_struct_trusted_1.sol │ │ │ │ ├── external_call_state_var_address_inside_array_struct_trusted_2.sol │ │ │ │ ├── external_call_state_var_address_inside_array_trusted_1.sol │ │ │ │ ├── external_call_state_var_address_inside_array_trusted_2.sol │ │ │ │ ├── external_call_state_var_address_inside_struct_trusted_1.sol │ │ │ │ ├── external_call_state_var_address_inside_struct_trusted_2.sol │ │ │ │ ├── external_call_state_var_address_inside_struct_trusted_3.sol │ │ │ │ ├── external_call_state_var_address_inside_struct_trusted_4.sol │ │ │ │ ├── external_call_state_var_contract_inside_array_struct_trusted_1.sol │ │ │ │ ├── external_call_state_var_contract_inside_array_struct_trusted_2.sol │ │ │ │ ├── external_call_state_var_contract_inside_array_trusted_1.sol │ │ │ │ ├── external_call_state_var_contract_inside_array_trusted_2.sol │ │ │ │ ├── external_call_state_var_contract_inside_struct_trusted_1.sol │ │ │ │ ├── external_call_state_var_contract_inside_struct_trusted_2.sol │ │ │ │ ├── external_call_state_var_contract_inside_struct_trusted_3.sol │ │ │ │ ├── external_call_state_var_contract_inside_struct_trusted_4.sol │ │ │ │ ├── external_call_this_with_value_1.sol │ │ │ │ ├── external_call_this_with_value_2.sol │ │ │ │ ├── external_call_with_gas_1.sol │ │ │ │ ├── external_call_with_value_1.sol │ │ │ │ ├── external_call_with_value_2.sol │ │ │ │ ├── external_call_with_value_3.sol │ │ │ │ ├── external_hash.sol │ │ │ │ ├── external_hash_known_code_pure.sol │ │ │ │ ├── external_hash_known_code_pure_trusted.sol │ │ │ │ ├── external_hash_known_code_state.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_2.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_2_trusted.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_3.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_indirect.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_indirect_trusted.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_trusted.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_unsafe.sol │ │ │ │ ├── external_hash_known_code_state_reentrancy_unsafe_trusted.sol │ │ │ │ ├── external_hash_known_code_state_trusted.sol │ │ │ │ ├── external_hash_known_code_state_unsafe.sol │ │ │ │ ├── external_hash_known_code_state_unsafe_trusted.sol │ │ │ │ ├── external_inc.sol │ │ │ │ ├── external_inc1_inc2.sol │ │ │ │ ├── external_reentrancy_1.sol │ │ │ │ ├── external_reentrancy_2.sol │ │ │ │ ├── external_reentrancy_3.sol │ │ │ │ ├── external_reentrancy_crypto.sol │ │ │ │ ├── external_safe.sol │ │ │ │ ├── external_single_inc.sol │ │ │ │ ├── internal_library_external_call_1.sol │ │ │ │ ├── internal_library_external_call_2.sol │ │ │ │ ├── internal_library_external_call_3.sol │ │ │ │ ├── mutex.sol │ │ │ │ ├── mutex_f_no_guard.sol │ │ │ │ ├── staticcall_mutex.sol │ │ │ │ ├── staticcall_mutex_2.sol │ │ │ │ ├── staticcall_reentrancy_view.sol │ │ │ │ ├── token_trusted_transfer_correct.sol │ │ │ │ ├── token_trusted_transfer_wrong.sol │ │ │ │ └── underflow_only_in_external_call.sol │ │ │ ├── file_level/ │ │ │ │ ├── abi_function_different_source.sol │ │ │ │ ├── abi_function_different_source_2.sol │ │ │ │ ├── constant_different_source.sol │ │ │ │ ├── constant_easy.sol │ │ │ │ ├── constant_string_at_file_level.sol │ │ │ │ ├── constants_at_file_level_referencing.sol │ │ │ │ ├── easy.sol │ │ │ │ ├── enum.sol │ │ │ │ ├── file_level_call_via_module.sol │ │ │ │ ├── free_constant_1.sol │ │ │ │ ├── free_constant_2.sol │ │ │ │ ├── free_function_1.sol │ │ │ │ ├── free_function_2.sol │ │ │ │ ├── free_function_3.sol │ │ │ │ ├── free_function_4.sol │ │ │ │ ├── free_function_5.sol │ │ │ │ ├── free_function_and_constant_1.sol │ │ │ │ ├── free_namesake_contract_function.sol │ │ │ │ ├── free_runtimecode.sol │ │ │ │ ├── import.sol │ │ │ │ ├── libraries_from_free.sol │ │ │ │ ├── module_constants_1.sol │ │ │ │ ├── module_constants_functions_1.sol │ │ │ │ ├── new_operator.sol │ │ │ │ ├── overloads.sol │ │ │ │ ├── recursion.sol │ │ │ │ ├── same_constants_different_files.sol │ │ │ │ └── struct.sol │ │ │ ├── function_selector/ │ │ │ │ ├── function_selector_via_contract_name.sol │ │ │ │ ├── function_types_sig.sol │ │ │ │ ├── homer.sol │ │ │ │ ├── selector.sol │ │ │ │ ├── selector_2.sol │ │ │ │ └── selector_3.sol │ │ │ ├── functions/ │ │ │ │ ├── abi_encode_functions.sol │ │ │ │ ├── constructor_base_basic.sol │ │ │ │ ├── constructor_hierarchy.sol │ │ │ │ ├── constructor_hierarchy_2.sol │ │ │ │ ├── constructor_hierarchy_3.sol │ │ │ │ ├── constructor_hierarchy_4.sol │ │ │ │ ├── constructor_hierarchy_diamond.sol │ │ │ │ ├── constructor_hierarchy_diamond_2.sol │ │ │ │ ├── constructor_hierarchy_diamond_3.sol │ │ │ │ ├── constructor_hierarchy_diamond_empty_middle.sol │ │ │ │ ├── constructor_hierarchy_diamond_empty_middle_empty_base.sol │ │ │ │ ├── constructor_hierarchy_empty_chain.sol │ │ │ │ ├── constructor_hierarchy_empty_middle.sol │ │ │ │ ├── constructor_hierarchy_empty_middle_no_invocation.sol │ │ │ │ ├── constructor_hierarchy_mixed_chain.sol │ │ │ │ ├── constructor_hierarchy_mixed_chain_empty_base.sol │ │ │ │ ├── constructor_hierarchy_mixed_chain_local_vars.sol │ │ │ │ ├── constructor_hierarchy_mixed_chain_with_params.sol │ │ │ │ ├── constructor_hierarchy_mixed_chain_with_params_2.sol │ │ │ │ ├── constructor_hierarchy_modifier.sol │ │ │ │ ├── constructor_hierarchy_same_var.sol │ │ │ │ ├── constructor_simple.sol │ │ │ │ ├── constructor_state_value.sol │ │ │ │ ├── constructor_state_value_inherited.sol │ │ │ │ ├── constructor_state_value_parameter.sol │ │ │ │ ├── constructor_this.sol │ │ │ │ ├── free_function_multiple_contracts.sol │ │ │ │ ├── function_call_does_not_clear_local_vars.sol │ │ │ │ ├── function_call_state_var_init.sol │ │ │ │ ├── function_external_call_should_not_inline_1.sol │ │ │ │ ├── function_external_call_should_not_inline_2.sol │ │ │ │ ├── function_inline_chain.sol │ │ │ │ ├── function_inside_branch_modify_state_var.sol │ │ │ │ ├── function_inside_branch_modify_state_var_2.sol │ │ │ │ ├── function_inside_branch_modify_state_var_3.sol │ │ │ │ ├── functions_attached_1.sol │ │ │ │ ├── functions_attached_1_fail.sol │ │ │ │ ├── functions_external_1.sol │ │ │ │ ├── functions_external_2.sol │ │ │ │ ├── functions_external_3.sol │ │ │ │ ├── functions_external_4.sol │ │ │ │ ├── functions_identifier_nested_tuple_1.sol │ │ │ │ ├── functions_identifier_nested_tuple_2.sol │ │ │ │ ├── functions_identifier_nested_tuple_3.sol │ │ │ │ ├── functions_identity_1.sol │ │ │ │ ├── functions_identity_1_fail.sol │ │ │ │ ├── functions_identity_2.sol │ │ │ │ ├── functions_identity_2_fail.sol │ │ │ │ ├── functions_identity_as_tuple.sol │ │ │ │ ├── functions_identity_as_tuple_fail.sol │ │ │ │ ├── functions_library_1.sol │ │ │ │ ├── functions_library_1_fail.sol │ │ │ │ ├── functions_library_internal.sol │ │ │ │ ├── functions_recursive.sol │ │ │ │ ├── functions_recursive_indirect.sol │ │ │ │ ├── functions_storage_var_1.sol │ │ │ │ ├── functions_storage_var_1_fail.sol │ │ │ │ ├── functions_storage_var_2.sol │ │ │ │ ├── functions_storage_var_2_fail.sol │ │ │ │ ├── functions_trivial_condition_for_only_call.sol │ │ │ │ ├── functions_trivial_condition_if.sol │ │ │ │ ├── functions_trivial_condition_require.sol │ │ │ │ ├── functions_trivial_condition_require_only_call.sol │ │ │ │ ├── functions_trivial_condition_while_only_call.sol │ │ │ │ ├── getters/ │ │ │ │ │ ├── address.sol │ │ │ │ │ ├── array_1.sol │ │ │ │ │ ├── array_2.sol │ │ │ │ │ ├── array_of_structs_1.sol │ │ │ │ │ ├── array_of_structs_2.sol │ │ │ │ │ ├── array_of_structs_3.sol │ │ │ │ │ ├── bytes.sol │ │ │ │ │ ├── contract.sol │ │ │ │ │ ├── double_access.sol │ │ │ │ │ ├── enum.sol │ │ │ │ │ ├── external_getter_1.sol │ │ │ │ │ ├── external_getter_2.sol │ │ │ │ │ ├── external_getter_this_1.sol │ │ │ │ │ ├── external_getter_this_2.sol │ │ │ │ │ ├── fixed_bytes.sol │ │ │ │ │ ├── function.sol │ │ │ │ │ ├── inaccessible_dynamic_type_1.sol │ │ │ │ │ ├── inaccessible_dynamic_type_2.sol │ │ │ │ │ ├── inaccessible_dynamic_type_3.sol │ │ │ │ │ ├── inaccessible_dynamic_type_4.sol │ │ │ │ │ ├── mapping_1.sol │ │ │ │ │ ├── mapping_2.sol │ │ │ │ │ ├── mapping_with_cast.sol │ │ │ │ │ ├── nested_arrays_mappings_1.sol │ │ │ │ │ ├── nested_arrays_mappings_10.sol │ │ │ │ │ ├── nested_arrays_mappings_2.sol │ │ │ │ │ ├── nested_arrays_mappings_3.sol │ │ │ │ │ ├── nested_arrays_mappings_4.sol │ │ │ │ │ ├── nested_arrays_mappings_5.sol │ │ │ │ │ ├── nested_arrays_mappings_6.sol │ │ │ │ │ ├── nested_arrays_mappings_7.sol │ │ │ │ │ ├── nested_arrays_mappings_8.sol │ │ │ │ │ ├── nested_arrays_mappings_9.sol │ │ │ │ │ ├── static_array.sol │ │ │ │ │ ├── string.sol │ │ │ │ │ ├── struct_1.sol │ │ │ │ │ ├── struct_2.sol │ │ │ │ │ ├── struct_3.sol │ │ │ │ │ ├── struct_4.sol │ │ │ │ │ ├── struct_with_reassignment.sol │ │ │ │ │ └── uint.sol │ │ │ │ ├── internal_call_inheritance.sol │ │ │ │ ├── internal_call_state_var_init.sol │ │ │ │ ├── internal_call_state_var_init_2.sol │ │ │ │ ├── internal_call_with_assertion_1.sol │ │ │ │ ├── internal_call_with_assertion_1_fail.sol │ │ │ │ ├── internal_call_with_assertion_inheritance_1.sol │ │ │ │ ├── internal_call_with_assertion_inheritance_1_fail.sol │ │ │ │ ├── internal_multiple_calls_with_assertion_1.sol │ │ │ │ ├── internal_multiple_calls_with_assertion_1_fail.sol │ │ │ │ ├── library_after_contract.sol │ │ │ │ ├── library_constant.sol │ │ │ │ ├── library_constant_2.sol │ │ │ │ ├── library_public_called_as_internal_1.sol │ │ │ │ ├── library_public_called_as_internal_2.sol │ │ │ │ ├── payable_1.sol │ │ │ │ ├── payable_2.sol │ │ │ │ ├── recursive_multi_return.sol │ │ │ │ ├── recursive_multi_return_2.sol │ │ │ │ ├── super_function_assert.sol │ │ │ │ ├── this_external_call.sol │ │ │ │ ├── this_external_call_2.sol │ │ │ │ ├── this_external_call_return.sol │ │ │ │ ├── this_external_call_sender.sol │ │ │ │ ├── this_external_call_tx_origin.sol │ │ │ │ ├── this_state.sol │ │ │ │ ├── virtual_function_assert.sol │ │ │ │ └── virtual_function_called_by_constructor.sol │ │ │ ├── imports/ │ │ │ │ ├── ExtCall.sol │ │ │ │ ├── duplicated_errors_1.sol │ │ │ │ ├── import_as_module_1.sol │ │ │ │ ├── import_as_module_2.sol │ │ │ │ ├── import_base.sol │ │ │ │ ├── import_free_functions.sol │ │ │ │ ├── import_library.sol │ │ │ │ ├── import_library_2.sol │ │ │ │ ├── imported_fail_1.sol │ │ │ │ ├── imported_fail_2.sol │ │ │ │ ├── imported_fail_3.sol │ │ │ │ ├── private_vars.sol │ │ │ │ ├── simple.sol │ │ │ │ ├── target_in_imported_contract_analyzed_when_called_from_selection_with_trusted_calls.sol │ │ │ │ └── target_in_imported_contract_not_analyzed_when_not_selected_and_not_called_from_selection.sol │ │ │ ├── inheritance/ │ │ │ │ ├── base_contract_assertion_fail_1.sol │ │ │ │ ├── base_contract_assertion_fail_2.sol │ │ │ │ ├── base_contract_assertion_fail_3.sol │ │ │ │ ├── base_contract_assertion_fail_4.sol │ │ │ │ ├── base_contract_assertion_fail_5.sol │ │ │ │ ├── base_contract_assertion_fail_6.sol │ │ │ │ ├── base_contract_assertion_fail_7.sol │ │ │ │ ├── base_contract_assertion_fail_8.sol │ │ │ │ ├── base_contract_assertion_fail_9.sol │ │ │ │ ├── constructor_hierarchy_base_calls_inheritance_specifier_1.sol │ │ │ │ ├── constructor_hierarchy_base_calls_inheritance_specifier_2.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_1.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_2.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_3.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_4.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_5.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_6.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_7.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_8.sol │ │ │ │ ├── constructor_hierarchy_base_calls_with_side_effects_9.sol │ │ │ │ ├── constructor_hierarchy_mixed_chain_with_params.sol │ │ │ │ ├── constructor_state_variable_init.sol │ │ │ │ ├── constructor_state_variable_init_asserts.sol │ │ │ │ ├── constructor_state_variable_init_base.sol │ │ │ │ ├── constructor_state_variable_init_chain.sol │ │ │ │ ├── constructor_state_variable_init_chain_alternate.sol │ │ │ │ ├── constructor_state_variable_init_chain_run_all.sol │ │ │ │ ├── constructor_state_variable_init_chain_run_all_2.sol │ │ │ │ ├── constructor_state_variable_init_chain_tree.sol │ │ │ │ ├── constructor_state_variable_init_diamond.sol │ │ │ │ ├── constructor_state_variable_init_diamond_middle.sol │ │ │ │ ├── constructor_state_variable_init_function_call.sol │ │ │ │ ├── constructor_uses_function_base.sol │ │ │ │ ├── diamond_super_1.sol │ │ │ │ ├── diamond_super_2.sol │ │ │ │ ├── diamond_super_3.sol │ │ │ │ ├── fallback.sol │ │ │ │ ├── fallback_receive.sol │ │ │ │ ├── functions_1.sol │ │ │ │ ├── functions_2.sol │ │ │ │ ├── functions_3.sol │ │ │ │ ├── implicit_constructor_hierarchy.sol │ │ │ │ ├── implicit_only_constructor_hierarchy.sol │ │ │ │ ├── overridden_function_static_call_parent.sol │ │ │ │ ├── receive.sol │ │ │ │ ├── receive_fallback.sol │ │ │ │ ├── state_variables.sol │ │ │ │ ├── state_variables_2.sol │ │ │ │ └── state_variables_3.sol │ │ │ ├── inline_assembly/ │ │ │ │ ├── assembly_1.sol │ │ │ │ ├── assembly_2.sol │ │ │ │ ├── assembly_3.sol │ │ │ │ ├── assembly_4.sol │ │ │ │ ├── assembly_5.sol │ │ │ │ ├── assembly_6.sol │ │ │ │ ├── assembly_local_storage_access_inside_function.sol │ │ │ │ ├── assembly_local_storage_pointer.sol │ │ │ │ ├── assembly_memory_write.sol │ │ │ │ ├── empty.sol │ │ │ │ └── local_var.sol │ │ │ ├── invariants/ │ │ │ │ ├── aon_blog_post.sol │ │ │ │ ├── array_access.sol │ │ │ │ ├── array_access_2.sol │ │ │ │ ├── loop_basic.sol │ │ │ │ ├── loop_basic_for.sol │ │ │ │ ├── loop_nested.sol │ │ │ │ ├── loop_nested_for.sol │ │ │ │ ├── solver_response_involves_bv2int.sol │ │ │ │ ├── state_machine_1.sol │ │ │ │ ├── state_machine_1_fail.sol │ │ │ │ ├── struct_access.sol │ │ │ │ └── unary_minus_formatting.sol │ │ │ ├── loops/ │ │ │ │ ├── do_while_1.sol │ │ │ │ ├── do_while_1_fail.sol │ │ │ │ ├── do_while_bmc_iterations_1.sol │ │ │ │ ├── do_while_bmc_iterations_2.sol │ │ │ │ ├── do_while_bmc_iterations_3.sol │ │ │ │ ├── do_while_bmc_iterations_4.sol │ │ │ │ ├── do_while_bmc_iterations_5.sol │ │ │ │ ├── do_while_bmc_iterations_6.sol │ │ │ │ ├── do_while_bmc_iterations_7.sol │ │ │ │ ├── do_while_bmc_iterations_assertion_fails_1.sol │ │ │ │ ├── do_while_bmc_iterations_assertion_fails_2.sol │ │ │ │ ├── do_while_bmc_iterations_assertion_fails_3.sol │ │ │ │ ├── do_while_bmc_iterations_break_1.sol │ │ │ │ ├── do_while_bmc_iterations_break_2.sol │ │ │ │ ├── do_while_bmc_iterations_break_3.sol │ │ │ │ ├── do_while_bmc_iterations_break_4.sol │ │ │ │ ├── do_while_bmc_iterations_break_5.sol │ │ │ │ ├── do_while_bmc_iterations_break_6.sol │ │ │ │ ├── do_while_bmc_iterations_break_7.sol │ │ │ │ ├── do_while_bmc_iterations_break_8.sol │ │ │ │ ├── do_while_bmc_iterations_break_continue_1.sol │ │ │ │ ├── do_while_bmc_iterations_break_continue_2.sol │ │ │ │ ├── do_while_bmc_iterations_continue_1.sol │ │ │ │ ├── do_while_bmc_iterations_continue_2.sol │ │ │ │ ├── do_while_bmc_iterations_continue_3.sol │ │ │ │ ├── do_while_bmc_iterations_continue_4.sol │ │ │ │ ├── do_while_bmc_iterations_nested.sol │ │ │ │ ├── do_while_bmc_iterations_nested_break.sol │ │ │ │ ├── do_while_bmc_iterations_nested_continue.sol │ │ │ │ ├── do_while_bmc_iterations_semantics_1.sol │ │ │ │ ├── do_while_bmc_iterations_semantics_2.sol │ │ │ │ ├── do_while_bmc_iterations_semantics_3.sol │ │ │ │ ├── do_while_bmc_iterations_semantics_4.sol │ │ │ │ ├── do_while_bmc_iterations_shallow_unroll.sol │ │ │ │ ├── do_while_break.sol │ │ │ │ ├── do_while_break_2.sol │ │ │ │ ├── do_while_break_2_fail.sol │ │ │ │ ├── do_while_break_fail.sol │ │ │ │ ├── do_while_continue.sol │ │ │ │ ├── for_1_break.sol │ │ │ │ ├── for_1_break_fail.sol │ │ │ │ ├── for_1_continue.sol │ │ │ │ ├── for_1_continue_fail.sol │ │ │ │ ├── for_1_false_positive.sol │ │ │ │ ├── for_break_direct.sol │ │ │ │ ├── for_loop_1.sol │ │ │ │ ├── for_loop_2.sol │ │ │ │ ├── for_loop_3.sol │ │ │ │ ├── for_loop_4.sol │ │ │ │ ├── for_loop_5.sol │ │ │ │ ├── for_loop_6.sol │ │ │ │ ├── for_loop_array_assignment_memory_memory.sol │ │ │ │ ├── for_loop_array_assignment_memory_storage.sol │ │ │ │ ├── for_loop_array_assignment_storage_memory.sol │ │ │ │ ├── for_loop_array_assignment_storage_storage.sol │ │ │ │ ├── for_loop_bmc_iterations_1.sol │ │ │ │ ├── for_loop_bmc_iterations_10.sol │ │ │ │ ├── for_loop_bmc_iterations_2.sol │ │ │ │ ├── for_loop_bmc_iterations_3.sol │ │ │ │ ├── for_loop_bmc_iterations_4.sol │ │ │ │ ├── for_loop_bmc_iterations_5.sol │ │ │ │ ├── for_loop_bmc_iterations_6.sol │ │ │ │ ├── for_loop_bmc_iterations_7.sol │ │ │ │ ├── for_loop_bmc_iterations_8.sol │ │ │ │ ├── for_loop_bmc_iterations_9.sol │ │ │ │ ├── for_loop_bmc_iterations_assertion_fails_1.sol │ │ │ │ ├── for_loop_bmc_iterations_assertion_fails_2.sol │ │ │ │ ├── for_loop_bmc_iterations_assertion_fails_3.sol │ │ │ │ ├── for_loop_bmc_iterations_break_1.sol │ │ │ │ ├── for_loop_bmc_iterations_break_2.sol │ │ │ │ ├── for_loop_bmc_iterations_break_3.sol │ │ │ │ ├── for_loop_bmc_iterations_break_4.sol │ │ │ │ ├── for_loop_bmc_iterations_break_5.sol │ │ │ │ ├── for_loop_bmc_iterations_break_6.sol │ │ │ │ ├── for_loop_bmc_iterations_break_7.sol │ │ │ │ ├── for_loop_bmc_iterations_break_8.sol │ │ │ │ ├── for_loop_bmc_iterations_break_9.sol │ │ │ │ ├── for_loop_bmc_iterations_break_continue_1.sol │ │ │ │ ├── for_loop_bmc_iterations_break_continue_2.sol │ │ │ │ ├── for_loop_bmc_iterations_break_continue_3.sol │ │ │ │ ├── for_loop_bmc_iterations_continue_1.sol │ │ │ │ ├── for_loop_bmc_iterations_continue_2.sol │ │ │ │ ├── for_loop_bmc_iterations_continue_3.sol │ │ │ │ ├── for_loop_bmc_iterations_continue_4.sol │ │ │ │ ├── for_loop_bmc_iterations_continue_5.sol │ │ │ │ ├── for_loop_bmc_iterations_false_positive.sol │ │ │ │ ├── for_loop_bmc_iterations_nested.sol │ │ │ │ ├── for_loop_bmc_iterations_nested_break.sol │ │ │ │ ├── for_loop_bmc_iterations_nested_continue.sol │ │ │ │ ├── for_loop_bmc_iterations_semantics_1.sol │ │ │ │ ├── for_loop_bmc_iterations_semantics_2.sol │ │ │ │ ├── for_loop_bmc_iterations_semantics_3.sol │ │ │ │ ├── for_loop_bmc_iterations_shallow_unroll.sol │ │ │ │ ├── for_loop_condition_constant_true_in_first_iteration_and_constant_false_in_second.sol │ │ │ │ ├── for_loop_trivial_condition_1.sol │ │ │ │ ├── for_loop_trivial_condition_2.sol │ │ │ │ ├── for_loop_trivial_condition_3.sol │ │ │ │ ├── while_1.sol │ │ │ │ ├── while_1_break.sol │ │ │ │ ├── while_1_break_fail.sol │ │ │ │ ├── while_1_continue.sol │ │ │ │ ├── while_1_continue_fail.sol │ │ │ │ ├── while_1_fail.sol │ │ │ │ ├── while_1_infinite.sol │ │ │ │ ├── while_2.sol │ │ │ │ ├── while_2_break.sol │ │ │ │ ├── while_2_break_fail.sol │ │ │ │ ├── while_2_fail.sol │ │ │ │ ├── while_bmc_iterations_1.sol │ │ │ │ ├── while_bmc_iterations_2.sol │ │ │ │ ├── while_bmc_iterations_3.sol │ │ │ │ ├── while_bmc_iterations_4.sol │ │ │ │ ├── while_bmc_iterations_5.sol │ │ │ │ ├── while_bmc_iterations_6.sol │ │ │ │ ├── while_bmc_iterations_7.sol │ │ │ │ ├── while_bmc_iterations_8.sol │ │ │ │ ├── while_bmc_iterations_assertion_fails_1.sol │ │ │ │ ├── while_bmc_iterations_assertion_fails_2.sol │ │ │ │ ├── while_bmc_iterations_assertion_fails_3.sol │ │ │ │ ├── while_bmc_iterations_break_1.sol │ │ │ │ ├── while_bmc_iterations_break_2.sol │ │ │ │ ├── while_bmc_iterations_break_3.sol │ │ │ │ ├── while_bmc_iterations_break_4.sol │ │ │ │ ├── while_bmc_iterations_break_5.sol │ │ │ │ ├── while_bmc_iterations_break_6.sol │ │ │ │ ├── while_bmc_iterations_break_7.sol │ │ │ │ ├── while_bmc_iterations_break_8.sol │ │ │ │ ├── while_bmc_iterations_break_9.sol │ │ │ │ ├── while_bmc_iterations_break_continue_1.sol │ │ │ │ ├── while_bmc_iterations_break_continue_2.sol │ │ │ │ ├── while_bmc_iterations_continue_1.sol │ │ │ │ ├── while_bmc_iterations_continue_2.sol │ │ │ │ ├── while_bmc_iterations_nested.sol │ │ │ │ ├── while_bmc_iterations_nested_break.sol │ │ │ │ ├── while_bmc_iterations_nested_continue.sol │ │ │ │ ├── while_bmc_iterations_semantics_1.sol │ │ │ │ ├── while_bmc_iterations_semantics_2.sol │ │ │ │ ├── while_bmc_iterations_semantics_3.sol │ │ │ │ ├── while_bmc_iterations_shallow_unroll.sol │ │ │ │ ├── while_break_direct.sol │ │ │ │ ├── while_loop_array_assignment_memory_memory.sol │ │ │ │ ├── while_loop_array_assignment_memory_storage.sol │ │ │ │ ├── while_loop_array_assignment_storage_storage.sol │ │ │ │ ├── while_loop_condition_constant_true_in_first_iteration_and_constant_false_in_second.sol │ │ │ │ ├── while_loop_simple_1.sol │ │ │ │ ├── while_loop_simple_2.sol │ │ │ │ ├── while_loop_simple_3.sol │ │ │ │ ├── while_loop_simple_4.sol │ │ │ │ ├── while_loop_simple_5.sol │ │ │ │ ├── while_nested_break.sol │ │ │ │ ├── while_nested_break_fail.sol │ │ │ │ ├── while_nested_continue.sol │ │ │ │ └── while_nested_continue_fail.sol │ │ │ ├── math/ │ │ │ │ ├── addmod_1.sol │ │ │ │ ├── addmod_mulmod.sol │ │ │ │ ├── addmod_mulmod_zero.sol │ │ │ │ ├── addmulmod.sol │ │ │ │ └── mulmod_1.sol │ │ │ ├── modifiers/ │ │ │ │ ├── modifier_abstract.sol │ │ │ │ ├── modifier_assignment_outside_branch.sol │ │ │ │ ├── modifier_code_after_placeholder.sol │ │ │ │ ├── modifier_control_flow.sol │ │ │ │ ├── modifier_inline_function_inside_branch.sol │ │ │ │ ├── modifier_inside_branch.sol │ │ │ │ ├── modifier_inside_branch_assignment.sol │ │ │ │ ├── modifier_inside_branch_assignment_branch.sol │ │ │ │ ├── modifier_inside_branch_assignment_multi_branches.sol │ │ │ │ ├── modifier_multi.sol │ │ │ │ ├── modifier_multi_functions.sol │ │ │ │ ├── modifier_multi_functions_recursive.sol │ │ │ │ ├── modifier_multi_parameters.sol │ │ │ │ ├── modifier_overflow.sol │ │ │ │ ├── modifier_overriding_1.sol │ │ │ │ ├── modifier_overriding_2.sol │ │ │ │ ├── modifier_overriding_3.sol │ │ │ │ ├── modifier_overriding_4.sol │ │ │ │ ├── modifier_parameter_copy.sol │ │ │ │ ├── modifier_parameters.sol │ │ │ │ ├── modifier_return.sol │ │ │ │ ├── modifier_same_local_variables.sol │ │ │ │ ├── modifier_simple.sol │ │ │ │ ├── modifier_two_invocations.sol │ │ │ │ ├── modifier_two_invocations_2.sol │ │ │ │ ├── modifier_two_placeholders.sol │ │ │ │ ├── modifier_virtual_static_call_1.sol │ │ │ │ └── modifier_virtual_static_call_2.sol │ │ │ ├── natspec/ │ │ │ │ ├── abstract_free_function_1.sol │ │ │ │ ├── abstract_function_nondet_1.sol │ │ │ │ ├── abstract_function_nondet_pow_no_abstraction.sol │ │ │ │ ├── abstract_function_nondet_pow_with_abstraction.sol │ │ │ │ ├── natspec_smtchecker_empty.sol │ │ │ │ ├── natspec_smtchecker_error_1.sol │ │ │ │ ├── natspec_smtchecker_multi_errors_1.sol │ │ │ │ ├── safe_assert_false_positive.sol │ │ │ │ ├── safe_assert_false_positive_pure.sol │ │ │ │ └── unsafe_assert_remains_unsafe.sol │ │ │ ├── operators/ │ │ │ │ ├── assignment_chain_tuple_contract_1.sol │ │ │ │ ├── assignment_chain_tuple_contract_2.sol │ │ │ │ ├── assignment_chain_tuple_contract_3.sol │ │ │ │ ├── assignment_contract_member_variable.sol │ │ │ │ ├── assignment_contract_member_variable_array.sol │ │ │ │ ├── assignment_contract_member_variable_array_2.sol │ │ │ │ ├── assignment_contract_member_variable_array_3.sol │ │ │ │ ├── assignment_module_contract_member_variable.sol │ │ │ │ ├── bitwise_and_array.sol │ │ │ │ ├── bitwise_and_fixed_bytes.sol │ │ │ │ ├── bitwise_and_int.sol │ │ │ │ ├── bitwise_and_rational.sol │ │ │ │ ├── bitwise_and_uint.sol │ │ │ │ ├── bitwise_combo.sol │ │ │ │ ├── bitwise_not_fixed_bytes.sol │ │ │ │ ├── bitwise_not_int.sol │ │ │ │ ├── bitwise_not_uint.sol │ │ │ │ ├── bitwise_operators_do_not_throw_exceptions.sol │ │ │ │ ├── bitwise_or_fixed_bytes.sol │ │ │ │ ├── bitwise_or_int.sol │ │ │ │ ├── bitwise_or_uint.sol │ │ │ │ ├── bitwise_rational_1.sol │ │ │ │ ├── bitwise_rational_2.sol │ │ │ │ ├── bitwise_xor_fixed_bytes.sol │ │ │ │ ├── bitwise_xor_int.sol │ │ │ │ ├── bitwise_xor_uint.sol │ │ │ │ ├── bytes_new.sol │ │ │ │ ├── compound_add.sol │ │ │ │ ├── compound_add_array_index.sol │ │ │ │ ├── compound_add_chain.sol │ │ │ │ ├── compound_add_mapping.sol │ │ │ │ ├── compound_assignment_division_1.sol │ │ │ │ ├── compound_assignment_division_2.sol │ │ │ │ ├── compound_assignment_division_3.sol │ │ │ │ ├── compound_assignment_right_shift.sol │ │ │ │ ├── compound_bitwise_and_fixed_bytes.sol │ │ │ │ ├── compound_bitwise_and_int.sol │ │ │ │ ├── compound_bitwise_and_uint.sol │ │ │ │ ├── compound_bitwise_or_fixed_bytes.sol │ │ │ │ ├── compound_bitwise_or_int.sol │ │ │ │ ├── compound_bitwise_or_int_1.sol │ │ │ │ ├── compound_bitwise_or_uint.sol │ │ │ │ ├── compound_bitwise_or_uint_1.sol │ │ │ │ ├── compound_bitwise_or_uint_2.sol │ │ │ │ ├── compound_bitwise_or_uint_3.sol │ │ │ │ ├── compound_bitwise_string_literal.sol │ │ │ │ ├── compound_bitwise_string_literal_2.sol │ │ │ │ ├── compound_bitwise_string_literal_3.sol │ │ │ │ ├── compound_bitwise_xor_fixed_bytes.sol │ │ │ │ ├── compound_bitwise_xor_int.sol │ │ │ │ ├── compound_bitwise_xor_uint.sol │ │ │ │ ├── compound_mul.sol │ │ │ │ ├── compound_mul_array_index.sol │ │ │ │ ├── compound_mul_mapping.sol │ │ │ │ ├── compound_shl_1.sol │ │ │ │ ├── compound_shr_1.sol │ │ │ │ ├── compound_sub.sol │ │ │ │ ├── compound_sub_array_index.sol │ │ │ │ ├── compound_sub_mapping.sol │ │ │ │ ├── conditional_assignment_1.sol │ │ │ │ ├── conditional_assignment_2.sol │ │ │ │ ├── conditional_assignment_3.sol │ │ │ │ ├── conditional_assignment_4.sol │ │ │ │ ├── conditional_assignment_5.sol │ │ │ │ ├── conditional_assignment_6.sol │ │ │ │ ├── conditional_assignment_always_false.sol │ │ │ │ ├── conditional_assignment_always_true.sol │ │ │ │ ├── conditional_assignment_function_1.sol │ │ │ │ ├── conditional_assignment_function_2.sol │ │ │ │ ├── conditional_assignment_nested_always_true.sol │ │ │ │ ├── conditional_assignment_nested_unsafe.sol │ │ │ │ ├── conditional_assignment_statevar_1.sol │ │ │ │ ├── const_exp_1.sol │ │ │ │ ├── constant_evaluation_add.sol │ │ │ │ ├── constant_evaluation_bitwise_not.sol │ │ │ │ ├── constant_evaluation_sub.sol │ │ │ │ ├── constant_propagation_1.sol │ │ │ │ ├── constant_propagation_2.sol │ │ │ │ ├── delete_array.sol │ │ │ │ ├── delete_array_2d.sol │ │ │ │ ├── delete_array_index.sol │ │ │ │ ├── delete_array_index_2d.sol │ │ │ │ ├── delete_array_push.sol │ │ │ │ ├── delete_function.sol │ │ │ │ ├── delete_function_type_1.sol │ │ │ │ ├── delete_function_type_2.sol │ │ │ │ ├── delete_function_type_3.sol │ │ │ │ ├── delete_multid_array.sol │ │ │ │ ├── delete_struct.sol │ │ │ │ ├── delete_tuple.sol │ │ │ │ ├── div_zero.sol │ │ │ │ ├── division_1.sol │ │ │ │ ├── division_2.sol │ │ │ │ ├── division_3.sol │ │ │ │ ├── division_4.sol │ │ │ │ ├── division_5.sol │ │ │ │ ├── division_6.sol │ │ │ │ ├── division_7.sol │ │ │ │ ├── division_truncates_correctly_1.sol │ │ │ │ ├── division_truncates_correctly_2.sol │ │ │ │ ├── division_truncates_correctly_3.sol │ │ │ │ ├── division_truncates_correctly_4.sol │ │ │ │ ├── division_truncates_correctly_5.sol │ │ │ │ ├── exp.sol │ │ │ │ ├── fixed_point_add.sol │ │ │ │ ├── fixed_point_compound_add.sol │ │ │ │ ├── function_call_named_arguments.sol │ │ │ │ ├── index_access_for_bytes.sol │ │ │ │ ├── index_access_for_bytesNN.sol │ │ │ │ ├── index_access_for_string.sol │ │ │ │ ├── index_access_side_effect.sol │ │ │ │ ├── integer_new.sol │ │ │ │ ├── mod.sol │ │ │ │ ├── mod_even.sol │ │ │ │ ├── mod_n.sol │ │ │ │ ├── mod_n_uint16.sol │ │ │ │ ├── mod_signed.sol │ │ │ │ ├── named_arguments_in_any_order.sol │ │ │ │ ├── named_arguments_overload_in_any_order.sol │ │ │ │ ├── shifts/ │ │ │ │ │ ├── compound_shift_left.sol │ │ │ │ │ ├── compound_shift_right.sol │ │ │ │ │ ├── shift_cex.sol │ │ │ │ │ ├── shift_cleanup.sol │ │ │ │ │ ├── shift_left.sol │ │ │ │ │ ├── shift_left_larger_type.sol │ │ │ │ │ ├── shift_left_uint32.sol │ │ │ │ │ ├── shift_left_uint8.sol │ │ │ │ │ ├── shift_overflow.sol │ │ │ │ │ ├── shift_right.sol │ │ │ │ │ ├── shift_right_negative_literal.sol │ │ │ │ │ ├── shift_right_negative_lvalue.sol │ │ │ │ │ ├── shift_right_negative_lvalue_int16.sol │ │ │ │ │ ├── shift_right_negative_lvalue_int32.sol │ │ │ │ │ ├── shift_right_negative_lvalue_int8.sol │ │ │ │ │ ├── shift_right_uint32.sol │ │ │ │ │ ├── shift_right_uint8.sol │ │ │ │ │ ├── shift_underflow_negative_rvalue.sol │ │ │ │ │ └── shr_unused.sol │ │ │ │ ├── slice.sol │ │ │ │ ├── slice_access.sol │ │ │ │ ├── slice_bytes.sol │ │ │ │ ├── slice_default_end.sol │ │ │ │ ├── slice_default_start.sol │ │ │ │ ├── slices_1.sol │ │ │ │ ├── slices_2.sol │ │ │ │ ├── slices_3.sol │ │ │ │ ├── ternary_operator_1.sol │ │ │ │ ├── ternary_operator_2.sol │ │ │ │ ├── ternary_operator_3.sol │ │ │ │ ├── ternary_operator_double_function_call.sol │ │ │ │ ├── ternary_operator_external_code_1.sol │ │ │ │ ├── ternary_operator_nested_1.sol │ │ │ │ ├── ternary_operator_nested_2.sol │ │ │ │ ├── ternary_operator_nested_3.sol │ │ │ │ ├── ternary_operator_nested_4.sol │ │ │ │ ├── ternary_operator_with_functions.sol │ │ │ │ ├── ternary_operator_with_tuple.sol │ │ │ │ ├── tuple_rationals_conditional.sol │ │ │ │ ├── unary_add.sol │ │ │ │ ├── unary_add_array.sol │ │ │ │ ├── unary_add_array_push_1.sol │ │ │ │ ├── unary_add_array_push_2.sol │ │ │ │ ├── unary_add_mapping.sol │ │ │ │ ├── unary_add_minus_overflow_detected.sol │ │ │ │ ├── unary_add_overflows_correctly.sol │ │ │ │ ├── unary_add_overflows_correctly_struct.sol │ │ │ │ ├── unary_minus_bmc.sol │ │ │ │ ├── unary_minus_chc.sol │ │ │ │ ├── unary_operators_tuple_1.sol │ │ │ │ ├── unary_operators_tuple_2.sol │ │ │ │ ├── unary_operators_tuple_3.sol │ │ │ │ ├── unary_sub.sol │ │ │ │ ├── unary_sub_array.sol │ │ │ │ ├── unary_sub_mapping.sol │ │ │ │ └── userDefined/ │ │ │ │ ├── user_defined_division_same_as_builtin.sol │ │ │ │ ├── user_defined_division_with_safe_division_by_zero.sol │ │ │ │ ├── user_defined_operations_on_constants.sol │ │ │ │ ├── user_defined_operations_on_constants_fail.sol │ │ │ │ ├── user_defined_operator_matches_equivalent_function_call.sol │ │ │ │ └── user_defined_overflow.sol │ │ │ ├── options/ │ │ │ │ ├── engine_none.sol │ │ │ │ └── pragma.sol │ │ │ ├── out_of_bounds/ │ │ │ │ ├── array_1.sol │ │ │ │ ├── array_2.sol │ │ │ │ ├── array_2d_1.sol │ │ │ │ ├── array_2d_2.sol │ │ │ │ ├── array_2d_3.sol │ │ │ │ ├── array_2d_4.sol │ │ │ │ ├── array_3.sol │ │ │ │ ├── array_4.sol │ │ │ │ ├── fixed_bytes_1.sol │ │ │ │ ├── fixed_bytes_2.sol │ │ │ │ ├── fixed_bytes_3.sol │ │ │ │ └── fixed_bytes_4.sol │ │ │ ├── overflow/ │ │ │ │ ├── overflow_and_underflow_bmc.sol │ │ │ │ ├── overflow_and_underflow_bmc_show_proved.sol │ │ │ │ ├── overflow_and_underflow_chc.sol │ │ │ │ ├── overflow_constant_bound.sol │ │ │ │ ├── overflow_mul.sol │ │ │ │ ├── overflow_mul_cex_with_array.sol │ │ │ │ ├── overflow_mul_signed.sol │ │ │ │ ├── overflow_sum.sol │ │ │ │ ├── overflow_sum_signed.sol │ │ │ │ ├── safe_sub_1.sol │ │ │ │ ├── signed_div_overflow.sol │ │ │ │ ├── signed_guard_sub_overflow.sol │ │ │ │ ├── signed_guard_sum_overflow.sol │ │ │ │ ├── signed_mod_overflow.sol │ │ │ │ ├── signed_mul_overflow.sol │ │ │ │ ├── signed_sub_overflow.sol │ │ │ │ ├── signed_sum_overflow.sol │ │ │ │ ├── simple_overflow.sol │ │ │ │ ├── underflow_sub.sol │ │ │ │ ├── underflow_sub_signed.sol │ │ │ │ ├── unsigned_div_overflow.sol │ │ │ │ ├── unsigned_guard_sub_overflow.sol │ │ │ │ ├── unsigned_guard_sum_overflow.sol │ │ │ │ ├── unsigned_mod_overflow.sol │ │ │ │ ├── unsigned_mul_overflow.sol │ │ │ │ ├── unsigned_sub_overflow.sol │ │ │ │ └── unsigned_sum_overflow.sol │ │ │ ├── simple/ │ │ │ │ ├── cex_smoke_test.sol │ │ │ │ ├── smoke_test.sol │ │ │ │ └── static_array.sol │ │ │ ├── special/ │ │ │ │ ├── abi_decode_memory_v2.sol │ │ │ │ ├── abi_decode_memory_v2_value_types.sol │ │ │ │ ├── abi_decode_simple.sol │ │ │ │ ├── abi_encode_slice.sol │ │ │ │ ├── blobhash_beyond_limit.sol │ │ │ │ ├── block_vars_bmc_internal.sol │ │ │ │ ├── block_vars_chc_internal.sol │ │ │ │ ├── blockhash.sol │ │ │ │ ├── chainid.sol │ │ │ │ ├── ether_units.sol │ │ │ │ ├── event.sol │ │ │ │ ├── gasleft.sol │ │ │ │ ├── many.sol │ │ │ │ ├── many_internal.sol │ │ │ │ ├── msg_data.sol │ │ │ │ ├── msg_parens_1.sol │ │ │ │ ├── msg_sender_1.sol │ │ │ │ ├── msg_sender_2.sol │ │ │ │ ├── msg_sender_3.sol │ │ │ │ ├── msg_sender_fail_1.sol │ │ │ │ ├── msg_sender_range.sol │ │ │ │ ├── msg_sig.sol │ │ │ │ ├── msg_value_1.sol │ │ │ │ ├── msg_value_2.sol │ │ │ │ ├── msg_value_3.sol │ │ │ │ ├── msg_value_4.sol │ │ │ │ ├── msg_value_inheritance_1.sol │ │ │ │ ├── msg_value_inheritance_2.sol │ │ │ │ ├── msg_value_inheritance_3.sol │ │ │ │ ├── msg_vars_bmc_internal.sol │ │ │ │ ├── msg_vars_chc_internal.sol │ │ │ │ ├── prevrandao.sol │ │ │ │ ├── range_check.sol │ │ │ │ ├── shadowing_1.sol │ │ │ │ ├── this.sol │ │ │ │ ├── this_state.sol │ │ │ │ ├── time_units.sol │ │ │ │ ├── timestamp.sol │ │ │ │ ├── timestamp_2.sol │ │ │ │ ├── tx_data_gasleft_changes.sol │ │ │ │ ├── tx_data_immutable.sol │ │ │ │ ├── tx_data_immutable_fail.sol │ │ │ │ ├── tx_vars_bmc_internal.sol │ │ │ │ ├── tx_vars_chc_internal.sol │ │ │ │ ├── tx_vars_reentrancy_1.sol │ │ │ │ └── tx_vars_reentrancy_2.sol │ │ │ ├── try_catch/ │ │ │ │ ├── try_1.sol │ │ │ │ ├── try_2.sol │ │ │ │ ├── try_3.sol │ │ │ │ ├── try_4.sol │ │ │ │ ├── try_5.sol │ │ │ │ ├── try_call_in_catch_1.sol │ │ │ │ ├── try_call_in_catch_2.sol │ │ │ │ ├── try_inside_if.sol │ │ │ │ ├── try_inside_while.sol │ │ │ │ ├── try_multiple_catch_clauses.sol │ │ │ │ ├── try_multiple_catch_clauses_2.sol │ │ │ │ ├── try_multiple_returned_values.sol │ │ │ │ ├── try_multiple_returned_values_with_tuple.sol │ │ │ │ ├── try_nested_1.sol │ │ │ │ ├── try_nested_2.sol │ │ │ │ ├── try_nested_3.sol │ │ │ │ ├── try_new.sol │ │ │ │ ├── try_public_var.sol │ │ │ │ ├── try_public_var_mapping.sol │ │ │ │ ├── try_string_literal_to_bytes_array.sol │ │ │ │ └── try_string_literal_to_fixed_bytes.sol │ │ │ ├── typecast/ │ │ │ │ ├── address_literal.sol │ │ │ │ ├── bytes_to_fixed_bytes_1.sol │ │ │ │ ├── bytes_to_fixed_bytes_1_fail.sol │ │ │ │ ├── cast_address_1.sol │ │ │ │ ├── cast_different_size_1.sol │ │ │ │ ├── cast_larger_1.sol │ │ │ │ ├── cast_larger_2.sol │ │ │ │ ├── cast_larger_2_fail.sol │ │ │ │ ├── cast_larger_3.sol │ │ │ │ ├── cast_smaller_1.sol │ │ │ │ ├── cast_smaller_2.sol │ │ │ │ ├── cast_smaller_3.sol │ │ │ │ ├── downcast.sol │ │ │ │ ├── enum_from_uint.sol │ │ │ │ ├── enum_to_uint_max_value.sol │ │ │ │ ├── fixed_bytes_array_from_strig_inline_array.sol │ │ │ │ ├── function_type_to_function_type_external.sol │ │ │ │ ├── function_type_to_function_type_internal.sol │ │ │ │ ├── implicit_cast_string_literal_byte.sol │ │ │ │ ├── number_literal.sol │ │ │ │ ├── same_size.sol │ │ │ │ ├── slice_to_bytes.sol │ │ │ │ ├── slice_to_fixed_bytes_1.sol │ │ │ │ ├── string_literal_to_dynamic_bytes.sol │ │ │ │ ├── string_literal_to_fixed_bytes_constant_initialization_1.sol │ │ │ │ ├── string_literal_to_fixed_bytes_constant_initialization_2.sol │ │ │ │ ├── string_literal_to_fixed_bytes_constructor_for_deployment.sol │ │ │ │ ├── string_literal_to_fixed_bytes_explicit.sol │ │ │ │ ├── string_literal_to_fixed_bytes_function_call.sol │ │ │ │ ├── string_literal_to_fixed_bytes_modifier.sol │ │ │ │ ├── string_literal_to_fixed_bytes_return.sol │ │ │ │ ├── string_literal_to_fixed_bytes_return_multi.sol │ │ │ │ ├── string_literal_to_fixed_bytes_upcast.sol │ │ │ │ ├── string_to_bytes_push_1.sol │ │ │ │ ├── string_to_bytes_push_2.sol │ │ │ │ └── upcast.sol │ │ │ ├── types/ │ │ │ │ ├── abi_type_type_1.sol │ │ │ │ ├── abi_type_type_2.sol │ │ │ │ ├── address_balance.sol │ │ │ │ ├── address_call.sol │ │ │ │ ├── address_delegatecall.sol │ │ │ │ ├── address_staticcall.sol │ │ │ │ ├── address_transfer.sol │ │ │ │ ├── address_transfer_2.sol │ │ │ │ ├── address_transfer_3.sol │ │ │ │ ├── address_transfer_insufficient.sol │ │ │ │ ├── array_aliasing_memory_1.sol │ │ │ │ ├── array_aliasing_memory_2.sol │ │ │ │ ├── array_aliasing_memory_3.sol │ │ │ │ ├── array_aliasing_storage_1.sol │ │ │ │ ├── array_aliasing_storage_2.sol │ │ │ │ ├── array_aliasing_storage_3.sol │ │ │ │ ├── array_aliasing_storage_4.sol │ │ │ │ ├── array_aliasing_storage_5.sol │ │ │ │ ├── array_branch_1d.sol │ │ │ │ ├── array_branch_2d.sol │ │ │ │ ├── array_branch_3d.sol │ │ │ │ ├── array_branches_1d.sol │ │ │ │ ├── array_branches_2d.sol │ │ │ │ ├── array_branches_3d.sol │ │ │ │ ├── array_dynamic_1.sol │ │ │ │ ├── array_dynamic_1_fail.sol │ │ │ │ ├── array_dynamic_2.sol │ │ │ │ ├── array_dynamic_2_fail.sol │ │ │ │ ├── array_dynamic_3.sol │ │ │ │ ├── array_dynamic_3_fail.sol │ │ │ │ ├── array_dynamic_parameter_1.sol │ │ │ │ ├── array_dynamic_parameter_1_fail.sol │ │ │ │ ├── array_literal_1.sol │ │ │ │ ├── array_literal_2.sol │ │ │ │ ├── array_literal_3.sol │ │ │ │ ├── array_literal_4.sol │ │ │ │ ├── array_literal_5.sol │ │ │ │ ├── array_literal_6.sol │ │ │ │ ├── array_literal_7.sol │ │ │ │ ├── array_mapping_aliasing_1.sol │ │ │ │ ├── array_mapping_aliasing_2.sol │ │ │ │ ├── array_of_addresses.sol │ │ │ │ ├── array_of_contracts.sol │ │ │ │ ├── array_of_functions.sol │ │ │ │ ├── array_static_1.sol │ │ │ │ ├── array_static_1_fail.sol │ │ │ │ ├── array_static_2.sol │ │ │ │ ├── array_static_2_fail.sol │ │ │ │ ├── array_static_3.sol │ │ │ │ ├── array_static_3_fail.sol │ │ │ │ ├── array_static_aliasing_memory_5.sol │ │ │ │ ├── array_static_aliasing_storage_5.sol │ │ │ │ ├── array_static_mapping_aliasing_1.sol │ │ │ │ ├── array_static_mapping_aliasing_2.sol │ │ │ │ ├── array_struct_array_branches_2d.sol │ │ │ │ ├── bool_int_mixed_1.sol │ │ │ │ ├── bool_int_mixed_2.sol │ │ │ │ ├── bool_int_mixed_3.sol │ │ │ │ ├── bool_simple_1.sol │ │ │ │ ├── bool_simple_2.sol │ │ │ │ ├── bool_simple_3.sol │ │ │ │ ├── bool_simple_4.sol │ │ │ │ ├── bool_simple_5.sol │ │ │ │ ├── bool_simple_6.sol │ │ │ │ ├── bytes_1.sol │ │ │ │ ├── bytes_2.sol │ │ │ │ ├── bytes_2_fail.sol │ │ │ │ ├── bytes_length.sol │ │ │ │ ├── contract.sol │ │ │ │ ├── contract_2.sol │ │ │ │ ├── contract_3.sol │ │ │ │ ├── contract_address_conversion.sol │ │ │ │ ├── contract_address_conversion_2.sol │ │ │ │ ├── data_location_in_function_type.sol │ │ │ │ ├── enum_explicit_values.sol │ │ │ │ ├── enum_explicit_values_2.sol │ │ │ │ ├── enum_in_library.sol │ │ │ │ ├── enum_in_library_2.sol │ │ │ │ ├── enum_in_struct.sol │ │ │ │ ├── enum_range.sol │ │ │ │ ├── enum_storage_eq.sol │ │ │ │ ├── enum_transitivity.sol │ │ │ │ ├── event_with_rational_size_array.sol │ │ │ │ ├── fixed_bytes_1.sol │ │ │ │ ├── fixed_bytes_2.sol │ │ │ │ ├── fixed_bytes_access_1.sol │ │ │ │ ├── fixed_bytes_access_2.sol │ │ │ │ ├── fixed_bytes_access_3.sol │ │ │ │ ├── fixed_bytes_access_4.sol │ │ │ │ ├── fixed_bytes_access_5.sol │ │ │ │ ├── fixed_bytes_access_6.sol │ │ │ │ ├── fixed_bytes_access_7.sol │ │ │ │ ├── fixed_bytes_range.sol │ │ │ │ ├── function_in_tuple_1.sol │ │ │ │ ├── function_in_tuple_2.sol │ │ │ │ ├── function_type_array_as_reference_type.sol │ │ │ │ ├── function_type_arrays.sol │ │ │ │ ├── function_type_as_argument.sol │ │ │ │ ├── function_type_call.sol │ │ │ │ ├── function_type_external_address.sol │ │ │ │ ├── function_type_members.sol │ │ │ │ ├── function_type_nested.sol │ │ │ │ ├── function_type_nested_return.sol │ │ │ │ ├── mapping_1.sol │ │ │ │ ├── mapping_1_fail.sol │ │ │ │ ├── mapping_2.sol │ │ │ │ ├── mapping_2d_1.sol │ │ │ │ ├── mapping_2d_1_fail.sol │ │ │ │ ├── mapping_3.sol │ │ │ │ ├── mapping_3d_1.sol │ │ │ │ ├── mapping_3d_1_fail.sol │ │ │ │ ├── mapping_4.sol │ │ │ │ ├── mapping_5.sol │ │ │ │ ├── mapping_6.sol │ │ │ │ ├── mapping_aliasing_1.sol │ │ │ │ ├── mapping_aliasing_2.sol │ │ │ │ ├── mapping_and_array_of_functions.sol │ │ │ │ ├── mapping_as_local_var_1.sol │ │ │ │ ├── mapping_as_parameter_1.sol │ │ │ │ ├── mapping_equal_keys_1.sol │ │ │ │ ├── mapping_equal_keys_2.sol │ │ │ │ ├── mapping_integer_signedness_compatibility.sol │ │ │ │ ├── mapping_struct_assignment.sol │ │ │ │ ├── mapping_unsupported_key_type_1.sol │ │ │ │ ├── no_effect_statements.sol │ │ │ │ ├── rational_large_1.sol │ │ │ │ ├── static_array_implicit_push_1.sol │ │ │ │ ├── static_array_implicit_push_2.sol │ │ │ │ ├── static_array_implicit_push_3.sol │ │ │ │ ├── static_array_implicit_push_4.sol │ │ │ │ ├── static_array_length_1.sol │ │ │ │ ├── static_array_length_2.sol │ │ │ │ ├── static_array_length_3.sol │ │ │ │ ├── static_array_length_4.sol │ │ │ │ ├── static_array_length_5.sol │ │ │ │ ├── storage_value_vars_1.sol │ │ │ │ ├── storage_value_vars_2.sol │ │ │ │ ├── storage_value_vars_3.sol │ │ │ │ ├── storage_value_vars_4.sol │ │ │ │ ├── string_1.sol │ │ │ │ ├── string_2.sol │ │ │ │ ├── string_length.sol │ │ │ │ ├── string_literal_assignment_1.sol │ │ │ │ ├── string_literal_assignment_2.sol │ │ │ │ ├── string_literal_assignment_3.sol │ │ │ │ ├── string_literal_assignment_4.sol │ │ │ │ ├── string_literal_assignment_5.sol │ │ │ │ ├── string_literal_comparison_1.sol │ │ │ │ ├── string_literal_comparison_2.sol │ │ │ │ ├── struct/ │ │ │ │ │ ├── array_struct_array_struct_memory_safe.sol │ │ │ │ │ ├── array_struct_array_struct_memory_unsafe.sol │ │ │ │ │ ├── array_struct_array_struct_storage_safe.sol │ │ │ │ │ ├── struct_aliasing_memory.sol │ │ │ │ │ ├── struct_aliasing_parameter_memory_1.sol │ │ │ │ │ ├── struct_aliasing_parameter_memory_2.sol │ │ │ │ │ ├── struct_aliasing_parameter_memory_3.sol │ │ │ │ │ ├── struct_aliasing_parameter_storage_1.sol │ │ │ │ │ ├── struct_aliasing_parameter_storage_2.sol │ │ │ │ │ ├── struct_aliasing_parameter_storage_3.sol │ │ │ │ │ ├── struct_aliasing_parameter_storage_4.sol │ │ │ │ │ ├── struct_aliasing_storage.sol │ │ │ │ │ ├── struct_array_struct_array_memory_safe.sol │ │ │ │ │ ├── struct_array_struct_array_memory_unsafe_1.sol │ │ │ │ │ ├── struct_array_struct_array_memory_unsafe_2.sol │ │ │ │ │ ├── struct_array_struct_array_storage_safe.sol │ │ │ │ │ ├── struct_array_struct_array_storage_unsafe_1.sol │ │ │ │ │ ├── struct_constructor_fixed_bytes_from_string_1.sol │ │ │ │ │ ├── struct_constructor_named_args.sol │ │ │ │ │ ├── struct_constructor_named_args_2.sol │ │ │ │ │ ├── struct_constructor_recursive_1.sol │ │ │ │ │ ├── struct_constructor_recursive_2.sol │ │ │ │ │ ├── struct_delete_memory.sol │ │ │ │ │ ├── struct_delete_storage.sol │ │ │ │ │ ├── struct_external_function_pointer.sol │ │ │ │ │ ├── struct_mapping.sol │ │ │ │ │ ├── struct_nested_constructor.sol │ │ │ │ │ ├── struct_nested_constructor_named_args.sol │ │ │ │ │ ├── struct_nested_temporary.sol │ │ │ │ │ ├── struct_recursive_1.sol │ │ │ │ │ ├── struct_recursive_2.sol │ │ │ │ │ ├── struct_recursive_3.sol │ │ │ │ │ ├── struct_recursive_4.sol │ │ │ │ │ ├── struct_recursive_5.sol │ │ │ │ │ ├── struct_recursive_6.sol │ │ │ │ │ ├── struct_recursive_indirect_1.sol │ │ │ │ │ ├── struct_recursive_indirect_2.sol │ │ │ │ │ ├── struct_return.sol │ │ │ │ │ ├── struct_state_constructor.sol │ │ │ │ │ ├── struct_state_var.sol │ │ │ │ │ ├── struct_state_var_array_pop_1.sol │ │ │ │ │ ├── struct_state_var_array_pop_2.sol │ │ │ │ │ ├── struct_temporary.sol │ │ │ │ │ ├── struct_unary_add.sol │ │ │ │ │ └── struct_unary_sub.sol │ │ │ │ ├── struct_1.sol │ │ │ │ ├── struct_array_branches_1d.sol │ │ │ │ ├── struct_array_branches_2d.sol │ │ │ │ ├── struct_array_branches_3d.sol │ │ │ │ ├── tuple_1_chain_1.sol │ │ │ │ ├── tuple_1_chain_2.sol │ │ │ │ ├── tuple_1_chain_n.sol │ │ │ │ ├── tuple_array_pop_1.sol │ │ │ │ ├── tuple_array_pop_2.sol │ │ │ │ ├── tuple_assignment.sol │ │ │ │ ├── tuple_assignment_array.sol │ │ │ │ ├── tuple_assignment_array_empty.sol │ │ │ │ ├── tuple_assignment_compound.sol │ │ │ │ ├── tuple_assignment_empty.sol │ │ │ │ ├── tuple_assignment_multiple_calls.sol │ │ │ │ ├── tuple_declarations.sol │ │ │ │ ├── tuple_declarations_empty.sol │ │ │ │ ├── tuple_declarations_function.sol │ │ │ │ ├── tuple_declarations_function_2.sol │ │ │ │ ├── tuple_declarations_function_empty.sol │ │ │ │ ├── tuple_different_count_assignment_1.sol │ │ │ │ ├── tuple_different_count_assignment_2.sol │ │ │ │ ├── tuple_extra_parens_1.sol │ │ │ │ ├── tuple_extra_parens_2.sol │ │ │ │ ├── tuple_extra_parens_3.sol │ │ │ │ ├── tuple_extra_parens_4.sol │ │ │ │ ├── tuple_extra_parens_5.sol │ │ │ │ ├── tuple_extra_parens_6.sol │ │ │ │ ├── tuple_extra_parens_7.sol │ │ │ │ ├── tuple_function.sol │ │ │ │ ├── tuple_function_2.sol │ │ │ │ ├── tuple_function_3.sol │ │ │ │ ├── tuple_return_branch.sol │ │ │ │ ├── tuple_single_element_1.sol │ │ │ │ ├── tuple_single_element_2.sol │ │ │ │ ├── tuple_single_non_tuple_element.sol │ │ │ │ ├── tuple_tuple.sol │ │ │ │ ├── type_expression_array_2d.sol │ │ │ │ ├── type_expression_array_3d.sol │ │ │ │ ├── type_expression_tuple_array_2d.sol │ │ │ │ ├── type_expression_tuple_array_3d.sol │ │ │ │ ├── type_interfaceid.sol │ │ │ │ ├── type_meta_unsupported.sol │ │ │ │ ├── type_minmax.sol │ │ │ │ ├── type_simple_range.sol │ │ │ │ └── unused_mapping.sol │ │ │ ├── unchecked/ │ │ │ │ ├── block_inside_unchecked.sol │ │ │ │ ├── check_var_init.sol │ │ │ │ ├── checked_called_by_unchecked.sol │ │ │ │ ├── checked_modifier_called_by_unchecked.sol │ │ │ │ ├── flipping_sign_tests.sol │ │ │ │ ├── inc_dec.sol │ │ │ │ ├── signed_mod.sol │ │ │ │ ├── unchecked_called_by_checked.sol │ │ │ │ ├── unchecked_div_by_zero.sol │ │ │ │ ├── unchecked_double_with_modifier.sol │ │ │ │ └── unchecked_function_call_with_unchecked_block.sol │ │ │ ├── unsupported/ │ │ │ │ ├── assembly_1.sol │ │ │ │ └── transient_storage_state_variable.sol │ │ │ ├── userTypes/ │ │ │ │ ├── constant.sol │ │ │ │ ├── conversion_1.sol │ │ │ │ ├── conversion_2.sol │ │ │ │ ├── conversion_3.sol │ │ │ │ ├── conversion_4.sol │ │ │ │ ├── fixedpoint.sol │ │ │ │ ├── in_parenthesis.sol │ │ │ │ ├── in_parenthesis_2.sol │ │ │ │ ├── mapping_1.sol │ │ │ │ ├── modifier_1.sol │ │ │ │ ├── multisource.sol │ │ │ │ ├── multisource_module.sol │ │ │ │ ├── simple.sol │ │ │ │ ├── user_abi_1.sol │ │ │ │ ├── user_abi_2.sol │ │ │ │ ├── user_type_as_array_elem_1.sol │ │ │ │ ├── user_type_as_array_elem_2.sol │ │ │ │ ├── user_type_as_library_constant_1.sol │ │ │ │ ├── user_type_as_library_constant_2.sol │ │ │ │ ├── user_type_as_mapping_index_1.sol │ │ │ │ ├── user_type_as_mapping_index_2.sol │ │ │ │ ├── user_type_as_struct_member_1.sol │ │ │ │ ├── user_type_over_fixed_bytes_can_be_initialized_from_string_literal.sol │ │ │ │ └── wrap_unwrap_via_contract_name.sol │ │ │ └── verification_target/ │ │ │ ├── constant_condition_1.sol │ │ │ ├── constant_condition_2.sol │ │ │ ├── constant_condition_3.sol │ │ │ ├── no_target_for_abstract_constract.sol │ │ │ ├── no_target_for_constructor_of_abstract_constract.sol │ │ │ ├── simple_assert.sol │ │ │ ├── simple_assert_with_require.sol │ │ │ ├── simple_assert_with_require_message.sol │ │ │ ├── target_in_constructor_of_same_source_contract_not_analyzed_when_not_selected_and_not_called_from_selection.sol │ │ │ └── target_in_same_source_contract_not_analyzed_when_not_selected_and_not_called_from_selection.sol │ │ ├── syntaxTests/ │ │ │ ├── abiEncoder/ │ │ │ │ ├── abi_encodeCall_error_free_function.sol │ │ │ │ ├── abi_encodeCall_event_free_function.sol │ │ │ │ ├── abi_encodeCall_free_func.sol │ │ │ │ ├── abi_encodeCall_on_lib_func_in_free_func.sol │ │ │ │ ├── abi_encodeCall_tuple_from_assignment_expression.sol │ │ │ │ ├── abi_encodeCall_tuple_from_conditional_ternary_expression.sol │ │ │ │ ├── abi_encodeCall_tuple_from_error_event.sol │ │ │ │ ├── abi_encodeCall_tuple_from_invalid_operator.sol │ │ │ │ ├── abi_encodeCall_tuple_returned_from_function.sol │ │ │ │ ├── abi_encodeCall_unitary_tuple_from_assignment_expression.sol │ │ │ │ ├── abi_encodeCall_unitary_tuple_from_conditional_ternary_expression.sol │ │ │ │ ├── abi_encodeCall_unitary_tuple_returned_from_function.sol │ │ │ │ ├── abi_encode_conversions.sol │ │ │ │ ├── abi_encode_conversions_address.sol │ │ │ │ ├── abi_encode_conversions_function_pointers.sol │ │ │ │ ├── conflicting_settings.sol │ │ │ │ ├── conflicting_settings_reverse.sol │ │ │ │ ├── conflicting_settings_reverse_experimental.sol │ │ │ │ ├── external_functions_taking_internal_types_nested_struct_with_mapping.sol │ │ │ │ ├── external_functions_taking_internal_types_struct_array_with_function_type.sol │ │ │ │ ├── external_functions_taking_internal_types_struct_with_array_of_function_types.sol │ │ │ │ ├── external_functions_taking_internal_types_struct_with_function_type.sol │ │ │ │ ├── external_functions_taking_internal_types_struct_with_mapping.sol │ │ │ │ ├── invalid_pragma_value.sol │ │ │ │ ├── overloaded_external_functions_taking_different_structs.sol │ │ │ │ ├── overloaded_external_functions_taking_identical_structs.sol │ │ │ │ ├── same_setting_twice.sol │ │ │ │ ├── select_v1.sol │ │ │ │ ├── select_v1_quoted_string.sol │ │ │ │ ├── select_v2_quoted_string.sol │ │ │ │ ├── selected_twice.sol │ │ │ │ ├── selected_twice_v2.sol │ │ │ │ ├── tight_packing_literals.sol │ │ │ │ ├── tight_packing_literals_fine.sol │ │ │ │ ├── v1_accessing_public_state_variable_via_v1_type.sol │ │ │ │ ├── v1_accessing_public_state_variable_via_v2_type.sol │ │ │ │ ├── v1_call_to_v1_library_function_accepting_storage_struct.sol │ │ │ │ ├── v1_call_to_v2_constructor_accepting_struct.sol │ │ │ │ ├── v1_call_to_v2_contract_function_accepting_struct_via_named_argument.sol │ │ │ │ ├── v1_call_to_v2_contract_function_pointer_accepting_struct.sol │ │ │ │ ├── v1_call_to_v2_contract_function_returning_dynamic_string_array.sol │ │ │ │ ├── v1_call_to_v2_contract_function_returning_struct.sol │ │ │ │ ├── v1_call_to_v2_contract_function_returning_struct_with_dynamic_array.sol │ │ │ │ ├── v1_call_to_v2_event_accepting_struct.sol │ │ │ │ ├── v1_call_to_v2_library_attached_function_returning_struct.sol │ │ │ │ ├── v1_call_to_v2_library_function_accepting_storage_struct.sol │ │ │ │ ├── v1_call_to_v2_library_function_returning_struct.sol │ │ │ │ ├── v1_call_to_v2_modifier.sol │ │ │ │ ├── v1_constructor_with_v2_modifier.sol │ │ │ │ ├── v1_inheritance_from_contract_calling_v2_function.sol │ │ │ │ ├── v1_inheritance_from_contract_defining_v2_event.sol │ │ │ │ ├── v1_inheritance_from_contract_defining_v2_function_accepting_struct.sol │ │ │ │ ├── v1_inheritance_from_contract_defining_v2_function_returning_struct.sol │ │ │ │ ├── v1_inheritance_from_contract_emitting_v2_event.sol │ │ │ │ ├── v1_modifier_overriding_v2_modifier.sol │ │ │ │ ├── v1_v2_v1_modifier_mix.sol │ │ │ │ ├── v2_accessing_returned_dynamic_array_with_returndata_support.sol │ │ │ │ ├── v2_accessing_returned_dynamic_array_without_returndata_support.sol │ │ │ │ ├── v2_call_to_v2_constructor_accepting_struct.sol │ │ │ │ ├── v2_call_to_v2_contract_function_pointer_accepting_struct.sol │ │ │ │ ├── v2_call_to_v2_contract_function_returning_dynamic_string_array.sol │ │ │ │ ├── v2_call_to_v2_contract_function_returning_struct.sol │ │ │ │ ├── v2_call_to_v2_contract_function_returning_struct_with_dynamic_array.sol │ │ │ │ ├── v2_call_to_v2_event_accepting_struct.sol │ │ │ │ ├── v2_call_to_v2_library_function_pointer_accepting_struct.sol │ │ │ │ ├── v2_call_to_v2_library_function_returning_struct.sol │ │ │ │ ├── v2_v1_v1_modifier_sandwich.sol │ │ │ │ └── v2_v1_v2_modifier_sandwich.sol │ │ │ ├── abstract/ │ │ │ │ ├── abstract_contract_because_of_interface.sol │ │ │ │ ├── abstract_contract_instantiation.sol │ │ │ │ ├── abstract_only.sol │ │ │ │ ├── abstract_without_contract.sol │ │ │ │ ├── contract.sol │ │ │ │ ├── interface.sol │ │ │ │ ├── library.sol │ │ │ │ ├── unimplemented_functions.sol │ │ │ │ └── unimplemented_functions_inherited.sol │ │ │ ├── array/ │ │ │ │ ├── array_pop.sol │ │ │ │ ├── array_pop_arg.sol │ │ │ │ ├── bytes1_array_push_assign_multi.sol │ │ │ │ ├── bytes_assign_multi_fine.sol │ │ │ │ ├── bytes_pop.sol │ │ │ │ ├── bytes_push_assign_multi.sol │ │ │ │ ├── bytes_to_fixed_bytes.sol │ │ │ │ ├── calldata.sol │ │ │ │ ├── calldata_assign.sol │ │ │ │ ├── calldata_dynamic.sol │ │ │ │ ├── calldata_multi.sol │ │ │ │ ├── calldata_multi_dynamic.sol │ │ │ │ ├── calldata_multi_dynamic_V1.sol │ │ │ │ ├── calldata_resize.sol │ │ │ │ ├── concat/ │ │ │ │ │ ├── bytes_concat_empty_invalid.sol │ │ │ │ │ ├── bytes_concat_on_type_info.sol │ │ │ │ │ ├── bytes_concat_on_variable.sol │ │ │ │ │ ├── bytes_concat_valid_type_literal.sol │ │ │ │ │ ├── bytes_concat_wrong_type_bytes_and_strings.sol │ │ │ │ │ ├── bytes_concat_wrong_type_empty_array_literal.sol │ │ │ │ │ ├── bytes_concat_wrong_type_empty_string_literal.sol │ │ │ │ │ ├── bytes_concat_wrong_type_misc.sol │ │ │ │ │ ├── bytes_concat_wrong_type_misc_literals_and_expressions.sol │ │ │ │ │ └── bytes_concat_wrong_type_zero_literal.sol │ │ │ │ ├── contract_array.sol │ │ │ │ ├── contract_index_access.sol │ │ │ │ ├── copy_calldata_struct_array_to_storage_legacy.sol │ │ │ │ ├── copy_from_function_type.sol │ │ │ │ ├── copy_memory_struct_array_to_storage_legacy.sol │ │ │ │ ├── copy_storage_arrays_of_function_type.sol │ │ │ │ ├── dynamic_memory_array_pop.sol │ │ │ │ ├── function_mapping.sol │ │ │ │ ├── function_mapping_library.sol │ │ │ │ ├── invalid/ │ │ │ │ │ ├── bytes_to_fixed_bytes.sol │ │ │ │ │ ├── library_array.sol │ │ │ │ │ └── library_index_access.sol │ │ │ │ ├── invalidCopy/ │ │ │ │ │ ├── calldata_to_memory_different_base.sol │ │ │ │ │ ├── storage_to_memory_different_base.sol │ │ │ │ │ ├── storage_to_storage_different_base.sol │ │ │ │ │ ├── storage_to_storage_different_base_2.sol │ │ │ │ │ ├── storage_to_storage_different_sign.sol │ │ │ │ │ ├── storage_to_storage_dynamic_to_static.sol │ │ │ │ │ └── storage_to_storage_static_longer_to_shorter.sol │ │ │ │ ├── length/ │ │ │ │ │ ├── abi_decode_length_too_large.sol │ │ │ │ │ ├── array_length_cannot_be_constant_function_parameter.sol │ │ │ │ │ ├── builtin_erc7201_comptime.sol │ │ │ │ │ ├── bytes32_too_large.sol │ │ │ │ │ ├── bytes32_too_large_multidim.sol │ │ │ │ │ ├── can_be_constant_in_function.sol │ │ │ │ │ ├── can_be_constant_in_struct.sol │ │ │ │ │ ├── can_be_recursive_constant.sol │ │ │ │ │ ├── cannot_be_assigned.sol │ │ │ │ │ ├── cannot_be_assigned_mapping.sol │ │ │ │ │ ├── cannot_be_assigned_struct.sol │ │ │ │ │ ├── cannot_be_function.sol │ │ │ │ │ ├── cannot_be_function_call.sol │ │ │ │ │ ├── complex_cyclic_constant.sol │ │ │ │ │ ├── const_cannot_be_fractional.sol │ │ │ │ │ ├── constant_var.sol │ │ │ │ │ ├── cyclic_constant.sol │ │ │ │ │ ├── fixed_size_multidim_zero_length.sol │ │ │ │ │ ├── fixed_size_zero_length.sol │ │ │ │ │ ├── inline_array.sol │ │ │ │ │ ├── invalid_expression_1.sol │ │ │ │ │ ├── invalid_expression_2.sol │ │ │ │ │ ├── invalid_expression_3.sol │ │ │ │ │ ├── invalid_expression_4.sol │ │ │ │ │ ├── invalid_expression_5.sol │ │ │ │ │ ├── literal_conversion.sol │ │ │ │ │ ├── local_memory_too_large.sol │ │ │ │ │ ├── non_integer_constant_var.sol │ │ │ │ │ ├── not_convertible_to_integer.sol │ │ │ │ │ ├── parameter_too_large.sol │ │ │ │ │ ├── parameter_too_large_multidim.sol │ │ │ │ │ ├── parameter_too_large_multidim_ABIv2.sol │ │ │ │ │ ├── parentheses.sol │ │ │ │ │ ├── pure_functions.sol │ │ │ │ │ ├── string_as_array_length.sol │ │ │ │ │ ├── too_large.sol │ │ │ │ │ ├── tuples.sol │ │ │ │ │ └── uint_too_large_multidim.sol │ │ │ │ ├── library_array.sol │ │ │ │ ├── nested_calldata_memory.sol │ │ │ │ ├── nested_calldata_memory2.sol │ │ │ │ ├── nested_calldata_memory3.sol │ │ │ │ ├── nested_calldata_storage.sol │ │ │ │ ├── nested_calldata_storage2.sol │ │ │ │ ├── new_no_parentheses.sol │ │ │ │ ├── no_array_pop.sol │ │ │ │ ├── pop/ │ │ │ │ │ ├── calldata_pop.sol │ │ │ │ │ ├── memory_pop.sol │ │ │ │ │ └── storage_with_mapping_pop.sol │ │ │ │ ├── push/ │ │ │ │ │ ├── calldata_push.sol │ │ │ │ │ ├── memory_push.sol │ │ │ │ │ └── storage_with_mapping_push.sol │ │ │ │ ├── slice/ │ │ │ │ │ ├── assign_to_storage.sol │ │ │ │ │ ├── bytes_calldata.sol │ │ │ │ │ ├── bytes_memory.sol │ │ │ │ │ ├── bytes_storage.sol │ │ │ │ │ ├── calldata_dynamic.sol │ │ │ │ │ ├── calldata_dynamic_access.sol │ │ │ │ │ ├── calldata_dynamic_convert_to_memory.sol │ │ │ │ │ ├── calldata_dynamic_encode.sol │ │ │ │ │ ├── calldata_dynamic_forward.sol │ │ │ │ │ ├── calldata_static.sol │ │ │ │ │ ├── member_access.sol │ │ │ │ │ ├── memory_dynamic.sol │ │ │ │ │ ├── memory_static.sol │ │ │ │ │ ├── slice_literal.sol │ │ │ │ │ ├── slice_memory_bytes.sol │ │ │ │ │ ├── slice_memory_string.sol │ │ │ │ │ ├── slice_string.sol │ │ │ │ │ ├── storage_dynamic.sol │ │ │ │ │ └── storage_static.sol │ │ │ │ ├── static_storage_array_pop.sol │ │ │ │ ├── string_pop.sol │ │ │ │ └── uninitialized_storage_var.sol │ │ │ ├── bytecodeReferences/ │ │ │ │ ├── circular_reference_complex.sol │ │ │ │ ├── circular_reference_complex1.sol │ │ │ │ ├── circular_reference_free_function.sol │ │ │ │ ├── circular_reference_function_parameters.sol │ │ │ │ ├── circular_reference_internal_function.sol │ │ │ │ ├── circular_reference_internal_functions.sol │ │ │ │ ├── circular_reference_libraries.sol │ │ │ │ ├── circular_reference_mention_only.sol │ │ │ │ ├── circular_reference_new_in_ctor.sol │ │ │ │ ├── circular_reference_report_first_in_cycle.sol │ │ │ │ ├── circular_reference_type_mention_only.sol │ │ │ │ ├── cyclic_dep_exhaustion.sol │ │ │ │ ├── library_called.sol │ │ │ │ ├── library_function_circular_reference.sol │ │ │ │ ├── library_non_called.sol │ │ │ │ ├── library_public_called.sol │ │ │ │ └── library_public_without_contract.sol │ │ │ ├── comments/ │ │ │ │ ├── multiline_comments.sol │ │ │ │ ├── multiline_unicode_direction_override_1.sol │ │ │ │ ├── multiline_unicode_direction_override_2.sol │ │ │ │ ├── multiline_unicode_direction_override_3.sol │ │ │ │ ├── multiline_unicode_direction_override_4.sol │ │ │ │ ├── multiline_unicode_direction_override_5.sol │ │ │ │ ├── multiline_unicode_direction_override_6.sol │ │ │ │ ├── multiline_unicode_direction_override_7.sol │ │ │ │ ├── singleline_unicode_direction_override_1.sol │ │ │ │ ├── singleline_unicode_direction_override_2.sol │ │ │ │ ├── singleline_unicode_direction_override_3.sol │ │ │ │ ├── singleline_unicode_direction_override_4.sol │ │ │ │ ├── singleline_unicode_direction_override_5.sol │ │ │ │ ├── singleline_unicode_direction_override_6.sol │ │ │ │ ├── unicode_direction_in_source_1.sol │ │ │ │ ├── unicode_direction_in_source_2.sol │ │ │ │ └── unicode_direction_override_1.sol │ │ │ ├── constantEvaluator/ │ │ │ │ ├── erc7201_builtin.sol │ │ │ │ ├── overflow.sol │ │ │ │ ├── type_reference.sol │ │ │ │ ├── type_reference_in_contract.sol │ │ │ │ ├── unary_fine.sol │ │ │ │ ├── underflow.sol │ │ │ │ └── underflow_unary.sol │ │ │ ├── constants/ │ │ │ │ ├── access_via_getter.sol │ │ │ │ ├── constant_cyclic_via_user_operators.sol │ │ │ │ ├── constant_natspec.sol │ │ │ │ ├── constant_natspec_user.sol │ │ │ │ ├── constant_override.sol │ │ │ │ ├── constant_state_variable_named_transient.sol │ │ │ │ ├── constant_transient_state_variable.sol │ │ │ │ ├── constant_unassigned.sol │ │ │ │ ├── constant_variables_as_static_array_length.sol │ │ │ │ ├── constant_virtual.sol │ │ │ │ ├── constant_with_dependencies_as_array_sizes.sol │ │ │ │ ├── constant_with_dependencies_on_constants.sol │ │ │ │ ├── constant_with_dependencies_on_file_level_constants.sol │ │ │ │ ├── constant_with_visibility.sol │ │ │ │ ├── constant_with_visibility_inverted.sol │ │ │ │ ├── constants_with_dependencies_on_library_constants_multi_file.sol │ │ │ │ ├── cross_file_cyclic.sol │ │ │ │ ├── cross_file_cyclic_modules.sol │ │ │ │ ├── file_level_memory.sol │ │ │ │ ├── file_level_memory_inverted.sol │ │ │ │ ├── file_level_multiple_constant_keywords.sol │ │ │ │ ├── immutable_at_file_level.sol │ │ │ │ ├── initialization/ │ │ │ │ │ ├── abi_decode_const_args.sol │ │ │ │ │ ├── abi_decode_non_const_args.sol │ │ │ │ │ ├── abi_encode_call_const_args.sol │ │ │ │ │ ├── abi_encode_call_non_const_args.sol │ │ │ │ │ ├── abi_encoding_builtin_const_args.sol │ │ │ │ │ ├── abi_encoding_builtin_non_const_args.sol │ │ │ │ │ ├── addmod_by_zero.sol │ │ │ │ │ ├── addmod_mulmod_rational_arg.sol │ │ │ │ │ ├── block_tx_msg_property.sol │ │ │ │ │ ├── bytes_concat_const_args.sol │ │ │ │ │ ├── bytes_concat_non_const_args.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_1.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_2.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_3.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_4.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_5.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_file.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_file_and_library.sol │ │ │ │ │ ├── constant_with_cyclic_dependency_library.sol │ │ │ │ │ ├── division_by_zero.sol │ │ │ │ │ ├── function_pointer_call.sol │ │ │ │ │ ├── math_builtin_opcode_based_const_args.sol │ │ │ │ │ ├── math_builtin_opcode_based_non_const_args.sol │ │ │ │ │ ├── math_builtin_precompile_based_const_args.sol │ │ │ │ │ ├── math_builtin_precompile_based_non_const_args.sol │ │ │ │ │ ├── modulo_by_zero.sol │ │ │ │ │ ├── mulmod_by_zero.sol │ │ │ │ │ ├── string_concat_const_args.sol │ │ │ │ │ ├── string_concat_non_const_args.sol │ │ │ │ │ └── type_info.sol │ │ │ │ ├── mapping_constant.sol │ │ │ │ ├── mod_div_rational.sol │ │ │ │ ├── name_clash_via_import.sol │ │ │ │ ├── non_constant.sol │ │ │ │ ├── pure_non_rational.sol │ │ │ │ ├── redefinition_cross_file.sol │ │ │ │ ├── redefinition_public_constant.sol │ │ │ │ └── struct_constant.sol │ │ │ ├── constructor/ │ │ │ │ ├── abstract_creation_forward_reference.sol │ │ │ │ ├── base_constructor_missing_arguments.sol │ │ │ │ ├── base_constructor_missing_arguments_abstract_inheritance_list_empty_parens.sol │ │ │ │ ├── base_constructor_missing_arguments_abstract_lists_omitted.sol │ │ │ │ ├── base_constructor_missing_arguments_abstract_modifier_init.sol │ │ │ │ ├── base_constructor_missing_arguments_abstract_modifier_init_empty_list.sol │ │ │ │ ├── base_constructor_wrong_arg_count_inheritance_and_modifier_lists.sol │ │ │ │ ├── base_constructor_wrong_arg_count_inheritance_list.sol │ │ │ │ ├── base_constructor_wrong_arg_count_inheritance_list_abstract.sol │ │ │ │ ├── base_constructor_wrong_arg_count_inheritance_list_empty_parens_and_modifier_list.sol │ │ │ │ ├── base_constructor_wrong_arg_count_inheritance_list_with_derived_constructor.sol │ │ │ │ ├── base_constructor_wrong_arg_count_modifier_list.sol │ │ │ │ ├── calldata_constructor_args.sol │ │ │ │ ├── constructible_abstract_base.sol │ │ │ │ ├── constructible_internal_constructor.sol │ │ │ │ ├── constructor.sol │ │ │ │ ├── constructor_function_parameter_disallowed_conversion.sol │ │ │ │ ├── constructor_internal_function.sol │ │ │ │ ├── constructor_internal_function_abstract.sol │ │ │ │ ├── constructor_mapping_memory.sol │ │ │ │ ├── constructor_mapping_memory_abstract.sol │ │ │ │ ├── constructor_old.sol │ │ │ │ ├── constructor_override.sol │ │ │ │ ├── constructor_payable.sol │ │ │ │ ├── constructor_state_mutability.sol │ │ │ │ ├── constructor_storage.sol │ │ │ │ ├── constructor_storage_abstract.sol │ │ │ │ ├── constructor_this.sol │ │ │ │ ├── constructor_virtual.sol │ │ │ │ ├── constructor_visibility.sol │ │ │ │ ├── constructor_without_implementation.sol │ │ │ │ ├── external_constructor.sol │ │ │ │ ├── function_named_constructor.sol │ │ │ │ ├── inconstructible_abstract_contract.sol │ │ │ │ ├── inconstructible_abstract_contract_inverted.sol │ │ │ │ ├── inconstructible_internal_constructor.sol │ │ │ │ ├── inconstructible_internal_constructor_inverted.sol │ │ │ │ ├── interface_constructor.sol │ │ │ │ ├── internal_constructor_non_abstract.sol │ │ │ │ ├── library_constructor.sol │ │ │ │ ├── msg_value_non_payable.sol │ │ │ │ ├── nonabiv2_type.sol │ │ │ │ ├── nonabiv2_type_abstract.sol │ │ │ │ ├── nonpayable_new.sol │ │ │ │ ├── not_a_contract.sol │ │ │ │ ├── overriding_constructor.sol │ │ │ │ ├── payable_new.sol │ │ │ │ ├── public_constructor_abstract.sol │ │ │ │ ├── public_constructor_non_abstract.sol │ │ │ │ ├── returns_in_constructor.sol │ │ │ │ └── two_constructors.sol │ │ │ ├── controlFlow/ │ │ │ │ ├── calldataReturn/ │ │ │ │ │ ├── calldata_return_dynamic_array.sol │ │ │ │ │ ├── calldata_return_static_array.sol │ │ │ │ │ └── calldata_return_struct.sol │ │ │ │ ├── free_function_crash.sol │ │ │ │ ├── leave_inside_function.sol │ │ │ │ ├── leave_outside_function.sol │ │ │ │ ├── localCalldataVariables/ │ │ │ │ │ ├── if_declaration_err.sol │ │ │ │ │ ├── if_declaration_fine.sol │ │ │ │ │ └── smoke_declaration.sol │ │ │ │ ├── localStorageVariables/ │ │ │ │ │ ├── assembly/ │ │ │ │ │ │ ├── for_declaration_err.sol │ │ │ │ │ │ ├── for_declaration_fine.sol │ │ │ │ │ │ ├── if_declaration_err.sol │ │ │ │ │ │ ├── returning_function_declaration.sol │ │ │ │ │ │ ├── reverting_function_declaration.sol │ │ │ │ │ │ ├── stub_declaration.sol │ │ │ │ │ │ ├── switch_declaration_err.sol │ │ │ │ │ │ └── switch_declaration_fine.sol │ │ │ │ │ ├── dowhile_declaration_err.sol │ │ │ │ │ ├── dowhile_declaration_fine.sol │ │ │ │ │ ├── for_declaration_err.sol │ │ │ │ │ ├── for_declaration_fine.sol │ │ │ │ │ ├── if_declaration_err.sol │ │ │ │ │ ├── if_declaration_fine.sol │ │ │ │ │ ├── modifier_declaration_fine.sol │ │ │ │ │ ├── revert_declaration_fine.sol │ │ │ │ │ ├── short_circuit_declaration_err.sol │ │ │ │ │ ├── short_circuit_declaration_fine.sol │ │ │ │ │ ├── smoke_declaration.sol │ │ │ │ │ ├── ternary_assignment_err.sol │ │ │ │ │ ├── ternary_assignment_fine.sol │ │ │ │ │ ├── ternary_declaration_err.sol │ │ │ │ │ ├── ternary_declaration_fine.sol │ │ │ │ │ ├── try_declaration_err.sol │ │ │ │ │ ├── try_declaration_fine.sol │ │ │ │ │ ├── tuple_declaration_fine.sol │ │ │ │ │ ├── while_declaration_err.sol │ │ │ │ │ └── while_declaration_fine.sol │ │ │ │ ├── mappingReturn/ │ │ │ │ │ ├── named_err.sol │ │ │ │ │ ├── named_fine.sol │ │ │ │ │ ├── unnamed_err.sol │ │ │ │ │ └── unnamed_fine.sol │ │ │ │ ├── modifiers/ │ │ │ │ │ ├── implemented_without_placeholder.sol │ │ │ │ │ ├── modifier_different_functions.sol │ │ │ │ │ ├── modifier_override.sol │ │ │ │ │ └── non_implemented_modifier.sol │ │ │ │ ├── storageReturn/ │ │ │ │ │ ├── assembly/ │ │ │ │ │ │ ├── for_err.sol │ │ │ │ │ │ ├── for_fine.sol │ │ │ │ │ │ ├── if_err.sol │ │ │ │ │ │ ├── returning_function.sol │ │ │ │ │ │ ├── reverting_function.sol │ │ │ │ │ │ ├── stub.sol │ │ │ │ │ │ ├── switch_err.sol │ │ │ │ │ │ ├── switch_fine.sol │ │ │ │ │ │ └── switch_only_default_warn.sol │ │ │ │ │ ├── assembly_err.sol │ │ │ │ │ ├── default_location.sol │ │ │ │ │ ├── dowhile_err.sol │ │ │ │ │ ├── dowhile_fine.sol │ │ │ │ │ ├── for_err.sol │ │ │ │ │ ├── for_fine.sol │ │ │ │ │ ├── if_err.sol │ │ │ │ │ ├── if_fine.sol │ │ │ │ │ ├── modifier_err.sol │ │ │ │ │ ├── modifier_fine.sol │ │ │ │ │ ├── revert_fine.sol │ │ │ │ │ ├── short_circuit_err.sol │ │ │ │ │ ├── short_circuit_fine.sol │ │ │ │ │ ├── smoke.sol │ │ │ │ │ ├── ternary_err.sol │ │ │ │ │ ├── ternary_fine.sol │ │ │ │ │ ├── try_err.sol │ │ │ │ │ ├── try_fine.sol │ │ │ │ │ ├── tuple_fine.sol │ │ │ │ │ ├── unimplemented_internal.sol │ │ │ │ │ ├── unimplemented_library.sol │ │ │ │ │ ├── while_err.sol │ │ │ │ │ └── while_fine.sol │ │ │ │ ├── uninitializedAccess/ │ │ │ │ │ ├── always_revert.sol │ │ │ │ │ ├── assembly.sol │ │ │ │ │ ├── bug10821-for.sol │ │ │ │ │ ├── bug10821-if.sol │ │ │ │ │ ├── bug10821-modifier.sol │ │ │ │ │ ├── bug10821-require.sol │ │ │ │ │ ├── bug10821-while.sol │ │ │ │ │ ├── functionType.sol │ │ │ │ │ ├── modifier_order_fail.sol │ │ │ │ │ ├── modifier_order_fine.sol │ │ │ │ │ ├── modifier_post_access.sol │ │ │ │ │ ├── modifier_pre_access.sol │ │ │ │ │ ├── reverting_call.sol │ │ │ │ │ ├── reverting_call_free_function.sol │ │ │ │ │ ├── reverting_call_library.sol │ │ │ │ │ ├── reverting_call_nested.sol │ │ │ │ │ ├── reverting_call_nested1.sol │ │ │ │ │ ├── reverting_call_recursive.sol │ │ │ │ │ ├── reverting_call_static.sol │ │ │ │ │ ├── reverting_call_super.sol │ │ │ │ │ ├── reverting_call_virtual.sol │ │ │ │ │ ├── reverting_call_virtual1.sol │ │ │ │ │ ├── reverting_call_virtual2.sol │ │ │ │ │ ├── reverting_call_virtual3.sol │ │ │ │ │ ├── reverting_call_virtual4.sol │ │ │ │ │ ├── smoke.sol │ │ │ │ │ ├── struct.sol │ │ │ │ │ └── unreachable.sol │ │ │ │ ├── unreachableCode/ │ │ │ │ │ ├── assembly/ │ │ │ │ │ │ ├── double_revert.sol │ │ │ │ │ │ ├── for_break.sol │ │ │ │ │ │ ├── for_continue.sol │ │ │ │ │ │ ├── return.sol │ │ │ │ │ │ └── revert.sol │ │ │ │ │ ├── comment_fine.sol │ │ │ │ │ ├── constant_condition.sol │ │ │ │ │ ├── do_while_continue.sol │ │ │ │ │ ├── double_return.sol │ │ │ │ │ ├── double_revert.sol │ │ │ │ │ ├── for_break.sol │ │ │ │ │ ├── if_both_return.sol │ │ │ │ │ ├── library_function_import_bug.sol │ │ │ │ │ ├── library_function_nonimport_bug.sol │ │ │ │ │ ├── revert.sol │ │ │ │ │ ├── revert_empty.sol │ │ │ │ │ ├── while_break.sol │ │ │ │ │ └── while_continue.sol │ │ │ │ └── userDefinedOperators/ │ │ │ │ ├── binary_operator_udvt.sol │ │ │ │ └── unary_operator_udvt.sol │ │ │ ├── conversion/ │ │ │ │ ├── allowed_conversion_to_bytes_array.sol │ │ │ │ ├── allowed_conversion_to_string.sol │ │ │ │ ├── conversion_to_bytes.sol │ │ │ │ ├── convert_to_super_empty.sol │ │ │ │ ├── convert_to_super_nonempty.sol │ │ │ │ ├── explicit_conversion_address_to_payable.sol │ │ │ │ ├── explicit_conversion_error_to_bytes4.sol │ │ │ │ ├── explicit_conversion_event_to_bytes4.sol │ │ │ │ ├── explicit_conversion_from_error.sol │ │ │ │ ├── explicit_conversion_from_event.sol │ │ │ │ ├── explicit_conversion_from_storage_array_ref.sol │ │ │ │ ├── explicit_conversion_sender_to_payable.sol │ │ │ │ ├── explicit_conversion_this_to_payable.sol │ │ │ │ ├── function_cast_value_set.sol │ │ │ │ ├── function_type_array_to_memory.sol │ │ │ │ ├── function_type_nonpayable_payable.sol │ │ │ │ ├── function_type_nonpayable_pure.sol │ │ │ │ ├── function_type_nonpayable_view.sol │ │ │ │ ├── function_type_payable_nonpayable.sol │ │ │ │ ├── function_type_payable_pure.sol │ │ │ │ ├── function_type_payable_view.sol │ │ │ │ ├── function_type_pure_nonpayable.sol │ │ │ │ ├── function_type_pure_payable.sol │ │ │ │ ├── function_type_pure_view.sol │ │ │ │ ├── function_type_same.sol │ │ │ │ ├── function_type_view_nonpayable.sol │ │ │ │ ├── function_type_view_payable.sol │ │ │ │ ├── function_type_view_pure.sol │ │ │ │ ├── implicit_conversion_error_to_bytes4_function_argument.sol │ │ │ │ ├── implicit_conversion_error_to_bytes4_return_value.sol │ │ │ │ ├── implicit_conversion_event_to_bytes4_function_argument.sol │ │ │ │ ├── implicit_conversion_event_to_bytes4_return_value.sol │ │ │ │ ├── implicit_conversion_from_array_of_string_literals_to_calldata_string.sol │ │ │ │ ├── implicit_conversion_from_storage_array_ref.sol │ │ │ │ ├── implicit_conversion_from_string_literal_to_calldata_string.sol │ │ │ │ ├── implicit_conversion_from_string_literal_to_calldata_string_in_function_parameter.sol │ │ │ │ ├── implicit_conversion_of_super_in_comparison.sol │ │ │ │ ├── implicit_conversion_of_super_in_operators.sol │ │ │ │ ├── not_allowed_conversion_from_super.sol │ │ │ │ ├── not_allowed_conversion_to_int_array_pointer1.sol │ │ │ │ └── not_allowed_conversion_to_int_array_pointer2.sol │ │ │ ├── dataLocations/ │ │ │ │ ├── data_location_in_function_type.sol │ │ │ │ ├── data_location_in_function_type_fail.sol │ │ │ │ ├── externalFunction/ │ │ │ │ │ ├── external_function_return_parameters_no_data_location.sol │ │ │ │ │ ├── function_argument_location_specifier_test_external_calldata.sol │ │ │ │ │ ├── function_argument_location_specifier_test_external_memory.sol │ │ │ │ │ ├── function_argument_location_specifier_test_external_storage.sol │ │ │ │ │ └── function_argument_location_specifier_test_external_transient.sol │ │ │ │ ├── function_argument_location_specifier_test_non_reference_type.sol │ │ │ │ ├── function_parameters_with_data_location_fine.sol │ │ │ │ ├── function_return_parameters_with_data_location_fine.sol │ │ │ │ ├── function_type_array_as_reference_type.sol │ │ │ │ ├── internalFunction/ │ │ │ │ │ ├── function_argument_location_specifier_test_internal_calldata.sol │ │ │ │ │ ├── function_argument_location_specifier_test_internal_memory.sol │ │ │ │ │ ├── function_argument_location_specifier_test_internal_storage.sol │ │ │ │ │ ├── function_argument_location_specifier_test_internal_transient.sol │ │ │ │ │ ├── internal_function_parameters_no_data_location.sol │ │ │ │ │ └── internal_function_return_parameters_no_data_location.sol │ │ │ │ ├── libraries/ │ │ │ │ │ ├── library_external_function_params_no_data_location.sol │ │ │ │ │ ├── library_external_function_return_no_data_location.sol │ │ │ │ │ ├── library_function_with_data_location_fine.sol │ │ │ │ │ ├── library_function_with_data_location_transient.sol │ │ │ │ │ ├── library_internal_function_no_data_location.sol │ │ │ │ │ ├── library_private_function_no_data_location.sol │ │ │ │ │ └── library_public_function_no_data_location.sol │ │ │ │ ├── libraryExternalFunction/ │ │ │ │ │ ├── function_argument_location_specifier_test_external_calldata.sol │ │ │ │ │ ├── function_argument_location_specifier_test_external_memory.sol │ │ │ │ │ ├── function_argument_location_specifier_test_external_storage.sol │ │ │ │ │ └── function_argument_location_specifier_test_external_transient.sol │ │ │ │ ├── libraryInternalFunction/ │ │ │ │ │ ├── function_argument_location_specifier_test_internal_calldata.sol │ │ │ │ │ ├── function_argument_location_specifier_test_internal_memory.sol │ │ │ │ │ ├── function_argument_location_specifier_test_internal_storage.sol │ │ │ │ │ └── function_argument_location_specifier_test_internal_transient.sol │ │ │ │ ├── memory_storage_data_location.sol │ │ │ │ ├── multiple_transient_data_location_function_parameter.sol │ │ │ │ ├── privateFunction/ │ │ │ │ │ ├── private_function_parameters_location_transient.sol │ │ │ │ │ ├── private_function_parameters_no_data_location.sol │ │ │ │ │ ├── private_function_return_parameters_location_transient.sol │ │ │ │ │ └── private_function_return_parameters_no_data_location.sol │ │ │ │ ├── publicFunction/ │ │ │ │ │ ├── function_argument_location_specifier_test_public_calldata.sol │ │ │ │ │ ├── function_argument_location_specifier_test_public_memory.sol │ │ │ │ │ ├── function_argument_location_specifier_test_public_storage.sol │ │ │ │ │ ├── function_argument_location_specifier_test_public_transient.sol │ │ │ │ │ ├── public_function_parameters_no_data_location.sol │ │ │ │ │ ├── public_function_return_parameters_location_transient.sol │ │ │ │ │ └── public_function_return_parameters_no_data_location.sol │ │ │ │ ├── state_variable_storage_named_transient.sol │ │ │ │ ├── state_variable_storage_transient.sol │ │ │ │ ├── state_variable_transient_storage.sol │ │ │ │ ├── transient_dynamic_array_state_variable.sol │ │ │ │ ├── transient_fixed_array_state_variable.sol │ │ │ │ ├── transient_function_type.sol │ │ │ │ ├── transient_function_type_parameter.sol │ │ │ │ ├── transient_local_variable.sol │ │ │ │ ├── transient_mapping_state_variable.sol │ │ │ │ ├── transient_state_variable_visibility.sol │ │ │ │ ├── transient_storage_variable_pre_cancun.sol │ │ │ │ ├── transient_struct_state_variable.sol │ │ │ │ ├── transient_value_type_state_variables.sol │ │ │ │ ├── transient_value_type_state_variables_initialization.sol │ │ │ │ ├── unspecified_constructor.sol │ │ │ │ ├── variable_declaration_location_specifier_test_non_reference_type.sol │ │ │ │ └── variable_declaration_location_specifier_test_reference_type.sol │ │ │ ├── denominations/ │ │ │ │ ├── combining_hex_and_denomination.sol │ │ │ │ ├── denominations.sol │ │ │ │ ├── denominations_in_array_sizes.sol │ │ │ │ ├── deprecated_year.sol │ │ │ │ ├── finney_invalid.sol │ │ │ │ ├── fixed_point_division.sol │ │ │ │ ├── gwei_as_identifier.sol │ │ │ │ ├── invalid_denomination_address.sol │ │ │ │ ├── invalid_denomination_no_whitespace.sol │ │ │ │ ├── invalid_denomination_on_bool.sol │ │ │ │ ├── invalid_denomination_on_string.sol │ │ │ │ ├── szabo_finney_identifiers.sol │ │ │ │ ├── szabo_invalid.sol │ │ │ │ └── two_denominations_same_literal.sol │ │ │ ├── duplicateFunctions/ │ │ │ │ ├── fallback_function_twice.sol │ │ │ │ ├── illegal_names_exception.sol │ │ │ │ ├── illegal_names_functions.sol │ │ │ │ └── receive_function_thrice.sol │ │ │ ├── emit/ │ │ │ │ ├── emit_empty.sol │ │ │ │ └── emit_non_event.sol │ │ │ ├── enums/ │ │ │ │ ├── enum_member_shadowing.sol │ │ │ │ ├── enum_with_too_many_members.sol │ │ │ │ ├── global_enum.sol │ │ │ │ ├── global_enum_contract_name_clash.sol │ │ │ │ ├── global_enum_name_clash.sol │ │ │ │ ├── global_enum_shadowing.sol │ │ │ │ ├── illegal_names.sol │ │ │ │ ├── literal_conversion.sol │ │ │ │ └── literal_conversion_error.sol │ │ │ ├── errors/ │ │ │ │ ├── abi_decode_error.sol │ │ │ │ ├── abi_decode_error_constructor.sol │ │ │ │ ├── abi_encode_error.sol │ │ │ │ ├── abi_encode_error_constructor.sol │ │ │ │ ├── abi_encode_error_instance.sol │ │ │ │ ├── all_ones_signature.sol │ │ │ │ ├── anonymous.sol │ │ │ │ ├── assert_with_cond_and_error.sol │ │ │ │ ├── assert_with_error.sol │ │ │ │ ├── basic.sol │ │ │ │ ├── bytes_concat_on_error_type_info.sol │ │ │ │ ├── clash_function_error.sol │ │ │ │ ├── clash_function_error_inheritance.sol │ │ │ │ ├── clash_function_error_inheritance_2.sol │ │ │ │ ├── duplicate.sol │ │ │ │ ├── elementary_non_address_state_mutability_error_argument.sol │ │ │ │ ├── error_abi_decode.sol │ │ │ │ ├── error_address_payable.sol │ │ │ │ ├── error_as_function_param.sol │ │ │ │ ├── error_bytes_concat_wrong_type.sol │ │ │ │ ├── error_encodecall_fail_args.sol │ │ │ │ ├── error_in_interface.sol │ │ │ │ ├── error_in_library.sol │ │ │ │ ├── error_incompatible_binary_ops.sol │ │ │ │ ├── error_incompatible_operator_for_type.sol │ │ │ │ ├── error_incompatible_unary_operator.sol │ │ │ │ ├── error_invalid_function_modifier_type.sol │ │ │ │ ├── error_location_memory.sol │ │ │ │ ├── error_location_specifier.sol │ │ │ │ ├── error_param_type_shadowed_by_builtin_type_used_as_param_name.sol │ │ │ │ ├── error_param_type_shadowed_by_param_name.sol │ │ │ │ ├── error_reserved_name.sol │ │ │ │ ├── error_return_tuple_not_convertible.sol │ │ │ │ ├── error_selector_syntax.sol │ │ │ │ ├── error_ternary_operator.sol │ │ │ │ ├── error_to_function_conversion.sol │ │ │ │ ├── error_variable_declaration_implicit_conversion.sol │ │ │ │ ├── error_wrong_type_base_arg.sol │ │ │ │ ├── file_level.sol │ │ │ │ ├── hash_collision.sol │ │ │ │ ├── hash_collision_external.sol │ │ │ │ ├── indexed_error.sol │ │ │ │ ├── internal_type.sol │ │ │ │ ├── invalid_parameter_indexed.sol │ │ │ │ ├── invalid_parameter_location.sol │ │ │ │ ├── invalid_parameter_mutability.sol │ │ │ │ ├── invalid_parameter_visibility.sol │ │ │ │ ├── no_mappings.sol │ │ │ │ ├── no_overloading.sol │ │ │ │ ├── no_overloading_inheritance.sol │ │ │ │ ├── no_structs_in_abiv1.sol │ │ │ │ ├── panic_reserved_name.sol │ │ │ │ ├── require_custom.sol │ │ │ │ ├── require_nested.sol │ │ │ │ ├── revert_parentheses.sol │ │ │ │ ├── selector.sol │ │ │ │ ├── selector_on_instance.sol │ │ │ │ ├── struct_named_error.sol │ │ │ │ ├── unreachable.sol │ │ │ │ ├── using.sol │ │ │ │ ├── using_2.sol │ │ │ │ ├── using_structs.sol │ │ │ │ ├── weird3.sol │ │ │ │ ├── weird4.sol │ │ │ │ └── zero_signature.sol │ │ │ ├── events/ │ │ │ │ ├── anonymous_event_four_indexed.sol │ │ │ │ ├── anonymous_event_multiple_anonymous_specifiers.sol │ │ │ │ ├── anonymous_event_too_many_indexed.sol │ │ │ │ ├── bytes_concat_on_event_type_info.sol │ │ │ │ ├── double_event_declaration.sol │ │ │ │ ├── double_event_declaration_ignores_anonymous.sol │ │ │ │ ├── double_event_declaration_ignores_indexed.sol │ │ │ │ ├── elementary_non_address_state_mutability_event_argument.sol │ │ │ │ ├── event.sol │ │ │ │ ├── event_abi_decode.sol │ │ │ │ ├── event_array_indexed_v2.sol │ │ │ │ ├── event_array_v2.sol │ │ │ │ ├── event_bytes_concat_wrong_type.sol │ │ │ │ ├── event_call.sol │ │ │ │ ├── event_emit_complex.sol │ │ │ │ ├── event_emit_foreign_class.sol │ │ │ │ ├── event_emit_qualified_file_level.sol │ │ │ │ ├── event_emit_simple.sol │ │ │ │ ├── event_emit_simple_file_level.sol │ │ │ │ ├── event_encodecall_fail_args.sol │ │ │ │ ├── event_function_inheritance_clash.sol │ │ │ │ ├── event_function_type_indexed.sol │ │ │ │ ├── event_incompatible_binary_ops.sol │ │ │ │ ├── event_incompatible_operator_for_type.sol │ │ │ │ ├── event_incompatible_unary_operator.sol │ │ │ │ ├── event_inheritance.sol │ │ │ │ ├── event_invalid_function_modifier_type.sol │ │ │ │ ├── event_library_function.sol │ │ │ │ ├── event_multiple_indexed_of_one_parameter.sol │ │ │ │ ├── event_named_arguments_in_any_order.sol │ │ │ │ ├── event_nested_array.sol │ │ │ │ ├── event_nested_array_2.sol │ │ │ │ ├── event_nested_array_in_struct.sol │ │ │ │ ├── event_nested_array_indexed_v2.sol │ │ │ │ ├── event_nested_array_v2.sol │ │ │ │ ├── event_overload_named_arguments_ambiguous.sol │ │ │ │ ├── event_overload_named_arguments_ambiguous_implicit_conversion.sol │ │ │ │ ├── event_overload_named_arguments_in_any_order.sol │ │ │ │ ├── event_overload_named_arguments_wrong_types.sol │ │ │ │ ├── event_param_type_outside_storage.sol │ │ │ │ ├── event_param_type_shadowed_by_param_name.sol │ │ │ │ ├── event_return_tuple_not_convertible.sol │ │ │ │ ├── event_selector_access_file_level.sol │ │ │ │ ├── event_selector_access_foreign_contract.sol │ │ │ │ ├── event_selector_access_interface.sol │ │ │ │ ├── event_selector_access_library.sol │ │ │ │ ├── event_selector_library_called_inside_function.sol │ │ │ │ ├── event_selector_library_declared_outside_but_called_inside_function.sol │ │ │ │ ├── event_selector_syntax.sol │ │ │ │ ├── event_struct.sol │ │ │ │ ├── event_struct_indexed.sol │ │ │ │ ├── event_struct_indexed_v2.sol │ │ │ │ ├── event_struct_v2.sol │ │ │ │ ├── event_ternary_operator.sol │ │ │ │ ├── event_to_function_conversion.sol │ │ │ │ ├── event_too_many_indexed.sol │ │ │ │ ├── event_variable_declaration_implicit_conversion.sol │ │ │ │ ├── event_without_emit_deprecated.sol │ │ │ │ ├── event_wrong_type_base_arg.sol │ │ │ │ ├── events_with_same_name.sol │ │ │ │ ├── events_with_same_name_different_types.sol │ │ │ │ ├── events_with_same_name_unnamed_arguments.sol │ │ │ │ ├── file_level_event.sol │ │ │ │ ├── file_level_event_duplicate_definition.sol │ │ │ │ ├── file_level_event_duplicate_definition_via_import.sol │ │ │ │ ├── file_level_event_import.sol │ │ │ │ ├── file_level_event_overloading.sol │ │ │ │ ├── file_level_event_overloading_vs_shadowing.sol │ │ │ │ ├── file_level_event_shadowed_inside_contract.sol │ │ │ │ ├── file_level_event_shadowed_inside_contract_adds_anonymous.sol │ │ │ │ ├── file_level_event_shadowing_contract.sol │ │ │ │ ├── file_level_event_shadowing_error.sol │ │ │ │ ├── file_level_event_using.sol │ │ │ │ ├── function_event_in_contract_clash.sol │ │ │ │ ├── function_event_inheritance_clash.sol │ │ │ │ ├── illegal_names_exception.sol │ │ │ │ ├── illegal_names_exception_file_level.sol │ │ │ │ ├── inheritance_adds_anonymous.sol │ │ │ │ ├── inheritance_adds_indexed.sol │ │ │ │ ├── inheritance_adds_parameter.sol │ │ │ │ ├── inheritance_event_repeated.sol │ │ │ │ ├── inheritance_multi_parent.sol │ │ │ │ ├── inheritance_removes_indexed.sol │ │ │ │ ├── internal_type.sol │ │ │ │ ├── invalid_parameter_location.sol │ │ │ │ ├── invalid_parameter_mutability.sol │ │ │ │ ├── invalid_parameter_visibility.sol │ │ │ │ ├── multiple_event_without_emit.sol │ │ │ │ ├── multiple_events_argument_clash.sol │ │ │ │ ├── multiple_inheritance.sol │ │ │ │ ├── overloading_in_contract.sol │ │ │ │ └── transient_indexed_parameter.sol │ │ │ ├── experimental/ │ │ │ │ ├── builtin/ │ │ │ │ │ ├── builtin_type_definition.sol │ │ │ │ │ ├── builtin_type_definition_duplicate.sol │ │ │ │ │ └── builtin_type_definition_unknown.sol │ │ │ │ ├── forall/ │ │ │ │ │ ├── undeclared_type_variable_in_function.sol │ │ │ │ │ ├── undeclared_type_variable_in_quantified_function.sol │ │ │ │ │ └── undeclared_type_variable_in_type_class.sol │ │ │ │ ├── import/ │ │ │ │ │ ├── experimental_solidity.sol │ │ │ │ │ ├── experimental_solidity_multisource_not_all_enable.sol │ │ │ │ │ ├── experimental_solidity_out_of_order_1.sol │ │ │ │ │ ├── experimental_solidity_out_of_order_2.sol │ │ │ │ │ ├── experimental_solidity_wrong_evm_version.sol │ │ │ │ │ ├── parsing_stdlib_import_1.sol │ │ │ │ │ ├── parsing_stdlib_import_2.sol │ │ │ │ │ ├── parsing_stdlib_import_3.sol │ │ │ │ │ ├── parsing_stdlib_import_4.sol │ │ │ │ │ ├── parsing_stdlib_import_without_pragma_1.sol │ │ │ │ │ └── parsing_stdlib_import_without_pragma_2.sol │ │ │ │ ├── inference/ │ │ │ │ │ ├── experimental_keywords.sol │ │ │ │ │ ├── import_and_call_stdlib_function.sol │ │ │ │ │ ├── instantiation_invalid_type_constructor.sol │ │ │ │ │ ├── instantiation_member_type_does_not_match_declaration.sol │ │ │ │ │ ├── instantiation_not_for_class.sol │ │ │ │ │ ├── invalid_type_referenced.sol │ │ │ │ │ ├── monomorphic_function_call_type_mismatch.sol │ │ │ │ │ ├── polymorphic_function_call.sol │ │ │ │ │ ├── polymorphic_function_call_let_polymorphism.sol │ │ │ │ │ ├── polymorphic_function_call_type_mismatch.sol │ │ │ │ │ ├── polymorphic_type.sol │ │ │ │ │ ├── polymorphic_type_abs_and_rep.sol │ │ │ │ │ ├── polymorphic_type_instantiation_and_operators.sol │ │ │ │ │ ├── type_variable_multi_use_function_parameter_and_return.sol │ │ │ │ │ └── type_variable_multi_use_function_parameters.sol │ │ │ │ └── parsing/ │ │ │ │ ├── forall_free_function.sol │ │ │ │ ├── forall_free_function_no_type_var.sol │ │ │ │ ├── forall_free_function_with_sorts.sol │ │ │ │ ├── forall_type_class.sol │ │ │ │ └── forall_type_class_instantiation.sol │ │ │ ├── fallback/ │ │ │ │ ├── arguments.sol │ │ │ │ ├── default_visibility.sol │ │ │ │ ├── fallback_as_function_name.sol │ │ │ │ ├── fallback_duplicate_returns.sol │ │ │ │ ├── fallback_duplicate_returns_inheritance.sol │ │ │ │ ├── fallback_duplicate_returns_override.sol │ │ │ │ ├── fallback_wrong_data_location.sol │ │ │ │ ├── inheritance_multi_base.sol │ │ │ │ ├── no_input_no_output.sol │ │ │ │ ├── old_syntax.sol │ │ │ │ ├── payable_fallback_with_inherited_receive.sol │ │ │ │ ├── payable_fallback_without_receive_empty.sol │ │ │ │ ├── payable_fallback_without_receive_nonempty.sol │ │ │ │ ├── payable_fallback_without_receive_nonempty_by_inheritance.sol │ │ │ │ ├── payable_fallback_without_receive_only_internal.sol │ │ │ │ ├── pure_modifier.sol │ │ │ │ ├── return_value_number.sol │ │ │ │ ├── return_value_type.sol │ │ │ │ ├── return_value_unsupported.sol │ │ │ │ ├── returns.sol │ │ │ │ └── view_modifier.sol │ │ │ ├── freeFunctions/ │ │ │ │ ├── circular_reference1functions_first.sol │ │ │ │ ├── circular_referencecontracts_first.sol │ │ │ │ ├── free_call_via_contract_type.sol │ │ │ │ ├── free_constructor.sol │ │ │ │ ├── free_different_integer_types.sol │ │ │ │ ├── free_fallback.sol │ │ │ │ ├── free_function_modifier.sol │ │ │ │ ├── free_function_namesake_different_parameter_types.sol │ │ │ │ ├── free_function_qualified_modifier.sol │ │ │ │ ├── free_function_shadowing.sol │ │ │ │ ├── free_function_visibility.sol │ │ │ │ ├── free_function_without_body.sol │ │ │ │ ├── free_functions.sol │ │ │ │ ├── free_identical.sol │ │ │ │ ├── free_identical_multiple.sol │ │ │ │ ├── free_mutability.sol │ │ │ │ ├── free_namesake_contract_function.sol │ │ │ │ ├── free_overload.sol │ │ │ │ ├── free_override.sol │ │ │ │ ├── free_payable.sol │ │ │ │ ├── free_receive.sol │ │ │ │ ├── free_redefinition.sol │ │ │ │ ├── free_storage.sol │ │ │ │ ├── free_virtual.sol │ │ │ │ ├── function_same_name_as_contract.sol │ │ │ │ ├── function_using_struct_after_contract.sol │ │ │ │ ├── gas_value.sol │ │ │ │ ├── illegal_names.sol │ │ │ │ ├── invalid_function_named_unicode.sol │ │ │ │ ├── named_fallback_warning.sol │ │ │ │ ├── named_receive_warning.sol │ │ │ │ ├── qualified_struct_access.sol │ │ │ │ ├── struct_after_function.sol │ │ │ │ ├── super_in_free_function.sol │ │ │ │ └── this_in_free_function.sol │ │ │ ├── functionCalls/ │ │ │ │ ├── arbitrary_parameters_but_restricted_first_type.sol │ │ │ │ ├── call_unimplemented_base.sol │ │ │ │ ├── call_unimplemented_base_via_super.sol │ │ │ │ ├── calldata_struct_argument_with_internal_data_type_inside.sol │ │ │ │ ├── calldata_struct_array_argument_with_internal_data_type_inside.sol │ │ │ │ ├── calldata_struct_array_argument_with_internal_data_type_inside_as_constructor_parameter.sol │ │ │ │ ├── calloptions_duplicated.sol │ │ │ │ ├── calloptions_on_delegatecall.sol │ │ │ │ ├── calloptions_on_internal_function.sol │ │ │ │ ├── calloptions_on_staticcall.sol │ │ │ │ ├── calloptions_repeated.sol │ │ │ │ ├── empty_call_options.sol │ │ │ │ ├── enum_value_not_callable.sol │ │ │ │ ├── eof/ │ │ │ │ │ ├── calloptions_on_delegatecall.sol │ │ │ │ │ ├── calloptions_on_staticcall.sol │ │ │ │ │ ├── external_call_with_gas_option.sol │ │ │ │ │ └── lowlevel_call_options.sol │ │ │ │ ├── int_not_callable.sol │ │ │ │ ├── invalid_expressions_with_calloptions1.sol │ │ │ │ ├── invalid_expressions_with_calloptions2.sol │ │ │ │ ├── invalid_expressions_with_calloptions3.sol │ │ │ │ ├── invalid_named_arguments_conditional.sol │ │ │ │ ├── lowlevel_call_options.sol │ │ │ │ ├── magic_not_callable.sol │ │ │ │ ├── mapping_not_callable.sol │ │ │ │ ├── modifier_not_callable.sol │ │ │ │ ├── module_not_callable.sol │ │ │ │ ├── msg_value_non_payable.sol │ │ │ │ ├── named_arguments_duplicate_parameter.sol │ │ │ │ ├── named_arguments_empty.sol │ │ │ │ ├── named_arguments_for_functions_that_take_arbitrary_parameters.sol │ │ │ │ ├── named_arguments_in_any_order.sol │ │ │ │ ├── named_arguments_invalid_name.sol │ │ │ │ ├── named_arguments_overload.sol │ │ │ │ ├── named_arguments_overload_failing1.sol │ │ │ │ ├── named_arguments_overload_failing2.sol │ │ │ │ ├── named_arguments_overload_failing3.sol │ │ │ │ ├── named_arguments_overload_failing_ambiguous.sol │ │ │ │ ├── named_arguments_overload_failing_ambiguous_implicit_conversion.sol │ │ │ │ ├── named_arguments_overload_failing_right_names_wrong_order.sol │ │ │ │ ├── named_arguments_overload_failing_wrong_names.sol │ │ │ │ ├── named_arguments_overload_in_any_order.sol │ │ │ │ ├── named_arguments_wrong_count.sol │ │ │ │ ├── new_library.sol │ │ │ │ ├── new_with_calloptions.sol │ │ │ │ ├── new_with_calloptions_unsupported.sol │ │ │ │ ├── new_with_invalid_calloptions.sol │ │ │ │ ├── staticcall_on_homestead.sol │ │ │ │ └── this_not_callable.sol │ │ │ ├── functionTypes/ │ │ │ │ ├── assign_attached_library_function.sol │ │ │ │ ├── assign_attached_library_function_storage_arg.sol │ │ │ │ ├── assign_builtin.sol │ │ │ │ ├── call_gas_on_function.sol │ │ │ │ ├── call_value_library_function.sol │ │ │ │ ├── call_value_on_non_constructor.sol │ │ │ │ ├── call_value_on_non_payable_function_type.sol │ │ │ │ ├── call_value_on_payable_function_type.sol │ │ │ │ ├── call_value_options_on_non_payable_function_type.sol │ │ │ │ ├── comparison_of_function_types_external_eq.sol │ │ │ │ ├── comparison_of_function_types_gt_1.sol │ │ │ │ ├── comparison_of_function_types_gt_2.sol │ │ │ │ ├── comparison_of_function_types_internal_eq_1.sol │ │ │ │ ├── comparison_of_function_types_internal_eq_2.sol │ │ │ │ ├── comparison_of_function_types_lt_1.sol │ │ │ │ ├── comparison_of_function_types_lt_2.sol │ │ │ │ ├── comparison_operator_for_external_functions_with_call_options.sol │ │ │ │ ├── comparison_operators_between_internal_and_external_function_pointers.sol │ │ │ │ ├── comparison_operators_external_functions_with_different_parameters.sol │ │ │ │ ├── conversion_to_address.sol │ │ │ │ ├── declaration_type_conversion.sol │ │ │ │ ├── declaration_type_conversion_internal_base.sol │ │ │ │ ├── delete_external_function_type_invalid.sol │ │ │ │ ├── delete_function_type.sol │ │ │ │ ├── delete_function_type_invalid.sol │ │ │ │ ├── eof/ │ │ │ │ │ └── call_gas_on_function.sol │ │ │ │ ├── error_deprecate_gas_function.sol │ │ │ │ ├── error_deprecate_value_constructor.sol │ │ │ │ ├── error_deprecate_value_constructor_nonpayable.sol │ │ │ │ ├── error_deprecate_value_function.sol │ │ │ │ ├── external_function_to_function_type_calldata_parameter.sol │ │ │ │ ├── external_function_type_public_variable.sol │ │ │ │ ├── external_function_type_returning_internal.sol │ │ │ │ ├── external_function_type_taking_internal.sol │ │ │ │ ├── external_function_type_to_address.sol │ │ │ │ ├── external_function_type_to_address_payable.sol │ │ │ │ ├── external_function_type_to_uint.sol │ │ │ │ ├── external_functions_with_calldata_args_assigned_to_function_pointers_of_same_type.sol │ │ │ │ ├── external_functions_with_calldata_args_assigned_to_function_pointers_with_memory_type.sol │ │ │ │ ├── external_functions_with_variable_number_of_stack_slots.sol │ │ │ │ ├── external_library_function_to_external_function_type.sol │ │ │ │ ├── from_ternary_expression.sol │ │ │ │ ├── function_parameter_allowed_conversions.sol │ │ │ │ ├── function_type.sol │ │ │ │ ├── function_type_arrays.sol │ │ │ │ ├── function_type_constructor.sol │ │ │ │ ├── function_type_constructor_local.sol │ │ │ │ ├── function_type_internal_public_variable.sol │ │ │ │ ├── function_type_named_call.sol │ │ │ │ ├── function_type_parameter.sol │ │ │ │ ├── function_type_return_parameters_with_names.sol │ │ │ │ ├── function_type_returned.sol │ │ │ │ ├── function_type_struct.sol │ │ │ │ ├── function_type_struct_undefined_member.sol │ │ │ │ ├── function_type_variable_external_internal.sol │ │ │ │ ├── function_type_with_transient_param.sol │ │ │ │ ├── function_types_internal_visibility_error.sol │ │ │ │ ├── function_types_variable_visibility.sol │ │ │ │ ├── inline_array_with_attached_function.sol │ │ │ │ ├── inline_array_with_attached_function_mixed.sol │ │ │ │ ├── inline_array_with_payable_function.sol │ │ │ │ ├── internal_function_array_memory_as_external_parameter_in_library_external.sol │ │ │ │ ├── internal_function_array_storage_as_external_parameter_in_library_external.sol │ │ │ │ ├── internal_function_as_external_parameter.sol │ │ │ │ ├── internal_function_as_external_parameter_in_library_external.sol │ │ │ │ ├── internal_function_as_external_parameter_in_library_internal.sol │ │ │ │ ├── internal_function_returned_from_public_function.sol │ │ │ │ ├── internal_function_struct_as_external_parameter_in_library_external.sol │ │ │ │ ├── internal_function_type_to_address.sol │ │ │ │ ├── internal_functions_with_calldata_args_assigned_to_function_pointers_of_same_type.sol │ │ │ │ ├── payable_internal_function_type.sol │ │ │ │ ├── payable_internal_function_type_is_not_fatal.sol │ │ │ │ ├── private_function_type.sol │ │ │ │ ├── public_function_type.sol │ │ │ │ ├── selector_ternary_contract_external_function.sol │ │ │ │ ├── selector_ternary_different_contract_public_function.sol │ │ │ │ ├── selector_ternary_different_contracts_external_function.sol │ │ │ │ ├── selector_ternary_different_interface_external_function.sol │ │ │ │ ├── selectors.sol │ │ │ │ ├── ternary_contract_delegate_function.sol │ │ │ │ ├── ternary_with_attached_functions.sol │ │ │ │ ├── transient_function_type_with_param_named_transient.sol │ │ │ │ ├── transient_function_type_with_transient_param.sol │ │ │ │ ├── valid_function_type_variables.sol │ │ │ │ └── warn_function_type_parameters_with_names.sol │ │ │ ├── getter/ │ │ │ │ ├── complex_struct.sol │ │ │ │ ├── nested_structs.sol │ │ │ │ ├── recursive_struct.sol │ │ │ │ └── simple_struct.sol │ │ │ ├── globalFunctions/ │ │ │ │ ├── blobhash_function_pre_cancun.sol │ │ │ │ ├── blobhash_function_shadow_warning.sol │ │ │ │ ├── blobhash_no_call.sol │ │ │ │ ├── blobhash_not_declared_pre_cancun.sol │ │ │ │ ├── blobhash_var_pre_cancun.sol │ │ │ │ ├── blobhash_var_shadow_warning.sol │ │ │ │ ├── call_with_wrong_arg_count.sol │ │ │ │ ├── callcode_with_wrong_arg_count.sol │ │ │ │ ├── delegatecall_with_wrong_arg_count.sol │ │ │ │ ├── deprecated_functions.sol │ │ │ │ ├── erc7201_builtin_abi_encode_comptime.sol │ │ │ │ ├── erc7201_builtin_function_pointer_assignment.sol │ │ │ │ ├── erc7201_builtin_function_shadow_warning.sol │ │ │ │ ├── erc7201_builtin_invalid_gas_function_option.sol │ │ │ │ ├── erc7201_builtin_no_call.sol │ │ │ │ ├── erc7201_builtin_overflow_expression_comptime.sol │ │ │ │ ├── erc7201_builtin_param_bytes_converted_to_string.sol │ │ │ │ ├── erc7201_builtin_param_constant_string_unitary_tuple.sol │ │ │ │ ├── erc7201_builtin_param_invalid_bytes.sol │ │ │ │ ├── erc7201_builtin_param_invalid_hex_literal.sol │ │ │ │ ├── erc7201_builtin_param_invalid_number_literal.sol │ │ │ │ ├── erc7201_builtin_param_named.sol │ │ │ │ ├── erc7201_builtin_param_string_unitary_tuple_comptime.sol │ │ │ │ ├── erc7201_builtin_param_string_var_with_escaped_chars_comptime.sol │ │ │ │ ├── erc7201_builtin_param_string_variable.sol │ │ │ │ ├── erc7201_builtin_param_string_variable_comptime.sol │ │ │ │ ├── erc7201_builtin_param_string_with_whitespaces_comptime.sol │ │ │ │ ├── erc7201_builtin_param_unicode_literal.sol │ │ │ │ ├── erc7201_builtin_param_wrong_count.sol │ │ │ │ ├── erc7201_builtin_variable_name_shadow_warning.sol │ │ │ │ ├── keccak256_with_wrong_arg_count.sol │ │ │ │ ├── log_deprecate.sol │ │ │ │ ├── now_deprecate.sol │ │ │ │ ├── now_override.sol │ │ │ │ ├── ripemd160_with_wrong_arg_count.sol │ │ │ │ ├── selfdestruct_no_call.sol │ │ │ │ ├── sha256_with_wrong_arg_count.sol │ │ │ │ ├── sha3_no_call.sol │ │ │ │ ├── sha3_override.sol │ │ │ │ ├── sha3_var.sol │ │ │ │ ├── suicide_no_call.sol │ │ │ │ ├── suicide_override.sol │ │ │ │ └── suicide_var.sol │ │ │ ├── iceRegressionTests/ │ │ │ │ ├── calling_external_function_via_local_variable_with_invalid_type.sol │ │ │ │ ├── calling_external_function_via_parameter_with_invalid_type.sol │ │ │ │ ├── const_struct_with_mapping.sol │ │ │ │ ├── cycle_checker_function_type.sol │ │ │ │ ├── declarationUnaryTuple/ │ │ │ │ │ ├── declaration_bitnot_tuple.sol │ │ │ │ │ ├── declaration_dec_tuple.sol │ │ │ │ │ ├── declaration_delete_tuple.sol │ │ │ │ │ ├── declaration_inc_tuple.sol │ │ │ │ │ ├── declaration_unary_plus_tuple.sol │ │ │ │ │ ├── declaration_unary_plus_tuple_compound_assign.sol │ │ │ │ │ └── declaration_unary_tuple.sol │ │ │ │ ├── identifier_collision_return_declare.sol │ │ │ │ ├── large_array_in_memory_struct.sol │ │ │ │ ├── large_array_in_memory_struct_2.sol │ │ │ │ ├── large_struct_array.sol │ │ │ │ ├── memory_mapping_array.sol │ │ │ │ ├── missing_functions_duplicate_bug.sol │ │ │ │ ├── oversized_var.sol │ │ │ │ └── recursive_struct_memory.sol │ │ │ ├── immutable/ │ │ │ │ ├── access_via_getter.sol │ │ │ │ ├── as_function_param.sol │ │ │ │ ├── assembly.sol │ │ │ │ ├── base_ctor_return_no_immutables.sol │ │ │ │ ├── complex.sol │ │ │ │ ├── conditional_return_uninitialized.sol │ │ │ │ ├── conditionally_initialized.sol │ │ │ │ ├── creationCode.sol │ │ │ │ ├── ctor_indirect_initialization.sol │ │ │ │ ├── ctor_initialization_indirect_reading.sol │ │ │ │ ├── ctor_initialization_reading.sol │ │ │ │ ├── ctor_initialization_tuple.sol │ │ │ │ ├── ctor_modifier_args.sol │ │ │ │ ├── ctor_modifier_initialization.sol │ │ │ │ ├── ctor_modifier_reading.sol │ │ │ │ ├── decrement.sol │ │ │ │ ├── double_specifier.sol │ │ │ │ ├── external_function_pointer.sol │ │ │ │ ├── function_initialization.sol │ │ │ │ ├── function_initialization_reading.sol │ │ │ │ ├── function_pointer_initializing.sol │ │ │ │ ├── function_pointer_reading.sol │ │ │ │ ├── illegal_names.sol │ │ │ │ ├── immutable_basic.sol │ │ │ │ ├── immutable_state_var_named_transient.sol │ │ │ │ ├── increment.sol │ │ │ │ ├── indirect_reading_during_statevar_init.sol │ │ │ │ ├── inheritance_ctor.sol │ │ │ │ ├── inheritance_ctor_argument.sol │ │ │ │ ├── inheritance_ctor_inherit_specifier_argument_init.sol │ │ │ │ ├── inheritance_ctor_inherit_specifier_argument_reading.sol │ │ │ │ ├── inheritance_virtual_functions.sol │ │ │ │ ├── inheritance_virtual_functions_direct_call.sol │ │ │ │ ├── inheritance_virtual_functions_super.sol │ │ │ │ ├── inheritance_virtual_modifiers.sol │ │ │ │ ├── inheritance_wrong_ctor.sol │ │ │ │ ├── init_in_constructor_modifier_param.sol │ │ │ │ ├── init_in_ctor_param.sol │ │ │ │ ├── init_in_function_modifier_param.sol │ │ │ │ ├── init_in_function_via_contract_name.sol │ │ │ │ ├── init_in_function_via_super.sol │ │ │ │ ├── init_in_inheritance_specifier_param.sol │ │ │ │ ├── initialized_after_ctor.sol │ │ │ │ ├── long_name.sol │ │ │ │ ├── loop_initialized.sol │ │ │ │ ├── multiple_inheritance_virtual_functions.sol │ │ │ │ ├── multiple_inheritance_virtual_functions_with_super.sol │ │ │ │ ├── multiple_initializations.sol │ │ │ │ ├── no_assignments.sol │ │ │ │ ├── non-value_type.sol │ │ │ │ ├── non-value_type_struct.sol │ │ │ │ ├── non-value_type_struct_with_mapping.sol │ │ │ │ ├── private_state_var.sol │ │ │ │ ├── read_in_function_before_init.sol │ │ │ │ ├── read_in_function_before_init2.sol │ │ │ │ ├── reading_after_initialization.sol │ │ │ │ ├── reading_after_initialization_function.sol │ │ │ │ ├── reading_after_initialization_modifier.sol │ │ │ │ ├── reading_during_statevar_init.sol │ │ │ │ ├── return_uninitialized.sol │ │ │ │ ├── runtimeCode.sol │ │ │ │ ├── runtimeCodeInheritance.sol │ │ │ │ ├── selector.sol │ │ │ │ ├── selector_function_name.sol │ │ │ │ ├── selector_function_pointer.sol │ │ │ │ ├── state_var_external_access_read.sol │ │ │ │ ├── state_var_external_access_write.sol │ │ │ │ ├── state_var_transient_data_location.sol │ │ │ │ ├── try_catch_initialized.sol │ │ │ │ ├── unary.sol │ │ │ │ ├── uninitialized.sol │ │ │ │ ├── uninitialized_private_state_var.sol │ │ │ │ ├── unrelated_reading.sol │ │ │ │ ├── variable_declaration_already.sol │ │ │ │ ├── variable_declaration_value.sol │ │ │ │ ├── writing_after_initialization.sol │ │ │ │ └── writing_after_initialization_modifier.sol │ │ │ ├── imports/ │ │ │ │ ├── alias_import_not_forwarded.sol │ │ │ │ ├── circular_import.sol │ │ │ │ ├── complex_import.sol │ │ │ │ ├── declaration_not_found.sol │ │ │ │ ├── filename_with_period.sol │ │ │ │ ├── import_access_struct.sol │ │ │ │ ├── import_does_not_clutter_importee.sol │ │ │ │ ├── import_is_transitive.sol │ │ │ │ ├── importing_free_functions.sol │ │ │ │ ├── inheritance_abi_encoder_match.sol │ │ │ │ ├── inheritance_abi_encoder_mismatch_1.sol │ │ │ │ ├── inheritance_abi_encoder_mismatch_2.sol │ │ │ │ ├── library_name_clash.sol │ │ │ │ ├── library_name_clash_with_contract.sol │ │ │ │ ├── module_function_from_ternary_expression.sol │ │ │ │ ├── multiple_non_existent_file_names.sol │ │ │ │ ├── name_clash_in_import_1.sol │ │ │ │ ├── name_clash_in_import_2.sol │ │ │ │ ├── name_clash_in_import_3.sol │ │ │ │ ├── name_clash_in_import_4.sol │ │ │ │ ├── name_clash_in_import_5.sol │ │ │ │ ├── name_clash_in_import_contract_struct_1.sol │ │ │ │ ├── name_clash_in_import_contract_struct_2.sol │ │ │ │ ├── name_clash_in_import_contract_struct_3.sol │ │ │ │ ├── name_clash_in_import_contract_struct_4.sol │ │ │ │ ├── name_clash_in_import_contract_struct_5.sol │ │ │ │ ├── name_clash_in_import_enum.sol │ │ │ │ ├── name_clash_in_import_enum_contract.sol │ │ │ │ ├── name_clash_in_import_enum_struct.sol │ │ │ │ ├── name_clash_in_import_struct_1.sol │ │ │ │ ├── name_clash_in_import_struct_2.sol │ │ │ │ ├── name_clash_in_import_struct_3.sol │ │ │ │ ├── name_clash_in_import_struct_4.sol │ │ │ │ ├── name_clash_in_import_struct_5.sol │ │ │ │ ├── name_clash_in_import_struct_contract_1.sol │ │ │ │ ├── name_clash_in_import_struct_contract_2.sol │ │ │ │ ├── name_clash_in_import_struct_contract_3.sol │ │ │ │ ├── name_clash_in_import_struct_contract_4.sol │ │ │ │ ├── name_clash_in_import_struct_contract_5.sol │ │ │ │ ├── regular_import.sol │ │ │ │ ├── relative_import.sol │ │ │ │ ├── relative_import_multiplex.sol │ │ │ │ ├── shadowing_builtins_with_alias.sol │ │ │ │ ├── shadowing_builtins_with_imports.sol │ │ │ │ ├── shadowing_builtins_with_multiple_imports.sol │ │ │ │ ├── shadowing_via_import.sol │ │ │ │ ├── simple_alias.sol │ │ │ │ ├── smoke_test.sol │ │ │ │ └── transitive.sol │ │ │ ├── indexing/ │ │ │ │ ├── array_multidim_rational.sol │ │ │ │ ├── array_multim_overflow_index.sol │ │ │ │ ├── array_negative_index.sol │ │ │ │ ├── array_noninteger_index.sol │ │ │ │ ├── array_out_of_bounds_index.sol │ │ │ │ ├── array_without_index.sol │ │ │ │ ├── error_type_without_index.sol │ │ │ │ ├── event_type_without_index.sol │ │ │ │ ├── fixedbytes_negative_index.sol │ │ │ │ ├── fixedbytes_noninteger_index.sol │ │ │ │ ├── fixedbytes_out_of_bounds_index.sol │ │ │ │ ├── fixedbytes_without_index.sol │ │ │ │ ├── function_type.sol │ │ │ │ ├── function_type_without_index.sol │ │ │ │ ├── index_range_access_assert.sol │ │ │ │ └── struct_array_noninteger_index.sol │ │ │ ├── inheritance/ │ │ │ │ ├── allow_empty_duplicated_super_constructor_call.sol │ │ │ │ ├── base_arguments_empty_parentheses.sol │ │ │ │ ├── base_arguments_multiple_inheritance.sol │ │ │ │ ├── base_arguments_no_parentheses.sol │ │ │ │ ├── base_not_contract.sol │ │ │ │ ├── dataLocation/ │ │ │ │ │ ├── external_overriding_external.sol │ │ │ │ │ ├── modifier_parameter_data_location_change_illegal_internal.sol │ │ │ │ │ ├── parameter_data_location_change_calldata_memory_illegal_public.sol │ │ │ │ │ ├── parameter_data_location_change_illegal_internal.sol │ │ │ │ │ ├── parameter_data_location_change_illegal_public.sol │ │ │ │ │ ├── return_type_data_location.sol │ │ │ │ │ └── return_type_data_location_change_illegal.sol │ │ │ │ ├── disallow_modifier_style_without_parentheses.sol │ │ │ │ ├── duplicatedConstructorCall/ │ │ │ │ │ ├── ancestor.sol │ │ │ │ │ ├── base.sol │ │ │ │ │ ├── base_multi.sol │ │ │ │ │ ├── base_multi_no_constructor.sol │ │ │ │ │ └── base_multi_no_constructor_modifier_style.sol │ │ │ │ ├── duplicated_inheritance_definition.sol │ │ │ │ ├── fallbackReceive/ │ │ │ │ │ ├── fallback_overrides_receive.sol │ │ │ │ │ ├── fallback_with_override.sol │ │ │ │ │ ├── fallback_with_override_intermediate.sol │ │ │ │ │ ├── fallback_without_override.sol │ │ │ │ │ ├── fallback_without_override_intermediate.sol │ │ │ │ │ ├── receive_overrides_fallback.sol │ │ │ │ │ ├── receive_parameter.sol │ │ │ │ │ ├── receive_return_parameter.sol │ │ │ │ │ ├── receive_unimplemented.sol │ │ │ │ │ ├── receive_with_override.sol │ │ │ │ │ ├── receive_with_override_intermediate.sol │ │ │ │ │ ├── receive_without_override.sol │ │ │ │ │ └── receive_without_override_intermediate.sol │ │ │ │ ├── interface/ │ │ │ │ │ ├── contract_base.sol │ │ │ │ │ ├── diamond/ │ │ │ │ │ │ ├── diamond_no_relist.sol │ │ │ │ │ │ └── diamond_with_relist.sol │ │ │ │ │ ├── implementation/ │ │ │ │ │ │ ├── complete.sol │ │ │ │ │ │ └── partial.sol │ │ │ │ │ ├── linearization/ │ │ │ │ │ │ ├── invalid/ │ │ │ │ │ │ │ ├── lists_a.sol │ │ │ │ │ │ │ ├── lists_b.sol │ │ │ │ │ │ │ └── lists_both.sol │ │ │ │ │ │ └── valid.sol │ │ │ │ │ ├── multiple_parents.sol │ │ │ │ │ ├── overrides_multiple.sol │ │ │ │ │ ├── overrides_single.sol │ │ │ │ │ └── single_parent.sol │ │ │ │ ├── interface_virtual_warning.sol │ │ │ │ ├── modifiers_in_constructor_context.sol │ │ │ │ ├── override/ │ │ │ │ │ ├── add_view.sol │ │ │ │ │ ├── ambiguous_base_and_unique_implementation.sol │ │ │ │ │ ├── ambiguous_base_and_unique_mention.sol │ │ │ │ │ ├── ambiguous_base_functions_overridden_in_intermediate_base.sol │ │ │ │ │ ├── ambiguous_base_functions_overridden_in_intermediate_base_unimplemented.sol │ │ │ │ │ ├── calldata_memory.sol │ │ │ │ │ ├── calldata_memory_conflict.sol │ │ │ │ │ ├── calldata_memory_interface.sol │ │ │ │ │ ├── calldata_memory_interface_instantiate.sol │ │ │ │ │ ├── calldata_memory_interface_struct.sol │ │ │ │ │ ├── calldata_memory_struct.sol │ │ │ │ │ ├── change_return_types_in_interface.sol │ │ │ │ │ ├── common_base_and_unique_implementation.sol │ │ │ │ │ ├── common_base_and_unique_mention.sol │ │ │ │ │ ├── correct_choice_for_base_function.sol │ │ │ │ │ ├── correct_choice_for_base_function_abstract_contract.sol │ │ │ │ │ ├── detect_double_override.sol │ │ │ │ │ ├── diamond_interface_empty_intermediate_public_state_variable_and_function.sol │ │ │ │ │ ├── diamond_interface_intermediate_public_state_variable.sol │ │ │ │ │ ├── diamond_interface_intermediate_public_state_variable_and_function.sol │ │ │ │ │ ├── diamond_interface_intermediate_public_state_variable_and_function_implemented.sol │ │ │ │ │ ├── diamond_top_implemented_intermediate_empty_bottom_public_state_variable.sol │ │ │ │ │ ├── diamond_top_implemented_intermediate_implemented_public_state_variable.sol │ │ │ │ │ ├── diamond_top_implemented_intermediate_public_state_variable.sol │ │ │ │ │ ├── external_turns_public_no_params.sol │ │ │ │ │ ├── function_pointer.sol │ │ │ │ │ ├── function_state_variable.sol │ │ │ │ │ ├── implement_interface_by_public_variable.sol │ │ │ │ │ ├── implement_internal_function_by_public_variable.sol │ │ │ │ │ ├── implement_private_function_by_public_variable.sol │ │ │ │ │ ├── implement_public_function_by_public_variable.sol │ │ │ │ │ ├── interfaceException/ │ │ │ │ │ │ ├── abstract_needed.sol │ │ │ │ │ │ ├── diamond_needed.sol │ │ │ │ │ │ └── regular_optional.sol │ │ │ │ │ ├── interface_and_base_override_err.sol │ │ │ │ │ ├── interface_and_base_override_fine.sol │ │ │ │ │ ├── internal_external.sol │ │ │ │ │ ├── internal_external_inheritance.sol │ │ │ │ │ ├── modifier_ambiguous.sol │ │ │ │ │ ├── modifier_ambiguous_fail.sol │ │ │ │ │ ├── modifier_inherited_different_signature.sol │ │ │ │ │ ├── modifier_inherited_different_signature_override.sol │ │ │ │ │ ├── no_common_base_and_unique_implementation.sol │ │ │ │ │ ├── no_matching_resolution.sol │ │ │ │ │ ├── nonintermediate_common_base_and_unique_implementation.sol │ │ │ │ │ ├── nonintermediate_common_base_and_unique_implementation_modifier.sol │ │ │ │ │ ├── nonintermediate_common_base_and_unique_implementation_unimplemented.sol │ │ │ │ │ ├── override.sol │ │ │ │ │ ├── override_ambiguous.sol │ │ │ │ │ ├── override_base_base.sol │ │ │ │ │ ├── override_empty_list.sol │ │ │ │ │ ├── override_implemented_and_unimplemented_with_implemented_call_via_contract.sol │ │ │ │ │ ├── override_implemented_and_unimplemented_with_implemented_call_via_super.sol │ │ │ │ │ ├── override_implemented_and_unimplemented_with_implemented_no_call.sol │ │ │ │ │ ├── override_implemented_and_unimplemented_with_implemented_virtual_call_into_base_contract.sol │ │ │ │ │ ├── override_implemented_with_unimplemented_then_implemented.sol │ │ │ │ │ ├── override_interface.sol │ │ │ │ │ ├── override_interface_multiple.sol │ │ │ │ │ ├── override_less_strict_mutability.sol │ │ │ │ │ ├── override_library.sol │ │ │ │ │ ├── override_missing_virtual.sol │ │ │ │ │ ├── override_modifier_no_override.sol │ │ │ │ │ ├── override_multi_layered_error.sol │ │ │ │ │ ├── override_multi_layered_fine.sol │ │ │ │ │ ├── override_multi_layered_fine_abstract.sol │ │ │ │ │ ├── override_multiple.sol │ │ │ │ │ ├── override_multiple2.sol │ │ │ │ │ ├── override_multiple_duplicated.sol │ │ │ │ │ ├── override_multiple_fail1.sol │ │ │ │ │ ├── override_multiple_fail2.sol │ │ │ │ │ ├── override_multiple_fail3.sol │ │ │ │ │ ├── override_multiple_fail4.sol │ │ │ │ │ ├── override_multiple_missing.sol │ │ │ │ │ ├── override_multiple_no_virtual.sol │ │ │ │ │ ├── override_multiple_no_virtual2.sol │ │ │ │ │ ├── override_multiple_unresolved.sol │ │ │ │ │ ├── override_public_vars.sol │ │ │ │ │ ├── override_return_mismatch.sol │ │ │ │ │ ├── override_shared_base.sol │ │ │ │ │ ├── override_shared_base_partial.sol │ │ │ │ │ ├── override_shared_base_simple.sol │ │ │ │ │ ├── override_stricter_mutability.sol │ │ │ │ │ ├── override_stricter_mutability1.sol │ │ │ │ │ ├── override_stricter_mutability2.sol │ │ │ │ │ ├── override_stricter_mutability3.sol │ │ │ │ │ ├── override_stricter_mutability4.sol │ │ │ │ │ ├── override_stricter_mutability5.sol │ │ │ │ │ ├── override_stricter_mutability6.sol │ │ │ │ │ ├── override_stricter_mutability7.sol │ │ │ │ │ ├── override_type_mismatch.sol │ │ │ │ │ ├── override_type_mismatch2.sol │ │ │ │ │ ├── override_unimplemented_and_implemented_with_unimplemented.sol │ │ │ │ │ ├── override_unimplemented_and_unimplemented_with_unimplemented.sol │ │ │ │ │ ├── private_state_variable.sol │ │ │ │ │ ├── public_constant_var_overrides_pure.sol │ │ │ │ │ ├── public_immutable_var_overrides_pure.sol │ │ │ │ │ ├── public_var_implements_parallel_interface.sol │ │ │ │ │ ├── public_var_missing_override.sol │ │ │ │ │ ├── public_var_no_override_but_function.sol │ │ │ │ │ ├── public_var_override_mapping_to_dynamic_struct.sol │ │ │ │ │ ├── public_var_override_struct_with_memory_element.sol │ │ │ │ │ ├── public_var_overrides_public_var.sol │ │ │ │ │ ├── public_var_overrides_pure.sol │ │ │ │ │ ├── public_var_overriding_multiple.sol │ │ │ │ │ ├── public_var_overriding_multiple_derived.sol │ │ │ │ │ ├── public_var_parallel_function.sol │ │ │ │ │ ├── public_var_same_name_but_different_args.sol │ │ │ │ │ ├── public_var_surplus_override.sol │ │ │ │ │ ├── public_vars_multiple.sol │ │ │ │ │ ├── public_vars_multiple1.sol │ │ │ │ │ ├── public_vars_multiple2.sol │ │ │ │ │ ├── public_vars_multiple3.sol │ │ │ │ │ ├── public_vars_multiple4.sol │ │ │ │ │ ├── public_vars_multiple5.sol │ │ │ │ │ ├── public_vars_multiple_diamond.sol │ │ │ │ │ ├── public_vars_multiple_diamond1.sol │ │ │ │ │ ├── public_vars_multiple_diamond2.sol │ │ │ │ │ ├── public_vars_multiple_explicit_override.sol │ │ │ │ │ ├── public_vars_wrong_override.sol │ │ │ │ │ ├── remove_view.sol │ │ │ │ │ ├── restrict_mutability_for_override_only.sol │ │ │ │ │ ├── state_variable_function.sol │ │ │ │ │ ├── triangle_impl.sol │ │ │ │ │ ├── triangle_no_impl.sol │ │ │ │ │ └── virtual_private.sol │ │ │ │ ├── reference_non_base_ctor.sol │ │ │ │ ├── repeated_inheritance_definition.sol │ │ │ │ ├── shadowing_base_state_vars.sol │ │ │ │ ├── shadowing_private_base_state_vars.sol │ │ │ │ ├── super_on_external.sol │ │ │ │ ├── too_few_base_arguments.sol │ │ │ │ ├── unimplemented_without_virtual.sol │ │ │ │ ├── virtual/ │ │ │ │ │ ├── duplicate.sol │ │ │ │ │ ├── library_err.sol │ │ │ │ │ ├── modifier_virtual_err.sol │ │ │ │ │ └── simple.sol │ │ │ │ └── wrong_type_base_arguments.sol │ │ │ ├── inlineArrays/ │ │ │ │ ├── dynamic_inline_array.sol │ │ │ │ ├── inline_array_declaration_and_passing_implicit_conversion.sol │ │ │ │ ├── inline_array_declaration_and_passing_implicit_conversion_strings.sol │ │ │ │ ├── inline_array_declaration_const_int_conversion.sol │ │ │ │ ├── inline_array_declaration_const_string_conversion.sol │ │ │ │ ├── inline_array_declaration_no_type.sol │ │ │ │ ├── inline_array_declaration_no_type_strings.sol │ │ │ │ ├── inline_array_fixed_types.sol │ │ │ │ ├── inline_array_of_mapping_type.sol │ │ │ │ ├── inline_array_rationals.sol │ │ │ │ ├── invalid_types_in_inline_array.sol │ │ │ │ ├── lvalues_as_inline_array.sol │ │ │ │ ├── unnamed_type_tuple_in_inline_array.sol │ │ │ │ ├── unnamed_types_in_inline_array_1.sol │ │ │ │ ├── unnamed_types_in_inline_array_2.sol │ │ │ │ └── unnamed_types_in_inline_array_3.sol │ │ │ ├── inlineAssembly/ │ │ │ │ ├── assembly_dialect_duplicate_option.sol │ │ │ │ ├── assembly_dialect_invalid_options.sol │ │ │ │ ├── assembly_dialect_leading_space.sol │ │ │ │ ├── assembly_duplicate_option.sol │ │ │ │ ├── assembly_empty_option_list.sol │ │ │ │ ├── assembly_empty_option_list_dialect.sol │ │ │ │ ├── assembly_flags_delimiter.sol │ │ │ │ ├── assembly_invalid_options.sol │ │ │ │ ├── assignment_from_contract.sol │ │ │ │ ├── assignment_from_functiontype.sol │ │ │ │ ├── assignment_from_functiontype2.sol │ │ │ │ ├── assignment_from_functiontype3.sol │ │ │ │ ├── assignment_from_library.sol │ │ │ │ ├── assignment_from_opcode_like.sol │ │ │ │ ├── assignment_from_super.sol │ │ │ │ ├── assignment_location.sol │ │ │ │ ├── assignment_to_function_pointer.sol │ │ │ │ ├── assignment_to_opcode_like.sol │ │ │ │ ├── assignment_to_special.sol │ │ │ │ ├── basefee_reserved_london.sol │ │ │ │ ├── blobbasefee_reserved_cancun.sol │ │ │ │ ├── blobhash.sol │ │ │ │ ├── blobhash_pre_cancun_not_declared.sol │ │ │ │ ├── blobhash_pre_cancun_not_reserved.sol │ │ │ │ ├── blobhash_reserved_cancun.sol │ │ │ │ ├── circular_constant_access_err.sol │ │ │ │ ├── circular_constant_access_module_err.sol │ │ │ │ ├── circular_module_access_err.sol │ │ │ │ ├── clash_with_non_reserved_pure_yul_builtin.sol │ │ │ │ ├── clash_with_reserved_builtin.sol │ │ │ │ ├── clash_with_reserved_non_builtin.sol │ │ │ │ ├── clash_with_reserved_pure_yul_builtin.sol │ │ │ │ ├── clz.sol │ │ │ │ ├── clz_pre_osaka.sol │ │ │ │ ├── clz_reserved_osaka.sol │ │ │ │ ├── const_forward_reference.sol │ │ │ │ ├── const_from_non_const.sol │ │ │ │ ├── const_from_this.sol │ │ │ │ ├── constant_access.sol │ │ │ │ ├── constant_access_non_initialized.sol │ │ │ │ ├── constant_array.sol │ │ │ │ ├── constant_bytes_ref.sol │ │ │ │ ├── constant_computation.sol │ │ │ │ ├── constant_ref.sol │ │ │ │ ├── create2_as_variable_post_istanbul.sol │ │ │ │ ├── create2_as_variable_pre_istanbul.sol │ │ │ │ ├── difficulty_builtin_pre_paris.sol │ │ │ │ ├── difficulty_disallowed_function_pre_paris.sol │ │ │ │ ├── difficulty_magic_block_warn_post_paris.sol │ │ │ │ ├── difficulty_nobuiltin_post_paris.sol │ │ │ │ ├── difficulty_reserved_post_paris.sol │ │ │ │ ├── evm_byzantium.sol │ │ │ │ ├── evm_byzantium_on_homestead.sol │ │ │ │ ├── evm_constantinople.sol │ │ │ │ ├── evm_constantinople_on_byzantium.sol │ │ │ │ ├── evm_istanbul.sol │ │ │ │ ├── evm_istanbul_on_petersburg.sol │ │ │ │ ├── extcodehash_as_variable_post_constantinople.sol │ │ │ │ ├── extcodehash_as_variable_pre_constantinople.sol │ │ │ │ ├── external_identifier_access_shadowing.sol │ │ │ │ ├── function_call_invalid_argument_count.sol │ │ │ │ ├── function_call_not_found.sol │ │ │ │ ├── function_call_to_variable.sol │ │ │ │ ├── function_definition.sol │ │ │ │ ├── function_definition_whitespace.sol │ │ │ │ ├── function_without_call.sol │ │ │ │ ├── hex_assignment.sol │ │ │ │ ├── hex_expression.sol │ │ │ │ ├── hex_switch_case.sol │ │ │ │ ├── immutables.sol │ │ │ │ ├── in_modifier.sol │ │ │ │ ├── invalid/ │ │ │ │ │ ├── assign_to_instruction.sol │ │ │ │ │ ├── assignment_to_function.sol │ │ │ │ │ ├── bare_instructions_disallowed.sol │ │ │ │ │ ├── calldata_array.sol │ │ │ │ │ ├── calldata_array_offset.sol │ │ │ │ │ ├── calldata_slot.sol │ │ │ │ │ ├── calldata_variables.sol │ │ │ │ │ ├── const_forward_reference.sol │ │ │ │ │ ├── constant_access.sol │ │ │ │ │ ├── constant_assignment.sol │ │ │ │ │ ├── constant_length_access.sol │ │ │ │ │ ├── constant_variable_via_offset.sol │ │ │ │ │ ├── dot_in_fun_param.sol │ │ │ │ │ ├── dot_in_fundecl.sol │ │ │ │ │ ├── dot_in_multi_vardecl.sol │ │ │ │ │ ├── dot_in_vardecl.sol │ │ │ │ │ ├── dup_disallowed.sol │ │ │ │ │ ├── empty_fun_arg_beginning.sol │ │ │ │ │ ├── empty_fun_arg_end.sol │ │ │ │ │ ├── empty_fun_arg_middle.sol │ │ │ │ │ ├── empty_function_name.sol │ │ │ │ │ ├── eof/ │ │ │ │ │ │ ├── eof_builtins_disallowed.sol │ │ │ │ │ │ └── eof_builtins_disallowed_in_inline_assembly.sol │ │ │ │ │ ├── external_function_pointer_offset.sol │ │ │ │ │ ├── identifier_starting_with_dot.sol │ │ │ │ │ ├── illegal_names.sol │ │ │ │ │ ├── internal_function_pointer_address.sol │ │ │ │ │ ├── internal_function_pointer_selector.sol │ │ │ │ │ ├── invalid_number.sol │ │ │ │ │ ├── jump_disallowed.sol │ │ │ │ │ ├── jumpdest_disallowed.sol │ │ │ │ │ ├── jumpi_disallowed.sol │ │ │ │ │ ├── label_disallowed.sol │ │ │ │ │ ├── leave_items_on_stack.sol │ │ │ │ │ ├── literals_on_stack_disallowed.sol │ │ │ │ │ ├── local_variable_access_out_of_functions.sol │ │ │ │ │ ├── local_variable_access_out_of_functions_storage_ptr.sol │ │ │ │ │ ├── missing_variable.sol │ │ │ │ │ ├── missing_variable_in_assign.sol │ │ │ │ │ ├── multiple_assign_to_instruction.sol │ │ │ │ │ ├── nested_function_local_access.sol │ │ │ │ │ ├── pc_disallowed.sol │ │ │ │ │ ├── push_disallowed.sol │ │ │ │ │ ├── storage_assignment.sol │ │ │ │ │ ├── storage_assignment_in_modifier.sol │ │ │ │ │ ├── storage_nonslot.sol │ │ │ │ │ ├── storage_variable_access_out_of_functions.sol │ │ │ │ │ ├── swap_disallowed.sol │ │ │ │ │ ├── transient_storage_assignment.sol │ │ │ │ │ ├── unbalanced_negative_stack.sol │ │ │ │ │ ├── unbalanced_positive_stack.sol │ │ │ │ │ ├── unbalanced_two_stack_load.sol │ │ │ │ │ ├── variable_declaration_suffix_offset.sol │ │ │ │ │ ├── whitespace_in_assignment.sol │ │ │ │ │ └── whitespace_in_multiple_assignment.sol │ │ │ │ ├── invalid_natspec.sol │ │ │ │ ├── leave.sol │ │ │ │ ├── leave_invalid.sol │ │ │ │ ├── linkersymbol_builtin.sol │ │ │ │ ├── linkersymbol_function.sol │ │ │ │ ├── mcopy.sol │ │ │ │ ├── mcopy_pre_cancun.sol │ │ │ │ ├── mcopy_reserved_cancun.sol │ │ │ │ ├── memory_safe_dialect_string_and_comment.sol │ │ │ │ ├── memory_safe_in_dialect_string.sol │ │ │ │ ├── natspec_memory_safe.sol │ │ │ │ ├── natspec_multi.sol │ │ │ │ ├── natspec_multi_swallowed.sol │ │ │ │ ├── no_unused_variable_warning.sol │ │ │ │ ├── overloaded_reference.sol │ │ │ │ ├── period_in_identifer.sol │ │ │ │ ├── prevrandao_allowed_function_pre_paris.sol │ │ │ │ ├── prevrandao_builtin_post_paris.sol │ │ │ │ ├── prevrandao_disallowed_function_post_paris.sol │ │ │ │ ├── prevrandao_magic_block_warn_pre_paris.sol │ │ │ │ ├── prevrandao_nobuitin_pre_paris.sol │ │ │ │ ├── push0_disallowed.sol │ │ │ │ ├── reserved_identifiers.sol │ │ │ │ ├── reserved_identifiers_byzantium.sol │ │ │ │ ├── reserved_identifiers_constantinople.sol │ │ │ │ ├── returndatasize_as_variable_call_post_byzantium.sol.sol │ │ │ │ ├── returndatasize_as_variable_post_byzantium.sol │ │ │ │ ├── returndatasize_as_variable_pre_byzantium.sol │ │ │ │ ├── returndatasize_as_variable_read_post_byzantium.sol.sol │ │ │ │ ├── shadowing/ │ │ │ │ │ ├── argument.sol │ │ │ │ │ ├── constant.sol │ │ │ │ │ ├── contract.sol │ │ │ │ │ ├── function.sol │ │ │ │ │ ├── global_function_by_opcode.sol │ │ │ │ │ ├── local_function_by_opcode.sol │ │ │ │ │ ├── local_variable.sol │ │ │ │ │ ├── name_clash_in_import.sol │ │ │ │ │ ├── no_name_clash_in_import.sol │ │ │ │ │ ├── qualified_names.sol │ │ │ │ │ ├── state_variable_by_opcode.sol │ │ │ │ │ └── variable_by_opcode.sol │ │ │ │ ├── solidity_keywords.sol │ │ │ │ ├── storage_reference.sol │ │ │ │ ├── storage_reference_assignment.sol │ │ │ │ ├── storage_reference_assignment_statevar.sol │ │ │ │ ├── storage_reference_empty_offset.sol │ │ │ │ ├── storage_reference_empty_slot.sol │ │ │ │ ├── storage_reference_fine.sol │ │ │ │ ├── storage_reference_old.sol │ │ │ │ ├── storage_reference_old_shadow.sol │ │ │ │ ├── storage_reference_on_function.sol │ │ │ │ ├── storage_reference_on_memory.sol │ │ │ │ ├── storage_slot_assign.sol │ │ │ │ ├── string_literal_switch_case.sol │ │ │ │ ├── tload_reserved_cancun.sol │ │ │ │ ├── transient_storage_invalid_pre_cancun.sol │ │ │ │ ├── transient_storage_opcodes.sol │ │ │ │ ├── transient_storage_value_assignment_statevar.sol │ │ │ │ ├── tstore_reserved_cancun.sol │ │ │ │ ├── tstore_warning_only_once_multiple_contracts.sol │ │ │ │ ├── tstore_warning_only_once_multiple_sources.sol │ │ │ │ ├── two_stack_slot_access.sol │ │ │ │ ├── two_stack_slots.sol │ │ │ │ ├── use_msize_with_optimizer.sol │ │ │ │ ├── use_msize_without_optimizer.sol │ │ │ │ └── verbatim_disallowed.sol │ │ │ ├── isoltestTesting/ │ │ │ │ ├── stopAfterAnalysisError.sol │ │ │ │ ├── stopAfterParsingAnalysisErrorNotShowing.sol │ │ │ │ └── stopAfterParsingError.sol │ │ │ ├── largeTypes/ │ │ │ │ ├── large_storage_array_fine.sol │ │ │ │ ├── large_storage_array_mapping.sol │ │ │ │ ├── large_storage_array_simple.sol │ │ │ │ ├── large_storage_arrays_combined.sol │ │ │ │ ├── large_storage_arrays_struct.sol │ │ │ │ ├── large_storage_structs.sol │ │ │ │ ├── max_size_array_with_transient_state_variables.sol │ │ │ │ ├── oversized_array_1d.sol │ │ │ │ ├── oversized_array_2d.sol │ │ │ │ ├── oversized_contract.sol │ │ │ │ ├── oversized_contract_inheritance.sol │ │ │ │ ├── oversized_struct.sol │ │ │ │ └── storage_parameter.sol │ │ │ ├── license/ │ │ │ │ ├── license_AND.sol │ │ │ │ ├── license_OR.sol │ │ │ │ ├── license_bidi_marks.sol │ │ │ │ ├── license_bottom.sol │ │ │ │ ├── license_cr_endings.sol │ │ │ │ ├── license_crlf_endings.sol │ │ │ │ ├── license_double.sol │ │ │ │ ├── license_double2.sol │ │ │ │ ├── license_double3.sol │ │ │ │ ├── license_double4.sol │ │ │ │ ├── license_double5.sol │ │ │ │ ├── license_hidden_unicode.sol │ │ │ │ ├── license_in_contract.sol │ │ │ │ ├── license_in_import.sol │ │ │ │ ├── license_in_string.sol │ │ │ │ ├── license_missing.sol │ │ │ │ ├── license_missing_colon.sol │ │ │ │ ├── license_multiline.sol │ │ │ │ ├── license_natspec.sol │ │ │ │ ├── license_natspec_multiline.sol │ │ │ │ ├── license_no_whitespace.sol │ │ │ │ ├── license_no_whitespace_multiline.sol │ │ │ │ ├── license_nonempty_line.sol │ │ │ │ ├── license_unicode.sol │ │ │ │ ├── license_whitespace_after_colon.sol │ │ │ │ ├── license_whitespace_before_spdx.sol │ │ │ │ └── license_whitespace_trailing.sol │ │ │ ├── literalOperations/ │ │ │ │ ├── division_by_zero.sol │ │ │ │ ├── division_by_zero_complex.sol │ │ │ │ ├── division_by_zero_complex_compound.sol │ │ │ │ ├── division_by_zero_compound.sol │ │ │ │ ├── division_by_zero_nonliteral.sol │ │ │ │ ├── exponent.sol │ │ │ │ ├── exponent_fine.sol │ │ │ │ ├── literal_comparisons.sol │ │ │ │ ├── mod_zero.sol │ │ │ │ ├── mod_zero_complex.sol │ │ │ │ ├── mod_zero_complex_compound.sol │ │ │ │ ├── mod_zero_compound.sol │ │ │ │ └── mod_zero_nonliteral.sol │ │ │ ├── literals/ │ │ │ │ ├── hex_string_duplicate_underscore.sol │ │ │ │ ├── hex_string_duplicate_underscore_yul.sol │ │ │ │ ├── hex_string_invalid_characters_yul.sol │ │ │ │ ├── hex_string_leading_underscore.sol │ │ │ │ ├── hex_string_misaligned_underscore.sol │ │ │ │ ├── hex_string_trailing_underscore.sol │ │ │ │ ├── hex_string_underscores_valid.sol │ │ │ │ ├── invalid_hex_number.sol │ │ │ │ ├── invalid_octal_denomination_no_whitespace.sol │ │ │ │ ├── invalid_octal_digits.sol │ │ │ │ ├── invalid_octal_number.sol │ │ │ │ ├── ternary_operator_return_type_with_literal_arguments.sol │ │ │ │ ├── unicode_string_direction_override_1.sol │ │ │ │ ├── unicode_string_direction_override_2.sol │ │ │ │ ├── unicode_string_direction_override_3.sol │ │ │ │ ├── unicode_string_direction_override_4.sol │ │ │ │ ├── unicode_string_direction_override_5.sol │ │ │ │ ├── unicode_string_direction_override_6.sol │ │ │ │ ├── unicode_string_direction_override_7.sol │ │ │ │ └── upper_case_hex_literals.sol │ │ │ ├── lvalues/ │ │ │ │ ├── calldata_index_access.sol │ │ │ │ ├── calldata_member_access.sol │ │ │ │ ├── external_reference_argument.sol │ │ │ │ ├── functions.sol │ │ │ │ ├── library_mapping.sol │ │ │ │ ├── lvalue_not_set.sol │ │ │ │ └── valid_lvalues.sol │ │ │ ├── memberLookup/ │ │ │ │ ├── constructor_as_potential_library_member.sol │ │ │ │ ├── contract_not_payable_send.sol │ │ │ │ ├── contract_not_payable_transfer.sol │ │ │ │ ├── failed_function_lookup.sol │ │ │ │ ├── failed_function_lookup_in_library.sol │ │ │ │ ├── internal_function_type.sol │ │ │ │ ├── member_not_unique.sol │ │ │ │ ├── member_value_not_unique.sol │ │ │ │ ├── memory_structs_with_mapping_array_struct_array.sol │ │ │ │ ├── memory_structs_with_mappings.sol │ │ │ │ ├── msg_sender_non_payable_send.sol │ │ │ │ ├── msg_sender_non_payable_transfer.sol │ │ │ │ ├── msg_value_modifier_payable.sol │ │ │ │ ├── msg_value_modifier_pure.sol │ │ │ │ ├── msg_value_modifier_view.sol │ │ │ │ ├── push_on_memory_types.sol │ │ │ │ ├── tx_origin_non_payable_send.sol │ │ │ │ ├── tx_origin_non_payable_transfer.sol │ │ │ │ └── unused_module_member_reference.sol │ │ │ ├── metaTypes/ │ │ │ │ ├── array_type_from_ternary.sol │ │ │ │ ├── codeAccess.sol │ │ │ │ ├── codeAccessAbstractCreation.sol │ │ │ │ ├── codeAccessAbstractRuntime.sol │ │ │ │ ├── codeAccessBase.sol │ │ │ │ ├── codeAccessCyclic.sol │ │ │ │ ├── codeAccessIsConstant.sol │ │ │ │ ├── codeAccessLibrary.sol │ │ │ │ ├── codeAccess_super.sol │ │ │ │ ├── codeIsNoLValue.sol │ │ │ │ ├── contract_from_ternary.sol │ │ │ │ ├── contract_min.sol │ │ │ │ ├── explicit_type_conversion.sol │ │ │ │ ├── int_name.sol │ │ │ │ ├── integer.sol │ │ │ │ ├── integer_err.sol │ │ │ │ ├── integer_pure.sol │ │ │ │ ├── interfaceid_super.sol │ │ │ │ ├── library_from_ternary.sol │ │ │ │ ├── max_keyword_from_ternary_with_type_expression.sol │ │ │ │ ├── name.sol │ │ │ │ ├── name_constant.sol │ │ │ │ ├── name_other_contract.sol │ │ │ │ ├── noArgForType.sol │ │ │ │ ├── runtimeCodeWarningAssembly.sol │ │ │ │ ├── runtimeCode_from_ternary_with_type_expression.sol │ │ │ │ ├── struct_from_ternary.sol │ │ │ │ ├── super_name.sol │ │ │ │ ├── tooManyArgsForType.sol │ │ │ │ ├── typeNotRegularIdentifierContractName.sol │ │ │ │ ├── typeNotRegularIdentifierFunction.sol │ │ │ │ ├── typeNotRegularIdentifierParameter.sol │ │ │ │ ├── typeNotRegularIdentifierStateVariable.sol │ │ │ │ ├── typeNotRegularIdentifierVariable.sol │ │ │ │ ├── typeOfContract.sol │ │ │ │ ├── typeRecursive.sol │ │ │ │ ├── type_expression_nested_ternary_max_keyword.sol │ │ │ │ ├── type_expression_tuple_max.sol │ │ │ │ ├── type_from_ternary_condition.sol │ │ │ │ ├── type_max.sol │ │ │ │ ├── type_max_from_ternary_expression.sol │ │ │ │ ├── type_runtimecode.sol │ │ │ │ ├── type_runtimecode_from_ternary_expression_.sol │ │ │ │ └── unsupported_arg_for_type.sol │ │ │ ├── modifiers/ │ │ │ │ ├── access_in_library.sol │ │ │ │ ├── base_constructor_double_invocation.sol │ │ │ │ ├── constructor_as_modifier.sol │ │ │ │ ├── constructor_call_invalid_arg_count.sol │ │ │ │ ├── cross_contract_access.sol │ │ │ │ ├── cross_contract_base.sol │ │ │ │ ├── cross_contract_super.sol │ │ │ │ ├── cross_contract_unrelated.sol │ │ │ │ ├── definition_in_contract.sol │ │ │ │ ├── definition_in_contract_unimplemented.sol │ │ │ │ ├── definition_in_interface.sol │ │ │ │ ├── definition_in_library.sol │ │ │ │ ├── definition_in_library_unimplemented.sol │ │ │ │ ├── definition_in_library_virtual.sol │ │ │ │ ├── elementary_non_address_state_mutability_modifier_argument.sol │ │ │ │ ├── empty_modifier_body.sol │ │ │ │ ├── empty_modifier_err.sol │ │ │ │ ├── function_modifier_double_invocation.sol │ │ │ │ ├── function_modifier_invocation.sol │ │ │ │ ├── function_modifier_invocation_local_variables.sol │ │ │ │ ├── function_modifier_invocation_parameters.sol │ │ │ │ ├── function_overrides_modifier.sol │ │ │ │ ├── illegal_modifier_override.sol │ │ │ │ ├── illegal_name.sol │ │ │ │ ├── invalid_function_modifier_type.sol │ │ │ │ ├── invalid_parameter_indexed.sol │ │ │ │ ├── invalid_parameter_mutability.sol │ │ │ │ ├── invalid_parameter_visibility.sol │ │ │ │ ├── legal_modifier_override.sol │ │ │ │ ├── library_via_using.sol │ │ │ │ ├── modifier_abstract_override.sol │ │ │ │ ├── modifier_overrides_function.sol │ │ │ │ ├── modifier_overrides_variable.sol │ │ │ │ ├── modifier_returns_value.sol │ │ │ │ ├── modifier_without_underscore.sol │ │ │ │ ├── modifiers_on_abstract_functions_no_parser_error.sol │ │ │ │ ├── multiple_inheritance_unimplemented_override.sol │ │ │ │ ├── multiple_parameter_location.sol │ │ │ │ ├── non-virtual_modifier_override.sol │ │ │ │ ├── transient_parameter.sol │ │ │ │ ├── unimplemented_function_and_modifier.sol │ │ │ │ ├── unimplemented_override_unimplemented.sol │ │ │ │ ├── use_in_invalid_context.sol │ │ │ │ ├── use_on_interface_function.sol │ │ │ │ ├── use_unimplemented_from_base.sol │ │ │ │ ├── use_unimplemented_on_overridden_func.sol │ │ │ │ └── use_unimplemented_static.sol │ │ │ ├── multiSource/ │ │ │ │ ├── alias_shadows_another_alias.sol │ │ │ │ ├── alias_shadows_function.sol │ │ │ │ ├── circular_import.sol │ │ │ │ ├── circular_import_2.sol │ │ │ │ ├── circular_import_3.sol │ │ │ │ ├── circular_import_4.sol │ │ │ │ ├── circular_import_5.sol │ │ │ │ ├── duplicate_import_statement.sol │ │ │ │ ├── error_in_first.sol │ │ │ │ ├── free_different_interger_types.sol │ │ │ │ ├── free_function_alias_different_parameter_types.sol │ │ │ │ ├── free_function_control_flow_analysis.sol │ │ │ │ ├── free_function_redefinition_base_derived.sol │ │ │ │ ├── free_function_redefinition_transitive.sol │ │ │ │ ├── free_function_resolution_override_virtual.sol │ │ │ │ ├── import.sol │ │ │ │ ├── import_alias.sol │ │ │ │ ├── import_alias_mismatch.sol │ │ │ │ ├── import_contract_function_error.sol │ │ │ │ ├── import_not_found.sol │ │ │ │ ├── imported_free_function.sol │ │ │ │ ├── libraries_control_flow_analysis.sol │ │ │ │ ├── multiple_imports_same_function.sol │ │ │ │ ├── no_import.sol │ │ │ │ ├── one_source.sol │ │ │ │ ├── reimport_imported_function.sol │ │ │ │ ├── split_contract_hierarchy_control_flow_analysis.sol │ │ │ │ ├── split_contract_hierarchy_control_flow_analysis_complex.sol │ │ │ │ ├── two_imports_same_function.sol │ │ │ │ └── warning_in_both.sol │ │ │ ├── multiVariableDeclaration/ │ │ │ │ ├── differentNumberOfComponents.sol │ │ │ │ ├── differentNumberOfComponentsFromReturn.sol │ │ │ │ ├── disallowWildcards.sol │ │ │ │ ├── disallowWildcardsFromReturn.sol │ │ │ │ ├── multiSingleVariableDeclaration.sol │ │ │ │ ├── multiVariableDeclarationComplex.sol │ │ │ │ ├── multiVariableDeclarationEmpty.sol │ │ │ │ ├── multiVariableDeclarationInvalidType.sol │ │ │ │ ├── multiVariableDeclarationScoping.sol │ │ │ │ ├── multiVariableDeclarationScoping2.sol │ │ │ │ ├── multiVariableDeclarationSimple.sol │ │ │ │ ├── multiVariableDeclarationThatIsExpression.sol │ │ │ │ ├── oneElementTuple.sol │ │ │ │ └── sameNumberOfComponents.sol │ │ │ ├── nameAndTypeResolution/ │ │ │ │ ├── 001_name_references.sol │ │ │ │ ├── 002_undeclared_name.sol │ │ │ │ ├── 003_undeclared_name_is_not_fatal.sol │ │ │ │ ├── 004_reference_to_later_declaration.sol │ │ │ │ ├── 010_type_conversion_for_comparison.sol │ │ │ │ ├── 011_type_conversion_for_comparison_invalid.sol │ │ │ │ ├── 013_large_string_literal.sol │ │ │ │ ├── 014_balance.sol │ │ │ │ ├── 015_balance_invalid.sol │ │ │ │ ├── 017_assignment_to_struct.sol │ │ │ │ ├── 018_forward_function_reference.sol │ │ │ │ ├── 019_comparison_bitop_precedence.sol │ │ │ │ ├── 025_comparison_of_mapping_types.sol │ │ │ │ ├── 029_create_abstract_contract.sol │ │ │ │ ├── 030_redeclare_implemented_abstract_function_as_abstract.sol │ │ │ │ ├── 044_returning_multi_dimensional_arrays_new_abi.sol │ │ │ │ ├── 045_returning_multi_dimensional_arrays.sol │ │ │ │ ├── 046_returning_multi_dimensional_static_arrays.sol │ │ │ │ ├── 047_returning_arrays_in_structs_new_abi.sol │ │ │ │ ├── 048_returning_arrays_in_structs_arrays.sol │ │ │ │ ├── 049_function_external_call_allowed_conversion.sol │ │ │ │ ├── 050_function_external_call_not_allowed_conversion.sol │ │ │ │ ├── 051_function_internal_allowed_conversion.sol │ │ │ │ ├── 052_function_internal_not_allowed_conversion.sol │ │ │ │ ├── 053_hash_collision_in_interface.sol │ │ │ │ ├── 054_inheritance_basic.sol │ │ │ │ ├── 055_inheritance_diamond_basic.sol │ │ │ │ ├── 056_cyclic_inheritance.sol │ │ │ │ ├── 057_legal_override_direct.sol │ │ │ │ ├── 058_legal_override_indirect.sol │ │ │ │ ├── 059_illegal_override_visibility.sol │ │ │ │ ├── 060_complex_inheritance.sol │ │ │ │ ├── 061_missing_base_constructor_arguments.sol │ │ │ │ ├── 062_base_constructor_arguments_override.sol │ │ │ │ ├── 063_implicit_derived_to_base_conversion.sol │ │ │ │ ├── 064_implicit_base_to_derived_conversion.sol │ │ │ │ ├── 065_super_excludes_current_contract.sol │ │ │ │ ├── 067_function_clash_with_state_variable_accessor.sol │ │ │ │ ├── 069_base_class_state_variable_accessor.sol │ │ │ │ ├── 070_struct_accessor_one_array_only.sol │ │ │ │ ├── 071_base_class_state_variable_internal_member.sol │ │ │ │ ├── 072_state_variable_member_of_wrong_class1.sol │ │ │ │ ├── 073_state_variable_member_of_wrong_class2.sol │ │ │ │ ├── 074_fallback_function.sol │ │ │ │ ├── 075_fallback_function_with_arguments.sol │ │ │ │ ├── 076_fallback_function_in_library.sol │ │ │ │ ├── 076_receive_function_in_library.sol │ │ │ │ ├── 077_fallback_function_with_return_parameters.sol │ │ │ │ ├── 079_fallback_function_inheritance.sol │ │ │ │ ├── 096_access_to_default_function_visibility.sol │ │ │ │ ├── 097_access_to_internal_function.sol │ │ │ │ ├── 098_access_to_default_state_variable_visibility.sol │ │ │ │ ├── 099_access_to_internal_state_variable.sol │ │ │ │ ├── 104_empty_name_input_parameter.sol │ │ │ │ ├── 105_constant_input_parameter.sol │ │ │ │ ├── 106_empty_name_return_parameter.sol │ │ │ │ ├── 107_empty_name_input_parameter_with_named_one.sol │ │ │ │ ├── 108_empty_name_return_parameter_with_named_one.sol │ │ │ │ ├── 110_no_overflow_with_large_literal.sol │ │ │ │ ├── 111_overflow_caused_by_ether_units.sol │ │ │ │ ├── 112_exp_operator_exponent_too_big.sol │ │ │ │ ├── 113_exp_warn_literal_base_1.sol │ │ │ │ ├── 114_exp_warn_literal_base_2.sol │ │ │ │ ├── 115_exp_warn_literal_base_3.sol │ │ │ │ ├── 116_shift_warn_literal_base_1.sol │ │ │ │ ├── 117_shift_warn_literal_base_2.sol │ │ │ │ ├── 118_shift_warn_literal_base_3.sol │ │ │ │ ├── 119_shift_warn_literal_base_4.sol │ │ │ │ ├── 124_enum_member_access.sol │ │ │ │ ├── 125_enum_member_access_accross_contracts.sol │ │ │ │ ├── 126_enum_invalid_member_access.sol │ │ │ │ ├── 127_enum_invalid_direct_member_access.sol │ │ │ │ ├── 128_enum_explicit_conversion_is_okay.sol │ │ │ │ ├── 129_int_to_enum_explicit_conversion_is_okay.sol │ │ │ │ ├── 130_enum_implicit_conversion_is_not_okay_256.sol │ │ │ │ ├── 131_enum_implicit_conversion_is_not_okay_64.sol │ │ │ │ ├── 132_enum_to_enum_conversion_is_not_okay.sol │ │ │ │ ├── 133_enum_duplicate_values.sol │ │ │ │ ├── 134_enum_name_resolution_under_current_contract_name.sol │ │ │ │ ├── 135_private_visibility.sol │ │ │ │ ├── 136_private_visibility_via_explicit_base_access.sol │ │ │ │ ├── 137_external_visibility.sol │ │ │ │ ├── 138_similar_name_suggestions_expected.sol │ │ │ │ ├── 139_no_name_suggestion.sol │ │ │ │ ├── 140_multiple_similar_suggestions.sol │ │ │ │ ├── 141_multiple_scopes_suggestions.sol │ │ │ │ ├── 142_inheritence_suggestions.sol │ │ │ │ ├── 143_no_spurious_identifier_suggestions_with_submatch.sol │ │ │ │ ├── 144_no_spurious_identifier_suggestions.sol │ │ │ │ ├── 145_external_base_visibility.sol │ │ │ │ ├── 146_external_argument_assign.sol │ │ │ │ ├── 147_external_argument_increment.sol │ │ │ │ ├── 148_external_argument_delete.sol │ │ │ │ ├── 149_test_for_bug_override_function_with_bytearray_type.sol │ │ │ │ ├── 150_array_with_nonconstant_length.sol │ │ │ │ ├── 151_array_with_negative_length.sol │ │ │ │ ├── 152_array_copy_with_different_types1.sol │ │ │ │ ├── 153_array_copy_with_different_types2.sol │ │ │ │ ├── 154_array_copy_with_different_types_conversion_possible.sol │ │ │ │ ├── 155_array_copy_with_different_types_static_dynamic.sol │ │ │ │ ├── 156_array_copy_with_different_types_dynamic_static.sol │ │ │ │ ├── 157_array_of_undeclared_type.sol │ │ │ │ ├── 158_storage_variable_initialization_with_incorrect_type_int.sol │ │ │ │ ├── 159_storage_variable_initialization_with_incorrect_type_string.sol │ │ │ │ ├── 160_test_byte_is_alias_of_byte1.sol │ │ │ │ ├── 164_assigning_value_to_const_variable.sol │ │ │ │ ├── 165_assigning_state_to_const_variable.sol │ │ │ │ ├── 167_constant_string_literal_disallows_assignment.sol │ │ │ │ ├── 168_assignment_to_const_var_involving_conversion.sol │ │ │ │ ├── 169_assignment_to_const_var_involving_expression.sol │ │ │ │ ├── 170_assignment_to_const_var_involving_keccak.sol │ │ │ │ ├── 171_assignment_to_const_array_vars.sol │ │ │ │ ├── 172_assignment_to_const_string_bytes.sol │ │ │ │ ├── 173_constant_struct.sol │ │ │ │ ├── 174_address_is_constant.sol │ │ │ │ ├── 175_uninitialized_const_variable.sol │ │ │ │ ├── 176_overloaded_function_cannot_resolve.sol │ │ │ │ ├── 177_ambiguous_overloaded_function.sol │ │ │ │ ├── 178_assignment_of_nonoverloaded_function.sol │ │ │ │ ├── 179_assignment_of_overloaded_function.sol │ │ │ │ ├── 180_external_types_clash.sol │ │ │ │ ├── 181_override_changes_return_types.sol │ │ │ │ ├── 182_equal_overload.sol │ │ │ │ ├── 188_string_index.sol │ │ │ │ ├── 189_string_length.sol │ │ │ │ ├── 190_negative_integers_to_signed_out_of_bound.sol │ │ │ │ ├── 191_negative_integers_to_signed_min.sol │ │ │ │ ├── 192_positive_integers_to_signed_out_of_bound.sol │ │ │ │ ├── 193_positive_integers_to_signed_out_of_bound_max.sol │ │ │ │ ├── 194_negative_integers_to_unsigned.sol │ │ │ │ ├── 195_positive_integers_to_unsigned_out_of_bound.sol │ │ │ │ ├── 196_integer_boolean_or.sol │ │ │ │ ├── 197_integer_boolean_and.sol │ │ │ │ ├── 198_integer_boolean_not.sol │ │ │ │ ├── 199_integer_unsigned_exp_signed.sol │ │ │ │ ├── 200_integer_signed_exp_unsigned.sol │ │ │ │ ├── 201_integer_signed_exp_signed.sol │ │ │ │ ├── 202_bytes_reference_compare_operators.sol │ │ │ │ ├── 203_struct_reference_compare_operators.sol │ │ │ │ ├── 204_overwrite_memory_location_external.sol │ │ │ │ ├── 205_overwrite_storage_location_external.sol │ │ │ │ ├── 206_storage_location_local_variables.sol │ │ │ │ ├── 207_no_mappings_in_memory_array.sol │ │ │ │ ├── 208_assignment_mem_to_local_storage_variable.sol │ │ │ │ ├── 209_storage_assign_to_different_local_variable.sol │ │ │ │ ├── 210_uninitialized_mapping_variable.sol │ │ │ │ ├── 211_uninitialized_mapping_array_variable.sol │ │ │ │ ├── 213_no_delete_on_storage_pointers.sol │ │ │ │ ├── 214_assignment_mem_storage_variable_directly.sol │ │ │ │ ├── 215_function_argument_mem_to_storage.sol │ │ │ │ ├── 216_function_argument_storage_to_mem.sol │ │ │ │ ├── 217_mem_array_assignment_changes_base_type.sol │ │ │ │ ├── 219_memory_arrays_not_resizeable.sol │ │ │ │ ├── 220_struct_constructor.sol │ │ │ │ ├── 221_struct_constructor_nested.sol │ │ │ │ ├── 222_struct_named_constructor.sol │ │ │ │ ├── 223_literal_strings.sol │ │ │ │ ├── 224_string_bytes_conversion.sol │ │ │ │ ├── 225_inheriting_from_library.sol │ │ │ │ ├── 226_inheriting_library.sol │ │ │ │ ├── 227_library_having_variables.sol │ │ │ │ ├── 228_valid_library.sol │ │ │ │ ├── 229_call_to_library_function.sol │ │ │ │ ├── 230_creating_contract_within_the_contract.sol │ │ │ │ ├── 231_array_out_of_bound_access.sol │ │ │ │ ├── 232_literal_string_to_storage_pointer.sol │ │ │ │ ├── 233_non_initialized_references.sol │ │ │ │ ├── 235_abi_encode_with_large_integer_constant.sol │ │ │ │ ├── 236_cyclic_binary_dependency.sol │ │ │ │ ├── 237_cyclic_binary_dependency_via_inheritance.sol │ │ │ │ ├── 244_tuples.sol │ │ │ │ ├── 245_tuples_empty_components.sol │ │ │ │ ├── 250_member_access_parser_ambiguity.sol │ │ │ │ ├── 251_using_for_library.sol │ │ │ │ ├── 252_using_for_not_library.sol │ │ │ │ ├── 253_using_for_function_exists.sol │ │ │ │ ├── 254_using_for_function_on_int.sol │ │ │ │ ├── 255_using_for_function_on_struct.sol │ │ │ │ ├── 256_using_for_overload.sol │ │ │ │ ├── 257_using_for_by_name.sol │ │ │ │ ├── 258_using_for_mismatch.sol │ │ │ │ ├── 259_using_for_not_used.sol │ │ │ │ ├── 260_library_memory_struct.sol │ │ │ │ ├── 261_using_for_arbitrary_mismatch.sol │ │ │ │ ├── 263_create_memory_arrays.sol │ │ │ │ ├── 264_mapping_in_memory_array.sol │ │ │ │ ├── 265_new_for_non_array.sol │ │ │ │ ├── 268_function_overload_array_type.sol │ │ │ │ ├── 275_inline_struct_declaration_arrays.sol │ │ │ │ ├── 279_break_not_in_loop.sol │ │ │ │ ├── 280_continue_not_in_loop.sol │ │ │ │ ├── 281_continue_not_in_loop_2.sol │ │ │ │ ├── 282_invalid_different_types_for_conditional_expression.sol │ │ │ │ ├── 283_left_value_in_conditional_expression_not_supported_yet.sol │ │ │ │ ├── 284_conditional_expression_with_different_struct.sol │ │ │ │ ├── 285_conditional_expression_with_different_function_type.sol │ │ │ │ ├── 286_conditional_expression_with_different_enum.sol │ │ │ │ ├── 287_conditional_expression_with_different_mapping.sol │ │ │ │ ├── 288_conditional_with_all_types.sol │ │ │ │ ├── 289_uint7_and_uintM_as_identifier.sol │ │ │ │ ├── 290_varM_disqualified_as_keyword_1.sol │ │ │ │ ├── 290_varM_disqualified_as_keyword_2.sol │ │ │ │ ├── 290_varM_disqualified_as_keyword_3.sol │ │ │ │ ├── 291_modifier_is_not_a_valid_typename.sol │ │ │ │ ├── 292_modifier_is_not_a_valid_typename_is_not_fatal.sol │ │ │ │ ├── 293_function_is_not_a_valid_typename.sol │ │ │ │ ├── 294_long_uint_variable_fails.sol │ │ │ │ ├── 295_bytes10abc_is_identifier.sol │ │ │ │ ├── 296_int10abc_is_identifier.sol │ │ │ │ ├── 297_library_functions_do_not_have_value.sol │ │ │ │ ├── 298_invalid_fixed_types_0x7_mxn.sol │ │ │ │ ├── 299_invalid_fixed_types_long_invalid_identifier.sol │ │ │ │ ├── 300_invalid_fixed_types_7x8_mxn.sol │ │ │ │ ├── 301_library_instances_cannot_be_used.sol │ │ │ │ ├── 302_invalid_fixed_type_long.sol │ │ │ │ ├── 303_fixed_type_int_conversion.sol │ │ │ │ ├── 304_fixed_type_rational_int_conversion.sol │ │ │ │ ├── 305_fixed_type_rational_fraction_conversion.sol │ │ │ │ ├── 306_invalid_int_implicit_conversion_from_fixed.sol │ │ │ │ ├── 307_rational_unary_minus_operation.sol │ │ │ │ ├── 308_rational_unary_plus_operation.sol │ │ │ │ ├── 312_leading_zero_rationals_convert.sol │ │ │ │ ├── 313_fixed_type_size_capabilities.sol │ │ │ │ ├── 314_fixed_type_zero_handling.sol │ │ │ │ ├── 315_fixed_type_invalid_implicit_conversion_size.sol │ │ │ │ ├── 316_fixed_type_invalid_implicit_conversion_lost_data.sol │ │ │ │ ├── 317_fixed_type_valid_explicit_conversions.sol │ │ │ │ ├── 318_invalid_array_declaration_with_rational.sol │ │ │ │ ├── 319_invalid_array_declaration_with_signed_fixed_type.sol │ │ │ │ ├── 320_invalid_array_declaration_with_unsigned_fixed_type.sol │ │ │ │ ├── 321_rational_to_bytes_implicit_conversion.sol │ │ │ │ ├── 322_fixed_to_bytes_implicit_conversion.sol │ │ │ │ ├── 323_mapping_with_fixed_literal.sol │ │ │ │ ├── 324_fixed_points_inside_structs.sol │ │ │ │ ├── 327_rational_index_access.sol │ │ │ │ ├── 328_rational_to_fixed_literal_expression.sol │ │ │ │ ├── 329_rational_as_exponent_value_signed.sol │ │ │ │ ├── 330_rational_as_exponent_value_unsigned.sol │ │ │ │ ├── 331_rational_as_exponent_half.sol │ │ │ │ ├── 332_rational_as_exponent_value_neg_quarter.sol │ │ │ │ ├── 333_fixed_point_casting_exponents_15.sol │ │ │ │ ├── 334_fixed_point_casting_exponents_neg.sol │ │ │ │ ├── 338_rational_bitnot_unary_operation.sol │ │ │ │ ├── 339_rational_bitor_binary_operation.sol │ │ │ │ ├── 340_rational_bitxor_binary_operation.sol │ │ │ │ ├── 341_rational_bitand_binary_operation.sol │ │ │ │ ├── 342_missing_bool_conversion.sol │ │ │ │ ├── 343_integer_and_fixed_interaction.sol │ │ │ │ ├── 344_one_divided_by_three_integer_conversion.sol │ │ │ │ ├── 345_unused_return_value.sol │ │ │ │ ├── 346_unused_return_value_send.sol │ │ │ │ ├── 347_unused_return_value_call.sol │ │ │ │ ├── 348_unused_return_value_call_value.sol │ │ │ │ ├── 350_unused_return_value_delegatecall.sol │ │ │ │ ├── 351_callcode_deprecated.sol │ │ │ │ ├── 353_callcode_not_deprecated_as_function.sol │ │ │ │ ├── 354_payable_in_library.sol │ │ │ │ ├── 355_payable_external.sol │ │ │ │ ├── 356_payable_internal.sol │ │ │ │ ├── 357_payable_private.sol │ │ │ │ ├── 358_illegal_override_payable.sol │ │ │ │ ├── 359_illegal_override_payable_nonpayable.sol │ │ │ │ ├── 360_function_variable_mixin.sol │ │ │ │ ├── 361_calling_payable.sol │ │ │ │ ├── 362_calling_nonpayable.sol │ │ │ │ ├── 363_non_payable_constructor.sol │ │ │ │ ├── 366_invalid_array_as_statement.sol │ │ │ │ ├── 367_using_directive_for_missing_selftype.sol │ │ │ │ ├── 368_shift_constant_left_negative_rvalue.sol │ │ │ │ ├── 369_shift_constant_right_negative_rvalue.sol │ │ │ │ ├── 370_shift_constant_left_excessive_rvalue.sol │ │ │ │ ├── 371_shift_constant_right_excessive_rvalue.sol │ │ │ │ ├── 372_shift_constant_right_fractional.sol │ │ │ │ ├── 396_invalid_mobile_type.sol │ │ │ │ ├── 397_warns_msg_value_in_non_payable_public_function.sol │ │ │ │ ├── 398_does_not_warn_msg_value_in_payable_function.sol │ │ │ │ ├── 399_does_not_warn_msg_value_in_internal_function.sol │ │ │ │ ├── 400_does_not_warn_msg_value_in_library.sol │ │ │ │ ├── 401_does_not_warn_msg_value_in_modifier_following_non_payable_public_function.sol │ │ │ │ ├── 402_assignment_to_constant.sol │ │ │ │ ├── 403_return_structs.sol │ │ │ │ ├── 404_read_returned_struct.sol │ │ │ │ ├── 405_address_checksum_type_deduction.sol │ │ │ │ ├── 406_invalid_address_checksum.sol │ │ │ │ ├── 407_invalid_address_no_checksum.sol │ │ │ │ ├── 408_invalid_address_length_short.sol │ │ │ │ ├── 409_invalid_address_length_long.sol │ │ │ │ ├── 410_string_literal_not_convertible_to_address_as_assignment.sol │ │ │ │ ├── 411_string_literal_not_convertible_to_address_as_return_value.sol │ │ │ │ ├── 412_early_exit_on_fatal_errors.sol │ │ │ │ ├── 413_address_methods.sol │ │ │ │ ├── 414_interface.sol │ │ │ │ ├── 415_interface_functions.sol │ │ │ │ ├── 416_interface_function_bodies.sol │ │ │ │ ├── 417_interface_events.sol │ │ │ │ ├── 418_interface_inheritance.sol │ │ │ │ ├── 419_interface_structs.sol │ │ │ │ ├── 420_interface_variables.sol │ │ │ │ ├── 421_interface_function_parameters.sol │ │ │ │ ├── 422_interface_enums.sol │ │ │ │ ├── 423_using_interface.sol │ │ │ │ ├── 424_using_interface_complex.sol │ │ │ │ ├── 425_interface_implement_public_contract.sol │ │ │ │ ├── 426_throw_is_deprecated.sol │ │ │ │ ├── 428_bare_revert.sol │ │ │ │ ├── 429_revert_with_reason.sol │ │ │ │ ├── 431_bare_assert.sol │ │ │ │ ├── 432_bare_require.sol │ │ │ │ ├── 433_pure_statement_in_for_loop.sol │ │ │ │ ├── 434_pure_statement_check_for_regular_for_loop.sol │ │ │ │ ├── 438_unused_unnamed_function_parameter.sol │ │ │ │ ├── 441_unused_unnamed_return_parameter.sol │ │ │ │ ├── 442_named_return_parameter.sol │ │ │ │ ├── 443_named_return_parameter_with_explicit_return.sol │ │ │ │ ├── 444_unnamed_return_parameter_with_explicit_return.sol │ │ │ │ ├── 445_no_unused_warning_interface_arguments.sol │ │ │ │ ├── 446_no_unused_warning_abstract_arguments.sol │ │ │ │ ├── 447_no_unused_warnings.sol │ │ │ │ ├── 459_function_overload_is_not_shadowing.sol │ │ │ │ ├── 460_function_override_is_not_shadowing.sol │ │ │ │ ├── 461_event_parameter_cannot_shadow_state_variable.sol │ │ │ │ ├── 462_callable_crash.sol │ │ │ │ ├── 466_does_not_error_transfer_payable_fallback.sol │ │ │ │ ├── 467_does_not_error_transfer_regular_function.sol │ │ │ │ ├── 470_specified_storage_no_warn.sol │ │ │ │ ├── 471_unspecified_storage_fail.sol │ │ │ │ ├── 473_storage_location_non_array_or_struct_disallowed.sol │ │ │ │ ├── 474_storage_location_non_array_or_struct_disallowed_is_not_fatal.sol │ │ │ │ ├── 475_implicit_conversion_disallowed.sol │ │ │ │ ├── 476_too_large_arrays_for_calldata_external.sol │ │ │ │ ├── 477_too_large_arrays_for_calldata_internal.sol │ │ │ │ ├── 478_too_large_arrays_for_calldata_public.sol │ │ │ │ ├── 479_explicit_literal_to_memory_string_assignment.sol │ │ │ │ ├── 480_explicit_literal_to_storage_string_assignment.sol │ │ │ │ ├── 481_explicit_literal_to_unspecified_string_assignment.sol │ │ │ │ ├── 482_explicit_literal_to_unspecified_string.sol │ │ │ │ ├── 483_modifiers_access_storage_pointer.sol │ │ │ │ ├── 484_function_types_selector_1.sol │ │ │ │ ├── 485_function_types_selector_2.sol │ │ │ │ ├── 486_function_types_selector_3.sol │ │ │ │ ├── 487_function_types_selector_4.sol │ │ │ │ ├── 488_function_types_selector_5.sol │ │ │ │ ├── 489_function_types_selector_6.sol │ │ │ │ ├── 490_function_types_selector_7.sol │ │ │ │ ├── 491_using_this_in_constructor.sol │ │ │ │ ├── 492_do_not_crash_on_not_lvalue.sol │ │ │ │ ├── 493_builtin_keccak256_reject_gas.sol │ │ │ │ ├── 494_builtin_sha256_reject_gas.sol │ │ │ │ ├── 495_builtin_ripemd160_reject_gas.sol │ │ │ │ ├── 496_builtin_ecrecover_reject_gas.sol │ │ │ │ ├── 497_gasleft.sol │ │ │ │ ├── 498_msg_gas_deprecated.sol │ │ │ │ ├── 500_gasleft_shadowing_1.sol │ │ │ │ ├── 501_gasleft_shadowing_2.sol │ │ │ │ ├── 502_builtin_keccak256_reject_value.sol │ │ │ │ ├── 503_builtin_sha256_reject_value.sol │ │ │ │ ├── 504_builtin_ripemd160_reject_value.sol │ │ │ │ ├── 505_builtin_ecrecover_reject_value.sol │ │ │ │ ├── 511_library_function_without_implementation_public.sol │ │ │ │ ├── 512_library_function_without_implementation_internal.sol │ │ │ │ ├── 513_library_function_without_implementation_private.sol │ │ │ │ ├── 514_using_for_with_non_library.sol │ │ │ │ ├── 523_reject_interface_creation.sol │ │ │ │ ├── 525_reject_interface_constructors.sol │ │ │ │ ├── 526_fallback_marked_external.sol │ │ │ │ ├── 527_fallback_marked_internal.sol │ │ │ │ ├── 528_fallback_marked_private.sol │ │ │ │ ├── 529_fallback_marked_public.sol │ │ │ │ ├── 530_tuple_invalid_literal_too_large_for_uint.sol │ │ │ │ ├── 531_tuple_invalid_literal_too_large_unassigned.sol │ │ │ │ ├── 532_tuple_invalid_literal_too_large_for_uint_multi.sol │ │ │ │ ├── 533_tuple_invalid_literal_too_large_exp.sol │ │ │ │ ├── 534_tuple_invalid_literal_too_large_expression.sol │ │ │ │ ├── 535_address_overload_resolution.sol │ │ │ │ ├── 536_array_length_invalid_expression_negative_bool.sol │ │ │ │ ├── 537_array_length_invalid_expression_int_divides_bool.sol │ │ │ │ ├── 538_array_length_invalid_expression_bool_divides_int.sol │ │ │ │ ├── 539_array_length_invalid_expression_scientific_literal.sol │ │ │ │ ├── 540_array_length_invalid_expression_division_by_zero.sol │ │ │ │ ├── 541_warn_about_address_members_on_contract_balance.sol │ │ │ │ ├── 542_warn_about_address_members_on_contract_transfer.sol │ │ │ │ ├── 543_warn_about_address_members_on_contract_send.sol │ │ │ │ ├── 544_warn_about_address_members_on_contract_call.sol │ │ │ │ ├── 545_warn_about_address_members_on_contract_callcode.sol │ │ │ │ ├── 546_warn_about_address_members_on_contract_delegatecall.sol │ │ │ │ ├── 547_warn_about_address_members_on_non_this_contract_balance.sol │ │ │ │ ├── 548_warn_about_address_members_on_non_this_contract_transfer.sol │ │ │ │ ├── 549_warn_about_address_members_on_non_this_contract_send.sol │ │ │ │ ├── 550_warn_about_address_members_on_non_this_contract_call.sol │ │ │ │ ├── 551_warn_about_address_members_on_non_this_contract_callcode.sol │ │ │ │ ├── 552_warn_about_address_members_on_non_this_contract_delegatecall.sol │ │ │ │ ├── 559_no_warning_for_using_members_that_look_like_address_members.sol │ │ │ │ ├── 568_blockhash.sol │ │ │ │ ├── 569_block_blockhash_deprecated.sol │ │ │ │ ├── 570_function_type_undeclared_type.sol │ │ │ │ ├── 571_function_type_undeclared_type_external.sol │ │ │ │ ├── 572_function_type_undeclared_type_multi_nested.sol │ │ │ │ ├── 573_similar_name_longer_than_80_not_suggested.sol │ │ │ │ ├── 574_similar_name_shorter_than_80_suggested.sol │ │ │ │ ├── 575_member_member_getter_call_without_parentheses.sol │ │ │ │ ├── 576_member_getter_call_without_parentheses.sol │ │ │ │ ├── 577_member_getter_call_without_parentheses_missing_function.sol │ │ │ │ ├── 578_private_member_getter_call_without_parentheses.sol │ │ │ │ ├── 579_member_getter_call_without_parentheses_private_function.sol │ │ │ │ ├── 580_improve_name_suggestion_one_and_two_letters.sol │ │ │ │ ├── 581_improve_name_suggestion_three_letters.sol │ │ │ │ ├── 582_improve_name_suggestion_four_letters.sol │ │ │ │ ├── 583_abi_encode_packed_with_rational_number_constant.sol │ │ │ │ ├── 584_abi_decode_with_tuple_of_other_than_types.sol │ │ │ │ ├── 585_abi_decode_with_unsupported_types.sol │ │ │ │ ├── 589_error_index_access.sol │ │ │ │ ├── 590_event_index_access.sol │ │ │ │ ├── 591_access_to_internal_variable.sol │ │ │ │ ├── array_length_fractional_computed.sol │ │ │ │ ├── call_option_value_on_library_function.sol │ │ │ │ ├── compoundAssignment/ │ │ │ │ │ ├── incomp_types.sol │ │ │ │ │ ├── tuple.sol │ │ │ │ │ └── tuple_invalid_inline_array_type.sol │ │ │ │ ├── constant_forward_reference_struct.sol │ │ │ │ ├── constant_mapping.sol │ │ │ │ ├── constant_nested_mapping.sol │ │ │ │ ├── erc7201_builtin_const_var_assignment.sol │ │ │ │ ├── erc7201_builtin_invalid_member_gas.sol │ │ │ │ ├── erc7201_builtin_invalid_member_value.sol │ │ │ │ ├── free_and_constant.sol │ │ │ │ ├── hash_collision_in_abstract_contract.sol │ │ │ │ ├── invalidArgs/ │ │ │ │ │ ├── creating_memory_array.sol │ │ │ │ │ ├── creating_struct.sol │ │ │ │ │ ├── creating_struct_members_skipped.sol │ │ │ │ │ └── explicit_conversions.sol │ │ │ │ ├── invalidTypes/ │ │ │ │ │ ├── conditional_expression.sol │ │ │ │ │ └── constructor_call.sol │ │ │ │ ├── no_effect_statements.sol │ │ │ │ ├── shadowsBuiltin/ │ │ │ │ │ ├── events.sol │ │ │ │ │ ├── functions.sol │ │ │ │ │ ├── global_scope.sol │ │ │ │ │ ├── ignores_constructor.sol │ │ │ │ │ ├── ignores_struct.sol │ │ │ │ │ ├── illegal_names_assembly_functions.sol │ │ │ │ │ ├── illegal_names_assembly_identifier.sol │ │ │ │ │ ├── illegal_names_function_parameters.sol │ │ │ │ │ ├── illegal_names_library_using_for.sol │ │ │ │ │ ├── illegal_names_using_for.sol │ │ │ │ │ ├── parameters.sol │ │ │ │ │ ├── return_parameters.sol │ │ │ │ │ ├── storage_variables.sol │ │ │ │ │ ├── this_super.sol │ │ │ │ │ └── variables.sol │ │ │ │ ├── shift_warn_literal_large_shift_amount.sol │ │ │ │ ├── typeChecking/ │ │ │ │ │ ├── function_call.sol │ │ │ │ │ ├── library_instances.sol │ │ │ │ │ ├── return.sol │ │ │ │ │ ├── return_tuple_not_convertible.sol │ │ │ │ │ ├── return_wrong_number.sol │ │ │ │ │ └── return_wrong_type.sol │ │ │ │ └── warnUnused/ │ │ │ │ ├── function_parameter.sol │ │ │ │ ├── local.sol │ │ │ │ ├── local_assignment.sol │ │ │ │ └── return_parameter.sol │ │ │ ├── operators/ │ │ │ │ ├── calling_operator_binary_user_defined_not_available.sol │ │ │ │ ├── calling_operator_unary_user_defined_not_available.sol │ │ │ │ ├── negation.sol │ │ │ │ ├── signed_rational_modulus.sol │ │ │ │ ├── transient_value_type.sol │ │ │ │ └── userDefined/ │ │ │ │ ├── calling_operator.sol │ │ │ │ ├── calling_operator_as_attached_function_via_function_name.sol │ │ │ │ ├── calling_operator_as_attached_function_via_operator_name.sol │ │ │ │ ├── calling_operator_defined_separately_from_type.sol │ │ │ │ ├── calling_operator_defined_separately_from_type_and_binding.sol │ │ │ │ ├── calling_operator_imported.sol │ │ │ │ ├── calling_operator_imported_non_global.sol │ │ │ │ ├── calling_operator_imported_transitively.sol │ │ │ │ ├── calling_operator_imported_transitively_non_global.sol │ │ │ │ ├── calling_operator_in_constant_initialization.sol │ │ │ │ ├── calling_operator_non_global.sol │ │ │ │ ├── calling_operator_that_deploys_contract.sol │ │ │ │ ├── calling_operator_that_makes_external_call.sol │ │ │ │ ├── calling_operator_that_makes_pure_external_call.sol │ │ │ │ ├── calling_operator_that_makes_view_external_call.sol │ │ │ │ ├── calling_operator_with_implicit_conversion.sol │ │ │ │ ├── defining_operator_for_builtin_types.sol │ │ │ │ ├── defining_operator_for_contract.sol │ │ │ │ ├── defining_operator_for_enum.sol │ │ │ │ ├── defining_operator_for_error.sol │ │ │ │ ├── defining_operator_for_event.sol │ │ │ │ ├── defining_operator_for_interface.sol │ │ │ │ ├── defining_operator_for_library.sol │ │ │ │ ├── defining_operator_for_struct.sol │ │ │ │ ├── defining_operator_for_wildcard_type_at_contract_level.sol │ │ │ │ ├── defining_operator_for_wildcard_type_at_file_level.sol │ │ │ │ ├── implementing_operator_with_attached_free_function.sol │ │ │ │ ├── implementing_operator_with_builtin_abi_encode.sol │ │ │ │ ├── implementing_operator_with_builtin_keccak256.sol │ │ │ │ ├── implementing_operator_with_builtin_revert.sol │ │ │ │ ├── implementing_operator_with_contract_function_at_contract_level.sol │ │ │ │ ├── implementing_operator_with_contract_function_at_file_level.sol │ │ │ │ ├── implementing_operator_with_error.sol │ │ │ │ ├── implementing_operator_with_event.sol │ │ │ │ ├── implementing_operator_with_function_pointer.sol │ │ │ │ ├── implementing_operator_with_function_shadowing_builtin_keccak256.sol │ │ │ │ ├── implementing_operator_with_library.sol │ │ │ │ ├── implementing_operator_with_library_function_at_contract_level.sol │ │ │ │ ├── implementing_operator_with_library_function_at_file_level.sol │ │ │ │ ├── implementing_operator_with_library_function_private_outside_of_library.sol │ │ │ │ ├── implementing_operator_with_non_pure_function.sol │ │ │ │ ├── implementing_operator_with_non_pure_function_on_built_in_type_non_global.sol │ │ │ │ ├── implementing_operator_with_overloaded_function.sol │ │ │ │ ├── implementing_operator_with_privately_overloaded_function.sol │ │ │ │ ├── implementing_operator_with_unqualified_library_function_at_file_level.sol │ │ │ │ ├── implementing_operator_with_unqualified_library_function_in_library.sol │ │ │ │ ├── multiple_operator_definitions_different_functions_global_and_non_global_different_files.sol │ │ │ │ ├── multiple_operator_definitions_different_functions_global_non_global.sol │ │ │ │ ├── multiple_operator_definitions_different_functions_non_global_and_global_different_files.sol │ │ │ │ ├── multiple_operator_definitions_different_functions_same_directive.sol │ │ │ │ ├── multiple_operator_definitions_different_functions_same_directive_operator_not_used.sol │ │ │ │ ├── multiple_operator_definitions_on_file_and_contract_level.sol │ │ │ │ ├── multiple_operator_definitions_same_function_different_levels_free_function.sol │ │ │ │ ├── multiple_operator_definitions_same_function_different_levels_library_function.sol │ │ │ │ ├── multiple_operator_definitions_same_function_same_directive.sol │ │ │ │ ├── multiple_operator_definitions_same_function_separate_directives.sol │ │ │ │ ├── operator_overloading.sol │ │ │ │ ├── operator_parsing_function_name_missing.sol │ │ │ │ ├── operator_parsing_no_brace.sol │ │ │ │ ├── operator_parsing_non_user_definable.sol │ │ │ │ ├── operator_parsing_not_an_operator.sol │ │ │ │ ├── operator_parsing_operator_name_empty_string.sol │ │ │ │ ├── operator_parsing_operator_name_missing.sol │ │ │ │ ├── operator_parsing_operator_named_as.sol │ │ │ │ ├── operator_returning_wrong_types.sol │ │ │ │ ├── operator_taking_and_returning_types_not_matching_using_for.sol │ │ │ │ ├── operator_taking_no_parameters_binary.sol │ │ │ │ ├── operator_taking_no_parameters_unary.sol │ │ │ │ ├── operator_taking_or_returning_different_types.sol │ │ │ │ ├── operator_taking_two_parameters_unary.sol │ │ │ │ ├── using_for_attaching_functions_and_defining_operators_same_directive.sol │ │ │ │ ├── using_for_with_operator_at_contract_level_for_contract_level_type.sol │ │ │ │ ├── using_for_with_operator_at_contract_level_global.sol │ │ │ │ ├── using_for_with_operator_at_contract_level_global_different_file.sol │ │ │ │ ├── using_for_with_operator_at_contract_level_in_base_contract.sol │ │ │ │ ├── using_for_with_operator_at_contract_level_in_interface.sol │ │ │ │ ├── using_for_with_operator_at_file_level_for_contract_level_type.sol │ │ │ │ ├── using_for_with_operator_at_file_level_for_contract_level_type_non_global.sol │ │ │ │ ├── using_for_with_operator_at_file_level_global_and_non_global.sol │ │ │ │ ├── using_for_with_operator_at_file_level_global_different_file.sol │ │ │ │ └── using_for_with_operator_at_file_level_global_unary_and_non_global_binary_same_file.sol │ │ │ ├── parsing/ │ │ │ │ ├── address_constant_payable.sol │ │ │ │ ├── address_function_arguments_and_returns.sol │ │ │ │ ├── address_in_struct.sol │ │ │ │ ├── address_invalid_state_mutability.sol │ │ │ │ ├── address_nonpayable.sol │ │ │ │ ├── address_payable.sol │ │ │ │ ├── address_payable_constant.sol │ │ │ │ ├── address_payable_conversion.sol │ │ │ │ ├── address_payable_function_type.sol │ │ │ │ ├── address_payable_library.sol │ │ │ │ ├── address_payable_local.sol │ │ │ │ ├── address_payable_state_variable.sol │ │ │ │ ├── address_payable_struct.sol │ │ │ │ ├── address_payable_type_expression.sol │ │ │ │ ├── address_public_payable_error.sol │ │ │ │ ├── array_range_and_ternary.sol │ │ │ │ ├── array_range_conversion.sol │ │ │ │ ├── array_range_nested.sol │ │ │ │ ├── array_range_nested_invalid.sol │ │ │ │ ├── array_range_no_start.sol │ │ │ │ ├── array_type_range.sol │ │ │ │ ├── arrays_in_events.sol │ │ │ │ ├── arrays_in_expressions.sol │ │ │ │ ├── arrays_in_storage.sol │ │ │ │ ├── assembly_evmasm_type.sol │ │ │ │ ├── assembly_invalid_type.sol │ │ │ │ ├── calling_function.sol │ │ │ │ ├── comment_end_with_double_star.sol │ │ │ │ ├── conditional_multiple.sol │ │ │ │ ├── conditional_true_false_literal.sol │ │ │ │ ├── conditional_with_assignment.sol │ │ │ │ ├── conditional_with_constants.sol │ │ │ │ ├── conditional_with_variables.sol │ │ │ │ ├── constant_is_keyword.sol │ │ │ │ ├── constant_state_modifier.sol │ │ │ │ ├── constructor_allowed_this.sol │ │ │ │ ├── constructor_internal_internal.sol │ │ │ │ ├── constructor_internal_public.sol │ │ │ │ ├── constructor_payable_payable.sol │ │ │ │ ├── constructor_public_internal.sol │ │ │ │ ├── constructor_public_public.sol │ │ │ │ ├── constructor_super.sol │ │ │ │ ├── contract_named_transient.sol │ │ │ │ ├── declaring_fixed_and_ufixed_variables.sol │ │ │ │ ├── declaring_fixed_literal_variables.sol │ │ │ │ ├── elementary_non_address_state_mutability_argument.sol │ │ │ │ ├── elementary_non_address_state_mutability_file_var.sol │ │ │ │ ├── elementary_non_address_state_mutability_local.sol │ │ │ │ ├── elementary_non_address_state_mutability_return.sol │ │ │ │ ├── elementary_non_address_state_mutability_state_variable.sol │ │ │ │ ├── else_if_statement.sol │ │ │ │ ├── emit_without_event.sol │ │ │ │ ├── empty_comment.sol │ │ │ │ ├── empty_enum.sol │ │ │ │ ├── empty_function.sol │ │ │ │ ├── enum_from_interface.sol │ │ │ │ ├── enum_from_interface_in_library.sol │ │ │ │ ├── enum_from_library.sol │ │ │ │ ├── enum_inheritance_contract.sol │ │ │ │ ├── enum_inheritance_interface.sol │ │ │ │ ├── enum_valid_declaration.sol │ │ │ │ ├── event.sol │ │ │ │ ├── event_arguments.sol │ │ │ │ ├── event_arguments_indexed.sol │ │ │ │ ├── event_with_no_argument_list.sol │ │ │ │ ├── exp_expression.sol │ │ │ │ ├── external_function.sol │ │ │ │ ├── external_variable.sol │ │ │ │ ├── fallback_function.sol │ │ │ │ ├── fixed_literal_with_double_radix.sol │ │ │ │ ├── for_loop_simple_initexpr.sol │ │ │ │ ├── for_loop_simple_noexpr.sol │ │ │ │ ├── for_loop_single_stmt_body.sol │ │ │ │ ├── for_loop_vardef_initexpr.sol │ │ │ │ ├── from_is_not_keyword.sol │ │ │ │ ├── function_no_body.sol │ │ │ │ ├── function_normal_comments.sol │ │ │ │ ├── function_type_as_parameter.sol │ │ │ │ ├── function_type_as_storage_variable.sol │ │ │ │ ├── function_type_as_storage_variable_with_assignment.sol │ │ │ │ ├── function_type_as_storage_variable_with_modifiers.sol │ │ │ │ ├── function_type_in_expression.sol │ │ │ │ ├── function_type_in_struct.sol │ │ │ │ ├── function_type_multiple_mutability.sol │ │ │ │ ├── function_type_multiple_visibility.sol │ │ │ │ ├── function_type_state_variable.sol │ │ │ │ ├── if_statement.sol │ │ │ │ ├── import_complex.sol │ │ │ │ ├── import_complex_invalid_from.sol │ │ │ │ ├── import_complex_without_from.sol │ │ │ │ ├── import_empty.sol │ │ │ │ ├── import_invalid_token.sol │ │ │ │ ├── import_simple.sol │ │ │ │ ├── inline_array_declaration.sol │ │ │ │ ├── inline_array_empty_cells_check_lvalue.sol │ │ │ │ ├── inline_array_empty_cells_check_without_lvalue.sol │ │ │ │ ├── interface_basic.sol │ │ │ │ ├── invalid_fixed_conversion_leading_zeroes_check.sol │ │ │ │ ├── invalid_function_parameter_and_return_var_indexed.sol │ │ │ │ ├── invalid_function_parameter_and_return_var_mutability.sol │ │ │ │ ├── invalid_state_variable_location.sol │ │ │ │ ├── invalid_variable_indexed.sol │ │ │ │ ├── invalid_variable_mutability.sol │ │ │ │ ├── invalid_variable_named_unicode.sol │ │ │ │ ├── lexer_numbers_with_underscores_decimal.sol │ │ │ │ ├── lexer_numbers_with_underscores_decimal_fail.sol │ │ │ │ ├── lexer_numbers_with_underscores_fixed.sol │ │ │ │ ├── lexer_numbers_with_underscores_fixed_fail.sol │ │ │ │ ├── lexer_numbers_with_underscores_hex.sol │ │ │ │ ├── lexer_numbers_with_underscores_hex_fail.sol │ │ │ │ ├── library_simple.sol │ │ │ │ ├── literal_constants_with_ether_subdenominations.sol │ │ │ │ ├── literal_constants_with_ether_subdenominations_in_expressions.sol │ │ │ │ ├── local_const_variable.sol │ │ │ │ ├── location_specifiers_for_file_level_var.sol │ │ │ │ ├── location_specifiers_for_fn_returns_multi.sol │ │ │ │ ├── location_specifiers_for_locals.sol │ │ │ │ ├── location_specifiers_for_locals_multi.sol │ │ │ │ ├── location_specifiers_for_params.sol │ │ │ │ ├── location_specifiers_for_params_multi.sol │ │ │ │ ├── location_specifiers_for_state_variables.sol │ │ │ │ ├── location_specifiers_for_state_variables_multi.sol │ │ │ │ ├── location_specifiers_with_var.sol │ │ │ │ ├── malformed_enum_declaration.sol │ │ │ │ ├── mapping.sol │ │ │ │ ├── mapping_and_array_of_functions.sol │ │ │ │ ├── mapping_from_address_payable.sol │ │ │ │ ├── mapping_in_struct.sol │ │ │ │ ├── mapping_nonelementary_key_1.sol │ │ │ │ ├── mapping_nonelementary_key_2.sol │ │ │ │ ├── mapping_nonelementary_key_3.sol │ │ │ │ ├── mapping_nonelementary_key_4.sol │ │ │ │ ├── mapping_to_mapping_in_struct.sol │ │ │ │ ├── mapping_with_names_1.sol │ │ │ │ ├── mapping_with_names_2.sol │ │ │ │ ├── mapping_with_names_3.sol │ │ │ │ ├── mapping_with_names_5.sol │ │ │ │ ├── mapping_with_names_6.sol │ │ │ │ ├── mapping_with_names_7.sol │ │ │ │ ├── mapping_with_names_8.sol │ │ │ │ ├── mapping_with_names_conflict_1.sol │ │ │ │ ├── mapping_with_names_conflict_2.sol │ │ │ │ ├── mapping_with_names_conflict_3.sol │ │ │ │ ├── mapping_with_names_conflict_4.sol │ │ │ │ ├── mapping_with_names_conflict_5.sol │ │ │ │ ├── mapping_with_names_conflict_6.sol │ │ │ │ ├── mapping_with_names_func_param_1.sol │ │ │ │ ├── mapping_with_names_func_param_2.sol │ │ │ │ ├── mapping_with_names_func_param_3.sol │ │ │ │ ├── mapping_with_names_func_param_4.sol │ │ │ │ ├── mapping_with_names_func_param_5.sol │ │ │ │ ├── mapping_with_names_func_param_6.sol │ │ │ │ ├── mapping_with_names_func_param_7.sol │ │ │ │ ├── mapping_with_names_func_type_param_1.sol │ │ │ │ ├── mapping_with_names_func_type_param_2.sol │ │ │ │ ├── mapping_with_names_func_type_param_3.sol │ │ │ │ ├── mapping_with_names_func_type_param_4.sol │ │ │ │ ├── mapping_with_names_func_type_param_5.sol │ │ │ │ ├── mapping_with_names_func_type_param_6.sol │ │ │ │ ├── mapping_with_names_func_type_param_7.sol │ │ │ │ ├── mapping_with_names_local_1.sol │ │ │ │ ├── mapping_with_names_local_2.sol │ │ │ │ ├── mapping_with_names_local_3.sol │ │ │ │ ├── mapping_with_names_local_4.sol │ │ │ │ ├── mapping_with_names_local_5.sol │ │ │ │ ├── mapping_with_names_local_6.sol │ │ │ │ ├── mapping_with_names_local_7.sol │ │ │ │ ├── mapping_with_names_local_8.sol │ │ │ │ ├── mapping_with_names_nested_1.sol │ │ │ │ ├── mapping_with_names_nested_2.sol │ │ │ │ ├── mapping_with_names_nested_3.sol │ │ │ │ ├── mapping_with_names_nested_4.sol │ │ │ │ ├── mapping_with_names_nested_5.sol │ │ │ │ ├── mapping_with_names_nested_6.sol │ │ │ │ ├── mapping_with_names_nested_7.sol │ │ │ │ ├── mapping_with_names_nested_8.sol │ │ │ │ ├── mapping_with_names_struct_member_1.sol │ │ │ │ ├── mapping_with_names_struct_member_2.sol │ │ │ │ ├── mapping_with_names_struct_member_3.sol │ │ │ │ ├── mapping_with_names_struct_member_4.sol │ │ │ │ ├── mapping_with_names_struct_member_5.sol │ │ │ │ ├── mapping_with_names_struct_member_6.sol │ │ │ │ ├── mapping_with_names_struct_member_7.sol │ │ │ │ ├── max_depth_reached_1.sol │ │ │ │ ├── max_depth_reached_2.sol │ │ │ │ ├── max_depth_reached_3.sol │ │ │ │ ├── max_depth_reached_4.sol │ │ │ │ ├── missing_argument_in_named_args.sol │ │ │ │ ├── missing_parameter_name_in_named_args.sol │ │ │ │ ├── missing_variable_name_in_declaration.sol │ │ │ │ ├── modifier.sol │ │ │ │ ├── modifier_arguments.sol │ │ │ │ ├── modifier_invocation.sol │ │ │ │ ├── modifier_without_semicolon.sol │ │ │ │ ├── multi_arrays.sol │ │ │ │ ├── multi_variable_declarations.sol │ │ │ │ ├── multiple_event_arg_trailing_comma.sol │ │ │ │ ├── multiple_function_param_trailing_comma.sol │ │ │ │ ├── multiple_functions_natspec_documentation.sol │ │ │ │ ├── multiple_modifier_arg_trailing_comma.sol │ │ │ │ ├── multiple_modifier_overrides.sol │ │ │ │ ├── multiple_mutability_specifiers.sol │ │ │ │ ├── multiple_return_param_trailing_comma.sol │ │ │ │ ├── multiple_state_mutability_specifiers.sol │ │ │ │ ├── new_address_payable.sol │ │ │ │ ├── new_invalid_type_name.sol │ │ │ │ ├── no_function_params.sol │ │ │ │ ├── overloaded_functions.sol │ │ │ │ ├── payable_without_arguments.sol │ │ │ │ ├── placeholder_in_function_context.sol │ │ │ │ ├── pragma_illegal.sol │ │ │ │ ├── scientific_notation.sol │ │ │ │ ├── single_event_arg_trailing_comma.sol │ │ │ │ ├── single_function_param.sol │ │ │ │ ├── single_function_param_trailing_comma.sol │ │ │ │ ├── single_modifier_arg_trailing_comma.sol │ │ │ │ ├── single_return_param_trailing_comma.sol │ │ │ │ ├── smoke_test.sol │ │ │ │ ├── struct_definition.sol │ │ │ │ ├── trailing_comma_in_named_args.sol │ │ │ │ ├── trailing_dot1.sol │ │ │ │ ├── trailing_dot2.sol │ │ │ │ ├── trailing_dot3.sol │ │ │ │ ├── tuples.sol │ │ │ │ ├── tuples_decl_without_rhs.sol │ │ │ │ ├── tuples_without_commas.sol │ │ │ │ ├── two_exact_functions.sol │ │ │ │ ├── unary_plus_expression.sol │ │ │ │ ├── unexpected.sol │ │ │ │ ├── user_defined_value_type.sol │ │ │ │ ├── user_defined_value_type_err.sol │ │ │ │ ├── user_defined_value_type_in_function_err.sol │ │ │ │ ├── var_array.sol │ │ │ │ ├── var_storage_var.sol │ │ │ │ ├── variable_definition_in_mapping.sol │ │ │ │ ├── visibility_specifiers.sol │ │ │ │ ├── while_loop.sol │ │ │ │ ├── wrong_compiler_1.sol │ │ │ │ ├── wrong_compiler_2.sol │ │ │ │ ├── wrong_compiler_3.sol │ │ │ │ └── wrong_compiler_4.sol │ │ │ ├── pragma/ │ │ │ │ ├── blank_space_version.sol │ │ │ │ ├── broken_version_1.sol │ │ │ │ ├── broken_version_2.sol │ │ │ │ ├── broken_version_3.sol │ │ │ │ ├── broken_version_4.sol │ │ │ │ ├── broken_version_5.sol │ │ │ │ ├── broken_version_6.sol │ │ │ │ ├── broken_version_7.sol │ │ │ │ ├── empty_version.sol │ │ │ │ ├── experimental_empty_string_literal.sol │ │ │ │ ├── experimental_multiple_experimental.sol │ │ │ │ ├── experimental_multiple_same_line.sol │ │ │ │ ├── experimental_pragma_duplicate.sol │ │ │ │ ├── experimental_pragma_empty.sol │ │ │ │ ├── experimental_pragma_unknown_string_literal.sol │ │ │ │ ├── experimental_pragma_without_experimental_mode.sol │ │ │ │ ├── experimental_test_warning.sol │ │ │ │ ├── experimental_unknown_number_literal.sol │ │ │ │ ├── experimental_unknown_quoted_string_literal.sol │ │ │ │ ├── invalid_pragma.sol │ │ │ │ ├── invalid_range_conjunction_range_first.sol │ │ │ │ ├── invalid_range_conjunction_range_second.sol │ │ │ │ ├── invalid_range_conjunction_two_ranges.sol │ │ │ │ ├── unknown_pragma.sol │ │ │ │ ├── unterminated_pragma.sol │ │ │ │ ├── unterminated_version.sol │ │ │ │ ├── valid_range_disjunction_range_second.sol │ │ │ │ ├── valid_range_disjunction_two_ranges.sol │ │ │ │ ├── version_check.sol │ │ │ │ ├── version_number_too_large.sol │ │ │ │ └── version_range.sol │ │ │ ├── receiveEther/ │ │ │ │ ├── arguments.sol │ │ │ │ ├── default_visibility.sol │ │ │ │ ├── msg_data_in_receive.sol │ │ │ │ ├── old_syntax.sol │ │ │ │ ├── pure_modifier.sol │ │ │ │ ├── receive_as_function_name.sol │ │ │ │ ├── return_value.sol │ │ │ │ └── view_modifier.sol │ │ │ ├── returnExpressions/ │ │ │ │ ├── single_return_mismatching_number.sol │ │ │ │ ├── single_return_mismatching_number_named.sol │ │ │ │ ├── single_return_mismatching_type.sol │ │ │ │ ├── tuple_return_mismatching_number.sol │ │ │ │ ├── tuple_return_mismatching_number_named.sol │ │ │ │ └── valid_returns.sol │ │ │ ├── revertStatement/ │ │ │ │ ├── at_file_level.sol │ │ │ │ ├── error_used_elsewhere.sol │ │ │ │ ├── in_global_function.sol │ │ │ │ ├── non_called.sol │ │ │ │ ├── non_error.sol │ │ │ │ ├── regular.sol │ │ │ │ ├── require_nested.sol │ │ │ │ ├── revert_event.sol │ │ │ │ ├── revert_revert.sol │ │ │ │ ├── scoped.sol │ │ │ │ ├── using_function.sol │ │ │ │ └── using_struct.sol │ │ │ ├── scoping/ │ │ │ │ ├── access_in_assignment_dynamic_array.sol │ │ │ │ ├── access_in_assignment_struct.sol │ │ │ │ ├── double_function_declaration.sol │ │ │ │ ├── double_stateVariable_declaration.sol │ │ │ │ ├── double_variable_declaration.sol │ │ │ │ ├── double_variable_declaration_disjoint_scope.sol │ │ │ │ ├── double_variable_declaration_disjoint_scope_activation.sol │ │ │ │ ├── double_variable_declaration_same_and_disjoint_scope.sol │ │ │ │ ├── double_variable_declaration_same_scope.sol │ │ │ │ ├── duplicate_contract.sol │ │ │ │ ├── external_library_function_inside_scope.sol │ │ │ │ ├── function_state_variable_conflict.sol │ │ │ │ ├── library_inherited.sol │ │ │ │ ├── library_inherited2.sol │ │ │ │ ├── missing_state_variable.sol │ │ │ │ ├── name_pseudo_shadowing.sol │ │ │ │ ├── name_pseudo_shadowing2.sol │ │ │ │ ├── name_shadowing_function_parameter_name_vs_contract.sol │ │ │ │ ├── name_shadowing_function_parameter_vs_its_function.sol │ │ │ │ ├── name_shadowing_function_parameter_vs_struct_enum.sol │ │ │ │ ├── name_shadowing_function_parameters_parameter_vs_struct_enum.sol │ │ │ │ ├── name_shadowing_function_return_parameter_vs_struct_enum.sol │ │ │ │ ├── name_shadowing_function_type_parameter.sol │ │ │ │ ├── name_shadowing_function_type_return_parameter.sol │ │ │ │ ├── name_shadowing_local_variable_vs_free_function.sol │ │ │ │ ├── name_shadowing_local_variable_vs_functions.sol │ │ │ │ ├── name_shadowing_local_variable_vs_state_variable.sol │ │ │ │ ├── poly_variable_declaration_same_scope.sol │ │ │ │ ├── scoping.sol │ │ │ │ ├── scoping_activation.sol │ │ │ │ ├── scoping_activation_old.sol │ │ │ │ ├── scoping_for.sol │ │ │ │ ├── scoping_for2.sol │ │ │ │ ├── scoping_for3.sol │ │ │ │ ├── scoping_for_decl_in_body.sol │ │ │ │ ├── scoping_old.sol │ │ │ │ ├── scoping_self_use.sol │ │ │ │ ├── state_variable_function_conflict.sol │ │ │ │ └── state_variable_function_conflict_former_crash.sol │ │ │ ├── shifts/ │ │ │ │ └── shift_signed_rvalue.sol │ │ │ ├── sizeLimits/ │ │ │ │ ├── bytecode_too_large.sol │ │ │ │ ├── bytecode_too_large_abiencoder_v1.sol │ │ │ │ ├── bytecode_too_large_byzantium.sol │ │ │ │ ├── bytecode_too_large_homestead.sol │ │ │ │ ├── combined_too_large_paris.sol │ │ │ │ ├── combined_too_large_shanghai.sol │ │ │ │ ├── eof/ │ │ │ │ │ └── bytecode_too_large.sol │ │ │ │ ├── initcode_too_large_paris.sol │ │ │ │ ├── initcode_too_large_shanghai.sol │ │ │ │ ├── more_than_256_declarationerrors.sol │ │ │ │ ├── more_than_256_importerrors.sol │ │ │ │ └── more_than_256_syntaxerrors.sol │ │ │ ├── smoke/ │ │ │ │ └── smoke_test.sol │ │ │ ├── specialFunctions/ │ │ │ │ ├── abi_encodePacked_nested_dynamic_array.sol │ │ │ │ ├── abi_encodePacked_nested_dynamic_array_v2.sol │ │ │ │ ├── abi_encodePacked_structs_v2.sol │ │ │ │ ├── abi_encodePacked_tuple_returned_from_function.sol │ │ │ │ ├── abi_encodePacked_unitary_tuple_returned_from_function.sol │ │ │ │ ├── abi_encodeWithSelector_tuple_returned_from_function.sol │ │ │ │ ├── abi_encodeWithSelector_unitary_tuple_returned_from_function.sol │ │ │ │ ├── abi_encodeWithSignature_tuple_returned_from_function.sol │ │ │ │ ├── abi_encodeWithSignature_unitary_tuple_from_function.sol │ │ │ │ ├── abi_encode_nested_dynamic_array.sol │ │ │ │ ├── abi_encode_nested_dynamic_array_v2.sol │ │ │ │ ├── abi_encode_structs.sol │ │ │ │ ├── abi_encode_structs_abiv2.sol │ │ │ │ ├── abi_encode_tuple_returned_from_function.sol │ │ │ │ ├── abi_encode_unitary_tuple_returned_from_function.sol │ │ │ │ ├── abi_functions_member_access.sol │ │ │ │ ├── abidecode/ │ │ │ │ │ ├── abi_decode_array_of_unitary_tuples.sol │ │ │ │ │ ├── abi_decode_calldata.sol │ │ │ │ │ ├── abi_decode_empty.sol │ │ │ │ │ ├── abi_decode_enum.sol │ │ │ │ │ ├── abi_decode_invalid_arg_count.sol │ │ │ │ │ ├── abi_decode_invalid_arg_type.sol │ │ │ │ │ ├── abi_decode_invalid_argument_array_length_ternary_with_max_keyword.sol │ │ │ │ │ ├── abi_decode_invalid_argument_array_of_tuples.sol │ │ │ │ │ ├── abi_decode_invalid_argument_indexed_array_literal.sol │ │ │ │ │ ├── abi_decode_invalid_argument_indexed_ternary_expression.sol │ │ │ │ │ ├── abi_decode_invalid_argument_ternary_condition_expression.sol │ │ │ │ │ ├── abi_decode_invalid_argument_ternary_expression_inside_parentheses.sol │ │ │ │ │ ├── abi_decode_invalid_argument_ternary_with_side_effect.sol │ │ │ │ │ ├── abi_decode_invalid_argument_tuple_type.sol │ │ │ │ │ ├── abi_decode_invalid_argument_type_expression.sol │ │ │ │ │ ├── abi_decode_member_acess.sol │ │ │ │ │ ├── abi_decode_memory.sol │ │ │ │ │ ├── abi_decode_memory_v2.sol │ │ │ │ │ ├── abi_decode_nested_dynamic_array.sol │ │ │ │ │ ├── abi_decode_nested_dynamic_array_v2.sol │ │ │ │ │ ├── abi_decode_nontuple.sol │ │ │ │ │ ├── abi_decode_simple.sol │ │ │ │ │ ├── abi_decode_single_return.sol │ │ │ │ │ ├── abi_decode_singletontuple.sol │ │ │ │ │ ├── abi_decode_storage.sol │ │ │ │ │ ├── abi_decode_struct.sol │ │ │ │ │ ├── abi_decode_struct_v2.sol │ │ │ │ │ ├── abi_decode_unitary_nested_tuple.sol │ │ │ │ │ └── contract_array.sol │ │ │ │ ├── encodeCall.sol │ │ │ │ ├── encodeCall_fail_args.sol │ │ │ │ ├── encodeCall_fail_args_internal_function_pointer_for_uint.sol │ │ │ │ ├── encodeCall_fail_funType.sol │ │ │ │ ├── encodeCall_nested_tuple.sol │ │ │ │ ├── encodeCall_tuple_incomplete.sol │ │ │ │ ├── encodePacked_array_of_structs.sol │ │ │ │ ├── encodePacked_dynamic_string_array_v2.sol │ │ │ │ ├── encode_array_of_struct.sol │ │ │ │ ├── encodecall_fail_args_internal_struct_for_uint.sol │ │ │ │ ├── functionCallOptions_err.sol │ │ │ │ ├── single_non_bytes_arg.sol │ │ │ │ ├── types_with_unspecified_encoding_internal_functions.sol │ │ │ │ ├── types_with_unspecified_encoding_special_types.sol │ │ │ │ ├── types_with_unspecified_encoding_structs.sol │ │ │ │ ├── types_with_unspecified_encoding_types.sol │ │ │ │ └── types_without_encoding_problems.sol │ │ │ ├── storageLayoutSpecifier/ │ │ │ │ ├── abi_decode.sol │ │ │ │ ├── abstract_contract.sol │ │ │ │ ├── abstract_contract_inheriting_from_non_abstract.sol │ │ │ │ ├── address.sol │ │ │ │ ├── address_constant.sol │ │ │ │ ├── address_non_constant.sol │ │ │ │ ├── array_literal.sol │ │ │ │ ├── assignment.sol │ │ │ │ ├── at_before_layout.sol │ │ │ │ ├── bitwise_negation_after_cast.sol │ │ │ │ ├── bool_constant.sol │ │ │ │ ├── boolean.sol │ │ │ │ ├── builtin_functions.sol │ │ │ │ ├── bytes_constant.sol │ │ │ │ ├── bytes_length_member.sol │ │ │ │ ├── constant_divided_by_its_negation.sol │ │ │ │ ├── constant_divided_by_zero.sol │ │ │ │ ├── constant_from_base_contract.sol │ │ │ │ ├── constant_from_module.sol │ │ │ │ ├── constant_initialized_from_builtin.sol │ │ │ │ ├── constant_initialized_from_cast.sol │ │ │ │ ├── constant_initialized_from_other_constant.sol │ │ │ │ ├── constant_initialized_with_literal_expression.sol │ │ │ │ ├── constant_initialized_with_unlimited_arithmetic_expression.sol │ │ │ │ ├── contract_at_storage_end.sol │ │ │ │ ├── contract_at_storage_end_with_transient_state_variables.sol │ │ │ │ ├── contract_extends_past_storage_end.sol │ │ │ │ ├── contract_named_at.sol │ │ │ │ ├── contract_named_layout.sol │ │ │ │ ├── contract_too_large_for_storage.sol │ │ │ │ ├── contract_with_members_named_layout_and_at.sol │ │ │ │ ├── delete.sol │ │ │ │ ├── division_by_zero.sol │ │ │ │ ├── duplicated_layout_definition.sol │ │ │ │ ├── duplicated_layout_keyword.sol │ │ │ │ ├── enum.sol │ │ │ │ ├── erc7201_builtin_param_constant_variable_comptime.sol │ │ │ │ ├── erc7201_builtin_param_imported_constant_variable_comptime.sol │ │ │ │ ├── erc7201_builtin_param_string_literal_comptime.sol │ │ │ │ ├── function_address.sol │ │ │ │ ├── function_declaration_layout_specified.sol │ │ │ │ ├── function_declaration_layout_with_no_expression.sol │ │ │ │ ├── function_defined_in_other_contract.sol │ │ │ │ ├── function_selector.sol │ │ │ │ ├── hex_address.sol │ │ │ │ ├── hex_string.sol │ │ │ │ ├── hex_string_cast.sol │ │ │ │ ├── immutables.sol │ │ │ │ ├── increment_operator.sol │ │ │ │ ├── inheriting_from_abstract_contract.sol │ │ │ │ ├── inheriting_from_interface.sol │ │ │ │ ├── inheriting_from_itself.sol │ │ │ │ ├── int_constant.sol │ │ │ │ ├── interface.sol │ │ │ │ ├── intermediate_operation_out_of_range.sol │ │ │ │ ├── layout_already_specified_in_ancestor_contract.sol │ │ │ │ ├── layout_bitwise_negation_literal.sol │ │ │ │ ├── layout_fractional_number.sol │ │ │ │ ├── layout_specification_binary_expression.sol │ │ │ │ ├── layout_specification_by_function.sol │ │ │ │ ├── layout_specification_bytes.sol │ │ │ │ ├── layout_specification_constant_in_expression.sol │ │ │ │ ├── layout_specification_max_value.sol │ │ │ │ ├── layout_specification_no_expression.sol │ │ │ │ ├── layout_specification_overflow_value.sol │ │ │ │ ├── layout_specification_underflow_value.sol │ │ │ │ ├── layout_specified_by_ancestor_contract_module.sol │ │ │ │ ├── layout_specified_by_ancestor_contract_multiple_inheritance.sol │ │ │ │ ├── layout_specified_by_attached_library_function.sol │ │ │ │ ├── layout_specified_by_bytes_concat.sol │ │ │ │ ├── layout_specified_by_empty_braces.sol │ │ │ │ ├── layout_specified_by_error.sol │ │ │ │ ├── layout_specified_by_event.sol │ │ │ │ ├── layout_specified_by_expression_not_pure.sol │ │ │ │ ├── layout_specified_by_first_ancestor_contract.sol │ │ │ │ ├── layout_specified_by_function_empty_call_options.sol │ │ │ │ ├── layout_specified_by_function_with_call_options.sol │ │ │ │ ├── layout_specified_by_interface_id.sol │ │ │ │ ├── layout_specified_by_kecak256.sol │ │ │ │ ├── layout_specified_by_last_ancestor_contract.sol │ │ │ │ ├── layout_specified_by_module.sol │ │ │ │ ├── layout_specified_by_other_contract.sol │ │ │ │ ├── layout_specified_by_type.sol │ │ │ │ ├── layout_statement_without_at.sol │ │ │ │ ├── layout_with_inheritance.sol │ │ │ │ ├── library.sol │ │ │ │ ├── literal_cast.sol │ │ │ │ ├── literal_with_underscore.sol │ │ │ │ ├── magic_variables.sol │ │ │ │ ├── multi_token_expression.sol │ │ │ │ ├── natspec.sol │ │ │ │ ├── negative_number.sol │ │ │ │ ├── precompiles.sol │ │ │ │ ├── rational_number_without_fractional_part.sol │ │ │ │ ├── repeated_layout_definition.sol │ │ │ │ ├── same_ancestor_two_contracts.sol │ │ │ │ ├── simple_layout.sol │ │ │ │ ├── state_variable_from_base_contract.sol │ │ │ │ ├── state_variable_getter_from_base_contract.sol │ │ │ │ ├── state_variable_layout_specifier.sol │ │ │ │ ├── string.sol │ │ │ │ ├── struct_defined_in_other_contract.sol │ │ │ │ ├── struct_with_layout_specifier.sol │ │ │ │ ├── ternary_operator.sol │ │ │ │ ├── tuple.sol │ │ │ │ ├── type_uint_max.sol │ │ │ │ ├── user_defined_operators.sol │ │ │ │ ├── user_defined_value_type.sol │ │ │ │ ├── user_defined_value_type_unwrap.sol │ │ │ │ ├── user_defined_value_type_wrap.sol │ │ │ │ ├── value_from_array_literal.sol │ │ │ │ ├── value_from_bytes.sol │ │ │ │ └── warning_near_the_storage_end.sol │ │ │ ├── string/ │ │ │ │ ├── concat/ │ │ │ │ │ ├── string_concat_empty_invalid.sol │ │ │ │ │ ├── string_concat_with_different_parameters.sol │ │ │ │ │ ├── string_concat_wrong_type_bytes_and_strings.sol │ │ │ │ │ ├── string_concat_wrong_type_empty_array_literal.sol │ │ │ │ │ ├── string_concat_wrong_type_misc.sol │ │ │ │ │ ├── string_concat_wrong_type_misc_literals_and_expressions.sol │ │ │ │ │ └── string_concat_wrong_type_zero_literal.sol │ │ │ │ ├── control_character_returned_in_string.sol │ │ │ │ ├── hex_as_identifier.sol │ │ │ │ ├── invalid_legacy_escape.sol │ │ │ │ ├── invalid_utf8_explicit_string.sol │ │ │ │ ├── invalid_utf8_hex_string.sol │ │ │ │ ├── invalid_utf8_implicit_string.sol │ │ │ │ ├── invalid_utf8_in_bytes.sol │ │ │ │ ├── invalid_utf8_sequence.sol │ │ │ │ ├── large_utf8_codepoint.sol │ │ │ │ ├── string_ascii.sol │ │ │ │ ├── string_escapes.sol │ │ │ │ ├── string_multipart_hex_valid_parts.sol │ │ │ │ ├── string_multipart_newline_with_hex_prefix.sol │ │ │ │ ├── string_multipart_newline_without_hex_prefix.sol │ │ │ │ ├── string_multipart_only_hex.sol │ │ │ │ ├── string_multipart_only_regular.sol │ │ │ │ ├── string_multipart_single_line.sol │ │ │ │ ├── string_multipart_unicode.sol │ │ │ │ ├── string_multipart_unicode_mixed.sol │ │ │ │ ├── string_new_line.sol │ │ │ │ ├── string_terminated_by_backslash.sol │ │ │ │ ├── string_unicode.sol │ │ │ │ ├── string_unicode_without_prefix.sol │ │ │ │ ├── string_unterminated.sol │ │ │ │ ├── string_unterminated_no_new_line.sol │ │ │ │ ├── unicode_escape_literals.sol │ │ │ │ ├── unicode_escape_literals_invalid_codepoint.sol │ │ │ │ └── unicode_escape_literals_invalid_format.sol │ │ │ ├── structs/ │ │ │ │ ├── address_member_access.sol │ │ │ │ ├── address_member_declaration.sol │ │ │ │ ├── array_calldata.sol │ │ │ │ ├── calldata.sol │ │ │ │ ├── calldata_array_assign.sol │ │ │ │ ├── calldata_assign.sol │ │ │ │ ├── calldata_dynamic.sol │ │ │ │ ├── calldata_struct_function_type.sol │ │ │ │ ├── calldata_struct_mapping_function.sol │ │ │ │ ├── contract_global_struct_name_clash.sol │ │ │ │ ├── empty_struct.sol │ │ │ │ ├── global_struct.sol │ │ │ │ ├── global_struct_contract_name_clash.sol │ │ │ │ ├── global_struct_shadowing.sol │ │ │ │ ├── global_structs_name_clash.sol │ │ │ │ ├── illegal_names.sol │ │ │ │ ├── member_type_eq_name.sol │ │ │ │ ├── member_type_eq_name_2.sol │ │ │ │ ├── member_type_eq_name_3.sol │ │ │ │ ├── member_type_func.sol │ │ │ │ ├── memory_to_calldata.sol │ │ │ │ ├── recursion/ │ │ │ │ │ ├── multi_struct_composition.sol │ │ │ │ │ ├── parallel_structs.sol │ │ │ │ │ ├── recursive_struct_as_contract_function_parameter.sol │ │ │ │ │ ├── recursive_struct_as_library_function_parameter.sol │ │ │ │ │ ├── recursive_struct_as_memory_library_function_parameter.sol │ │ │ │ │ ├── recursive_struct_forward_reference.sol │ │ │ │ │ ├── recursive_struct_function_pointer.sol │ │ │ │ │ ├── recursive_struct_nested_mapping_memory.sol │ │ │ │ │ ├── recursive_struct_nested_mapping_storage.sol │ │ │ │ │ ├── recursive_struct_with_internal_function_as_library_function_parameter.sol │ │ │ │ │ ├── return_recursive_structs.sol │ │ │ │ │ ├── return_recursive_structs2.sol │ │ │ │ │ ├── return_recursive_structs3.sol │ │ │ │ │ ├── static_array_of_recursive_structs.sol │ │ │ │ │ ├── struct_definition_directly_recursive.sol │ │ │ │ │ ├── struct_definition_directly_recursive_dynamic_array.sol │ │ │ │ │ ├── struct_definition_directly_recursive_fixed_array.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_complex.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_dynamic_array1.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_dynamic_array2.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_dynamic_array3.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_dynamic_multi_array.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_fixed_array1.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_fixed_array2.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_fixed_array3.sol │ │ │ │ │ ├── struct_definition_indirectly_recursive_fixed_multi_array.sol │ │ │ │ │ ├── struct_definition_not_really_recursive.sol │ │ │ │ │ ├── struct_definition_not_really_recursive_array.sol │ │ │ │ │ └── struct_definition_recursion_via_mapping.sol │ │ │ │ └── transient_data_location_member.sol │ │ │ ├── super/ │ │ │ │ ├── super_in_function.sol │ │ │ │ ├── super_in_library.sol │ │ │ │ ├── unimplemented_super_function.sol │ │ │ │ └── unimplemented_super_function_derived.sol │ │ │ ├── tryCatch/ │ │ │ │ ├── almost_call_options.sol │ │ │ │ ├── catch_error.sol │ │ │ │ ├── catch_error_named.sol │ │ │ │ ├── catch_low_level.sol │ │ │ │ ├── creation.sol │ │ │ │ ├── data_location_error_message.sol │ │ │ │ ├── double_panic.sol │ │ │ │ ├── double_panic_correct.sol │ │ │ │ ├── elementary_non_address_state_mutability_catch.sol │ │ │ │ ├── elementary_non_address_state_mutability_try_returns.sol │ │ │ │ ├── empty_catch.sol │ │ │ │ ├── empty_returns.sol │ │ │ │ ├── error_and_panic.sol │ │ │ │ ├── error_with_wrong_type.sol │ │ │ │ ├── invalid_catch_parameter_location_calldata.sol │ │ │ │ ├── invalid_catch_parameter_location_storage.sol │ │ │ │ ├── invalid_error_name.sol │ │ │ │ ├── invalid_returns.sol │ │ │ │ ├── invalid_returns_var_location.sol │ │ │ │ ├── invalid_returns_vars_and_catch_parameter_indexed.sol │ │ │ │ ├── invalid_returns_vars_and_catch_parameter_mutability.sol │ │ │ │ ├── invalid_returns_vars_and_catch_parameter_visibility.sol │ │ │ │ ├── library_call.sol │ │ │ │ ├── low_level_homestead.sol │ │ │ │ ├── low_level_spuriousDragon.sol │ │ │ │ ├── low_level_tangerineWhistle.sol │ │ │ │ ├── low_level_with_wrong_type.sol │ │ │ │ ├── multiple_returns_vars_and_catch_parameter_location.sol │ │ │ │ ├── no_catch.sol │ │ │ │ ├── no_external_call.sol │ │ │ │ ├── no_returns.sol │ │ │ │ ├── no_special.sol │ │ │ │ ├── returns.sol │ │ │ │ ├── returns_memory.sol │ │ │ │ ├── returns_memory_anonymous.sol │ │ │ │ ├── returns_mismatch.sol │ │ │ │ ├── scoping.sol │ │ │ │ ├── simple_catch.sol │ │ │ │ ├── structured_homestead.sol │ │ │ │ ├── structured_spuriousDragon.sol │ │ │ │ ├── structured_tangerineWhistle.sol │ │ │ │ ├── two_catch_clauses.sol │ │ │ │ ├── two_error_catch_clauses.sol │ │ │ │ ├── two_low_level_catch_clauses.sol │ │ │ │ ├── wrong_panic.sol │ │ │ │ └── wrong_panic_2.sol │ │ │ ├── tupleAssignments/ │ │ │ │ ├── assignments_to_tuple_and_non_tuple_expressions_of_tuple_types.sol │ │ │ │ ├── double_storage_crash.sol │ │ │ │ ├── empty_tuple_assignment.sol │ │ │ │ ├── empty_tuples_lhs.sol │ │ │ │ ├── err_fill_assignment.sol │ │ │ │ ├── error_fill.sol │ │ │ │ ├── fixed_byte_array_assignment_in_tuple.sol │ │ │ │ ├── large_component_count.sol │ │ │ │ ├── nested_tuple_to_tuple_assignment.sol │ │ │ │ ├── nowarn_swap_memory.sol │ │ │ │ ├── nowarn_swap_storage_pointers.sol │ │ │ │ ├── tuple_in_tuple_long.sol │ │ │ │ ├── tuple_in_tuple_short.sol │ │ │ │ ├── tuple_to_function_assignment.sol │ │ │ │ └── warn_multiple_storage_storage_copies.sol │ │ │ ├── types/ │ │ │ │ ├── address/ │ │ │ │ │ ├── address_abi_decode.sol │ │ │ │ │ ├── address_binary_operators.sol │ │ │ │ │ ├── address_constant.sol │ │ │ │ │ ├── address_constant_assignment.sol │ │ │ │ │ ├── address_in_struct_fail.sol │ │ │ │ │ ├── address_in_struct_fine.sol │ │ │ │ │ ├── address_literal_to_payable.sol │ │ │ │ │ ├── address_literal_to_payable_err.sol │ │ │ │ │ ├── address_members.sol │ │ │ │ │ ├── address_members_in_contract.sol │ │ │ │ │ ├── address_nonpayable_selfdestruct.sol │ │ │ │ │ ├── address_payable_external_overload.sol │ │ │ │ │ ├── address_payable_internal_overload_nonpayable.sol │ │ │ │ │ ├── address_payable_internal_overload_payable.sol │ │ │ │ │ ├── address_payable_memory_array_conversion.sol │ │ │ │ │ ├── address_payable_public_overload.sol │ │ │ │ │ ├── address_payable_selfdestruct.sol │ │ │ │ │ ├── address_payable_storage_array_conversion.sol │ │ │ │ │ ├── address_payable_storage_array_conversion_fail.sol │ │ │ │ │ ├── address_to_contract.sol │ │ │ │ │ ├── address_to_contract_implicitly.sol │ │ │ │ │ ├── address_to_contract_payable_fallback.sol │ │ │ │ │ ├── address_to_contract_receive.sol │ │ │ │ │ ├── address_to_payable_address.sol │ │ │ │ │ ├── address_to_payable_address_double.sol │ │ │ │ │ ├── address_tuple_fail.sol │ │ │ │ │ ├── address_tuple_fine.sol │ │ │ │ │ ├── address_uint_bytes20_this.sol │ │ │ │ │ ├── address_uint_bytes20_this_to_payable_err.sol │ │ │ │ │ ├── address_zero_to_payable_err.sol │ │ │ │ │ ├── bytes_long_to_payable_address.sol │ │ │ │ │ ├── bytes_short_to_payable_address.sol │ │ │ │ │ ├── bytes_to_payable_address.sol │ │ │ │ │ ├── codehash.sol │ │ │ │ │ ├── codehash_before_constantinople.sol │ │ │ │ │ ├── contract_no_fallback_to_payable_address.sol │ │ │ │ │ ├── contract_non_payable_fallback_to_payable_address.sol │ │ │ │ │ ├── contract_payable_fallback_to_payable_address.sol │ │ │ │ │ ├── contract_payable_fallback_to_payable_address_implicitly.sol │ │ │ │ │ ├── contract_receive_to_payable_address.sol │ │ │ │ │ ├── contract_receive_to_payable_address_implicitly.sol │ │ │ │ │ ├── contract_to_address.sol │ │ │ │ │ ├── contract_to_address_implicitly.sol │ │ │ │ │ ├── contract_type_to_address.sol │ │ │ │ │ ├── conversion.sol │ │ │ │ │ ├── conversion_error.sol │ │ │ │ │ ├── eof/ │ │ │ │ │ │ └── address_members.sol │ │ │ │ │ ├── literal_to_address.sol │ │ │ │ │ ├── literal_to_address_call.sol │ │ │ │ │ ├── literal_to_address_oversized.sol │ │ │ │ │ ├── literal_to_payable_address.sol │ │ │ │ │ ├── literal_to_payable_address_err.sol │ │ │ │ │ ├── nonpayable_address_to_contract_payable_fallback.sol │ │ │ │ │ ├── nonpayable_address_to_contract_receive.sol │ │ │ │ │ ├── payable_address_to_address.sol │ │ │ │ │ ├── payable_conversion.sol │ │ │ │ │ ├── payable_conversion_err.sol │ │ │ │ │ ├── payable_conversion_strict.sol │ │ │ │ │ ├── payable_conversion_strict_err.sol │ │ │ │ │ ├── payable_conversions_literals.sol │ │ │ │ │ ├── payable_to_contract_receive.sol │ │ │ │ │ ├── state_variable_address_payable_transient.sol │ │ │ │ │ ├── state_variable_address_transient_payable.sol │ │ │ │ │ ├── super_to_address.sol │ │ │ │ │ ├── type_type_to_address.sol │ │ │ │ │ └── uint_to_payable_address.sol │ │ │ │ ├── array_index_too_large.sol │ │ │ │ ├── binary_add_op.sol │ │ │ │ ├── bool_ops.sol │ │ │ │ ├── byte.sol │ │ │ │ ├── bytes0.sol │ │ │ │ ├── bytes1_to_uint256.sol │ │ │ │ ├── bytes256.sol │ │ │ │ ├── bytes32_to_uint32.sol │ │ │ │ ├── bytes33.sol │ │ │ │ ├── bytesNN_bitnot.sol │ │ │ │ ├── bytesNN_index_assign.sol │ │ │ │ ├── bytesNN_to_contract.sol │ │ │ │ ├── bytesNN_to_uint_same_size.sol │ │ │ │ ├── bytesNN_upcasting.sol │ │ │ │ ├── bytesNN_with_oversized_hex_string.sol │ │ │ │ ├── call_unimplemented_internal_function.sol │ │ │ │ ├── constant_of_invalid_function_type.sol │ │ │ │ ├── contractTypeType/ │ │ │ │ │ └── members/ │ │ │ │ │ ├── assign_function_via_base_name_to_var.sol │ │ │ │ │ ├── assign_function_via_contract_name_to_var.sol │ │ │ │ │ ├── base_contract.sol │ │ │ │ │ ├── base_contract_invalid.sol │ │ │ │ │ ├── call_function_via_contract_name.sol │ │ │ │ │ ├── call_unimplemented_base.sol │ │ │ │ │ ├── function_selector_via_contract_name.sol │ │ │ │ │ ├── function_selector_via_interface_name.sol │ │ │ │ │ ├── function_via_contract_name_internal.sol │ │ │ │ │ ├── function_via_contract_name_overloaded.sol │ │ │ │ │ ├── function_via_contract_name_private.sol │ │ │ │ │ ├── function_via_contract_name_public.sol │ │ │ │ │ ├── modifier.sol │ │ │ │ │ ├── modifier_base.sol │ │ │ │ │ └── struct_enum.sol │ │ │ │ ├── contract_to_base.sol │ │ │ │ ├── contract_to_base_base.sol │ │ │ │ ├── contract_to_derived.sol │ │ │ │ ├── contract_to_unrelated_contract.sol │ │ │ │ ├── cyclic_dependency_check_on_consts_exhausted.sol │ │ │ │ ├── cyclic_dependency_check_on_consts_good.sol │ │ │ │ ├── cyclic_dependency_check_on_struct_exhausted.sol │ │ │ │ ├── cyclic_dependency_check_on_struct_good.sol │ │ │ │ ├── decimal_literal_to_bytesNN_explicit.sol │ │ │ │ ├── decimal_literal_to_bytesNN_implicit.sol │ │ │ │ ├── empty_tuple_event.sol │ │ │ │ ├── empty_tuple_function.sol │ │ │ │ ├── empty_tuple_lvalue.sol │ │ │ │ ├── empty_tuple_lvalue_array.sol │ │ │ │ ├── encoding_fractional.sol │ │ │ │ ├── encoding_fractional_abiencoderv2.sol │ │ │ │ ├── encoding_packed_fractional.sol │ │ │ │ ├── encoding_packed_fractional_abiencoderv2.sol │ │ │ │ ├── event_with_rational_size_array.sol │ │ │ │ ├── functionTypes/ │ │ │ │ │ ├── function_definition_expression.sol │ │ │ │ │ ├── function_parameter_return_types_fail.sol │ │ │ │ │ ├── function_parameter_return_types_success.sol │ │ │ │ │ ├── function_state_mutability_fail.sol │ │ │ │ │ ├── function_state_mutability_success.sol │ │ │ │ │ └── selector/ │ │ │ │ │ ├── event_error_selector_pure_assignment.sol │ │ │ │ │ ├── function_selector_pure.sol │ │ │ │ │ ├── local_variable_selector_not_pure.sol │ │ │ │ │ ├── state_variable_selector_contract_name.sol │ │ │ │ │ ├── state_variable_selector_not_pure.sol │ │ │ │ │ └── state_variable_selector_super.sol │ │ │ │ ├── function_call_fail.sol │ │ │ │ ├── function_call_fail2.sol │ │ │ │ ├── global_struct_recursive.sol │ │ │ │ ├── hex_literal_bitnot.sol │ │ │ │ ├── hex_literal_to_bytesNN_different_size_explicit.sol │ │ │ │ ├── hex_literal_to_bytesNN_different_size_implicit.sol │ │ │ │ ├── hex_literal_to_bytesNN_same_size_explicit.sol │ │ │ │ ├── hex_literal_to_bytesNN_same_size_implicit.sol │ │ │ │ ├── hex_string_to_bytesNN_different_size_explicit.sol │ │ │ │ ├── hex_string_to_bytesNN_different_size_implicit.sol │ │ │ │ ├── hex_string_to_bytesNN_same_size_explicit.sol │ │ │ │ ├── hex_string_to_bytesNN_same_size_implicit.sol │ │ │ │ ├── index_access_for_bytes.sol │ │ │ │ ├── integer_implicit_err.sol │ │ │ │ ├── library_function_selector.sol │ │ │ │ ├── library_function_selector_internal.sol │ │ │ │ ├── library_function_selector_private_inside.sol │ │ │ │ ├── library_function_selector_private_outside.sol │ │ │ │ ├── library_function_selector_view_pure.sol │ │ │ │ ├── library_internal_call.sol │ │ │ │ ├── library_to_address.sol │ │ │ │ ├── library_to_address_payable.sol │ │ │ │ ├── magic_block.sol │ │ │ │ ├── magic_block_basefee_error.sol │ │ │ │ ├── magic_block_blobbasefee_cancun.sol │ │ │ │ ├── magic_block_blobbasefee_error.sol │ │ │ │ ├── magic_block_istanbul.sol │ │ │ │ ├── magic_block_london.sol │ │ │ │ ├── magic_block_paris.sol │ │ │ │ ├── mapping/ │ │ │ │ │ ├── abstract_constructor_param.sol │ │ │ │ │ ├── access_index_omitted.sol │ │ │ │ │ ├── argument_external.sol │ │ │ │ │ ├── argument_internal.sol │ │ │ │ │ ├── argument_private.sol │ │ │ │ │ ├── argument_public.sol │ │ │ │ │ ├── array_argument_external.sol │ │ │ │ │ ├── array_argument_internal.sol │ │ │ │ │ ├── array_argument_private.sol │ │ │ │ │ ├── array_argument_public.sol │ │ │ │ │ ├── assignment_local.sol │ │ │ │ │ ├── assignment_local_err.sol │ │ │ │ │ ├── assignment_map.sol │ │ │ │ │ ├── assignment_state_variable.sol │ │ │ │ │ ├── assignment_struct.sol │ │ │ │ │ ├── assignment_type_mismatch.sol │ │ │ │ │ ├── constructor_parameter.sol │ │ │ │ │ ├── contract_mapping.sol │ │ │ │ │ ├── contract_mapping_invalid.sol │ │ │ │ │ ├── contract_storage_parameter_with_mapping.sol │ │ │ │ │ ├── enum_mapping.sol │ │ │ │ │ ├── enum_mapping_invalid.sol │ │ │ │ │ ├── error_parameter.sol │ │ │ │ │ ├── event_parameter.sol │ │ │ │ │ ├── function_type_argument_array.sol │ │ │ │ │ ├── function_type_argument_external.sol │ │ │ │ │ ├── function_type_argument_internal.sol │ │ │ │ │ ├── function_type_return_external.sol │ │ │ │ │ ├── function_type_return_internal.sol │ │ │ │ │ ├── int_mapping.sol │ │ │ │ │ ├── library_argument_external.sol │ │ │ │ │ ├── library_argument_internal.sol │ │ │ │ │ ├── library_argument_private.sol │ │ │ │ │ ├── library_argument_public.sol │ │ │ │ │ ├── library_argument_storage.sol │ │ │ │ │ ├── library_array_argument_external.sol │ │ │ │ │ ├── library_array_argument_internal.sol │ │ │ │ │ ├── library_array_argument_private.sol │ │ │ │ │ ├── library_array_argument_public.sol │ │ │ │ │ ├── library_mapping.sol │ │ │ │ │ ├── library_nested_mapping.sol │ │ │ │ │ ├── library_nested_storage.sol │ │ │ │ │ ├── library_return_external.sol │ │ │ │ │ ├── library_return_internal.sol │ │ │ │ │ ├── library_return_private.sol │ │ │ │ │ ├── library_return_public.sol │ │ │ │ │ ├── library_storage_parameter_with_mapping.sol │ │ │ │ │ ├── library_storage_parameter_with_nested_mapping.sol │ │ │ │ │ ├── mapping_array_data_location_function_param_external.sol │ │ │ │ │ ├── mapping_array_return_external.sol │ │ │ │ │ ├── mapping_array_return_internal.sol │ │ │ │ │ ├── mapping_array_return_public.sol │ │ │ │ │ ├── mapping_data_location_calldata.sol │ │ │ │ │ ├── mapping_data_location_default.sol │ │ │ │ │ ├── mapping_data_location_function_param_external.sol │ │ │ │ │ ├── mapping_data_location_function_param_internal.sol │ │ │ │ │ ├── mapping_data_location_function_param_public.sol │ │ │ │ │ ├── mapping_data_location_memory.sol │ │ │ │ │ ├── mapping_dynamic_key.sol │ │ │ │ │ ├── mapping_dynamic_key_public.sol │ │ │ │ │ ├── mapping_function_calldata.sol │ │ │ │ │ ├── mapping_return_external.sol │ │ │ │ │ ├── mapping_return_internal.sol │ │ │ │ │ ├── mapping_return_public.sol │ │ │ │ │ ├── mapping_return_public_memory.sol │ │ │ │ │ ├── mapping_struct_data_location_memory.sol │ │ │ │ │ ├── mapping_struct_recursive_data_location_memory.sol │ │ │ │ │ ├── memory_struct_recursive.sol │ │ │ │ │ ├── memory_structs_with_mappings.sol │ │ │ │ │ └── user_defined_types_mapping_memory.sol │ │ │ │ ├── no_singleton_tuple.sol │ │ │ │ ├── rational_negative_numerator_negative_exp.sol │ │ │ │ ├── rational_number_array_index_limit.sol │ │ │ │ ├── rational_number_bitshift_limit.sol │ │ │ │ ├── rational_number_div_limit.sol │ │ │ │ ├── rational_number_exp_limit_fail.sol │ │ │ │ ├── rational_number_exp_limit_fine.sol │ │ │ │ ├── rational_number_huge.sol │ │ │ │ ├── rational_number_huge_fail.sol │ │ │ │ ├── rational_number_literal_limit_1.sol │ │ │ │ ├── rational_number_literal_limit_2.sol │ │ │ │ ├── rational_number_literal_limit_3.sol │ │ │ │ ├── rational_number_literal_to_fixed_implicit.sol │ │ │ │ ├── rational_number_mul_limit.sol │ │ │ │ ├── rational_number_signed_to_unsigned.sol │ │ │ │ ├── rational_number_too_large.sol │ │ │ │ ├── strict_explicit.sol │ │ │ │ ├── strict_explicit_err.sol │ │ │ │ ├── struct_mapping_recursion.sol │ │ │ │ ├── too_small_negative_numbers.sol │ │ │ │ ├── uint256_to_bytes1.sol │ │ │ │ ├── uint32_to_bytes32.sol │ │ │ │ ├── unnamed_tuple_decl.sol │ │ │ │ ├── var_decl_val_mismatch.sol │ │ │ │ ├── var_empty_decl_1.sol │ │ │ │ ├── var_empty_decl_2.sol │ │ │ │ ├── var_empty_decl_3.sol │ │ │ │ ├── var_type_invalid_rational.sol │ │ │ │ ├── weird_sized_types.sol │ │ │ │ ├── zero_literal_to_bytesNN_explicit.sol │ │ │ │ └── zero_literal_to_bytesNN_implicit.sol │ │ │ ├── unchecked/ │ │ │ │ ├── unchecked_for_header.sol │ │ │ │ ├── unchecked_function_body.sol │ │ │ │ ├── unchecked_modifier.sol │ │ │ │ ├── unchecked_nested.sol │ │ │ │ ├── unchecked_post_for.sol │ │ │ │ ├── unchecked_vardecl.sol │ │ │ │ └── unchecked_while_body.sol │ │ │ ├── underscore/ │ │ │ │ ├── as_function.sol │ │ │ │ ├── in_function.sol │ │ │ │ └── in_modifier.sol │ │ │ ├── unterminatedBlocks/ │ │ │ │ ├── one_dot.sol │ │ │ │ ├── one_dot_x.sol │ │ │ │ ├── zero_dot.sol │ │ │ │ └── zero_dot_x.sol │ │ │ ├── unusedVariables/ │ │ │ │ └── try_catch.sol │ │ │ ├── userDefinedValueType/ │ │ │ │ ├── all_value_types.sol │ │ │ │ ├── constant.sol │ │ │ │ ├── conversion_err.sol │ │ │ │ ├── explicit_conversion_self.sol │ │ │ │ ├── explicit_conversions_err.sol │ │ │ │ ├── explicit_conversions_wrap.sol │ │ │ │ ├── explicit_literal_conversion_wrap.sol │ │ │ │ ├── forward_reference_array.sol │ │ │ │ ├── forward_reference_constant_variable_declaration.sol │ │ │ │ ├── forward_reference_err.sol │ │ │ │ ├── forward_reference_struct.sol │ │ │ │ ├── implicit_conversion.sol │ │ │ │ ├── implicit_conversion_err.sol │ │ │ │ ├── mapping_key.sol │ │ │ │ ├── multisource1.sol │ │ │ │ ├── multisource2.sol │ │ │ │ ├── multisource3.sol │ │ │ │ ├── multisource4.sol │ │ │ │ ├── name_conflict_contract_warning.sol │ │ │ │ ├── name_conflict_err.sol │ │ │ │ ├── non_value_type_bytes.sol │ │ │ │ ├── non_value_type_contract_err.sol │ │ │ │ ├── non_value_type_enum_err.sol │ │ │ │ ├── non_value_type_function_err.sol │ │ │ │ ├── non_value_type_mapping_err.sol │ │ │ │ ├── non_value_type_string_err.sol │ │ │ │ ├── non_value_type_struct_err.sol │ │ │ │ ├── overload_clash_err.sol │ │ │ │ ├── recursive_err.sol │ │ │ │ ├── recursive_function_parameter_err.sol │ │ │ │ ├── reference.sol │ │ │ │ ├── repetition_err.sol │ │ │ │ ├── self_reference_err.sol │ │ │ │ ├── wrap_unwrap_assign_err.sol │ │ │ │ ├── wrap_unwrap_calls_err.sol │ │ │ │ ├── wrap_unwrap_via_contract_name.sol │ │ │ │ └── wrap_unwrap_via_contract_name_different.sol │ │ │ ├── using/ │ │ │ │ ├── bound_calldata_parameter_accepting_calldata.sol │ │ │ │ ├── bound_calldata_parameter_not_accepting_memory.sol │ │ │ │ ├── double_asterisk.sol │ │ │ │ ├── erc7201_builtin_as_custom_operator.sol │ │ │ │ ├── erc7201_builtin_using_for.sol │ │ │ │ ├── external_function_qualified_with_this.sol │ │ │ │ ├── file_level_inactive_after_import.sol │ │ │ │ ├── free_functions_implicit_conversion.sol │ │ │ │ ├── free_functions_implicit_conversion_err.sol │ │ │ │ ├── free_functions_non_unique_err.sol │ │ │ │ ├── free_overloads.sol │ │ │ │ ├── free_overloads_array.sol │ │ │ │ ├── free_reference_type.sol │ │ │ │ ├── function_from_base_contract_qualified_with_super.sol │ │ │ │ ├── function_name_without_braces_at_file_level_err.sol │ │ │ │ ├── function_name_without_braces_inside_contract_err.sol │ │ │ │ ├── global_and_local.sol │ │ │ │ ├── global_for_asterisk.sol │ │ │ │ ├── global_for_non_user_defined.sol │ │ │ │ ├── global_for_type_defined_elsewhere.sol │ │ │ │ ├── global_for_type_from_other_file.sol │ │ │ │ ├── global_inside_contract.sol │ │ │ │ ├── global_library_for_builtin.sol │ │ │ │ ├── global_library_for_defined_elsewhere.sol │ │ │ │ ├── global_library_for_interface.sol │ │ │ │ ├── global_library_foreign.sol │ │ │ │ ├── global_library_with_asterisk.sol │ │ │ │ ├── global_local_clash.sol │ │ │ │ ├── global_multiple_global_keywords.sol │ │ │ │ ├── global_nonglobal.sol │ │ │ │ ├── global_with_asterisk.sol │ │ │ │ ├── global_working.sol │ │ │ │ ├── interface_function_at_file_level.sol │ │ │ │ ├── interface_function_inside_contract.sol │ │ │ │ ├── interface_using_for.sol │ │ │ │ ├── library_at_file_level.sol │ │ │ │ ├── library_function_attached_and_called.sol │ │ │ │ ├── library_function_attached_but_not_called.sol │ │ │ │ ├── library_function_attached_to_all_types.sol │ │ │ │ ├── library_functions_at_file_level.sol │ │ │ │ ├── library_functions_attached_at_file_level_used_inside_library.sol │ │ │ │ ├── library_functions_attached_in_single_directive_at_file_level.sol │ │ │ │ ├── library_functions_attached_in_single_directive_inside_contract.sol │ │ │ │ ├── library_functions_inside_contract.sol │ │ │ │ ├── library_import_as.sol │ │ │ │ ├── library_inside_contract.sol │ │ │ │ ├── library_non_free_external_function_err.sol │ │ │ │ ├── library_non_free_function.sol │ │ │ │ ├── module_1.sol │ │ │ │ ├── module_2.sol │ │ │ │ ├── module_3.sol │ │ │ │ ├── module_identifier_not_found.sol │ │ │ │ ├── private_library_function_inside_scope.sol │ │ │ │ ├── private_library_function_outside_scope.sol │ │ │ │ ├── public_state_variable_getter.sol │ │ │ │ ├── undeclared_library.sol │ │ │ │ ├── unqualified_library_functions_attached_in_single_directive_inside_library.sol │ │ │ │ ├── using_contract_err.sol │ │ │ │ ├── using_empty_list_err.sol │ │ │ │ ├── using_empty_list_file_level.sol │ │ │ │ ├── using_for_ast_file_level.sol │ │ │ │ ├── using_for_enum.sol │ │ │ │ ├── using_free_functions.sol │ │ │ │ ├── using_free_no_parameters_err.sol │ │ │ │ ├── using_free_no_parameters_struct_err.sol │ │ │ │ ├── using_functions_with_ast.sol │ │ │ │ ├── using_lhs_asterisk.sol │ │ │ │ ├── using_lhs_asterisk_contract.sol │ │ │ │ ├── using_library_ast_file_level.sol │ │ │ │ ├── using_library_file_level.sol │ │ │ │ ├── using_library_for_library.sol │ │ │ │ ├── using_non_free_function_err.sol │ │ │ │ ├── using_non_function.sol │ │ │ │ └── using_struct_for_struct.sol │ │ │ ├── variableDeclaration/ │ │ │ │ ├── do_while.sol │ │ │ │ ├── else.sol │ │ │ │ ├── for.sol │ │ │ │ ├── if.sol │ │ │ │ ├── illegal_names.sol │ │ │ │ ├── state_variables_both_transient_storage_identical_name.sol │ │ │ │ ├── transient_as_identifier.sol │ │ │ │ ├── transient_as_identifier_and_data_location.sol │ │ │ │ └── while.sol │ │ │ ├── viewPureChecker/ │ │ │ │ ├── access_to_base_member_constant.sol │ │ │ │ ├── access_to_base_member_function.sol │ │ │ │ ├── access_to_base_member_struct.sol │ │ │ │ ├── access_to_base_members.sol │ │ │ │ ├── address.sol │ │ │ │ ├── address_constantinople.sol │ │ │ │ ├── array/ │ │ │ │ │ ├── access_to_array_push.sol │ │ │ │ │ ├── access_to_array_push_view.sol │ │ │ │ │ └── access_to_base_member_array.sol │ │ │ │ ├── assembly.sol │ │ │ │ ├── assembly_chainid_not_pure.sol │ │ │ │ ├── assembly_constantinople.sol │ │ │ │ ├── assembly_istanbul.sol │ │ │ │ ├── basefee_not_pure.sol │ │ │ │ ├── blobbasefee_not_pure.sol │ │ │ │ ├── blobhash.sol │ │ │ │ ├── blobhash_not_pure.sol │ │ │ │ ├── builtin_blobhash_restrict_warning.sol │ │ │ │ ├── builtin_functions.sol │ │ │ │ ├── builtin_functions_restrict_warning.sol │ │ │ │ ├── builtin_functions_view_fail.sol │ │ │ │ ├── call_internal_functions_fail.sol │ │ │ │ ├── call_internal_functions_success.sol │ │ │ │ ├── call_options_without_call.sol │ │ │ │ ├── callvalue_nonpayable_assembly_fallback.sol │ │ │ │ ├── callvalue_nonpayable_assembly_function.sol │ │ │ │ ├── callvalue_nonpayable_assembly_function_internal.sol │ │ │ │ ├── callvalue_nonpayable_assembly_function_modifier.sol │ │ │ │ ├── callvalue_payable_assembly_fallback.sol │ │ │ │ ├── callvalue_payable_assembly_function.sol │ │ │ │ ├── callvalue_payable_assembly_function_modifier.sol │ │ │ │ ├── constant.sol │ │ │ │ ├── constant_restrict_warning.sol │ │ │ │ ├── creation_no_restrict_warning.sol │ │ │ │ ├── creation_view_fail.sol │ │ │ │ ├── eof/ │ │ │ │ │ ├── assembly.sol │ │ │ │ │ ├── builtin_functions.sol │ │ │ │ │ ├── inline_assembly_instructions_allowed.sol │ │ │ │ │ ├── inline_assembly_instructions_allowed_pure.sol │ │ │ │ │ ├── inline_assembly_instructions_allowed_view.sol │ │ │ │ │ ├── inline_assembly_instructions_disallowed.sol │ │ │ │ │ ├── inline_assembly_instructions_disallowed_pure.sol │ │ │ │ │ └── inline_assembly_instructions_disallowed_view.sol │ │ │ │ ├── function_types.sol │ │ │ │ ├── function_types_fail.sol │ │ │ │ ├── gas_value_without_call.sol │ │ │ │ ├── gas_with_call_nonpayable.sol │ │ │ │ ├── immutable.sol │ │ │ │ ├── inline_assembly_instructions_allowed.sol │ │ │ │ ├── inline_assembly_instructions_allowed_london.sol │ │ │ │ ├── inline_assembly_instructions_allowed_pure.sol │ │ │ │ ├── inline_assembly_instructions_allowed_pure_cancun.sol │ │ │ │ ├── inline_assembly_instructions_allowed_view.sol │ │ │ │ ├── inline_assembly_instructions_allowed_view_cancun.sol │ │ │ │ ├── inline_assembly_instructions_allowed_view_london.sol │ │ │ │ ├── inline_assembly_instructions_disallowed.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure_byzantium.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure_cancun.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure_constantinople.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure_istanbul.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure_london.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure_paris.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_pure_pre_paris.sol │ │ │ │ ├── inline_assembly_instructions_disallowed_view.sol │ │ │ │ ├── interface.sol │ │ │ │ ├── local_storage_variables.sol │ │ │ │ ├── local_storage_variables_fail.sol │ │ │ │ ├── mappings.sol │ │ │ │ ├── mcopy_pure.sol │ │ │ │ ├── modifiers.sol │ │ │ │ ├── modifiers_fail.sol │ │ │ │ ├── msg_value_modifier.sol │ │ │ │ ├── msg_value_modifier_view.sol │ │ │ │ ├── overriding_fail.sol │ │ │ │ ├── overriding_no_restrict_warning.sol │ │ │ │ ├── read_storage_pure_fail.sol │ │ │ │ ├── returning_structs_fail.sol │ │ │ │ ├── returning_structs_no_restrict_warning.sol │ │ │ │ ├── selector.sol │ │ │ │ ├── selector_complex.sol │ │ │ │ ├── selector_complex2.sol │ │ │ │ ├── smoke_test.sol │ │ │ │ ├── staticcall_gas_view.sol │ │ │ │ ├── suggest_pure.sol │ │ │ │ ├── suggest_view.sol │ │ │ │ ├── tload_not_pure.sol │ │ │ │ ├── tload_view.sol │ │ │ │ ├── transient_storage_value_type.sol │ │ │ │ ├── tstore_not_pure.sol │ │ │ │ ├── tstore_not_view.sol │ │ │ │ ├── user_operator_with_pure_modifier_can_be_restricted.sol │ │ │ │ ├── value_with_call_nonpayable.sol │ │ │ │ ├── view_pure_abi_encode.sol │ │ │ │ ├── view_pure_abi_encode_arguments.sol │ │ │ │ └── write_storage_fail.sol │ │ │ ├── virtualLookup/ │ │ │ │ └── modifiers_in_libraries.sol │ │ │ └── visibility/ │ │ │ ├── external_library_function.sol │ │ │ ├── file_level_variable_visibility.sol │ │ │ ├── function_no_visibility.sol │ │ │ ├── interface/ │ │ │ │ ├── function_default.sol │ │ │ │ ├── function_external.sol │ │ │ │ ├── function_internal.sol │ │ │ │ ├── function_private.sol │ │ │ │ ├── function_public.sol │ │ │ │ └── interface_contract_function_default.sol │ │ │ ├── invalid_function_parameter_and_return_var_visibility.sol │ │ │ ├── invalid_variable_visibility.sol │ │ │ ├── library_self_delegatecall.sol │ │ │ ├── multiple_visibility_specifiers.sol │ │ │ └── multiple_visibility_specifiers_external.sol │ │ └── util/ │ │ ├── BytesUtils.cpp │ │ ├── BytesUtils.h │ │ ├── BytesUtilsTests.cpp │ │ ├── Common.cpp │ │ ├── Common.h │ │ ├── ContractABIUtils.cpp │ │ ├── ContractABIUtils.h │ │ ├── SoltestErrors.h │ │ ├── SoltestTypes.h │ │ ├── TestFileParser.cpp │ │ ├── TestFileParser.h │ │ ├── TestFileParserTests.cpp │ │ ├── TestFunctionCall.cpp │ │ ├── TestFunctionCall.h │ │ └── TestFunctionCallTests.cpp │ ├── libsolutil/ │ │ ├── Checksum.cpp │ │ ├── CommonData.cpp │ │ ├── CommonIO.cpp │ │ ├── DisjointSet.cpp │ │ ├── DominatorFinderTest.cpp │ │ ├── FixedHash.cpp │ │ ├── FunctionSelector.cpp │ │ ├── IpfsHash.cpp │ │ ├── IterateReplacing.cpp │ │ ├── JSON.cpp │ │ ├── Keccak256.cpp │ │ ├── LEB128.cpp │ │ ├── LazyInit.cpp │ │ ├── StringUtils.cpp │ │ ├── SwarmHash.cpp │ │ ├── TemporaryDirectoryTest.cpp │ │ ├── UTF8.cpp │ │ └── Whiskers.cpp │ ├── libyul/ │ │ ├── Common.cpp │ │ ├── Common.h │ │ ├── CompilabilityChecker.cpp │ │ ├── ControlFlowGraphTest.cpp │ │ ├── ControlFlowGraphTest.h │ │ ├── ControlFlowSideEffectsTest.cpp │ │ ├── ControlFlowSideEffectsTest.h │ │ ├── EVMCodeTransformTest.cpp │ │ ├── EVMCodeTransformTest.h │ │ ├── EVMDialectCompatibility.cpp │ │ ├── FunctionSideEffects.cpp │ │ ├── FunctionSideEffects.h │ │ ├── Inliner.cpp │ │ ├── KnowledgeBaseTest.cpp │ │ ├── Metrics.cpp │ │ ├── ObjectCompilerTest.cpp │ │ ├── ObjectCompilerTest.h │ │ ├── ObjectParser.cpp │ │ ├── Parser.cpp │ │ ├── SSAControlFlowGraphTest.cpp │ │ ├── SSAControlFlowGraphTest.h │ │ ├── StackLayoutGeneratorTest.cpp │ │ ├── StackLayoutGeneratorTest.h │ │ ├── StackShufflingTest.cpp │ │ ├── StackShufflingTest.h │ │ ├── SyntaxTest.cpp │ │ ├── SyntaxTest.h │ │ ├── YulInterpreterTest.cpp │ │ ├── YulInterpreterTest.h │ │ ├── YulOptimizerTest.cpp │ │ ├── YulOptimizerTest.h │ │ ├── YulOptimizerTestCommon.cpp │ │ ├── YulOptimizerTestCommon.h │ │ ├── controlFlowSideEffects/ │ │ │ ├── eval_order.yul │ │ │ ├── for_loop.yul │ │ │ ├── leave.yul │ │ │ ├── nondisambiguated.yul │ │ │ ├── recursion.yul │ │ │ ├── simple_conditionals.yul │ │ │ ├── simple_functions.yul │ │ │ └── switch.yul │ │ ├── evmCodeTransform/ │ │ │ ├── after_terminating_function.yul │ │ │ ├── early_push_on_deep_swap.yul │ │ │ ├── eof_dup256.yul │ │ │ ├── eof_swap17.yul │ │ │ ├── eof_swap256.yul │ │ │ ├── literal_loop.yul │ │ │ ├── nonempty_initial_layout.yul │ │ │ ├── pops_in_reverting_branch.yul │ │ │ ├── stackReuse/ │ │ │ │ ├── eof/ │ │ │ │ │ └── function_argument_reuse_without_retparams.yul │ │ │ │ ├── for_1.yul │ │ │ │ ├── for_2.yul │ │ │ │ ├── function_argument_reuse.yul │ │ │ │ ├── function_argument_reuse_without_retparams.yul │ │ │ │ ├── function_call.yul │ │ │ │ ├── function_many_arguments.yul │ │ │ │ ├── function_params.yul │ │ │ │ ├── function_params_and_retparams.yul │ │ │ │ ├── function_params_and_retparams_partly_used.yul │ │ │ │ ├── function_retparam.yul │ │ │ │ ├── function_retparam_block.yul │ │ │ │ ├── function_retparam_declaration.yul │ │ │ │ ├── function_retparam_for.yul │ │ │ │ ├── function_retparam_if.yul │ │ │ │ ├── function_retparam_leave.yul │ │ │ │ ├── function_retparam_read.yul │ │ │ │ ├── function_retparam_unassigned.yul │ │ │ │ ├── function_retparam_unassigned_multiple.yul │ │ │ │ ├── function_trivial.yul │ │ │ │ ├── function_with_body_embedded.yul │ │ │ │ ├── functions_multi_return.yul │ │ │ │ ├── if.yul │ │ │ │ ├── last_use_in_nested_block.yul │ │ │ │ ├── multi_reuse_same_variable_name.yul │ │ │ │ ├── multi_reuse_single_slot.yul │ │ │ │ ├── multi_reuse_single_slot_nested.yul │ │ │ │ ├── reuse_on_decl_assign_not_same_scope.yul │ │ │ │ ├── reuse_on_decl_assign_to_last_used.yul │ │ │ │ ├── reuse_on_decl_assign_to_last_used_expr.yul │ │ │ │ ├── reuse_on_decl_assign_to_not_last_used.yul │ │ │ │ ├── reuse_slots.yul │ │ │ │ ├── reuse_slots_function.yul │ │ │ │ ├── reuse_slots_function_with_gaps.yul │ │ │ │ ├── reuse_too_deep_slot.yul │ │ │ │ ├── single_var.yul │ │ │ │ ├── single_var_assigned.yul │ │ │ │ ├── single_var_assigned_plus_code.yul │ │ │ │ ├── single_var_assigned_plus_code_and_reused.yul │ │ │ │ ├── smoke.yul │ │ │ │ └── switch.yul │ │ │ ├── stub.yul │ │ │ └── unassigned_return_variable.yul │ │ ├── functionSideEffects/ │ │ │ ├── cyclic_graph.yul │ │ │ ├── doubly_recursive_function.yul │ │ │ ├── empty.yul │ │ │ ├── empty_with_sstore.yul │ │ │ ├── memory.yul │ │ │ ├── mload_in_function.yul │ │ │ ├── multi_calls.yul │ │ │ ├── otherImmovables.yul │ │ │ ├── recursive_function.yul │ │ │ ├── simple_functions.yul │ │ │ ├── state.yul │ │ │ ├── storage.yul │ │ │ ├── structures.yul │ │ │ ├── verbatim.yul │ │ │ └── with_loop.yul │ │ ├── objectCompiler/ │ │ │ ├── data.yul │ │ │ ├── datacopy.yul │ │ │ ├── dataoffset_code.yul │ │ │ ├── dataoffset_data.yul │ │ │ ├── dataoffset_self.yul │ │ │ ├── datasize_code.yul │ │ │ ├── datasize_data.yul │ │ │ ├── datasize_self.yul │ │ │ ├── eof/ │ │ │ │ ├── 256_subcontainers.yul │ │ │ │ ├── creation_with_immutables.yul │ │ │ │ ├── dataloadn.yul │ │ │ │ ├── extcall.yul │ │ │ │ ├── functions.yul │ │ │ │ ├── leading_and_trailing_dots.yul │ │ │ │ ├── long_object_name.yul │ │ │ │ ├── prune_unreachable_function_non_returning.yul │ │ │ │ ├── prune_unreachable_function_recursion.yul │ │ │ │ ├── prune_unreferenced_container.yul │ │ │ │ ├── prune_unreferenced_function.yul │ │ │ │ ├── rjumps.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── subObject.yul │ │ │ │ ├── subSubObject.yul │ │ │ │ └── verbatim_bug.yul │ │ │ ├── function_series.yul │ │ │ ├── identical_subobjects_creation_deployed.yul │ │ │ ├── identical_subobjects_full_debug_info.yul │ │ │ ├── identical_subobjects_no_debug_info.yul │ │ │ ├── identical_subobjects_partial_debug_info.yul │ │ │ ├── identical_subobjects_partial_debug_info_no_use_src.yul │ │ │ ├── identical_subobjects_with_subject_references.yul │ │ │ ├── immutable_long_name_does_not_end_up_in_bytecode.yul │ │ │ ├── jump_tags.yul │ │ │ ├── leading_and_trailing_dots.yul │ │ │ ├── linkersymbol.yul │ │ │ ├── long_object_name.yul │ │ │ ├── manySubObjects.yul │ │ │ ├── metadata.yul │ │ │ ├── namedObject.yul │ │ │ ├── namedObjectCode.yul │ │ │ ├── nested_optimizer.yul │ │ │ ├── prune_unreachable_function_non_returning.yul │ │ │ ├── prune_unreachable_function_recursion.yul │ │ │ ├── prune_unreferenced_function.yul │ │ │ ├── simple.yul │ │ │ ├── simple_optimizer.yul │ │ │ ├── smoke.yul │ │ │ ├── sourceLocations.yul │ │ │ ├── subObject.yul │ │ │ ├── subObjectAccess.yul │ │ │ ├── subSubObject.yul │ │ │ └── verbatim_bug.yul │ │ ├── ssa/ │ │ │ ├── StackLayoutGeneratorTest.cpp │ │ │ ├── StackLayoutGeneratorTest.h │ │ │ ├── StackShufflerTest.cpp │ │ │ ├── StackShufflerTest.h │ │ │ ├── stackLayoutGenerator/ │ │ │ │ ├── can_continue.yul │ │ │ │ ├── dead_code.yul │ │ │ │ ├── function.yul │ │ │ │ ├── multi_return.yul │ │ │ │ ├── nested_for.yul │ │ │ │ ├── recursion.yul │ │ │ │ ├── simple_for.yul │ │ │ │ ├── simple_if.yul │ │ │ │ └── switch.yul │ │ │ └── stackShuffler/ │ │ │ ├── deep_argument_dup_order.stack │ │ │ ├── deep_argument_shrink.stack │ │ │ ├── dup_up_args.stack │ │ │ ├── empty.stack │ │ │ ├── grow.stack │ │ │ ├── introduce_junk.stack │ │ │ ├── reduce_size.stack │ │ │ ├── satisfy_tail_requirements.stack │ │ │ ├── shrink_and_grow_a_lot.stack │ │ │ ├── superfluous_top_slots.stack │ │ │ └── swap_junk_over_pop.stack │ │ ├── yulControlFlowGraph/ │ │ │ ├── ambiguous_names.yul │ │ │ ├── break.yul │ │ │ ├── complex.yul │ │ │ ├── eof/ │ │ │ │ └── function.yul │ │ │ ├── for.yul │ │ │ ├── function.yul │ │ │ ├── if.yul │ │ │ ├── leave.yul │ │ │ ├── nested_loop_complex.yul │ │ │ ├── stub.yul │ │ │ ├── switch.yul │ │ │ ├── variables.yul │ │ │ └── verbatim.yul │ │ ├── yulInterpreterTests/ │ │ │ ├── access_large_memory_offsets.yul │ │ │ ├── ambiguous_vars.yul │ │ │ ├── and_create.yul │ │ │ ├── and_create2.yul │ │ │ ├── blobbasefee.yul │ │ │ ├── blobhash.yul │ │ │ ├── bounded_recursion.yul │ │ │ ├── clz.yul │ │ │ ├── create2.yul │ │ │ ├── datacopy.yul │ │ │ ├── dataoffset.yul │ │ │ ├── datasize.yul │ │ │ ├── difficulty.yul │ │ │ ├── exp.yul │ │ │ ├── expr_nesting_depth_exceeded.yul │ │ │ ├── expr_nesting_depth_not_exceeded.yul │ │ │ ├── external_call_to_self.yul │ │ │ ├── external_call_unexecuted.yul │ │ │ ├── external_callcode_unexecuted.yul │ │ │ ├── external_delegatecall_unexecuted.yul │ │ │ ├── external_staticcall_unexecuted.yul │ │ │ ├── function_calls.yul │ │ │ ├── function_scopes.yul │ │ │ ├── hex_literals.yul │ │ │ ├── infinite_recursion.yul │ │ │ ├── infinite_recursion_tracelimit.yul │ │ │ ├── isoltestTesting/ │ │ │ │ ├── linkersymbol.yul │ │ │ │ ├── loadimmutable.yul │ │ │ │ └── setimmutable_stub.yul │ │ │ ├── leave.yul │ │ │ ├── leave_for_init.yul │ │ │ ├── long_object_name.yul │ │ │ ├── loop.yul │ │ │ ├── mcopy.yul │ │ │ ├── mcopy_memory_access_out_of_range.yul │ │ │ ├── mcopy_memory_expansion_on_read.yul │ │ │ ├── mcopy_memory_expansion_on_write.yul │ │ │ ├── mcopy_memory_expansion_zero_size.yul │ │ │ ├── mcopy_overlap.yul │ │ │ ├── pop_byte_shr_call.yul │ │ │ ├── pop_byte_shr_func.yul │ │ │ ├── prevrandao.yul │ │ │ ├── recursion.yul │ │ │ ├── recursive_function_for_loop.yul │ │ │ ├── self_balance.yul │ │ │ ├── shadowed_symbol.yul │ │ │ ├── side_effect_free.yul │ │ │ ├── simple_mstore.yul │ │ │ ├── smoke.yul │ │ │ ├── switch_statement.yul │ │ │ ├── transient_storage.yul │ │ │ ├── zero_length_reads.yul │ │ │ ├── zero_length_reads_and_revert.yul │ │ │ └── zero_range.yul │ │ ├── yulOptimizerTests/ │ │ │ ├── blockFlattener/ │ │ │ │ ├── basic.yul │ │ │ │ ├── for_stmt.yul │ │ │ │ ├── if_stmt.yul │ │ │ │ ├── many_nested_blocks.yul │ │ │ │ └── switch_stmt.yul │ │ │ ├── circularReferencesPruner/ │ │ │ │ ├── called_from_non_function.yul │ │ │ │ ├── nested_different_names.yul │ │ │ │ ├── nested_same_name.yul │ │ │ │ └── trivial.yul │ │ │ ├── commonSubexpressionEliminator/ │ │ │ │ ├── branches_for.yul │ │ │ │ ├── branches_if.yul │ │ │ │ ├── case2.yul │ │ │ │ ├── clear_not_needed.yul │ │ │ │ ├── function_scopes.yul │ │ │ │ ├── long_literals_as_builtin_args.yul │ │ │ │ ├── loop.yul │ │ │ │ ├── movable_functions.yul │ │ │ │ ├── non_movable_instr.yul │ │ │ │ ├── non_movable_instr2.yul │ │ │ │ ├── object_access.yul │ │ │ │ ├── replace_return_nonzero.yul │ │ │ │ ├── scopes.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── trivial.yul │ │ │ │ ├── unassigned_return.yul │ │ │ │ ├── unassigned_variables.yul │ │ │ │ └── variable_for_variable.yul │ │ │ ├── conditionalSimplifier/ │ │ │ │ ├── clear_after_if_break.yul │ │ │ │ ├── clear_after_if_continue.yul │ │ │ │ ├── clear_before_for_condition.yul │ │ │ │ ├── clear_before_for_post.yul │ │ │ │ ├── no_opt_if_break_is_not_last.yul │ │ │ │ ├── no_opt_inside_if.yul │ │ │ │ ├── opt_after_terminating_if.yul │ │ │ │ ├── opt_switch.yul │ │ │ │ ├── side_effects_of_functions.yul │ │ │ │ └── smoke.yul │ │ │ ├── conditionalUnsimplifier/ │ │ │ │ ├── clear_after_if_break.yul │ │ │ │ ├── clear_after_if_continue.yul │ │ │ │ ├── clear_before_for_condition.yul │ │ │ │ ├── clear_before_for_post.yul │ │ │ │ ├── no_opt_if_break_is_not_last.yul │ │ │ │ ├── no_opt_inside_if.yul │ │ │ │ ├── opt_after_terminating_if.yul │ │ │ │ ├── opt_switch.yul │ │ │ │ ├── side_effects_of_functions.yul │ │ │ │ └── smoke.yul │ │ │ ├── constantOptimiser/ │ │ │ │ ├── difficult.yul │ │ │ │ ├── gaps.yul │ │ │ │ └── smallNumbers.yul │ │ │ ├── controlFlowSimplifier/ │ │ │ │ ├── empty_if_movable_condition.yul │ │ │ │ ├── empty_if_non_movable_condition.yul │ │ │ │ ├── remove_leave.yul │ │ │ │ ├── switch_only_default.yul │ │ │ │ ├── switch_remove_empty_all.yul │ │ │ │ ├── switch_remove_empty_case.yul │ │ │ │ ├── switch_remove_empty_cases.yul │ │ │ │ ├── switch_remove_empty_default_case.yul │ │ │ │ ├── switch_to_if.yul │ │ │ │ ├── terminating_for.yul │ │ │ │ ├── terminating_for_nested.yul │ │ │ │ ├── terminating_for_nested_reversed.yul │ │ │ │ ├── terminating_for_revert.yul │ │ │ │ ├── terminating_for_revert_plus_break.yul │ │ │ │ └── terminating_for_with_continue.yul │ │ │ ├── deadCodeEliminator/ │ │ │ │ ├── conditional_break.yul │ │ │ │ ├── dead_code_user_functions.yul │ │ │ │ ├── early_break.yul │ │ │ │ ├── early_continue.yul │ │ │ │ ├── early_leave.yul │ │ │ │ ├── early_revert.yul │ │ │ │ ├── early_stop.yul │ │ │ │ ├── for_loop_init_decl.yul │ │ │ │ ├── function_after_revert.yul │ │ │ │ ├── nested_revert.yul │ │ │ │ ├── no_removal.yul │ │ │ │ ├── normal_break.yul │ │ │ │ ├── normal_continue.yul │ │ │ │ └── normal_stop.yul │ │ │ ├── disambiguator/ │ │ │ │ ├── for_statement.yul │ │ │ │ ├── function_call.yul │ │ │ │ ├── if_statement.yul │ │ │ │ ├── long_names.yul │ │ │ │ ├── similar_literals.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── string_as_hex_and_hex_as_string.yul │ │ │ │ ├── switch_statement.yul │ │ │ │ ├── variables.yul │ │ │ │ ├── variables_clash.yul │ │ │ │ └── variables_inside_functions.yul │ │ │ ├── equalStoreEliminator/ │ │ │ │ ├── branching.yul │ │ │ │ ├── forloop.yul │ │ │ │ ├── functionbody.yul │ │ │ │ ├── indirect_inferrence.yul │ │ │ │ ├── mcopy.yul │ │ │ │ ├── mcopy_mstore.yul │ │ │ │ ├── mcopy_mstore_overlap.yul │ │ │ │ ├── mcopy_same_area.yul │ │ │ │ ├── mcopy_same_area_mcopy.yul │ │ │ │ ├── mcopy_same_read_area_mcopy.yul │ │ │ │ ├── mcopy_same_read_area_mstore.yul │ │ │ │ ├── mcopy_same_read_area_mstore8_mstore8.yul │ │ │ │ ├── mcopy_same_read_area_mstore_mstore.yul │ │ │ │ ├── mcopy_same_read_area_mstore_mstore_overlap.yul │ │ │ │ ├── mcopy_same_write_area_mcopy.yul │ │ │ │ ├── mstore8_mstore8.yul │ │ │ │ ├── mstore_mcopy.yul │ │ │ │ ├── mstore_mstore.yul │ │ │ │ ├── mstore_with_keccak.yul │ │ │ │ ├── transient_storage.yul │ │ │ │ ├── value_change.yul │ │ │ │ └── verbatim.yul │ │ │ ├── equivalentFunctionCombiner/ │ │ │ │ ├── constant_representation.yul │ │ │ │ ├── constant_representation_datasize.yul │ │ │ │ ├── multiple_complex.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── simple_different_vars.yul │ │ │ │ └── switch_case_order.yul │ │ │ ├── expressionInliner/ │ │ │ │ ├── argument_duplication_heuristic.yul │ │ │ │ ├── complex_with_evm.yul │ │ │ │ ├── double_calls.yul │ │ │ │ ├── double_recursive_calls.yul │ │ │ │ ├── no_inline_mload.yul │ │ │ │ ├── no_move_with_sideeffects.yul │ │ │ │ ├── simple.yul │ │ │ │ └── with_args.yul │ │ │ ├── expressionJoiner/ │ │ │ │ ├── if_condition.yul │ │ │ │ ├── muli_wrong_order3.yul │ │ │ │ ├── multi.yul │ │ │ │ ├── multi_reference.yul │ │ │ │ ├── multi_wrong_order.yul │ │ │ │ ├── multi_wrong_order2.yul │ │ │ │ ├── no_replacement_across_blocks.yul │ │ │ │ ├── no_replacement_in_loop_condition1.yul │ │ │ │ ├── no_replacement_in_loop_condition2.yul │ │ │ │ ├── only_assignment.yul │ │ │ │ ├── reassignment.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── single_wrong_order.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── switch_expression.yul │ │ │ │ └── triple.yul │ │ │ ├── expressionSimplifier/ │ │ │ │ ├── assigned_vars_multi.yul │ │ │ │ ├── byte_after_shr_non_mul_of_8.yul │ │ │ │ ├── combine_add_and_mod_constant.yul │ │ │ │ ├── combine_mul_and_mod_constant.yul │ │ │ │ ├── combine_shift_and_and.yul │ │ │ │ ├── combine_shift_and_and_2.yul │ │ │ │ ├── combine_shift_and_and_3.yul │ │ │ │ ├── constant_propagation.yul │ │ │ │ ├── constants.yul │ │ │ │ ├── create2_and_mask.yul │ │ │ │ ├── create_and_mask.yul │ │ │ │ ├── exp_simplifications.yul │ │ │ │ ├── idempotency.yul │ │ │ │ ├── identity_rules_complex.yul │ │ │ │ ├── identity_rules_negative.yul │ │ │ │ ├── identity_rules_simple.yul │ │ │ │ ├── including_function_calls.yul │ │ │ │ ├── inside_for.yul │ │ │ │ ├── invalid_match.yul │ │ │ │ ├── invariant.yul │ │ │ │ ├── iszero_sub_to_eq.yul │ │ │ │ ├── large_byte_access.yul │ │ │ │ ├── mcopy_non_zero_size.yul │ │ │ │ ├── mcopy_zero_size.yul │ │ │ │ ├── mod_and_1.yul │ │ │ │ ├── mod_and_2.yul │ │ │ │ ├── not_applied_function_call_different_arguments.yul │ │ │ │ ├── not_applied_function_call_different_names.yul │ │ │ │ ├── not_applied_function_call_equality_not_movable.yul │ │ │ │ ├── not_applied_removes_non_constant_and_not_movable.yul │ │ │ │ ├── optimize_shl_over_and.yul │ │ │ │ ├── pop_byte_shr_call.yul │ │ │ │ ├── pop_byte_shr_func.yul │ │ │ │ ├── pop_byte_shr_func_trivial.yul │ │ │ │ ├── reassign.yul │ │ │ │ ├── remove_redundant_shift_masking.yul │ │ │ │ ├── replace_too_large_shift.yul │ │ │ │ ├── return_vars_zero.yul │ │ │ │ ├── reversed.yul │ │ │ │ ├── selfbalance_not_supported.yul │ │ │ │ ├── selfbalance_split.yul │ │ │ │ ├── selfbalance_supported.yul │ │ │ │ ├── side_effects_in_for_condition.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── unassigend_vars_multi.yul │ │ │ │ ├── unassigned_vars.yul │ │ │ │ ├── zero_length_read.yul │ │ │ │ ├── zero_length_read_call.yul │ │ │ │ └── zero_length_read_codecopy.yul │ │ │ ├── expressionSplitter/ │ │ │ │ ├── control_flow.yul │ │ │ │ ├── inside_function.yul │ │ │ │ ├── object_access.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── switch.yul │ │ │ │ └── trivial.yul │ │ │ ├── fakeStackLimitEvader/ │ │ │ │ ├── connected.yul │ │ │ │ ├── function_arg.yul │ │ │ │ ├── multi_variable_declaration_without_value.yul │ │ │ │ ├── outer_block.yul │ │ │ │ ├── return_leave.yul │ │ │ │ ├── return_one.yul │ │ │ │ ├── return_one_with_args.yul │ │ │ │ ├── same_variable_in_lhs_and_rhs.yul │ │ │ │ └── stub.yul │ │ │ ├── forLoopConditionIntoBody/ │ │ │ │ ├── cond_types.yul │ │ │ │ ├── empty_body.yul │ │ │ │ ├── nested.yul │ │ │ │ └── simple.yul │ │ │ ├── forLoopInitRewriter/ │ │ │ │ ├── complex_pre.yul │ │ │ │ ├── empty_pre.yul │ │ │ │ ├── nested.yul │ │ │ │ └── simple.yul │ │ │ ├── fullInliner/ │ │ │ │ ├── call_arguments_with_side_effects.yul │ │ │ │ ├── call_arguments_without_side_effects.yul │ │ │ │ ├── double_inline.yul │ │ │ │ ├── inside_condition.yul │ │ │ │ ├── large_function_multi_use.yul │ │ │ │ ├── large_function_single_use.yul │ │ │ │ ├── long_names.yul │ │ │ │ ├── move_up_rightwards_argument.yul │ │ │ │ ├── multi_fun.yul │ │ │ │ ├── multi_fun_callback.yul │ │ │ │ ├── multi_return.yul │ │ │ │ ├── no_inline_into_big_function.yul │ │ │ │ ├── no_inline_into_big_function_homestead.yul │ │ │ │ ├── no_inline_into_big_global_context.yul │ │ │ │ ├── no_inline_into_big_global_context_homestead.yul │ │ │ │ ├── no_inline_leave.yul │ │ │ │ ├── no_return.yul │ │ │ │ ├── not_inside_for.yul │ │ │ │ ├── pop_result.yul │ │ │ │ ├── recursion.yul │ │ │ │ └── simple.yul │ │ │ ├── fullInlinerWithoutSplitter/ │ │ │ │ ├── call_arguments_with_side_effects.yul │ │ │ │ ├── call_arguments_without_side_effects.yul │ │ │ │ └── simple.yul │ │ │ ├── fullSimplify/ │ │ │ │ ├── constant_propagation.yul │ │ │ │ ├── constants.yul │ │ │ │ ├── identity_rules_complex.yul │ │ │ │ ├── identity_rules_negative.yul │ │ │ │ ├── identity_rules_simple.yul │ │ │ │ ├── including_function_calls.yul │ │ │ │ ├── inside_for.yul │ │ │ │ ├── invariant.yul │ │ │ │ ├── mod_and_1.yul │ │ │ │ ├── mod_and_2.yul │ │ │ │ ├── not_applied_function_call_different_arguments.yul │ │ │ │ ├── not_applied_function_call_different_names.yul │ │ │ │ ├── not_applied_function_call_equality_not_movable.yul │ │ │ │ ├── not_applied_removes_non_constant_and_not_movable.yul │ │ │ │ ├── operations.yul │ │ │ │ ├── reversed.yul │ │ │ │ ├── scoped_var_ref_in_function_call.yul │ │ │ │ ├── signextend.yul │ │ │ │ └── smoke.yul │ │ │ ├── fullSuite/ │ │ │ │ ├── abi2.yul │ │ │ │ ├── abi_example1.yul │ │ │ │ ├── ackermann_function.yul │ │ │ │ ├── ackermann_function_if.yul │ │ │ │ ├── and_or_combination.yul │ │ │ │ ├── aztec.yul │ │ │ │ ├── call_arguments_with_side_effects.yul │ │ │ │ ├── call_arguments_without_side_effects.yul │ │ │ │ ├── clear_after_if_continue.yul │ │ │ │ ├── combine_shift_and_and.yul │ │ │ │ ├── combine_shift_and_and_2.yul │ │ │ │ ├── combine_shift_and_and_3.yul │ │ │ │ ├── combine_shift_and_and_unsplit.yul │ │ │ │ ├── create2_and_mask.yul │ │ │ │ ├── create_and_mask.yul │ │ │ │ ├── devcon_example.yul │ │ │ │ ├── extcodelength.yul │ │ │ │ ├── fibonacci.yul │ │ │ │ ├── loopInvariantCodeMotion.yul │ │ │ │ ├── mcopy.yul │ │ │ │ ├── mcopy_redundant_overwritten.yul │ │ │ │ ├── mcopy_redundant_same_area.yul │ │ │ │ ├── mcopy_redundant_zero_size.yul │ │ │ │ ├── medium.yul │ │ │ │ ├── name_cleaner_reserved.yul │ │ │ │ ├── name_dependent_cse_bug_part_1.yul │ │ │ │ ├── name_dependent_cse_bug_part_1_pre_shanghai.yul │ │ │ │ ├── name_dependent_cse_bug_part_2.yul │ │ │ │ ├── name_dependent_cse_bug_part_2_pre_shanghai.yul │ │ │ │ ├── no_move_loop_orig.yul │ │ │ │ ├── remove_redundant_assignments_in_switch.yul │ │ │ │ ├── reserved_identifiers.yul │ │ │ │ ├── reuse_vars_bug_in_simplifier.yul │ │ │ │ ├── shift_signextend.yul │ │ │ │ ├── ssaReverse.yul │ │ │ │ ├── ssaReverseComplex.yul │ │ │ │ ├── stack_compressor_msize.yul │ │ │ │ ├── stack_shuffler_bring_up_target_slot_bfs_dedup.yul │ │ │ │ ├── static_array_slot_computation.yul │ │ │ │ ├── storage.yul │ │ │ │ ├── structural_simplification.yul │ │ │ │ ├── sub_objects.yul │ │ │ │ ├── switch_inline.yul │ │ │ │ ├── switch_inline_match_default.yul │ │ │ │ ├── transient_storage.yul │ │ │ │ ├── unusedFunctionParameterPruner.yul │ │ │ │ ├── unusedFunctionParameterPruner_loop.yul │ │ │ │ ├── unusedFunctionParameterPruner_recursion.yul │ │ │ │ ├── unusedFunctionParameterPruner_return.yul │ │ │ │ └── unusedFunctionParameterPruner_simple.yul │ │ │ ├── functionGrouper/ │ │ │ │ ├── already_grouped.yul │ │ │ │ ├── empty_block.yul │ │ │ │ ├── grouped_but_not_ordered.yul │ │ │ │ ├── multi_fun_mixed.yul │ │ │ │ ├── nested_fun.yul │ │ │ │ ├── single_fun.yul │ │ │ │ └── smoke.yul │ │ │ ├── functionHoister/ │ │ │ │ ├── empty_block.yul │ │ │ │ ├── multi_mixed.yul │ │ │ │ ├── nested.yul │ │ │ │ ├── single.yul │ │ │ │ └── smoke.yul │ │ │ ├── functionSpecializer/ │ │ │ │ ├── multiple.yul │ │ │ │ ├── partial.yul │ │ │ │ ├── recursion.yul │ │ │ │ ├── simple.yul │ │ │ │ └── smoke.yul │ │ │ ├── loadResolver/ │ │ │ │ ├── double_mload.yul │ │ │ │ ├── double_mload_with_other_reassignment.yul │ │ │ │ ├── double_mload_with_reassignment.yul │ │ │ │ ├── extstaticcall.yul │ │ │ │ ├── keccak.yul │ │ │ │ ├── keccak_crash.yul │ │ │ │ ├── keccak_fail1.yul │ │ │ │ ├── keccak_fail2.yul │ │ │ │ ├── keccak_reuse_basic.yul │ │ │ │ ├── keccak_reuse_expr_mstore.yul │ │ │ │ ├── keccak_reuse_in_expression.yul │ │ │ │ ├── keccak_reuse_msize.yul │ │ │ │ ├── keccak_reuse_mstore.yul │ │ │ │ ├── keccak_reuse_reassigned_branch.yul │ │ │ │ ├── keccak_reuse_reassigned_value.yul │ │ │ │ ├── keccak_short.yul │ │ │ │ ├── keccak_string_literal.yul │ │ │ │ ├── keccak_symbolic_memory.yul │ │ │ │ ├── keccak_with_msize.yul │ │ │ │ ├── loop.yul │ │ │ │ ├── memory_with_call_invalidation.yul │ │ │ │ ├── memory_with_extcall_invalidation.yul │ │ │ │ ├── memory_with_function_call_invalidation.yul │ │ │ │ ├── memory_with_msize.yul │ │ │ │ ├── memory_with_mstore_invalidation.yul │ │ │ │ ├── merge_known_write.yul │ │ │ │ ├── merge_known_write_with_distance.yul │ │ │ │ ├── merge_mload_with_known_distance.yul │ │ │ │ ├── merge_mload_with_rewrite.yul │ │ │ │ ├── merge_mload_without_rewrite.yul │ │ │ │ ├── merge_unknown_write.yul │ │ │ │ ├── merge_with_rewrite.yul │ │ │ │ ├── mload_in_function.yul │ │ │ │ ├── mload_self.yul │ │ │ │ ├── mstore_in_function_loop_body.yul │ │ │ │ ├── mstore_in_function_loop_init.yul │ │ │ │ ├── multi_sload_loop.yul │ │ │ │ ├── re_store_memory.yul │ │ │ │ ├── re_store_storage.yul │ │ │ │ ├── reassign.yul │ │ │ │ ├── reassign_value_expression.yul │ │ │ │ ├── scoped_var_ref_in_keccak.yul │ │ │ │ ├── second_mstore_with_delta.yul │ │ │ │ ├── second_store.yul │ │ │ │ ├── second_store_same_value.yul │ │ │ │ ├── second_store_with_delta.yul │ │ │ │ ├── side_effects_of_user_functions.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── simple_memory.yul │ │ │ │ ├── staticcall.yul │ │ │ │ ├── verbatim_mload.yul │ │ │ │ ├── verbatim_sload.yul │ │ │ │ ├── zero_length_reads.yul │ │ │ │ └── zero_length_reads_eof.yul │ │ │ ├── loopInvariantCodeMotion/ │ │ │ │ ├── complex_move.yul │ │ │ │ ├── create_sload.yul │ │ │ │ ├── dependOnVarInLoop.yul │ │ │ │ ├── move_memory_function.yul │ │ │ │ ├── move_state_function.yul │ │ │ │ ├── move_storage_function.yul │ │ │ │ ├── multi.yul │ │ │ │ ├── no_move_gas.yul │ │ │ │ ├── no_move_immovables.yul │ │ │ │ ├── no_move_loop.yul │ │ │ │ ├── no_move_memory.yul │ │ │ │ ├── no_move_memory_loop.yul │ │ │ │ ├── no_move_memory_msize.yul │ │ │ │ ├── no_move_recursive_function.yul │ │ │ │ ├── no_move_state.yul │ │ │ │ ├── no_move_state_function.yul │ │ │ │ ├── no_move_state_loop.yul │ │ │ │ ├── no_move_state_recursive_function.yul │ │ │ │ ├── no_move_staticall_returndatasize.yul │ │ │ │ ├── no_move_storage.yul │ │ │ │ ├── no_move_storage_function.yul │ │ │ │ ├── no_move_storage_in_body.yul │ │ │ │ ├── no_move_storage_in_post.yul │ │ │ │ ├── no_move_storage_loop.yul │ │ │ │ ├── no_move_transient_storage.yul │ │ │ │ ├── non-ssavar.yul │ │ │ │ ├── nonMovable.yul │ │ │ │ ├── not_first.yul │ │ │ │ ├── recursive.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── simple_memory.yul │ │ │ │ ├── simple_state.yul │ │ │ │ └── simple_storage.yul │ │ │ ├── nameDisplacer/ │ │ │ │ ├── funtion_call.yul │ │ │ │ ├── variables.yul │ │ │ │ └── variables_inside_functions.yul │ │ │ ├── rematerialiser/ │ │ │ │ ├── branches_for1.yul │ │ │ │ ├── branches_for2.yul │ │ │ │ ├── branches_if.yul │ │ │ │ ├── branches_switch.yul │ │ │ │ ├── cheap_caller.yul │ │ │ │ ├── do_not_move_out_of_scope.yul │ │ │ │ ├── do_remat_large_amounts_of_code_if_used_once.yul │ │ │ │ ├── for_break.yul │ │ │ │ ├── for_continue.yul │ │ │ │ ├── for_continue_2.yul │ │ │ │ ├── for_continue_with_assignment_in_post.yul │ │ │ │ ├── large_constant.yul │ │ │ │ ├── large_constant_used_once.yul │ │ │ │ ├── many_refs_small_cost_loop.yul │ │ │ │ ├── medium_sized_constant.yul │ │ │ │ ├── no_remat_in_loop.yul │ │ │ │ ├── non_movable_function.yul │ │ │ │ ├── non_movable_instruction.yul │ │ │ │ ├── reassign.yul │ │ │ │ ├── reassignment.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── some_refs_small_cost_loop.yul │ │ │ │ ├── some_refs_small_cost_nested_loop.yul │ │ │ │ ├── trivial.yul │ │ │ │ └── update_asignment_remat.yul │ │ │ ├── splitJoin/ │ │ │ │ ├── control_flow.yul │ │ │ │ ├── functions.yul │ │ │ │ └── smoke.yul │ │ │ ├── ssaAndBack/ │ │ │ │ ├── for_loop.yul │ │ │ │ ├── multi_assign.yul │ │ │ │ ├── multi_assign_if.yul │ │ │ │ ├── multi_assign_multi_var_if.yul │ │ │ │ ├── multi_assign_multi_var_switch.yul │ │ │ │ ├── multi_assign_switch.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── single_assign_if.yul │ │ │ │ ├── single_assign_switch.yul │ │ │ │ ├── ssaReverse.yul │ │ │ │ └── two_vars.yul │ │ │ ├── ssaPlusCleanup/ │ │ │ │ ├── control_structures.yul │ │ │ │ ├── multi_reassign.yul │ │ │ │ └── multi_reassign_with_use.yul │ │ │ ├── ssaReverser/ │ │ │ │ ├── abi_example.yul │ │ │ │ ├── self_assign.yul │ │ │ │ └── simple.yul │ │ │ ├── ssaTransform/ │ │ │ │ ├── branches.yul │ │ │ │ ├── for_def_in_init.yul │ │ │ │ ├── for_reassign_body.yul │ │ │ │ ├── for_reassign_init.yul │ │ │ │ ├── for_reassign_post.yul │ │ │ │ ├── for_simple.yul │ │ │ │ ├── for_simpler.yul │ │ │ │ ├── function.yul │ │ │ │ ├── multi_assign.yul │ │ │ │ ├── multi_decl.yul │ │ │ │ ├── nested.yul │ │ │ │ ├── nested_reassign.yul │ │ │ │ ├── notransform.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── switch.yul │ │ │ │ ├── switch_no_default_case.yul │ │ │ │ ├── switch_reassign.yul │ │ │ │ ├── typed.yul │ │ │ │ └── used.yul │ │ │ ├── stackCompressor/ │ │ │ │ ├── inlineInBlock.yul │ │ │ │ ├── inlineInFunction.yul │ │ │ │ ├── noInline.yul │ │ │ │ └── unusedPrunerWithMSize.yul │ │ │ ├── stackLimitEvader/ │ │ │ │ ├── cycle.yul │ │ │ │ ├── cycle_after.yul │ │ │ │ ├── cycle_after_2.yul │ │ │ │ ├── cycle_before.yul │ │ │ │ ├── cycle_before_2.yul │ │ │ │ ├── cycle_before_after.yul │ │ │ │ ├── function_arg.yul │ │ │ │ ├── stub.yul │ │ │ │ ├── too_many_args_14.yul │ │ │ │ ├── too_many_args_15.yul │ │ │ │ ├── too_many_args_16.yul │ │ │ │ ├── too_many_returns_15.yul │ │ │ │ ├── too_many_returns_16.yul │ │ │ │ ├── tree.yul │ │ │ │ ├── verbatim_many_arguments.yul │ │ │ │ ├── verbatim_many_arguments_and_returns.yul │ │ │ │ └── verbatim_many_returns.yul │ │ │ ├── structuralSimplifier/ │ │ │ │ ├── bugfix_visit_after_change.yul │ │ │ │ ├── for_false_condition.yul │ │ │ │ ├── if_false_condition.yul │ │ │ │ ├── if_multi_unassigned_condition.yul │ │ │ │ ├── if_true_condition.yul │ │ │ │ ├── if_unassigned_condition.yul │ │ │ │ ├── nested.yul │ │ │ │ ├── switch_inline.yul │ │ │ │ ├── switch_inline_match_default.yul │ │ │ │ ├── switch_inline_no_match.yul │ │ │ │ ├── switch_inline_no_match_mixed.yul │ │ │ │ └── switch_no_remove_empty_case.yul │ │ │ ├── unusedAssignEliminator/ │ │ │ │ ├── conditionally_assign_before_conditional_revert.yul │ │ │ │ ├── conditionally_assign_before_leave.yul │ │ │ │ ├── conditionally_assign_before_revert.yul │ │ │ │ ├── for.yul │ │ │ │ ├── for_branch.yul │ │ │ │ ├── for_break.yul │ │ │ │ ├── for_continue.yul │ │ │ │ ├── for_continue_2.yul │ │ │ │ ├── for_continue_3.yul │ │ │ │ ├── for_decl_inside_break_continue.yul │ │ │ │ ├── for_deep_noremove.yul │ │ │ │ ├── for_deep_simple.yul │ │ │ │ ├── for_multi_break.yul │ │ │ │ ├── for_nested.yul │ │ │ │ ├── for_rerun.yul │ │ │ │ ├── for_stmnts_after_break_continue.yul │ │ │ │ ├── function.yul │ │ │ │ ├── if.yul │ │ │ │ ├── if_overwrite_all_branches.yul │ │ │ │ ├── if_used_in_one_branch.yul │ │ │ │ ├── leave.yul │ │ │ │ ├── multi_assign.yul │ │ │ │ ├── multivar.yul │ │ │ │ ├── non_movable.yul │ │ │ │ ├── remove_break.yul │ │ │ │ ├── remove_continue.yul │ │ │ │ ├── revert_after_assign_return.yul │ │ │ │ ├── scopes.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── switch_overwrite_in_all.yul │ │ │ │ ├── switch_overwrite_in_one.yul │ │ │ │ ├── switch_overwrite_use_combination.yul │ │ │ │ └── switch_unused.yul │ │ │ ├── unusedFunctionParameterPruner/ │ │ │ │ ├── LiteralRematerialiser.yul │ │ │ │ ├── multiple_param.yul │ │ │ │ ├── multiple_return.yul │ │ │ │ ├── nested_function.yul │ │ │ │ ├── nested_function_name_collision.yul │ │ │ │ ├── no_return.yul │ │ │ │ ├── no_unused.yul │ │ │ │ ├── recursion.yul │ │ │ │ ├── simple.yul │ │ │ │ ├── smoke.yul │ │ │ │ └── too_many_arguments.yul │ │ │ ├── unusedPruner/ │ │ │ │ ├── functions.yul │ │ │ │ ├── intermediate_assignment.yul │ │ │ │ ├── intermediate_multi_assignment.yul │ │ │ │ ├── keccak.yul │ │ │ │ ├── movable_user_defined_function.yul │ │ │ │ ├── msize.yul │ │ │ │ ├── multi_assign.yul │ │ │ │ ├── multi_assignments.yul │ │ │ │ ├── multi_declarations.yul │ │ │ │ ├── multi_declare.yul │ │ │ │ ├── multi_partial_assignments.yul │ │ │ │ ├── no_msize.yul │ │ │ │ ├── pop.yul │ │ │ │ ├── smoke.yul │ │ │ │ ├── transient_storage.yul │ │ │ │ ├── trivial.yul │ │ │ │ └── verbatim.yul │ │ │ ├── unusedStoreEliminator/ │ │ │ │ ├── call_does_not_need_to_write.yul │ │ │ │ ├── covering_calldatacopy.yul │ │ │ │ ├── covering_calldatacopy_fixed.yul │ │ │ │ ├── create.yul │ │ │ │ ├── create_inside_function.yul │ │ │ │ ├── function_end.yul │ │ │ │ ├── function_side_effects.yul │ │ │ │ ├── function_side_effects_2.yul │ │ │ │ ├── if_overwrite_all_branches.yul │ │ │ │ ├── leave.yul │ │ │ │ ├── mcopy_mcopy_no_overlap.yul │ │ │ │ ├── mcopy_mstore_no_overlap.yul │ │ │ │ ├── mcopy_non_overlapping_areas.yul │ │ │ │ ├── mcopy_overlapping_areas.yul │ │ │ │ ├── mcopy_overwriting_mcopy.yul │ │ │ │ ├── mcopy_overwriting_mstore.yul │ │ │ │ ├── mcopy_overwriting_mstore_overlap.yul │ │ │ │ ├── mcopy_reading_mcopy.yul │ │ │ │ ├── mcopy_reading_mstore.yul │ │ │ │ ├── mcopy_reading_mstore8.yul │ │ │ │ ├── mcopy_reading_mstore_overhang.yul │ │ │ │ ├── mcopy_reading_mstore_overlap.yul │ │ │ │ ├── mcopy_reading_mstore_underhang.yul │ │ │ │ ├── mcopy_reading_writing_overlapping_areas_mstore.yul │ │ │ │ ├── mcopy_reading_writing_same_area_mcopy.yul │ │ │ │ ├── mcopy_reading_writing_same_area_mstore.yul │ │ │ │ ├── mcopy_reading_writing_same_area_mstore8.yul │ │ │ │ ├── mcopy_reading_writing_same_area_mstore_overlap.yul │ │ │ │ ├── mcopy_same_area.yul │ │ │ │ ├── mcopy_same_write_area_overwriting_mcopy.yul │ │ │ │ ├── mcopy_sstore.yul │ │ │ │ ├── memoryguard.yul │ │ │ │ ├── mload.yul │ │ │ │ ├── mload_reading_mcopy.yul │ │ │ │ ├── mstore_overwriting_mcopy.yul │ │ │ │ ├── mstore_overwriting_mstore.yul │ │ │ │ ├── no_storage_inside_function.yul │ │ │ │ ├── overflow.yul │ │ │ │ ├── overlapping.yul │ │ │ │ ├── overlapping_small.yul │ │ │ │ ├── remove_before_revert.yul │ │ │ │ ├── returndatacopy_fixed_size.yul │ │ │ │ ├── returndatacopy_returndatasize.yul │ │ │ │ ├── returndatacopy_returndatasize_nonzero_start.yul │ │ │ │ ├── returndatacopy_returndatasize_var.yul │ │ │ │ ├── store_before_conditionally_terminating_function_call.yul │ │ │ │ ├── store_before_conditionally_terminating_function_call_complex_control_flow.yul │ │ │ │ ├── store_before_conditionally_terminating_function_call_revert.yul │ │ │ │ ├── store_before_indirectly_conditionally_terminating_function_call.yul │ │ │ │ ├── store_before_terminating_verbatim_revert.yul │ │ │ │ ├── store_before_unconditionally_terminating_function_call.yul │ │ │ │ ├── tload.yul │ │ │ │ ├── tstore.yul │ │ │ │ ├── unaligned_access.yul │ │ │ │ ├── unknown_length2.yul │ │ │ │ ├── unrelated_relative.yul │ │ │ │ └── write_before_recursion.yul │ │ │ ├── varDeclInitializer/ │ │ │ │ ├── ambiguous.yul │ │ │ │ ├── inside_func.yul │ │ │ │ ├── multi.yul │ │ │ │ ├── multi_assign.yul │ │ │ │ └── simple.yul │ │ │ └── varNameCleaner/ │ │ │ ├── builtins.yul │ │ │ ├── function_names.yul │ │ │ ├── function_parameters.yul │ │ │ ├── function_scopes.yul │ │ │ ├── instructions.yul │ │ │ ├── name_stripping.yul │ │ │ ├── reshuffling-inverse.yul │ │ │ └── reshuffling.yul │ │ ├── yulSSAControlFlowGraph/ │ │ │ ├── complex.yul │ │ │ ├── complex2.yul │ │ │ ├── default_initialized_variable.yul │ │ │ ├── function.yul │ │ │ ├── if.yul │ │ │ ├── if_const.yul │ │ │ ├── nested_for.yul │ │ │ ├── nested_function.yul │ │ │ ├── switch.yul │ │ │ └── switch_const.yul │ │ ├── yulStackLayout/ │ │ │ ├── complex.yul │ │ │ ├── eof/ │ │ │ │ └── function.yul │ │ │ ├── for.yul │ │ │ ├── function.yul │ │ │ ├── if.yul │ │ │ ├── literal_loop.yul │ │ │ ├── stub.yul │ │ │ ├── switch.yul │ │ │ └── variables.yul │ │ ├── yulStackShuffling/ │ │ │ ├── pop_early_to_avoid_swap17.stack │ │ │ ├── swap17.stack │ │ │ └── swap_cycle.stack │ │ └── yulSyntaxTests/ │ │ ├── are_we_perl_yet.yul │ │ ├── assign_from_stack.yul │ │ ├── assignment.yul │ │ ├── assignment_duplicate_vars.yul │ │ ├── assignment_of_function.yul │ │ ├── assignment_to_builtin.yul │ │ ├── assignment_to_number.yul │ │ ├── blobbasefee_identifier_pre_cancun.yul │ │ ├── blobbasefee_reserved_identifier_post_cancun.yul │ │ ├── blobhash.yul │ │ ├── blobhash_pre_cancun.yul │ │ ├── blocks.yul │ │ ├── break_outside_of_for_loop.yul │ │ ├── builtin_function_literal.yul │ │ ├── builtin_identifier_1.yul │ │ ├── builtin_identifier_2.yul │ │ ├── builtin_identifier_3.yul │ │ ├── builtin_identifier_4.yul │ │ ├── builtin_identifier_5.yul │ │ ├── builtin_identifier_6.yul │ │ ├── builtin_identifier_7.yul │ │ ├── builtin_types.yul │ │ ├── byte_of_string_literal.yul │ │ ├── call_literal.yul │ │ ├── clz.yul │ │ ├── clz_pre_osaka.yul │ │ ├── constants.yul │ │ ├── continue_outside_of_for_loop.yul │ │ ├── datacopy_shadowing.yul │ │ ├── dataoffset_shadowing.yul │ │ ├── datasize_shadowing.yul │ │ ├── declaration_duplicate_vars.yul │ │ ├── dot_consecutive_function.yul │ │ ├── dot_consecutive_function_arg.yul │ │ ├── dot_consecutive_function_ret.yul │ │ ├── dot_consecutive_variabledeclaration.yul │ │ ├── dot_ellipse_function.yul │ │ ├── dot_ellipse_function_arg.yul │ │ ├── dot_ellipse_function_ret.yul │ │ ├── dot_ellipse_variabledeclaration.yul │ │ ├── dot_leading_function.yul │ │ ├── dot_leading_function_arg.yul │ │ ├── dot_leading_function_ret.yul │ │ ├── dot_leading_variabledeclaration.yul │ │ ├── dot_middle_function.yul │ │ ├── dot_middle_function_arg.yul │ │ ├── dot_middle_function_ret.yul │ │ ├── dot_middle_variabledeclaration.yul │ │ ├── dot_trailing_function.yul │ │ ├── dot_trailing_function_arg.yul │ │ ├── dot_trailing_function_ret.yul │ │ ├── dot_trailing_variabledeclaration.yul │ │ ├── empty_call.yul │ │ ├── eof/ │ │ │ ├── auxdataloadn_in_eof.yul │ │ │ ├── auxdataloadn_in_eof_invalid_literal_type.yul │ │ │ ├── auxdataloadn_in_eof_invalid_value.yul │ │ │ ├── auxdataloadn_in_eof_offset_too_high.yul │ │ │ ├── auxdataloadn_in_legacy.yul │ │ │ ├── builtin_function_literal.yul │ │ │ ├── call_instruction_in_eof.yul │ │ │ ├── callf_jumpf_retf.yul │ │ │ ├── create2_in_eof.yul │ │ │ ├── datacopy_shadowing.yul │ │ │ ├── dataoffset_shadowing.yul │ │ │ ├── datasize_shadowing.yul │ │ │ ├── eof_identifiers_not_defined_in_legacy.yul │ │ │ ├── eof_identifiers_not_reserved_in_legacy.yul │ │ │ ├── eof_names_reserved_in_eof.yul │ │ │ ├── eof_opcodes_identifiers_reserved_in_eof.yul │ │ │ ├── eofcreate.yul │ │ │ ├── eofcreate_invalid_object.yul │ │ │ ├── eofcreate_invalid_object_name_data.yul │ │ │ ├── eofcreate_invalid_object_name_path.yul │ │ │ ├── extcall_function_in_eof.yul │ │ │ ├── extcalls.yul │ │ │ ├── extcalls_invalid_in_legacy.yul │ │ │ ├── extcodehash_in_eof.yul │ │ │ ├── extdelegatecall_function_in_eof.yul │ │ │ ├── extstaticcall_function_in_eof.yul │ │ │ ├── legacy_calls_in_eof.yul │ │ │ ├── loadimmutable_shadowing.yul │ │ │ ├── object_name_in_eof.yul │ │ │ ├── passing_builtin_with_literal_argument_into_literal_argument.yul │ │ │ ├── returncontract.yul │ │ │ ├── returncontract_invalid_object.yul │ │ │ ├── rjump_rjumpi.yul │ │ │ ├── selfdestruct.yul │ │ │ ├── setimmutable_shadowing.yul │ │ │ ├── too_large_code_section.yul │ │ │ ├── too_many_functions_arguments_or_returns.yul │ │ │ └── too_many_subcontainers.yul │ │ ├── for_expr_invalid_1.yul │ │ ├── for_expr_invalid_2.yul │ │ ├── for_expr_invalid_3.yul │ │ ├── for_expr_invalid_4.yul │ │ ├── for_expr_invalid_5.yul │ │ ├── for_expr_invalid_6.yul │ │ ├── for_loop_condition.yul │ │ ├── for_statement.yul │ │ ├── for_statement_2.yul │ │ ├── for_statement_break.yul │ │ ├── for_statement_break_init.yul │ │ ├── for_statement_break_nested_body_in_init.yul │ │ ├── for_statement_break_nested_body_in_post.yul │ │ ├── for_statement_break_post.yul │ │ ├── for_statement_continue.yul │ │ ├── for_statement_continue_fail_init.yul │ │ ├── for_statement_continue_fail_post.yul │ │ ├── for_statement_continue_nested_body_in_init.yul │ │ ├── for_statement_continue_nested_body_in_post.yul │ │ ├── for_statement_continue_nested_init_in_body.yul │ │ ├── for_statement_nested_break.yul │ │ ├── for_statement_nested_continue.yul │ │ ├── for_visibility_1.yul │ │ ├── for_visibility_2.yul │ │ ├── for_visibility_3.yul │ │ ├── for_visibility_4.yul │ │ ├── for_visibility_5.yul │ │ ├── for_visibility_6.yul │ │ ├── for_visibility_7.yul │ │ ├── for_visibility_8.yul │ │ ├── for_visibility_9.yul │ │ ├── for_visibility_A.yul │ │ ├── for_visibility_B.yul │ │ ├── for_visibility_C.yul │ │ ├── for_visibility_D.yul │ │ ├── for_visibility_E.yul │ │ ├── function_calls.yul │ │ ├── function_calls_2.yul │ │ ├── function_def_multiple_args.yul │ │ ├── function_defined_in_init_block_1.yul │ │ ├── function_defined_in_init_block_2.yul │ │ ├── function_defined_in_init_block_3.yul │ │ ├── function_defined_in_init_nested_1.yul │ │ ├── function_defined_in_init_nested_2.yul │ │ ├── function_defined_in_init_nested_3.yul │ │ ├── function_definition.yul │ │ ├── function_definition_whitespace.yul │ │ ├── function_definitions.yul │ │ ├── function_embedded.yul │ │ ├── function_literal.yul │ │ ├── function_literal_valid.yul │ │ ├── function_shadowing_outside_vars_1.yul │ │ ├── function_shadowing_outside_vars_2.yul │ │ ├── functional.yul │ │ ├── functional_assign_complex.yul │ │ ├── functional_assignment.yul │ │ ├── functional_partial.yul │ │ ├── functional_partial_success.yul │ │ ├── functional_returndatacopy.yul │ │ ├── functions_in_parallel_scopes.yul │ │ ├── functions_multiple_args.yul │ │ ├── hex_assignment.yul │ │ ├── hex_assignment_long.yul │ │ ├── hex_expression.yul │ │ ├── hex_string_literal_non_printable_characters.yul │ │ ├── hex_string_literal_odd.yul │ │ ├── hex_switch_case.yul │ │ ├── hex_switch_case_long.yul │ │ ├── if_statement.yul │ │ ├── if_statement_1.yul │ │ ├── if_statement_2.yul │ │ ├── if_statement_3.yul │ │ ├── if_statement_fail_1.yul │ │ ├── if_statement_fail_2.yul │ │ ├── if_statement_invalid_1.yul │ │ ├── if_statement_invalid_2.yul │ │ ├── if_statement_invalid_3.yul │ │ ├── if_statement_invalid_4.yul │ │ ├── if_statement_scope_1.yul │ │ ├── if_statement_scope_2.yul │ │ ├── instructions.yul │ │ ├── instructions_too_few_args_1.yul │ │ ├── instructions_too_few_args_2.yul │ │ ├── instructions_too_many_args.yul │ │ ├── invalid/ │ │ │ ├── builtin_name_as_type.yul │ │ │ ├── clash_with_non_reserved_pure_yul_builtin.yul │ │ │ ├── clash_with_reserved_builtin.yul │ │ │ ├── clash_with_reserved_non_builtin.yul │ │ │ ├── clash_with_reserved_pure_yul_builtin.yul │ │ │ ├── clash_with_reserved_pure_yul_builtin_eof.yul │ │ │ ├── dup_disallowed.yul │ │ │ ├── invalid_octal_number.yul │ │ │ ├── jump_disallowed.yul │ │ │ ├── jumpdest_disallowed.yul │ │ │ ├── jumpi_disallowed.yul │ │ │ ├── label_disallowed.yul │ │ │ ├── leave_items_on_stack.yul │ │ │ ├── leave_items_on_stack_with_debug_info.yul │ │ │ ├── literals_on_stack_disallowed.yul │ │ │ ├── literals_on_stack_disallowed_with_debug_info.yul │ │ │ ├── pc_disallowed.yul │ │ │ ├── push0_disallowed.yul │ │ │ ├── push_disallowed.yul │ │ │ ├── reserved_identifier_as_type.yul │ │ │ ├── swap_disallowed.yul │ │ │ ├── unicode_comment_direction_override.yul │ │ │ ├── unicode_string_direction_override.yul │ │ │ ├── verbatim_empty_string.yul │ │ │ ├── verbatim_leading_zero.yul │ │ │ ├── verbatim_reserved.yul │ │ │ └── verbatim_reserved2.yul │ │ ├── invalid_tuple_assignment.yul │ │ ├── invalid_tuple_assignment_with_debug_info.yul │ │ ├── invalid_type.yul │ │ ├── invalid_type2.yul │ │ ├── invalid_type3.yul │ │ ├── invalid_type4.yul │ │ ├── keywords.yul │ │ ├── linkersymbol_bad_literal.yul │ │ ├── linkersymbol_evm.yul │ │ ├── linkersymbol_invalid_redefine_builtin.yul │ │ ├── linkersymbol_non_literal_args.yul │ │ ├── linkersymbol_shadowing.yul │ │ ├── literal_invalid_type.yul │ │ ├── loadimmutable.yul │ │ ├── loadimmutable_bad_literal.yul │ │ ├── loadimmutable_shadowing.yul │ │ ├── loadimmutable_without_setimmutable.yul │ │ ├── mcopy.yul │ │ ├── mcopy_as_identifier.yul │ │ ├── mcopy_as_identifier_pre_cancun.yul │ │ ├── mcopy_pre_cancun.yul │ │ ├── mcopy_wrong_args.yul │ │ ├── metadata_access.yul │ │ ├── metadata_access_2.yul │ │ ├── metadata_access_subobject.yul │ │ ├── more_than_256_analysis_errors.yul │ │ ├── multiple_assignment_1.yul │ │ ├── multiple_assignment_2.yul │ │ ├── multiple_assignment_3.yul │ │ ├── name_clash_function_var_subscope.yul │ │ ├── name_clash_function_var_subscope_reverse.yul │ │ ├── name_clash_sub_scope.yul │ │ ├── name_clash_sub_scope_reverse.yul │ │ ├── name_clash_sub_scope_with_debug_info.yul │ │ ├── name_clashes.yul │ │ ├── number_literal_1.yul │ │ ├── number_literal_2.yul │ │ ├── number_literal_3.yul │ │ ├── number_literal_4.yul │ │ ├── number_literal_5.yul │ │ ├── number_literals_1.yul │ │ ├── number_literals_2.yul │ │ ├── number_literals_3.yul │ │ ├── number_literals_4.yul │ │ ├── number_literals_5.yul │ │ ├── objects/ │ │ │ ├── basic_subobject.yul │ │ │ ├── code.yul │ │ │ ├── code_without_object.yul │ │ │ ├── complex_subobject.yul │ │ │ ├── conflict_data_data.yul │ │ │ ├── conflict_data_parent.yul │ │ │ ├── conflict_object_data.yul │ │ │ ├── conflict_object_object.yul │ │ │ ├── conflict_object_parent.yul │ │ │ ├── data.yul │ │ │ ├── data_access.yul │ │ │ ├── data_first.yul │ │ │ ├── data_hex_name.yul │ │ │ ├── data_invalid_hex1.yul │ │ │ ├── data_invalid_hex2.yul │ │ │ ├── data_name_with_literal_newline.yul │ │ │ ├── data_name_with_special_chars.yul │ │ │ ├── datacopy.yul │ │ │ ├── dataoffset_nonliteral.yul │ │ │ ├── dataoffset_nonstring.yul │ │ │ ├── dataoffset_notfound.yul │ │ │ ├── datasize_nonliteral.yul │ │ │ ├── datasize_nonstring.yul │ │ │ ├── datasize_notfound.yul │ │ │ ├── empty_code.yul │ │ │ ├── empty_data.yul │ │ │ ├── empty_object.yul │ │ │ ├── empty_object_name.yul │ │ │ ├── incomplete1.yul │ │ │ ├── incomplete2.yul │ │ │ ├── multiple_code.yul │ │ │ ├── multiple_data.yul │ │ │ ├── multiple_root_object.yul │ │ │ ├── nested_object.yul │ │ │ ├── object_hex_name.yul │ │ │ ├── object_name_with_all_special_chars.yul │ │ │ ├── object_name_with_special_chars.yul │ │ │ ├── subobject_access.yul │ │ │ ├── subobject_first.yul │ │ │ └── subobject_hex_name.yul │ │ ├── opcode_for_function_args_1.yul │ │ ├── opcode_for_function_args_2.yul │ │ ├── opcode_for_functions.yul │ │ ├── optional_types.yul │ │ ├── passing_builtin_with_literal_argument_into_literal_argument.yul │ │ ├── period_in_identifier.yul │ │ ├── period_in_identifier_spaced_1.yul │ │ ├── period_in_identifier_spaced_2.yul │ │ ├── period_in_identifier_spaced_3.yul │ │ ├── period_in_identifier_start.yul │ │ ├── period_in_identifier_start_with_comment.yul │ │ ├── period_not_as_identifier_start.yul │ │ ├── push.yul │ │ ├── recursion_depth.yul │ │ ├── selfdestruct.yul │ │ ├── setimmutable.yul │ │ ├── setimmutable_bad_literal.yul │ │ ├── setimmutable_shadowing.yul │ │ ├── simple_functions.yul │ │ ├── simple_instructions.yul │ │ ├── smoke.yul │ │ ├── smoke_test.yul │ │ ├── solidity_keywords.yul │ │ ├── string_literal_switch_case.yul │ │ ├── string_literal_too_long.yul │ │ ├── string_literal_too_long_byte.yul │ │ ├── string_literal_too_long_immutable.yul │ │ ├── string_literal_too_long_linkersymbol.yul │ │ ├── surplus_input.yul │ │ ├── switch_case.yul │ │ ├── switch_case_different_literal.yul │ │ ├── switch_case_string_literal_too_long.yul │ │ ├── switch_case_string_literal_very_long.yul │ │ ├── switch_default_before_case.yul │ │ ├── switch_duplicate_case.yul │ │ ├── switch_duplicate_case_different_literal.yul │ │ ├── switch_duplicate_default.yul │ │ ├── switch_invalid_body.yul │ │ ├── switch_invalid_case.yul │ │ ├── switch_invalid_expr_1.yul │ │ ├── switch_invalid_expr_2.yul │ │ ├── switch_invalid_expr_3.yul │ │ ├── switch_statement_1.yul │ │ ├── switch_statement_2.yul │ │ ├── switch_statement_duplicate_case.yul │ │ ├── switch_statement_no_access.yul │ │ ├── tload_as_identifier_post_cancun.yul │ │ ├── token_as_identifier.yul │ │ ├── tstore_as_identifier_post_cancun.yul │ │ ├── tstore_tload.yul │ │ ├── tstore_tload_as_identifiers_pre_cancun.yul │ │ ├── tstore_warning_only_once.yul │ │ ├── tuple_assignment.yul │ │ ├── user_defined_functions_fail.yul │ │ ├── user_defined_functions_fine.yul │ │ ├── vardecl.yul │ │ ├── vardecl_bool.yul │ │ ├── vardecl_complex.yul │ │ ├── vardecl_empty.yul │ │ ├── vardecl_multi.yul │ │ ├── vardecl_multi_conflict.yul │ │ ├── vardecl_name_clashes.yul │ │ ├── variable_access_cross_funcs.yul │ │ ├── variable_declaration.yul │ │ ├── variable_declaration_bool.yul │ │ ├── variable_declaration_complex.yul │ │ ├── variable_declaration_empty.yul │ │ ├── variable_use_before_decl_1.yul │ │ ├── variable_use_before_decl_2.yul │ │ └── verbatim_leading_zero.yul │ ├── localeTest.sh │ ├── lsp.py │ ├── pyscriptTests.py │ ├── scripts/ │ │ ├── fixtures/ │ │ │ ├── code_block.rst │ │ │ ├── code_block_with_directives.rst │ │ │ ├── code_generation_error_cli_output.txt │ │ │ ├── code_generation_error_json_output.json │ │ │ ├── eth_gas_report_gnosis.rst │ │ │ ├── library_inherited2_sol_cli_output.txt │ │ │ ├── library_inherited2_sol_json_output.json │ │ │ ├── smt_contract_with_cr_newlines.sol │ │ │ ├── smt_contract_with_crlf_newlines.sol │ │ │ ├── smt_contract_with_lf_newlines.sol │ │ │ ├── smt_contract_with_mixed_newlines.sol │ │ │ ├── smt_smoke_test.sol │ │ │ ├── solc_0.4.0_cli_output.txt │ │ │ ├── solc_0.4.8_cli_output.txt │ │ │ ├── stack_too_deep_cli_output.txt │ │ │ ├── stack_too_deep_json_output.json │ │ │ ├── summarized-benchmark-diff-develop-branch-humanized.md │ │ │ ├── summarized-benchmarks-branch.json │ │ │ ├── summarized-benchmarks-develop.json │ │ │ ├── unimplemented_feature_cli_output.txt │ │ │ ├── unimplemented_feature_json_output.json │ │ │ ├── unknown_pragma_sol_cli_output.txt │ │ │ └── unknown_pragma_sol_json_output.json │ │ ├── test_bytecodecompare_prepare_report.py │ │ ├── test_externalTests_benchmark_diff.py │ │ ├── test_externalTests_benchmark_downloader.py │ │ ├── test_externalTests_parse_eth_gas_report.py │ │ ├── test_gas_diff_stats.py │ │ ├── test_isolate_tests.py │ │ └── unittest_helpers.py │ ├── solc/ │ │ ├── CommandLineInterface.cpp │ │ ├── CommandLineInterfaceAllowPaths.cpp │ │ ├── CommandLineParser.cpp │ │ ├── Common.cpp │ │ └── Common.h │ ├── soltest.cpp │ ├── stopAfterParseTests.sh │ ├── tools/ │ │ ├── CMakeLists.txt │ │ ├── IsolTestOptions.cpp │ │ ├── IsolTestOptions.h │ │ ├── afl_fuzzer.cpp │ │ ├── fuzzer_common.cpp │ │ ├── fuzzer_common.h │ │ ├── isoltest.cpp │ │ ├── ossfuzz/ │ │ │ ├── AbiV2IsabelleFuzzer.cpp │ │ │ ├── CMakeLists.txt │ │ │ ├── Generators.h │ │ │ ├── README.md │ │ │ ├── SolidityCustomMutatorInterface.cpp │ │ │ ├── SolidityCustomMutatorInterface.h │ │ │ ├── SolidityEvmoneInterface.cpp │ │ │ ├── SolidityEvmoneInterface.h │ │ │ ├── SolidityGenerator.cpp │ │ │ ├── SolidityGenerator.h │ │ │ ├── StackReuseCodegenFuzzer.cpp │ │ │ ├── YulEvmoneInterface.cpp │ │ │ ├── YulEvmoneInterface.h │ │ │ ├── abiV2Proto.proto │ │ │ ├── abiV2ProtoFuzzer.cpp │ │ │ ├── config/ │ │ │ │ ├── solc_noopt_ossfuzz.options │ │ │ │ ├── solc_opt_ossfuzz.options │ │ │ │ ├── solidity.dict │ │ │ │ ├── strict_assembly.dict │ │ │ │ ├── strictasm_assembly_ossfuzz.options │ │ │ │ └── strictasm_opt_ossfuzz.options │ │ │ ├── const_opt_ossfuzz.cpp │ │ │ ├── protoToAbiV2.cpp │ │ │ ├── protoToAbiV2.h │ │ │ ├── protoToSol.cpp │ │ │ ├── protoToSol.h │ │ │ ├── protoToYul.cpp │ │ │ ├── protoToYul.h │ │ │ ├── protomutators/ │ │ │ │ ├── YulProtoMutator.cpp │ │ │ │ └── YulProtoMutator.h │ │ │ ├── solProto.proto │ │ │ ├── solProtoFuzzer.cpp │ │ │ ├── solc_ossfuzz.cpp │ │ │ ├── strictasm_assembly_ossfuzz.cpp │ │ │ ├── strictasm_diff_ossfuzz.cpp │ │ │ ├── strictasm_opt_ossfuzz.cpp │ │ │ ├── yulFuzzerCommon.cpp │ │ │ ├── yulFuzzerCommon.h │ │ │ ├── yulOptimizerFuzzDictionary.h │ │ │ ├── yulProto.proto │ │ │ ├── yulProtoFuzzer.cpp │ │ │ └── yulProto_diff_ossfuzz.cpp │ │ ├── yulInterpreter/ │ │ │ ├── CMakeLists.txt │ │ │ ├── EVMInstructionInterpreter.cpp │ │ │ ├── EVMInstructionInterpreter.h │ │ │ ├── Inspector.cpp │ │ │ ├── Inspector.h │ │ │ ├── Interpreter.cpp │ │ │ └── Interpreter.h │ │ ├── yulopti.cpp │ │ └── yulrun.cpp │ └── yulPhaser/ │ ├── AlgorithmRunner.cpp │ ├── Chromosome.cpp │ ├── Common.cpp │ ├── FitnessMetrics.cpp │ ├── GeneticAlgorithms.cpp │ ├── Mutations.cpp │ ├── PairSelections.cpp │ ├── Phaser.cpp │ ├── Population.cpp │ ├── Program.cpp │ ├── ProgramCache.cpp │ ├── Selections.cpp │ ├── SimulationRNG.cpp │ ├── TestHelpers.cpp │ ├── TestHelpers.h │ └── TestHelpersTest.cpp └── tools/ ├── CMakeLists.txt └── yulPhaser/ ├── AlgorithmRunner.cpp ├── AlgorithmRunner.h ├── Chromosome.cpp ├── Chromosome.h ├── Common.cpp ├── Common.h ├── Exceptions.h ├── FitnessMetrics.cpp ├── FitnessMetrics.h ├── GeneticAlgorithms.cpp ├── GeneticAlgorithms.h ├── Mutations.cpp ├── Mutations.h ├── PairSelections.cpp ├── PairSelections.h ├── Phaser.cpp ├── Phaser.h ├── Population.cpp ├── Population.h ├── Program.cpp ├── Program.h ├── ProgramCache.cpp ├── ProgramCache.h ├── README.md ├── Selections.cpp ├── Selections.h ├── SimulationRNG.cpp ├── SimulationRNG.h └── main.cpp