├── .circleci
├── README.md
├── build_win.ps1
├── config.yml
├── osx_install_dependencies.sh
├── soltest.ps1
├── soltest.sh
└── soltest_all.sh
├── .clang-format
├── .cproject
├── .dockerignore
├── .editorconfig
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── feature_request.md
│ └── general.md
└── workflows
│ └── buildpack-deps.yml
├── .gitignore
├── .project
├── .settings
├── org.eclipse.cdt.core.prefs
└── org.eclipse.cdt.ui.prefs
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CODING_STYLE.md
├── CONTRIBUTING.md
├── Changelog.md
├── LICENSE.txt
├── README.md
├── ReleaseChecklist.md
├── SECURITY.md
├── SMACK-LICENSE
├── SOLC-VERIFY-README.md
├── cmake
├── EthBuildInfo.cmake
├── EthCcache.cmake
├── EthCheckCXXCompilerFlag.cmake
├── EthCompilerSettings.cmake
├── EthDependencies.cmake
├── EthOptions.cmake
├── EthPolicy.cmake
├── EthToolchains.cmake
├── EthUtils.cmake
├── FindCLN.cmake
├── FindCVC4.cmake
├── FindGMP.cmake
├── FindZ3.cmake
├── jsoncpp.cmake
├── scripts
│ └── buildinfo.cmake
├── templates
│ ├── BuildInfo.h.in
│ ├── ewasm_polyfill.in
│ └── license.h.in
└── toolchains
│ ├── default.cmake
│ ├── emscripten.cmake
│ ├── libfuzzer.cmake
│ └── ossfuzz.cmake
├── codecov.yml
├── docker
├── Dockerfile-solcverify-local.src
├── Dockerfile-solcverify.src
├── README.md
└── runsv.sh
├── docs
├── 050-breaking-changes.rst
├── 060-breaking-changes.rst
├── 070-breaking-changes.rst
├── Makefile
├── _static
│ ├── css
│ │ ├── custom.css
│ │ ├── dark.css
│ │ └── toggle.css
│ └── js
│ │ └── toggle.js
├── _templates
│ ├── layout.html
│ └── versions.html
├── abi-spec.rst
├── assembly.rst
├── brand-guide.rst
├── bugs.json
├── bugs.rst
├── bugs_by_version.json
├── cheatsheet.rst
├── common-patterns.rst
├── conf.py
├── contracts.rst
├── contracts
│ ├── abstract-contracts.rst
│ ├── constant-state-variables.rst
│ ├── creating-contracts.rst
│ ├── events.rst
│ ├── function-modifiers.rst
│ ├── functions.rst
│ ├── inheritance.rst
│ ├── interfaces.rst
│ ├── libraries.rst
│ ├── using-for.rst
│ └── visibility-and-getters.rst
├── contributing.rst
├── control-structures.rst
├── examples
│ ├── blind-auction.rst
│ ├── micropayment.rst
│ ├── modular.rst
│ ├── safe-remote.rst
│ └── voting.rst
├── grammar.rst
├── grammar
│ ├── Solidity.g4
│ └── SolidityLexer.g4
├── index.rst
├── installing-solidity.rst
├── internals
│ ├── layout_in_calldata.rst
│ ├── layout_in_memory.rst
│ ├── layout_in_storage.rst
│ ├── optimiser.rst
│ ├── source_mappings.rst
│ └── variable_cleanup.rst
├── introduction-to-smart-contracts.rst
├── ir
│ └── ir-breaking-changes.rst
├── layout-of-source-files.rst
├── logo.svg
├── make.bat
├── metadata.rst
├── natspec-format.rst
├── requirements.txt
├── resources.rst
├── security-considerations.rst
├── solidity-by-example.rst
├── structure-of-a-contract.rst
├── style-guide.rst
├── types.rst
├── types
│ ├── conversion.rst
│ ├── mapping-types.rst
│ ├── operators.rst
│ ├── reference-types.rst
│ └── value-types.rst
├── units-and-global-variables.rst
├── using-the-compiler.rst
└── yul.rst
├── libevmasm
├── 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
├── Exceptions.h
├── ExpressionClasses.cpp
├── ExpressionClasses.h
├── GasMeter.cpp
├── GasMeter.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
├── liblangutil
├── CMakeLists.txt
├── CharStream.cpp
├── CharStream.h
├── Common.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
├── SourceReferenceFormatterHuman.cpp
├── SourceReferenceFormatterHuman.h
├── Token.cpp
├── Token.h
└── UndefMacros.h
├── libsmtutil
├── CHCSmtLib2Interface.cpp
├── CHCSmtLib2Interface.h
├── CHCSolverInterface.h
├── CMakeLists.txt
├── CVC4Interface.cpp
├── CVC4Interface.h
├── Exceptions.h
├── Helpers.h
├── SMTLib2Interface.cpp
├── SMTLib2Interface.h
├── SMTPortfolio.cpp
├── SMTPortfolio.h
├── SolverInterface.h
├── Sorts.cpp
├── Sorts.h
├── Z3CHCInterface.cpp
├── Z3CHCInterface.h
├── Z3Interface.cpp
├── Z3Interface.h
├── Z3Loader.cpp
├── Z3Loader.h
└── genz3wrapper.py
├── 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
│ ├── DeclarationContainer.cpp
│ ├── DeclarationContainer.h
│ ├── DeclarationTypeChecker.cpp
│ ├── DeclarationTypeChecker.h
│ ├── DocStringAnalyser.cpp
│ ├── DocStringAnalyser.h
│ ├── DocStringTagParser.cpp
│ ├── DocStringTagParser.h
│ ├── GlobalContext.cpp
│ ├── GlobalContext.h
│ ├── ImmutableValidator.cpp
│ ├── ImmutableValidator.h
│ ├── NameAndTypeResolver.cpp
│ ├── NameAndTypeResolver.h
│ ├── OverrideChecker.cpp
│ ├── OverrideChecker.h
│ ├── PostTypeChecker.cpp
│ ├── PostTypeChecker.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
│ ├── ASTJsonConverter.cpp
│ ├── ASTJsonConverter.h
│ ├── ASTJsonImporter.cpp
│ ├── ASTJsonImporter.h
│ ├── ASTUtils.cpp
│ ├── ASTUtils.h
│ ├── ASTVisitor.h
│ ├── AST_accept.h
│ ├── ExperimentalFeatures.h
│ ├── TypeProvider.cpp
│ ├── TypeProvider.h
│ ├── Types.cpp
│ └── Types.h
├── boogie
│ ├── ASTBoogieConverter.cpp
│ ├── ASTBoogieConverter.h
│ ├── ASTBoogieExpressionConverter.cpp
│ ├── ASTBoogieExpressionConverter.h
│ ├── ASTBoogieStats.cpp
│ ├── ASTBoogieStats.h
│ ├── ASTBoogieUtils.cpp
│ ├── ASTBoogieUtils.h
│ ├── AssignHelper.cpp
│ ├── AssignHelper.h
│ ├── BoogieAst.cpp
│ ├── BoogieAst.h
│ ├── BoogieAstDecl.cpp
│ ├── BoogieAstDecl.h
│ ├── BoogieAstExpr.cpp
│ ├── BoogieAstExpr.h
│ ├── BoogieAstStmt.cpp
│ ├── BoogieAstStmt.h
│ ├── BoogieContext.cpp
│ ├── BoogieContext.h
│ ├── EmitsChecker.cpp
│ ├── EmitsChecker.h
│ ├── StoragePtrHelper.cpp
│ └── StoragePtrHelper.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
├── formal
│ ├── ArraySlicePredicate.cpp
│ ├── ArraySlicePredicate.h
│ ├── BMC.cpp
│ ├── BMC.h
│ ├── CHC.cpp
│ ├── CHC.h
│ ├── EncodingContext.cpp
│ ├── EncodingContext.h
│ ├── ModelChecker.cpp
│ ├── ModelChecker.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
│ ├── VariableUsage.cpp
│ └── VariableUsage.h
├── interface
│ ├── ABI.cpp
│ ├── ABI.h
│ ├── CompilerStack.cpp
│ ├── CompilerStack.h
│ ├── DebugSettings.h
│ ├── GasEstimator.cpp
│ ├── GasEstimator.h
│ ├── Natspec.cpp
│ ├── Natspec.h
│ ├── OptimiserSettings.h
│ ├── ReadFile.h
│ ├── StandardCompiler.cpp
│ ├── StandardCompiler.h
│ ├── StorageLayout.cpp
│ ├── StorageLayout.h
│ ├── Version.cpp
│ └── Version.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
├── Exceptions.cpp
├── Exceptions.h
├── FixedHash.h
├── FunctionSelector.h
├── IndentedWriter.cpp
├── IndentedWriter.h
├── InvertibleMap.h
├── IpfsHash.cpp
├── IpfsHash.h
├── JSON.cpp
├── JSON.h
├── Keccak256.cpp
├── Keccak256.h
├── LEB128.h
├── LazyInit.h
├── Result.h
├── SetOnce.h
├── StringUtils.cpp
├── StringUtils.h
├── SwarmHash.cpp
├── SwarmHash.h
├── UTF8.cpp
├── UTF8.h
├── Visitor.h
├── Whiskers.cpp
├── Whiskers.h
├── picosha2.h
└── vector_ref.h
├── libyul
├── AST.h
├── ASTForward.h
├── AsmAnalysis.cpp
├── AsmAnalysis.h
├── AsmAnalysisInfo.h
├── AsmJsonConverter.cpp
├── AsmJsonConverter.h
├── AsmJsonImporter.cpp
├── AsmJsonImporter.h
├── AsmParser.cpp
├── AsmParser.h
├── AsmPrinter.cpp
├── AsmPrinter.h
├── AsmScope.cpp
├── AsmScope.h
├── AsmScopeFiller.cpp
├── AsmScopeFiller.h
├── AssemblyStack.cpp
├── AssemblyStack.h
├── CMakeLists.txt
├── CompilabilityChecker.cpp
├── CompilabilityChecker.h
├── ControlFlowSideEffects.h
├── Dialect.cpp
├── Dialect.h
├── Exceptions.h
├── Object.cpp
├── Object.h
├── ObjectParser.cpp
├── ObjectParser.h
├── SideEffects.h
├── Utilities.cpp
├── Utilities.h
├── YulString.h
├── backends
│ ├── evm
│ │ ├── AbstractAssembly.h
│ │ ├── AsmCodeGen.cpp
│ │ ├── AsmCodeGen.h
│ │ ├── ConstantOptimiser.cpp
│ │ ├── ConstantOptimiser.h
│ │ ├── EVMAssembly.cpp
│ │ ├── EVMAssembly.h
│ │ ├── EVMCodeTransform.cpp
│ │ ├── EVMCodeTransform.h
│ │ ├── EVMDialect.cpp
│ │ ├── EVMDialect.h
│ │ ├── EVMMetrics.cpp
│ │ ├── EVMMetrics.h
│ │ ├── EVMObjectCompiler.cpp
│ │ ├── EVMObjectCompiler.h
│ │ ├── NoOutputAssembly.cpp
│ │ └── NoOutputAssembly.h
│ └── wasm
│ │ ├── BinaryTransform.cpp
│ │ ├── BinaryTransform.h
│ │ ├── EVMToEwasmTranslator.cpp
│ │ ├── EVMToEwasmTranslator.h
│ │ ├── TextTransform.cpp
│ │ ├── TextTransform.h
│ │ ├── WasmAST.h
│ │ ├── WasmCodeTransform.cpp
│ │ ├── WasmCodeTransform.h
│ │ ├── WasmDialect.cpp
│ │ ├── WasmDialect.h
│ │ ├── WasmObjectCompiler.cpp
│ │ ├── WasmObjectCompiler.h
│ │ ├── WordSizeTransform.cpp
│ │ ├── WordSizeTransform.h
│ │ └── polyfill
│ │ ├── Arithmetic.yul
│ │ ├── Bitwise.yul
│ │ ├── Comparison.yul
│ │ ├── Conversion.yul
│ │ ├── Interface.yul
│ │ ├── Keccak.yul
│ │ ├── Logical.yul
│ │ └── Memory.yul
└── 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
│ ├── 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
│ ├── InlinableExpressionFunctionFinder.cpp
│ ├── InlinableExpressionFunctionFinder.h
│ ├── KnowledgeBase.cpp
│ ├── KnowledgeBase.h
│ ├── LoadResolver.cpp
│ ├── LoadResolver.h
│ ├── LoopInvariantCodeMotion.cpp
│ ├── LoopInvariantCodeMotion.h
│ ├── MainFunction.cpp
│ ├── MainFunction.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
│ ├── ReasoningBasedSimplifier.cpp
│ ├── ReasoningBasedSimplifier.h
│ ├── RedundantAssignEliminator.cpp
│ ├── RedundantAssignEliminator.h
│ ├── 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
│ ├── TypeInfo.cpp
│ ├── TypeInfo.h
│ ├── UnusedFunctionParameterPruner.cpp
│ ├── UnusedFunctionParameterPruner.h
│ ├── UnusedFunctionsCommon.cpp
│ ├── UnusedFunctionsCommon.h
│ ├── UnusedPruner.cpp
│ ├── UnusedPruner.h
│ ├── VarDeclInitializer.cpp
│ ├── VarDeclInitializer.h
│ ├── VarNameCleaner.cpp
│ └── VarNameCleaner.h
├── scripts
├── ASTImportTest.sh
├── Dockerfile
├── Dockerfile_alpine
├── build.sh
├── build_emscripten.sh
├── bytecodecompare
│ ├── deploy_key.enc
│ ├── prepare_report.py
│ └── storebytecode.sh
├── check_style.sh
├── check_symlinks.sh
├── chk_shellscripts
│ ├── chk_shellscripts.sh
│ └── ignore.txt
├── ci
│ ├── build.sh
│ ├── build_emscripten.sh
│ ├── build_ossfuzz.sh
│ ├── buildpack-deps_test_emscripten.sh
│ ├── buildpack-deps_test_ubuntu1604.clang.ossfuzz.sh
│ ├── buildpack-deps_test_ubuntu1804.sh
│ ├── buildpack-deps_test_ubuntu2004.clang.sh
│ ├── buildpack-deps_test_ubuntu2004.sh
│ └── docker_upgrade.sh
├── codespell_whitelist.txt
├── common.sh
├── common_cmdline.sh
├── create_source_tarball.sh
├── deps-ppa
│ └── static_z3.sh
├── docker
│ └── buildpack-deps
│ │ ├── Dockerfile.emscripten
│ │ ├── Dockerfile.ubuntu1604.clang.ossfuzz
│ │ ├── Dockerfile.ubuntu2004
│ │ ├── Dockerfile.ubuntu2004.clang
│ │ ├── README.md
│ │ └── emscripten.jam
├── docker_deploy_manual.sh
├── docs.sh
├── docs_version_pragma_check.sh
├── download_ossfuzz_corpus.sh
├── endToEndExtraction
│ ├── create_traces.sh
│ ├── remove-testcases.py
│ └── verify-testcases.py
├── error_codes.py
├── extract_test_cases.py
├── fix_homebrew_paths_in_standalone_zip.py
├── get_nightly_version.sh
├── get_version.sh
├── install_cmake.sh
├── install_deps.bat
├── install_deps.cmake
├── install_deps.ps1
├── install_deps.sh
├── install_evmone.ps1
├── install_obsolete_jsoncpp_1_7_4.sh
├── install_solc_verify_deps.sh
├── install_static_z3.sh
├── isolate_tests.py
├── isoltest.sh
├── pylint_all.py
├── pylintrc
├── regressions.py
├── release.bat
├── release.sh
├── release_ppa.sh
├── report_errors.sh
├── run_proofs.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
├── main.cpp
└── solc-verify.py
├── test
├── .solhint.json
├── .solhintignore
├── CMakeLists.txt
├── Common.cpp
├── Common.h
├── CommonSyntaxTest.cpp
├── CommonSyntaxTest.h
├── EVMHost.cpp
├── EVMHost.h
├── ExecutionFramework.cpp
├── ExecutionFramework.h
├── InteractiveTests.h
├── Metadata.cpp
├── Metadata.h
├── TestCase.cpp
├── TestCase.h
├── TestCaseReader.cpp
├── TestCaseReader.h
├── boostTest.cpp
├── buglistTests.js
├── buglist_test_vectors.md
├── cmdlineTests.sh
├── cmdlineTests
│ ├── abiencoderv2_no_warning
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ ├── input.sol
│ │ └── output
│ ├── ast_json_import_wrong_evmVersion
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.sol
│ ├── combined_json_generated_sources
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ ├── input.sol
│ │ └── output
│ ├── dup_opt_peephole
│ │ ├── args
│ │ ├── err
│ │ ├── input.sol
│ │ └── output
│ ├── error_codes
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.sol
│ ├── evm_to_wasm
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── evm_to_wasm_break
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── evm_to_wasm_unsupported_translation
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ ├── input.yul
│ │ └── output
│ ├── exp_base_literal
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ ├── input.sol
│ │ └── output
│ ├── ir_compiler_inheritance_nosubobjects
│ │ ├── args
│ │ ├── input.sol
│ │ └── output
│ ├── ir_compiler_subobjects
│ │ ├── args
│ │ ├── err
│ │ ├── input.sol
│ │ └── output
│ ├── ir_with_assembly_no_memoryguard_creation
│ │ ├── args
│ │ ├── input.sol
│ │ └── output
│ ├── ir_with_assembly_no_memoryguard_runtime
│ │ ├── args
│ │ ├── input.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
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── linking_strict_assembly_duplicate_library_name
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.yul
│ ├── linking_strict_assembly_no_file_name_in_link_reference
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── linking_strict_assembly_same_library_name_different_files
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── linking_strict_assembly_same_library_name_different_files_in_link_references
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── linking_strict_assembly_unresolved_references
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── message_format
│ │ ├── err
│ │ └── input.sol
│ ├── message_format_utf8
│ │ ├── 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
│ │ ├── 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
│ ├── object_compiler
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ ├── input.yul
│ │ └── output
│ ├── optimizer_BlockDeDuplicator
│ │ ├── args
│ │ ├── err
│ │ ├── input.sol
│ │ └── output
│ ├── optimizer_array_sload
│ │ ├── args
│ │ ├── input.sol
│ │ └── output
│ ├── optimizer_user_yul
│ │ ├── args
│ │ ├── input.sol
│ │ └── output
│ ├── output_selection_all_A1
│ │ ├── input.json
│ │ └── output.json
│ ├── output_selection_all_A2
│ │ ├── input.json
│ │ └── output.json
│ ├── output_selection_all_blank
│ │ ├── input.json
│ │ └── output.json
│ ├── output_selection_all_star
│ │ ├── input.json
│ │ └── output.json
│ ├── output_selection_single_A1
│ │ ├── input.json
│ │ └── output.json
│ ├── output_selection_single_B1
│ │ ├── input.json
│ │ └── output.json
│ ├── output_selection_single_all
│ │ ├── input.json
│ │ └── output.json
│ ├── recovery_ast_constructor
│ │ ├── args
│ │ ├── err
│ │ ├── input.sol
│ │ └── output
│ ├── recovery_ast_empty_contract
│ │ ├── args
│ │ ├── err
│ │ └── input.sol
│ ├── recovery_standard_json
│ │ ├── input.json
│ │ └── output.json
│ ├── require_overload
│ │ ├── err
│ │ ├── exit
│ │ └── input.sol
│ ├── standard_default_success
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_empty_file_name
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_ewasm_requested
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_ewasm_requested_abstract
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_file_not_found
│ │ ├── args
│ │ ├── err
│ │ └── exit
│ ├── standard_generatedSources
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_immutable_references
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_irOptimized_requested
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_ir_requested
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_method_identifiers_requested
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_missing_key_useLiteralContent
│ │ ├── exit
│ │ ├── 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_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_only_ast_requested
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_generatedSources
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_invalid_detail_type
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_invalid_details
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_no_yul
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yul
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails_no_object
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails_optimiserSteps
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails_optimiserSteps_invalid_abbreviation
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails_optimiserSteps_invalid_nesting
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails_optimiserSteps_type
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails_optimiserSteps_unbalanced_bracket
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_optimizer_yulDetails_without_yul
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_secondary_source_location
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_viair_requested
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_key_auxiliary_input
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_key_metadata
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_key_optimizer
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_key_root
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_key_settings
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_key_source
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_auxiliary_input
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_auxiliary_input_smtlib2responses
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_auxiliary_input_smtlib2responses_member
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_metadata
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_optimizer
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_output_selection
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_output_selection_contract
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_output_selection_file
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_output_selection_output
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_remappings
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_remappings_entry
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_root
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_settings
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_source
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_sources
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_wrong_type_useLiteralContent
│ │ ├── exit
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_yul
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_yul_embedded_object_name
│ │ ├── input.json
│ │ └── output.json
│ ├── standard_yul_invalid_object_name
│ │ ├── 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
│ ├── 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_string
│ │ ├── input.json
│ │ └── output.json
│ ├── storage_layout_struct
│ │ ├── input.json
│ │ └── output.json
│ ├── storage_layout_struct_packed
│ │ ├── input.json
│ │ └── output.json
│ ├── storage_layout_value_types
│ │ ├── input.json
│ │ └── output.json
│ ├── storage_layout_value_types_packed
│ │ ├── input.json
│ │ └── output.json
│ ├── strict_asm_invalid_option_optimize_yul
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.yul
│ ├── strict_asm_invalid_option_output_dir
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.yul
│ ├── strict_asm_jump
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.yul
│ ├── strict_asm_optimizer_steps
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── strict_asm_options_in_non_asm_mode
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.sol
│ ├── 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
│ ├── viair_abicoder_v1
│ │ ├── args
│ │ ├── err
│ │ ├── input.sol
│ │ └── output
│ ├── viair_subobjects
│ │ ├── args
│ │ ├── err
│ │ ├── input.sol
│ │ └── output
│ ├── wasm_to_wasm_function_returning_multiple_values
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── wasm_to_wasm_memory_instructions_alignment
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── 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_nesting
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.sol
│ ├── yul_optimizer_steps_unbalanced_bracket
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.sol
│ ├── yul_stack_opt
│ │ ├── args
│ │ ├── err
│ │ ├── input.yul
│ │ └── output
│ ├── yul_stack_opt_disabled
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ ├── input.yul
│ │ └── 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_unimplemented
│ │ ├── args
│ │ ├── err
│ │ ├── exit
│ │ └── input.sol
├── 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
│ └── stringutils
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── strings.sol
├── contracts
│ ├── AuctionRegistrar.cpp
│ ├── ContractInterface.h
│ ├── FixedFeeRegistrar.cpp
│ └── Wallet.cpp
├── docsCodeStyle.sh
├── evmc
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── evmc.h
│ ├── evmc.hpp
│ ├── helpers.h
│ ├── loader.c
│ ├── loader.h
│ ├── mocked_host.hpp
│ └── utils.h
├── externalTests.sh
├── externalTests
│ ├── README.md
│ ├── colony.sh
│ ├── common.sh
│ ├── ens.sh
│ ├── gnosis-v2.sh
│ ├── gnosis.sh
│ ├── solc-js
│ │ ├── DAO
│ │ │ ├── DAO.sol
│ │ │ ├── ManagedAccount.sol
│ │ │ ├── Token.sol
│ │ │ └── TokenCreation.sol
│ │ ├── determinism.js
│ │ └── solc-js.sh
│ └── zeppelin.sh
├── formal
│ ├── README.md
│ ├── checked_int_add.py
│ ├── checked_int_div.py
│ ├── checked_int_mul_16.py
│ ├── checked_int_sub.py
│ ├── checked_uint_add.py
│ ├── checked_uint_mul_16.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
│ ├── exp_neg_one.py
│ ├── exp_to_shl.py
│ ├── move_and_across_shl_128.py
│ ├── move_and_across_shr_128.py
│ ├── opcodes.py
│ ├── repeated_and.py
│ ├── repeated_or.py
│ ├── rule.py
│ ├── shl_workaround_8.py
│ ├── sub_not_zero_x_to_not_x_256.py
│ └── util.py
├── libevmasm
│ ├── Assembler.cpp
│ └── Optimiser.cpp
├── 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
│ │ ├── event_structs.sol
│ │ ├── events.sol
│ │ ├── events_anonymous.sol
│ │ ├── function_type.sol
│ │ ├── function_type_extended.sol
│ │ ├── global_struct.sol
│ │ ├── include_fallback_function.sol
│ │ ├── inherited.sol
│ │ ├── internal_constructor.sol
│ │ ├── library_function.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
│ │ ├── structs_and_arrays.sol
│ │ ├── structs_in_libraries.sol
│ │ └── view_function.sol
│ ├── ABIJsonTest.cpp
│ ├── ABIJsonTest.h
│ ├── ABITestsCommon.h
│ ├── ASTJSON
│ │ ├── abstract_contract.json
│ │ ├── abstract_contract.sol
│ │ ├── abstract_contract_legacy.json
│ │ ├── abstract_contract_parseOnly.json
│ │ ├── address_payable.json
│ │ ├── address_payable.sol
│ │ ├── address_payable_legacy.json
│ │ ├── address_payable_parseOnly.json
│ │ ├── array_type_name.json
│ │ ├── array_type_name.sol
│ │ ├── array_type_name_legacy.json
│ │ ├── 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
│ │ │ ├── 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
│ │ ├── constructor.json
│ │ ├── constructor.sol
│ │ ├── constructor_legacy.json
│ │ ├── constructor_parseOnly.json
│ │ ├── contract_dep_order.json
│ │ ├── contract_dep_order.sol
│ │ ├── contract_dep_order_legacy.json
│ │ ├── contract_dep_order_parseOnly.json
│ │ ├── documentation.json
│ │ ├── documentation.sol
│ │ ├── documentation_legacy.json
│ │ ├── documentation_parseOnly.json
│ │ ├── enum_value.json
│ │ ├── enum_value.sol
│ │ ├── enum_value_legacy.json
│ │ ├── enum_value_parseOnly.json
│ │ ├── event_definition.json
│ │ ├── event_definition.sol
│ │ ├── event_definition_legacy.json
│ │ ├── event_definition_parseOnly.json
│ │ ├── fallback.json
│ │ ├── fallback.sol
│ │ ├── fallback_and_reveice_ether.json
│ │ ├── fallback_and_reveice_ether.sol
│ │ ├── fallback_and_reveice_ether_legacy.json
│ │ ├── fallback_and_reveice_ether_parseOnly.json
│ │ ├── fallback_legacy.json
│ │ ├── fallback_parseOnly.json
│ │ ├── fallback_payable.json
│ │ ├── fallback_payable.sol
│ │ ├── fallback_payable_legacy.json
│ │ ├── fallback_payable_parseOnly.json
│ │ ├── function_type.json
│ │ ├── function_type.sol
│ │ ├── function_type_legacy.json
│ │ ├── function_type_parseOnly.json
│ │ ├── global_enum.json
│ │ ├── global_enum.sol
│ │ ├── global_enum_legacy.json
│ │ ├── global_enum_parseOnly.json
│ │ ├── global_struct.json
│ │ ├── global_struct.sol
│ │ ├── global_struct_legacy.json
│ │ ├── global_struct_parseOnly.json
│ │ ├── inheritance_specifier.json
│ │ ├── inheritance_specifier.sol
│ │ ├── inheritance_specifier_legacy.json
│ │ ├── inheritance_specifier_parseOnly.json
│ │ ├── license.json
│ │ ├── license.sol
│ │ ├── license_legacy.json
│ │ ├── license_parseOnly.json
│ │ ├── long_type_name_binary_operation.json
│ │ ├── long_type_name_binary_operation.sol
│ │ ├── long_type_name_binary_operation_legacy.json
│ │ ├── long_type_name_binary_operation_parseOnly.json
│ │ ├── long_type_name_identifier.json
│ │ ├── long_type_name_identifier.sol
│ │ ├── long_type_name_identifier_legacy.json
│ │ ├── long_type_name_identifier_parseOnly.json
│ │ ├── mappings.json
│ │ ├── mappings.sol
│ │ ├── mappings_legacy.json
│ │ ├── mappings_parseOnly.json
│ │ ├── modifier_definition.json
│ │ ├── modifier_definition.sol
│ │ ├── modifier_definition_legacy.json
│ │ ├── modifier_definition_parseOnly.json
│ │ ├── modifier_invocation.json
│ │ ├── modifier_invocation.sol
│ │ ├── modifier_invocation_legacy.json
│ │ ├── modifier_invocation_parseOnly.json
│ │ ├── mutability.json
│ │ ├── mutability.sol
│ │ ├── mutability_legacy.json
│ │ ├── mutability_parseOnly.json
│ │ ├── non_utf8.json
│ │ ├── non_utf8.sol
│ │ ├── non_utf8_legacy.json
│ │ ├── non_utf8_parseOnly.json
│ │ ├── not_existing_import.json
│ │ ├── not_existing_import.sol
│ │ ├── not_existing_import_legacy.json
│ │ ├── not_existing_import_parseOnly.json
│ │ ├── override.json
│ │ ├── override.sol
│ │ ├── override_legacy.json
│ │ ├── override_parseOnly.json
│ │ ├── placeholder_statement.json
│ │ ├── placeholder_statement.sol
│ │ ├── placeholder_statement_legacy.json
│ │ ├── placeholder_statement_parseOnly.json
│ │ ├── receive_ether.json
│ │ ├── receive_ether.sol
│ │ ├── receive_ether_legacy.json
│ │ ├── receive_ether_parseOnly.json
│ │ ├── short_type_name.json
│ │ ├── short_type_name.sol
│ │ ├── short_type_name_legacy.json
│ │ ├── short_type_name_parseOnly.json
│ │ ├── short_type_name_ref.json
│ │ ├── short_type_name_ref.sol
│ │ ├── short_type_name_ref_legacy.json
│ │ ├── short_type_name_ref_parseOnly.json
│ │ ├── smoke.json
│ │ ├── smoke.sol
│ │ ├── smoke_legacy.json
│ │ ├── smoke_parseOnly.json
│ │ ├── source_location.json
│ │ ├── source_location.sol
│ │ ├── source_location_legacy.json
│ │ ├── source_location_parseOnly.json
│ │ ├── string.json
│ │ ├── string.sol
│ │ ├── string_legacy.json
│ │ ├── string_parseOnly.json
│ │ ├── two_base_functions.json
│ │ ├── two_base_functions.sol
│ │ ├── two_base_functions_legacy.json
│ │ ├── two_base_functions_parseOnly.json
│ │ ├── unicode.json
│ │ ├── unicode.sol
│ │ ├── unicode_legacy.json
│ │ ├── unicode_parseOnly.json
│ │ ├── using_for_directive.json
│ │ ├── using_for_directive.sol
│ │ ├── using_for_directive_legacy.json
│ │ └── using_for_directive_parseOnly.json
│ ├── ASTJSONTest.cpp
│ ├── ASTJSONTest.h
│ ├── AnalysisFramework.cpp
│ ├── AnalysisFramework.h
│ ├── Assembly.cpp
│ ├── ErrorCheck.cpp
│ ├── ErrorCheck.h
│ ├── GasCosts.cpp
│ ├── GasMeter.cpp
│ ├── GasTest.cpp
│ ├── GasTest.h
│ ├── Imports.cpp
│ ├── InlineAssembly.cpp
│ ├── LibSolc.cpp
│ ├── Metadata.cpp
│ ├── SMTCheckerTest.cpp
│ ├── SMTCheckerTest.h
│ ├── SemVerMatcher.cpp
│ ├── SemanticTest.cpp
│ ├── SemanticTest.h
│ ├── SolidityCompiler.cpp
│ ├── SolidityEndToEndTest.cpp
│ ├── SolidityExecutionFramework.cpp
│ ├── SolidityExecutionFramework.h
│ ├── SolidityExpressionCompiler.cpp
│ ├── SolidityNameAndTypeResolution.cpp
│ ├── SolidityNatspecJSON.cpp
│ ├── SolidityOptimizer.cpp
│ ├── SolidityParser.cpp
│ ├── SolidityTypes.cpp
│ ├── StandardCompiler.cpp
│ ├── SyntaxTest.cpp
│ ├── SyntaxTest.h
│ ├── ViewPureChecker.cpp
│ ├── constructor_inheritance_init_order_3.sol
│ ├── errorRecoveryTests
│ │ ├── constructor_recovers.sol
│ │ ├── contract_recovery.sol
│ │ ├── do_not_delete_at_error.sol
│ │ ├── error_to_eos.sol
│ │ ├── missing_rhs.sol
│ │ ├── multiple_errors.sol
│ │ ├── recovery_failed_eos.sol
│ │ ├── wrong_compiler_recovers_1.sol
│ │ ├── wrong_compiler_recovers_2.sol
│ │ ├── wrong_compiler_recovers_3.sol
│ │ └── wrong_compiler_recovers_4.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
│ ├── semanticTests
│ │ ├── 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
│ │ │ ├── cleanup
│ │ │ │ └── cleanup.sol
│ │ │ ├── decode_slice.sol
│ │ │ ├── dynamic_arrays.sol
│ │ │ ├── dynamic_memory_copy.sol
│ │ │ ├── enums.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
│ │ │ ├── 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_short_decode.sol
│ │ │ ├── calldata_array_dynamic_static_short_reencode.sol
│ │ │ ├── calldata_array_function_types.sol
│ │ │ ├── calldata_array_multi_dynamic.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_struct_dynamic.sol
│ │ │ ├── calldata_struct_member_offset.sol
│ │ │ ├── calldata_struct_simple.sol
│ │ │ ├── cleanup
│ │ │ │ ├── address.sol
│ │ │ │ ├── bool.sol
│ │ │ │ ├── bytesx.sol
│ │ │ │ ├── cleanup.sol
│ │ │ │ ├── dynamic_array.sol
│ │ │ │ ├── function.sol
│ │ │ │ ├── intx.sol
│ │ │ │ ├── simple_struct.sol
│ │ │ │ ├── static_array.sol
│ │ │ │ └── uintx.sol
│ │ │ ├── dynamic_arrays.sol
│ │ │ ├── dynamic_nested_arrays.sol
│ │ │ ├── enums.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
│ │ ├── abiencodedecode
│ │ │ ├── abi_decode_calldata.sol
│ │ │ ├── abi_decode_simple.sol
│ │ │ ├── abi_decode_simple_storage.sol
│ │ │ ├── abi_encode_empty_string.sol
│ │ │ ├── contract_array.sol
│ │ │ └── contract_array_v2.sol
│ │ ├── accessor
│ │ │ ├── accessor_for_const_state_variable.sol
│ │ │ └── accessor_for_state_variable.sol
│ │ ├── arithmetics
│ │ │ ├── addmod_mulmod.sol
│ │ │ ├── addmod_mulmod_zero.sol
│ │ │ ├── divisiod_by_zero.sol
│ │ │ └── signed_mod.sol
│ │ ├── array
│ │ │ ├── arrays_complex_from_and_to_storage.sol
│ │ │ ├── byte_array_storage_layout.sol
│ │ │ ├── byte_array_transitional_2.sol
│ │ │ ├── bytes_length_member.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
│ │ │ ├── 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_dyn_dyn.sol
│ │ │ │ ├── array_copy_storage_storage_dynamic_dynamic.sol
│ │ │ │ ├── array_copy_storage_storage_static_dynamic.sol
│ │ │ │ ├── array_copy_storage_storage_static_static.sol
│ │ │ │ ├── array_copy_storage_storage_struct.sol
│ │ │ │ ├── array_copy_storage_to_memory.sol
│ │ │ │ ├── array_copy_target_leftover.sol
│ │ │ │ ├── array_copy_target_leftover2.sol
│ │ │ │ ├── array_copy_target_simple.sol
│ │ │ │ ├── array_nested_calldata_to_memory.sol
│ │ │ │ ├── array_nested_calldata_to_storage.sol
│ │ │ │ ├── array_nested_memory_to_storage.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
│ │ │ │ ├── arrays_from_and_to_storage.sol
│ │ │ │ ├── bytes_inside_mappings.sol
│ │ │ │ ├── bytes_memory_to_storage.sol
│ │ │ │ ├── bytes_storage_to_memory.sol
│ │ │ │ ├── bytes_storage_to_storage.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_bytes_array_to_memory.sol
│ │ │ │ ├── calldata_bytes_to_storage.sol
│ │ │ │ ├── calldata_dynamic_array_to_memory.sol
│ │ │ │ ├── calldata_nested_array_copy_to_memory.sol
│ │ │ │ ├── copy_byte_array_in_struct_to_storage.sol
│ │ │ │ ├── copy_byte_array_to_storage.sol
│ │ │ │ ├── copy_function_storage_array.sol
│ │ │ │ ├── copy_internal_function_array_to_storage.sol
│ │ │ │ ├── copy_removes_bytes_data.sol
│ │ │ │ ├── empty_bytes_copy.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
│ │ │ ├── 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
│ │ │ ├── memory.sol
│ │ │ ├── memory_arrays_of_various_sizes.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
│ │ │ ├── push
│ │ │ │ ├── array_push.sol
│ │ │ │ ├── array_push_nested.sol
│ │ │ │ ├── array_push_packed_array.sol
│ │ │ │ ├── array_push_struct.sol
│ │ │ │ ├── byte_array_push.sol
│ │ │ │ ├── byte_array_push_transition.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_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
│ │ │ └── strings_in_struct.sol
│ │ ├── asmForLoop
│ │ │ ├── for_loop_break.sol
│ │ │ ├── for_loop_continue.sol
│ │ │ └── for_loop_nested.sol
│ │ ├── builtinFunctions
│ │ │ ├── assignment_to_const_var_involving_keccak.sol
│ │ │ ├── blockhash.sol
│ │ │ ├── blockhash_shadow_resolution.sol
│ │ │ ├── function_types_sig.sol
│ │ │ ├── iterated_keccak256_with_bytes.sol
│ │ │ ├── keccak256_empty.sol
│ │ │ ├── keccak256_multiple_arguments.sol
│ │ │ ├── keccak256_multiple_arguments_with_numeric_literals.sol
│ │ │ ├── keccak256_multiple_arguments_with_string_literals.sol
│ │ │ ├── keccak256_with_bytes.sol
│ │ │ ├── msg_sig.sol
│ │ │ ├── msg_sig_after_internal_call_is_same.sol
│ │ │ ├── ripemd160_empty.sol
│ │ │ └── sha256_empty.sol
│ │ ├── c99_scoping_activation.sol
│ │ ├── calldata
│ │ │ ├── calldata_array_dynamic_bytes.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_cleaning.sol
│ │ │ └── calldata_struct_internal.sol
│ │ ├── cleanup
│ │ │ ├── bool_conversion.sol
│ │ │ ├── bool_conversion_v2.sol
│ │ │ ├── cleanup_address_types.sol
│ │ │ ├── cleanup_address_types_shortening.sol
│ │ │ ├── cleanup_address_types_v2.sol
│ │ │ ├── cleanup_bytes_types.sol
│ │ │ ├── cleanup_bytes_types_shortening.sol
│ │ │ ├── cleanup_bytes_types_v2.sol
│ │ │ ├── cleanup_in_compound_assign.sol
│ │ │ ├── exp_cleanup.sol
│ │ │ ├── exp_cleanup_direct.sol
│ │ │ ├── exp_cleanup_nonzero_base.sol
│ │ │ └── exp_cleanup_smaller_base.sol
│ │ ├── constants
│ │ │ ├── asm_address_constant_regression.sol
│ │ │ ├── asm_constant_file_level.sol
│ │ │ ├── constant_string.sol
│ │ │ ├── constant_string_at_file_level.sol
│ │ │ ├── constant_variables.sol
│ │ │ ├── constants_at_file_level_referencing.sol
│ │ │ ├── same_constants_different_files.sol
│ │ │ └── simple_constant_variables_test.sol
│ │ ├── constructor
│ │ ├── constructor_ihneritance_init_order_2.sol
│ │ ├── constructor_inheritance_init_order.sol
│ │ ├── constructor_with_params.sol
│ │ ├── constructor_with_params_diamond_inheritance.sol
│ │ ├── constructor_with_params_inheritance.sol
│ │ ├── constructor_with_params_inheritance_2.sol
│ │ ├── conversions
│ │ │ └── string_to_bytes.sol
│ │ ├── dirty_calldata_bytes.sol
│ │ ├── dirty_calldata_dynamic_array.sol
│ │ ├── dirty_memory_bytes_to_storgage_copy.sol
│ │ ├── ecrecover
│ │ │ ├── ecrecover.sol
│ │ │ ├── ecrecover_abiV2.sol
│ │ │ ├── failing_ecrecover_invalid_input.sol
│ │ │ ├── failing_ecrecover_invalid_input_asm.sol
│ │ │ └── failing_ecrecover_invalid_input_proper.sol
│ │ ├── empty_contract.sol
│ │ ├── empty_for_loop.sol
│ │ ├── enums
│ │ │ ├── constructing_enums_from_ints.sol
│ │ │ ├── enum_explicit_overflow.sol
│ │ │ ├── using_contract_enums_with_explicit_contract_name.sol
│ │ │ ├── using_enums.sol
│ │ │ ├── using_inherited_enum.sol
│ │ │ └── using_inherited_enum_excplicitly.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
│ │ │ └── uncalled_address_transfer_send.sol
│ │ ├── externalContracts
│ │ │ └── deposit_contract.sol
│ │ ├── fallback
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ ├── external_call.sol
│ │ │ ├── external_call_dynamic_returndata.sol
│ │ │ ├── external_call_value.sol
│ │ │ ├── external_function.sol
│ │ │ ├── external_public_override.sol
│ │ │ ├── file_level_call_via_module.sol
│ │ │ ├── gas_and_value_basic.sol
│ │ │ ├── gas_and_value_brace_syntax.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
│ │ │ ├── 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
│ │ │ ├── send_zero_ether.sol
│ │ │ ├── transaction_status.sol
│ │ │ └── value_test.sol
│ │ ├── functionSelector
│ │ │ └── function_selector_via_contract_name.sol
│ │ ├── functionTypes
│ │ │ ├── function_delete_stack.sol
│ │ │ ├── function_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
│ │ │ ├── store_function.sol
│ │ │ ├── struct_with_external_function.sol
│ │ │ ├── struct_with_functions.sol
│ │ │ └── uninitialized_internal_storage_function_call.sol
│ │ ├── getters
│ │ │ ├── array_mapping_struct.sol
│ │ │ ├── arrays.sol
│ │ │ ├── mapping.sol
│ │ │ ├── mapping_array_struct.sol
│ │ │ ├── mapping_of_string.sol
│ │ │ ├── mapping_to_struct.sol
│ │ │ ├── string_and_bytes.sol
│ │ │ ├── struct_with_bytes.sol
│ │ │ ├── struct_with_bytes_simple.sol
│ │ │ └── value_types.sol
│ │ ├── immutable
│ │ │ ├── assign_at_declaration.sol
│ │ │ ├── getter.sol
│ │ │ ├── getter_call_in_constructor.sol
│ │ │ ├── inheritance.sol
│ │ │ ├── internal_function_pointer.sol
│ │ │ ├── multi_creation.sol
│ │ │ ├── stub.sol
│ │ │ └── use_scratch.sol
│ │ ├── inlineAssembly
│ │ │ ├── calldata_array_assign.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
│ │ │ ├── chainid.sol
│ │ │ ├── constant_access.sol
│ │ │ ├── constant_access_referencing.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_write_to_stack.sol
│ │ │ ├── inlineasm_empty_let.sol
│ │ │ ├── keccak256_assembly.sol
│ │ │ ├── leave.sol
│ │ │ ├── selfbalance.sol
│ │ │ ├── slot_access.sol
│ │ │ └── truefalse.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
│ │ ├── interface_inheritance_conversions.sol
│ │ ├── intheritance
│ │ │ ├── access_base_storage.sol
│ │ │ ├── address_overload_resolution.sol
│ │ │ ├── base_access_to_function_type_variables.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
│ │ │ ├── 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
│ │ │ ├── super_in_constructor.sol
│ │ │ ├── super_in_constructor_assignment.sol
│ │ │ ├── super_overload.sol
│ │ │ └── value_for_constructor.sol
│ │ ├── isoltestFormatting.sol
│ │ ├── libraries
│ │ │ ├── bound_returning_calldata.sol
│ │ │ ├── bound_returning_calldata_external.sol
│ │ │ ├── bound_to_calldata.sol
│ │ │ ├── bound_to_calldata_external.sol
│ │ │ ├── external_call_with_function_pointer_parameter.sol
│ │ │ ├── external_call_with_storage_array_parameter.sol
│ │ │ ├── external_call_with_storage_mapping_parameter.sol
│ │ │ ├── internal_call_bound_with_parentheses.sol
│ │ │ ├── internal_call_bound_with_parentheses1.sol
│ │ │ ├── internal_library_function.sol
│ │ │ ├── internal_library_function_bound.sol
│ │ │ ├── internal_library_function_bound_to_address.sol
│ │ │ ├── internal_library_function_bound_to_address_named_send_transfer.sol
│ │ │ ├── internal_library_function_bound_to_array_named_pop_push.sol
│ │ │ ├── internal_library_function_bound_to_bool.sol
│ │ │ ├── internal_library_function_bound_to_contract.sol
│ │ │ ├── internal_library_function_bound_to_dynamic_array.sol
│ │ │ ├── internal_library_function_bound_to_enum.sol
│ │ │ ├── internal_library_function_bound_to_external_function.sol
│ │ │ ├── internal_library_function_bound_to_fixed_array.sol
│ │ │ ├── internal_library_function_bound_to_fixed_bytes.sol
│ │ │ ├── internal_library_function_bound_to_function_named_selector.sol
│ │ │ ├── internal_library_function_bound_to_integer.sol
│ │ │ ├── internal_library_function_bound_to_interface.sol
│ │ │ ├── internal_library_function_bound_to_internal_function.sol
│ │ │ ├── internal_library_function_bound_to_mapping.sol
│ │ │ ├── internal_library_function_bound_to_storage_string.sol
│ │ │ ├── internal_library_function_bound_to_string.sol
│ │ │ ├── internal_library_function_calling_private.sol
│ │ │ ├── internal_library_function_pointer.sol
│ │ │ ├── internal_library_function_return_var_size.sol
│ │ │ ├── library_address.sol
│ │ │ ├── library_address_homestead.sol
│ │ │ ├── library_address_via_module.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_return_struct_with_mapping.sol
│ │ │ ├── library_struct_as_an_expression.sol
│ │ │ ├── stub.sol
│ │ │ ├── stub_internal.sol
│ │ │ └── using_for_storage_structs.sol
│ │ ├── literals
│ │ │ ├── denominations.sol
│ │ │ ├── escape.sol
│ │ │ ├── ether.sol
│ │ │ ├── gwei.sol
│ │ │ ├── hex_string_with_underscore.sol
│ │ │ ├── scientific_notation.sol
│ │ │ └── wei.sol
│ │ ├── memoryManagement
│ │ │ ├── assembly_access.sol
│ │ │ ├── return_variable.sol
│ │ │ ├── static_memory_array_allocation.sol
│ │ │ └── struct_allocation.sol
│ │ ├── metaTypes
│ │ │ └── name_other_contract.sol
│ │ ├── modifiers
│ │ │ ├── break_in_modifier.sol
│ │ │ ├── continue_in_modifier.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_multi_invocation.sol
│ │ │ ├── function_modifier_multi_with_return.sol
│ │ │ ├── function_modifier_multiple_times.sol
│ │ │ ├── function_modifier_multiple_times_local_vars.sol
│ │ │ ├── function_modifier_overriding.sol
│ │ │ ├── return_does_not_skip_modifier.sol
│ │ │ ├── return_in_modifier.sol
│ │ │ └── stacked_return_with_modifiers.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
│ │ │ ├── imported_free_function_via_alias.sol
│ │ │ ├── imported_free_function_via_alias_direct_call.sol
│ │ │ └── reimport_imported_function.sol
│ │ ├── operators
│ │ │ ├── compound_assign.sol
│ │ │ └── shifts
│ │ │ │ ├── bitwise_shifting_constantinople.sol
│ │ │ │ ├── bitwise_shifting_constantinople_combined.sol
│ │ │ │ ├── bitwise_shifting_constants_constantinople.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.sol
│ │ │ │ ├── shift_right_garbled_signed.sol
│ │ │ │ ├── shift_right_garbled_signed_v2.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.sol
│ │ │ │ ├── shift_right_negative_lvalue_signextend_int16_v2.sol
│ │ │ │ ├── shift_right_negative_lvalue_signextend_int32.sol
│ │ │ │ ├── shift_right_negative_lvalue_signextend_int32_v2.sol
│ │ │ │ ├── shift_right_negative_lvalue_signextend_int8.sol
│ │ │ │ ├── shift_right_negative_lvalue_signextend_int8_v2.sol
│ │ │ │ ├── shift_right_uint32.sol
│ │ │ │ ├── shift_right_uint8.sol
│ │ │ │ ├── shift_underflow_negative_rvalue.sol
│ │ │ │ └── shifts.sol
│ │ ├── optimizer
│ │ │ └── shift_bytes.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.sol
│ │ │ ├── called_contract_has_code.sol
│ │ │ ├── empty_v1.sol
│ │ │ ├── empty_v1_yul.sol
│ │ │ ├── empty_v2.sol
│ │ │ ├── enum.sol
│ │ │ ├── ether_non_payable_function.sol
│ │ │ ├── function_entry_checks_v1.sol
│ │ │ ├── function_entry_checks_v1_abiv2.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
│ │ │ ├── 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
│ │ ├── salted_create
│ │ │ ├── salted_create.sol
│ │ │ └── salted_create_with_value.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
│ │ ├── snark.sol
│ │ ├── specialFunctions
│ │ │ ├── abi_functions_member_access.sol
│ │ │ └── keccak256_optimized.sol
│ │ ├── state
│ │ │ ├── block_coinbase.sol
│ │ │ ├── block_difficulty.sol
│ │ │ ├── block_gaslimit.sol
│ │ │ ├── block_number.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_blockhash.sol
│ │ ├── state_var_initialization.sol
│ │ ├── state_variables_init_order.sol
│ │ ├── state_variables_init_order_2.sol
│ │ ├── state_variables_init_order_3.sol
│ │ ├── statements
│ │ │ └── do_while_loop_continue.sol
│ │ ├── storage
│ │ │ ├── accessors_mapping_for_array.sol
│ │ │ ├── array_accessor.sol
│ │ │ ├── chop_sign_bits.sol
│ │ │ ├── complex_accessors.sol
│ │ │ ├── empty_nonempty_empty.sol
│ │ │ ├── mapping_state.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
│ │ │ └── struct_accessor.sol
│ │ ├── strings
│ │ │ ├── empty_string.sol
│ │ │ ├── empty_string_input.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
│ │ │ ├── delete_struct.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
│ │ │ ├── multislot_struct_allocation.sol
│ │ │ ├── nested_struct_allocation.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_storage_push_zero_value.sol
│ │ │ ├── struct_storage_to_memory.sol
│ │ │ ├── struct_storage_to_memory_function_ptr.sol
│ │ │ └── structs.sol
│ │ ├── tryCatch
│ │ │ ├── assert.sol
│ │ │ ├── create.sol
│ │ │ ├── invalid_error_encoding.sol
│ │ │ ├── lowLevel.sol
│ │ │ ├── nested.sol
│ │ │ ├── return_function.sol
│ │ │ ├── simple.sol
│ │ │ ├── simple_notuple.sol
│ │ │ ├── structured.sol
│ │ │ ├── structuredAndLowLevel.sol
│ │ │ ├── super_trivial.sol
│ │ │ ├── trivial.sol
│ │ │ └── try_catch_library_call.sol
│ │ ├── types
│ │ │ ├── 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_contract_key.sol
│ │ │ ├── mapping_contract_key_getter.sol
│ │ │ ├── mapping_contract_key_library.sol
│ │ │ ├── mapping_enum_key.sol
│ │ │ ├── mapping_enum_key_getter.sol
│ │ │ ├── mapping_enum_key_getter_v2.sol
│ │ │ ├── mapping_enum_key_library.sol
│ │ │ ├── mapping_simple.sol
│ │ │ ├── nested_tuples.sol
│ │ │ ├── packing_signed_types.sol
│ │ │ ├── packing_unpacking_types.sol
│ │ │ ├── strings.sol
│ │ │ ├── tuple_assign_multi_slot_grow.sol
│ │ │ └── type_conversion_cleanup.sol
│ │ ├── underscore
│ │ │ ├── as_function.sol
│ │ │ ├── in_function.sol
│ │ │ └── in_modifier.sol
│ │ ├── uninitializedFunctionPointer
│ │ │ ├── invalidInConstructor.sol
│ │ │ ├── invalidStoredInConstructor.sol
│ │ │ ├── store2.sol
│ │ │ └── storeInConstructor.sol
│ │ ├── variables
│ │ │ ├── delete_local.sol
│ │ │ ├── delete_locals.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
│ │ ├── various
│ │ │ ├── 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
│ │ │ ├── codebalance_assembly.sol
│ │ │ ├── codehash_assembly.sol
│ │ │ ├── contract_binary_dependencies.sol
│ │ │ ├── crazy_elementary_typenames_on_stack.sol
│ │ │ ├── cross_contract_types.sol
│ │ │ ├── decayed_tuple.sol
│ │ │ ├── destructuring_assignment.sol
│ │ │ ├── empty_name_return_parameter.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
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ ├── tuples.sol
│ │ │ ├── typed_multi_variable_declaration.sol
│ │ │ ├── value_complex.sol
│ │ │ ├── value_insane.sol
│ │ │ └── write_storage_external.sol
│ │ ├── viaYul
│ │ │ ├── array_2d_assignment.sol
│ │ │ ├── array_2d_new.sol
│ │ │ ├── array_3d_assignment.sol
│ │ │ ├── array_3d_new.sol
│ │ │ ├── array_function_pointers.sol
│ │ │ ├── array_memory_allocation
│ │ │ │ ├── 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_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
│ │ │ ├── assert.sol
│ │ │ ├── assert_and_require.sol
│ │ │ ├── assign_tuple_from_function_call.sol
│ │ │ ├── calldata_array_access.sol
│ │ │ ├── calldata_array_index_range_access.sol
│ │ │ ├── calldata_array_length.sol
│ │ │ ├── calldata_array_three_dimensional.sol
│ │ │ ├── calldata_bytes_array_bounds.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
│ │ │ │ ├── function_cast.sol
│ │ │ │ ├── implicit_cast_assignment.sol
│ │ │ │ ├── implicit_cast_function_call.sol
│ │ │ │ └── implicit_cast_local_assignment.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
│ │ │ ├── erc20.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
│ │ │ ├── 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
│ ├── smtCheckerTests
│ │ ├── 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
│ │ │ ├── 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_struct.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
│ │ │ ├── decreasing_balance.sol
│ │ │ ├── this_does_not_change.sol
│ │ │ ├── this_does_not_change_external_call.sol
│ │ │ ├── this_does_not_change_internal_call.sol
│ │ │ └── transfer.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
│ │ │ ├── funds.sol
│ │ │ ├── implicit_constructor_with_function_calls.sol
│ │ │ ├── math.sol
│ │ │ └── unary_add_minus_overflow_detected.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
│ │ │ ├── try_catch_1.sol
│ │ │ ├── try_catch_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_input_over_state_same_output.sol
│ │ │ ├── crypto_functions_same_input_over_state_same_output_fail.sol
│ │ │ └── crypto_functions_same_input_same_output.sol
│ │ ├── external_calls
│ │ │ ├── external.sol
│ │ │ ├── external_hash.sol
│ │ │ ├── external_hash_known_code_pure.sol
│ │ │ ├── external_hash_known_code_state.sol
│ │ │ ├── external_hash_known_code_state_reentrancy.sol
│ │ │ ├── external_hash_known_code_state_reentrancy_indirect.sol
│ │ │ ├── external_hash_known_code_state_reentrancy_unsafe.sol
│ │ │ ├── external_hash_known_code_state_unsafe.sol
│ │ │ ├── external_inc.sol
│ │ │ ├── external_inc1_inc2.sol
│ │ │ ├── external_safe.sol
│ │ │ ├── external_single_inc.sol
│ │ │ ├── mutex.sol
│ │ │ └── mutex_f_no_guard.sol
│ │ ├── file_level
│ │ │ ├── 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
│ │ ├── 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
│ │ │ ├── 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_bound_1.sol
│ │ │ ├── functions_bound_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_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_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.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.sol
│ │ │ ├── functions_trivial_condition_while_only_call.sol
│ │ │ ├── getters
│ │ │ │ ├── address.sol
│ │ │ │ ├── array_1.sol
│ │ │ │ ├── array_2.sol
│ │ │ │ ├── bytes.sol
│ │ │ │ ├── contract.sol
│ │ │ │ ├── double_access.sol
│ │ │ │ ├── enum.sol
│ │ │ │ ├── fixed_bytes.sol
│ │ │ │ ├── function.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
│ │ │ ├── recursive_multi_return.sol
│ │ │ ├── recursive_multi_return_2.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_fake.sol
│ │ │ └── this_state.sol
│ │ ├── imports
│ │ │ ├── import_base.sol
│ │ │ ├── import_library.sol
│ │ │ ├── imported_fail_1.sol
│ │ │ ├── imported_fail_2.sol
│ │ │ ├── imported_fail_3.sol
│ │ │ ├── private_vars.sol
│ │ │ ├── simple.sol
│ │ │ ├── simple_imported_fail_no_pragma.sol
│ │ │ └── simple_imported_fail_two_pragmas.sol
│ │ ├── inheritance
│ │ │ ├── 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
│ │ │ ├── fallback.sol
│ │ │ ├── fallback_receive.sol
│ │ │ ├── functions_1.sol
│ │ │ ├── functions_2.sol
│ │ │ ├── functions_3.sol
│ │ │ ├── implicit_constructor_hierarchy.sol
│ │ │ ├── implicit_only_constructor_hierarchy.sol
│ │ │ ├── receive.sol
│ │ │ ├── receive_fallback.sol
│ │ │ ├── state_variables.sol
│ │ │ ├── state_variables_2.sol
│ │ │ └── state_variables_3.sol
│ │ ├── inline_assembly
│ │ │ ├── empty.sol
│ │ │ └── local_var.sol
│ │ ├── invariants
│ │ │ ├── aon_blog_post.sol
│ │ │ ├── loop_basic.sol
│ │ │ ├── loop_basic_for.sol
│ │ │ ├── loop_nested.sol
│ │ │ ├── loop_nested_for.sol
│ │ │ ├── state_machine_1.sol
│ │ │ └── state_machine_1_fail.sol
│ │ ├── loops
│ │ │ ├── do_while_1_fail.sol
│ │ │ ├── do_while_1_false_positives.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_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_trivial_condition_1.sol
│ │ │ ├── for_loop_trivial_condition_2.sol
│ │ │ ├── for_loop_trivial_condition_3.sol
│ │ │ ├── for_loop_unreachable_1.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_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_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_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
│ │ ├── operators
│ │ │ ├── assignment_contract_member_variable.sol
│ │ │ ├── assignment_contract_member_variable_array.sol
│ │ │ ├── assignment_module_contract_member_variable.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_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
│ │ │ ├── delete_array.sol
│ │ │ ├── delete_array_2d.sol
│ │ │ ├── delete_array_index.sol
│ │ │ ├── delete_array_index_2d.sol
│ │ │ ├── delete_array_push.sol
│ │ │ ├── delete_function.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_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_bytes.sol
│ │ │ ├── slice_default_end.sol
│ │ │ ├── slice_default_start.sol
│ │ │ ├── slices_1.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_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
│ │ ├── overflow
│ │ │ ├── overflow_mul.sol
│ │ │ ├── overflow_mul_cex_with_array.sol
│ │ │ ├── overflow_mul_signed.sol
│ │ │ ├── overflow_sum.sol
│ │ │ ├── overflow_sum_signed.sol
│ │ │ ├── safe_add_1.sol
│ │ │ ├── safe_add_2.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
│ │ │ ├── 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
│ │ │ ├── blockhash.sol
│ │ │ ├── difficulty.sol
│ │ │ ├── ether_units.sol
│ │ │ ├── event.sol
│ │ │ ├── gasleft.sol
│ │ │ ├── log.sol
│ │ │ ├── many.sol
│ │ │ ├── msg_data.sol
│ │ │ ├── msg_sender_1.sol
│ │ │ ├── msg_sender_2.sol
│ │ │ ├── msg_sender_fail_1.sol
│ │ │ ├── msg_sig.sol
│ │ │ ├── this.sol
│ │ │ ├── this_state.sol
│ │ │ ├── time_units.sol
│ │ │ ├── tx_data_gasleft_changes.sol
│ │ │ ├── tx_data_immutable.sol
│ │ │ └── tx_data_immutable_fail.sol
│ │ ├── typecast
│ │ │ ├── address_literal.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
│ │ │ ├── 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
│ │ │ ├── string_literal_to_dynamic_bytes.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
│ │ │ └── upcast.sol
│ │ ├── types
│ │ │ ├── address_balance.sol
│ │ │ ├── address_call.sol
│ │ │ ├── address_delegatecall.sol
│ │ │ ├── address_staticcall.sol
│ │ │ ├── address_transfer.sol
│ │ │ ├── address_transfer_2.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_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_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
│ │ │ ├── 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_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_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
│ │ │ ├── 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_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_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_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
│ │ │ └── unused_mapping.sol
│ │ └── verification_target
│ │ │ ├── constant_condition_1.sol
│ │ │ ├── constant_condition_2.sol
│ │ │ ├── constant_condition_3.sol
│ │ │ ├── simple_assert.sol
│ │ │ ├── simple_assert_with_require.sol
│ │ │ └── simple_assert_with_require_message.sol
│ ├── syntaxTests
│ │ ├── abiEncoder
│ │ │ ├── conflicting_settings.sol
│ │ │ ├── conflicting_settings_reverse.sol
│ │ │ ├── invalid_pragma_value.sol
│ │ │ ├── same_setting_twice.sol
│ │ │ ├── select_v1.sol
│ │ │ ├── selected_twice.sol
│ │ │ ├── selected_twice_v2.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_bound_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
│ │ │ ├── bytes_pop.sol
│ │ │ ├── calldata.sol
│ │ │ ├── calldata_assign.sol
│ │ │ ├── calldata_dynamic.sol
│ │ │ ├── calldata_multi.sol
│ │ │ ├── calldata_multi_dynamic.sol
│ │ │ ├── calldata_multi_dynamic_V1.sol
│ │ │ ├── calldata_resize.sol
│ │ │ ├── contract_array.sol
│ │ │ ├── contract_index_access.sol
│ │ │ ├── dynamic_memory_array_pop.sol
│ │ │ ├── function_mapping.sol
│ │ │ ├── function_mapping_library.sol
│ │ │ ├── invalid
│ │ │ │ ├── library_array.sol
│ │ │ │ └── library_index_access.sol
│ │ │ ├── invalidCopy
│ │ │ │ ├── storage_to_storage_different_base.sol
│ │ │ │ ├── storage_to_storage_different_base_2.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
│ │ │ │ ├── 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
│ │ │ │ ├── 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
│ │ │ │ ├── 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
│ │ ├── bound
│ │ │ ├── bound_all.sol
│ │ │ ├── bound_call.sol
│ │ │ ├── bound_calldata.sol
│ │ │ ├── bound_no_call.sol
│ │ │ ├── bound_to_struct.sol
│ │ │ ├── interface_using_for.sol
│ │ │ └── using_for_library.sol
│ │ ├── bytecode_too_large.sol
│ │ ├── constants
│ │ │ ├── abi_encoding_constant.sol
│ │ │ ├── addmod_mulmod_rational.sol
│ │ │ ├── addmod_zero.sol
│ │ │ ├── assign_constant_function_value.sol
│ │ │ ├── constant_natspec.sol
│ │ │ ├── constant_natspec_user.sol
│ │ │ ├── constant_override.sol
│ │ │ ├── constant_unassigned.sol
│ │ │ ├── constant_virtual.sol
│ │ │ ├── constant_with_visibility.sol
│ │ │ ├── constant_with_visibility_inverted.sol
│ │ │ ├── cross_file_cyclic.sol
│ │ │ ├── cross_file_cyclic_modules.sol
│ │ │ ├── cyclic_dependency_1.sol
│ │ │ ├── cyclic_dependency_2.sol
│ │ │ ├── cyclic_dependency_3.sol
│ │ │ ├── cyclic_dependency_4.sol
│ │ │ ├── division_by_zero.sol
│ │ │ ├── file_level_memory.sol
│ │ │ ├── file_level_memory_inverted.sol
│ │ │ ├── immutable_at_file_level.sol
│ │ │ ├── mapping_constant.sol
│ │ │ ├── mod_div_rational.sol
│ │ │ ├── mod_zero.sol
│ │ │ ├── mulmod_zero.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
│ │ ├── constructor_this.sol
│ │ ├── controlFlow
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ │ ├── functionType.sol
│ │ │ │ ├── modifier_order_fail.sol
│ │ │ │ ├── modifier_order_fine.sol
│ │ │ │ ├── modifier_post_access.sol
│ │ │ │ ├── modifier_pre_access.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
│ │ │ │ ├── revert.sol
│ │ │ │ ├── revert_empty.sol
│ │ │ │ ├── while_break.sol
│ │ │ │ └── while_continue.sol
│ │ ├── conversion
│ │ │ ├── allowed_conversion_to_bytes_array.sol
│ │ │ ├── allowed_conversion_to_string.sol
│ │ │ ├── conversion_to_bytes.sol
│ │ │ ├── explicit_conversion_address_to_payable.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_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_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
│ │ ├── cycle_checker_function_type.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_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
│ │ │ │ ├── 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_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
│ │ │ ├── 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
│ │ │ ├── memory_storage_data_location.sol
│ │ │ ├── privateFunction
│ │ │ │ ├── private_function_parameters_no_data_location.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
│ │ │ │ ├── public_function_parameters_no_data_location.sol
│ │ │ │ └── public_function_return_parameters_no_data_location.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
│ │ │ ├── deprecated_year.sol
│ │ │ ├── finney_invalid.sol
│ │ │ ├── fixed_point_division.sol
│ │ │ ├── gwei_as_identifier.sol
│ │ │ ├── szabo_finney_identifiers.sol
│ │ │ └── szabo_invalid.sol
│ │ ├── deprecated_functions.sol
│ │ ├── double_stateVariable_declaration.sol
│ │ ├── double_variable_declaration.sol
│ │ ├── duplicateFunctions
│ │ │ ├── fallback_function_twice.sol
│ │ │ └── receive_function_thrice.sol
│ │ ├── duplicate_contract.sol
│ │ ├── emit
│ │ │ ├── emit_empty.sol
│ │ │ └── emit_non_event.sol
│ │ ├── empty_struct.sol
│ │ ├── enums
│ │ │ ├── global_enum.sol
│ │ │ ├── global_enum_contract_name_clash.sol
│ │ │ ├── global_enum_name_clash.sol
│ │ │ └── global_enum_shadowing.sol
│ │ ├── events
│ │ │ ├── anonymous_event_four_indexed.sol
│ │ │ ├── anonymous_event_too_many_indexed.sol
│ │ │ ├── double_event_declaration.sol
│ │ │ ├── double_event_declaration_ignores_anonymous.sol
│ │ │ ├── double_event_declaration_ignores_indexed.sol
│ │ │ ├── event.sol
│ │ │ ├── event_array_indexed_v2.sol
│ │ │ ├── event_array_v2.sol
│ │ │ ├── event_call.sol
│ │ │ ├── event_emit_complex.sol
│ │ │ ├── event_emit_foreign_class.sol
│ │ │ ├── event_emit_simple.sol
│ │ │ ├── event_function_inheritance_clash.sol
│ │ │ ├── event_function_type_indexed.sol
│ │ │ ├── event_inheritance.sol
│ │ │ ├── event_library_function.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_struct.sol
│ │ │ ├── event_struct_indexed.sol
│ │ │ ├── event_struct_indexed_v2.sol
│ │ │ ├── event_struct_v2.sol
│ │ │ ├── event_too_many_indexed.sol
│ │ │ ├── event_without_emit_deprecated.sol
│ │ │ ├── events_with_same_name.sol
│ │ │ ├── events_with_same_name_different_types.sol
│ │ │ ├── events_with_same_name_unnamed_arguments.sol
│ │ │ ├── function_event_in_contract_clash.sol
│ │ │ ├── function_event_inheritance_clash.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
│ │ │ ├── multiple_events_argument_clash.sol
│ │ │ ├── multiple_inheritance.sol
│ │ │ └── overloading_in_contract.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
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ ├── calloptions_duplicated.sol
│ │ │ ├── calloptions_on_delegatecall.sol
│ │ │ ├── calloptions_on_internal_function.sol
│ │ │ ├── calloptions_on_staticcall.sol
│ │ │ ├── calloptions_repeated.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
│ │ │ ├── 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_bound.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
│ │ │ ├── conversion_to_address.sol
│ │ │ ├── delete_external_function_type_invalid.sol
│ │ │ ├── delete_function_type.sol
│ │ │ ├── delete_function_type_invalid.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_library_function_to_external_function_type.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_types_internal_visibility_error.sol
│ │ │ ├── function_types_variable_visibility.sol
│ │ │ ├── inline_array_with_bound_function.sol
│ │ │ ├── inline_array_with_bound_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
│ │ │ ├── payable_internal_function_type.sol
│ │ │ ├── payable_internal_function_type_is_not_fatal.sol
│ │ │ ├── private_function_type.sol
│ │ │ ├── public_function_type.sol
│ │ │ ├── ternary_with_bound_functions.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
│ │ │ ├── call_with_wrong_arg_count.sol
│ │ │ ├── callcode_with_wrong_arg_count.sol
│ │ │ ├── delegatecall_with_wrong_arg_count.sol
│ │ │ ├── keccak256_with_wrong_arg_count.sol
│ │ │ ├── now_deprecate.sol
│ │ │ ├── now_override.sol
│ │ │ ├── ripemd160_with_wrong_arg_count.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
│ │ │ ├── declarationUnaryTuple
│ │ │ │ ├── declaration_bitnot_tuple.sol
│ │ │ │ ├── declaration_dec_tuple.sol
│ │ │ │ ├── declaration_delete_tuple.sol
│ │ │ │ ├── declaration_inc_tuple.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
│ │ │ ├── oversized_var.sol
│ │ │ └── recursive_struct_memory.sol
│ │ ├── immutable
│ │ │ ├── as_function_param.sol
│ │ │ ├── assembly.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
│ │ │ ├── delete.sol
│ │ │ ├── delete_and_initialize.sol
│ │ │ ├── double_specifier.sol
│ │ │ ├── external_function_pointer.sol
│ │ │ ├── function_initialization.sol
│ │ │ ├── function_initialization_reading.sol
│ │ │ ├── function_pointer_initializing.sol
│ │ │ ├── function_pointer_reading.sol
│ │ │ ├── immutable_basic.sol
│ │ │ ├── increment.sol
│ │ │ ├── increment_decrement.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
│ │ │ ├── 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
│ │ │ ├── private_state_var.sol
│ │ │ ├── reading_after_initialization.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
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ ├── disallow_modifier_style_without_parentheses.sol
│ │ │ ├── duplicated_constructor_call
│ │ │ │ ├── ancestor.sol
│ │ │ │ ├── base.sol
│ │ │ │ ├── base_multi.sol
│ │ │ │ ├── base_multi_no_constructor.sol
│ │ │ │ └── base_multi_no_constructor_modifier_style.sol
│ │ │ ├── fallback_receive
│ │ │ │ ├── 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_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
│ │ │ │ ├── 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
│ │ │ │ ├── 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_interface.sol
│ │ │ │ ├── override_interface_multiple.sol
│ │ │ │ ├── override_less_strict_mutability.sol
│ │ │ │ ├── override_library.sol
│ │ │ │ ├── override_missing_virtual.sol
│ │ │ │ ├── override_modifier_no_override.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_unimplemented_fail.sol
│ │ │ │ ├── override_unimplemented_fine.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_funciton.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
│ │ │ ├── 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
│ │ ├── inlineAssembly
│ │ │ ├── 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_opcode_like.sol
│ │ │ ├── assignment_to_special.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
│ │ │ ├── evm_byzantium.sol
│ │ │ ├── evm_byzantium_on_homestead.sol
│ │ │ ├── evm_constantinople.sol
│ │ │ ├── evm_constantinople_on_byzantium.sol
│ │ │ ├── evm_istanbul.sol
│ │ │ ├── evm_istanbul_on_petersburg.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
│ │ │ │ ├── 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_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
│ │ │ │ ├── identifier_starting_with_dot.sol
│ │ │ │ ├── invalid_number.sol
│ │ │ │ ├── jump_disallowed.sol
│ │ │ │ ├── jumpdest_disallowed.sol
│ │ │ │ ├── jumpi_disallowed.sol
│ │ │ │ ├── label_disallowed.sol
│ │ │ │ ├── leave_items_on_tack.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
│ │ │ │ ├── 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
│ │ │ ├── leave.sol
│ │ │ ├── leave_invalid.sol
│ │ │ ├── linkersymbol_builtin.sol
│ │ │ ├── linkersymbol_function.sol
│ │ │ ├── no_unused_variable_warning.sol
│ │ │ ├── overloaded_reference.sol
│ │ │ ├── period_in_identifer.sol
│ │ │ ├── shadowing
│ │ │ │ ├── argument.sol
│ │ │ │ ├── constant.sol
│ │ │ │ ├── contract.sol
│ │ │ │ ├── function.sol
│ │ │ │ ├── local_variable.sol
│ │ │ │ ├── name_clash_in_import.sol
│ │ │ │ ├── no_name_clash_in_import.sol
│ │ │ │ ├── qualified_names.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.yul
│ │ │ ├── string_literal_switch_case.yul
│ │ │ ├── two_stack_slot_access.sol
│ │ │ ├── two_stack_slots.sol
│ │ │ ├── use_msize_with_optimizer.sol
│ │ │ └── use_msize_without_optimizer.sol
│ │ ├── inline_arrays
│ │ │ ├── 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_types_in_inline_array_1.sol
│ │ │ └── unnamed_types_in_inline_array_2.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
│ │ │ ├── oversized_array.sol
│ │ │ ├── oversized_contract.sol
│ │ │ ├── oversized_contract_inheritance.sol
│ │ │ ├── oversized_struct.sol
│ │ │ └── storage_parameter.sol
│ │ ├── license
│ │ │ ├── license_double.sol
│ │ │ └── license_missing.sol
│ │ ├── literalOperations
│ │ │ ├── division_by_zero.sol
│ │ │ ├── division_by_zero_complex.sol
│ │ │ ├── exponent.sol
│ │ │ ├── exponent_fine.sol
│ │ │ ├── mod_zero.sol
│ │ │ └── mod_zero_complex.sol
│ │ ├── literal_comparisons.sol
│ │ ├── literals
│ │ │ ├── hex_string_duplicate_underscore.sol
│ │ │ ├── hex_string_leading_underscore.sol
│ │ │ ├── hex_string_misaligned_underscore.sol
│ │ │ ├── hex_string_trailing_underscore.sol
│ │ │ └── hex_string_underscores_valid.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_value_modifier_payable.sol
│ │ │ ├── msg_value_modifier_pure.sol
│ │ │ ├── msg_value_modifier_view.sol
│ │ │ ├── push_on_memory_types.sol
│ │ │ └── unused_module_member_reference.sol
│ │ ├── metaTypes
│ │ │ ├── codeAccess.sol
│ │ │ ├── codeAccessAbstractCreation.sol
│ │ │ ├── codeAccessAbstractRuntime.sol
│ │ │ ├── codeAccessBase.sol
│ │ │ ├── codeAccessCyclic.sol
│ │ │ ├── codeAccessIsConstant.sol
│ │ │ ├── codeAccessLibrary.sol
│ │ │ ├── codeIsNoLValue.sol
│ │ │ ├── contract_min.sol
│ │ │ ├── int_name.sol
│ │ │ ├── integer.sol
│ │ │ ├── integer_err.sol
│ │ │ ├── integer_pure.sol
│ │ │ ├── name.sol
│ │ │ ├── name_constant.sol
│ │ │ ├── name_other_contract.sol
│ │ │ ├── noArgForType.sol
│ │ │ ├── runtimeCodeWarningAssembly.sol
│ │ │ ├── tooManyArgsForType.sol
│ │ │ ├── typeNotRegularIdentifierContractName.sol
│ │ │ ├── typeNotRegularIdentifierFunction.sol
│ │ │ ├── typeNotRegularIdentifierParameter.sol
│ │ │ ├── typeNotRegularIdentifierStateVariable.sol
│ │ │ ├── typeNotRegularIdentifierVariable.sol
│ │ │ ├── typeOfContract.sol
│ │ │ ├── typeRecursive.sol
│ │ │ └── unsupportedArgForType.sol
│ │ ├── missing_functions_duplicate_bug.sol
│ │ ├── missing_state_variable.sol
│ │ ├── modifiers
│ │ │ ├── base_constructor_double_invocation.sol
│ │ │ ├── constructor_as_modifier.sol
│ │ │ ├── constructor_call_invalid_arg_count.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
│ │ │ ├── invalid_function_modifier_type.sol
│ │ │ ├── legal_modifier_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
│ │ │ ├── non-virtual_modifier_override.sol
│ │ │ ├── unimplemented_function_and_modifier.sol
│ │ │ └── use_in_invalid_context.sol
│ │ ├── more_than_256_declarationerrors.sol
│ │ ├── more_than_256_importerrors.sol
│ │ ├── more_than_256_syntaxerrors.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_redefinition_base_derived.sol
│ │ │ ├── free_function_redefinition_transitive.sol
│ │ │ ├── free_function_resolution_override_virtual.sol
│ │ │ ├── import.sol
│ │ │ ├── import_contract_function_error.sol
│ │ │ ├── import_not_found.sol
│ │ │ ├── imported_free_function.sol
│ │ │ ├── multiple_imports_same_function.sol
│ │ │ ├── no_import.sol
│ │ │ ├── one_source.sol
│ │ │ ├── reimport_imported_function.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
│ │ ├── multiline_comments.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
│ │ │ ├── 020_comparison_of_function_types_lt_1.sol
│ │ │ ├── 021_comparison_of_function_types_lt_2.sol
│ │ │ ├── 022_comparison_of_function_types_gt_1.sol
│ │ │ ├── 023_comparison_of_function_types_gt_2.sol
│ │ │ ├── 024_comparison_of_function_types_eq.sol
│ │ │ ├── 025_comparison_of_mapping_types.sol
│ │ │ ├── 029_create_abstract_contract.sol
│ │ │ ├── 030_redeclare_implemented_abstract_function_as_abstract.sol
│ │ │ ├── 039_functions_with_identical_structs_in_interface.sol
│ │ │ ├── 040_functions_with_different_structs_in_interface.sol
│ │ │ ├── 041_functions_with_structs_of_non_external_types_in_interface.sol
│ │ │ ├── 042_functions_with_structs_of_non_external_types_in_interface_2.sol
│ │ │ ├── 042_functions_with_stucts_of_non_external_types_in_interface_2.sol
│ │ │ ├── 043_functions_with_structs_of_non_external_types_in_interface_nested.sol
│ │ │ ├── 043_functions_with_stucts_of_non_external_types_in_interface_nested.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
│ │ │ ├── 262_bound_function_in_var.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
│ │ │ ├── 430_bare_selfdestruct.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
│ │ │ ├── 515_experimental_pragma_empty.sol
│ │ │ ├── 516_experimental_pragma_unknown_number_literal.sol
│ │ │ ├── 517_experimental_pragma_unknown_string_literal.sol
│ │ │ ├── 518_experimental_pragma_unknown_quoted_string_literal.sol
│ │ │ ├── 519_experimental_pragma_empy_string_literal.sol
│ │ │ ├── 520_experimental_pragma_multiple_same_line.sol
│ │ │ ├── 521_experimental_pragma_test_warning.sol
│ │ │ ├── 522_experimental_pragma_duplicate.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
│ │ │ ├── 588_interface_function_modifier.sol
│ │ │ ├── call_option_value_on_library_function.sol
│ │ │ ├── compoundAssignment
│ │ │ │ ├── incomp_types.sol
│ │ │ │ ├── tuple.sol
│ │ │ │ └── tuple_invalid_inline_array_type.sol
│ │ │ ├── constant_mapping.sol
│ │ │ ├── free_and_constant.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
│ │ │ │ ├── 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
│ │ ├── natspec
│ │ │ ├── docstring_author_function.sol
│ │ │ ├── docstring_author_title_state_variable.sol
│ │ │ ├── docstring_double_empty.sol
│ │ │ ├── docstring_empty_description.sol
│ │ │ ├── docstring_empty_tag.sol
│ │ │ ├── docstring_named_return_parameter.sol
│ │ │ ├── docstring_non_public_state_variable_with_return.sol
│ │ │ ├── docstring_parameter.sol
│ │ │ ├── docstring_private_state_variable.sol
│ │ │ ├── docstring_state_variable.sol
│ │ │ ├── docstring_state_variable_too_many_return_tags.sol
│ │ │ ├── docstring_too_many_return_tags.sol
│ │ │ ├── docstring_variable.sol
│ │ │ └── invalid
│ │ │ │ ├── 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_parameter.sol
│ │ │ │ ├── docstring_return_size_mismatch.sol
│ │ │ │ └── inherit_doc_events.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
│ │ │ ├── declaring_fixed_and_ufixed_variables.sol
│ │ │ ├── declaring_fixed_literal_variables.sol
│ │ │ ├── elemantary_non_address_payable_state_variable.sol
│ │ │ ├── elementary_non_address_payable_argument.sol
│ │ │ ├── elementary_non_address_payable_local.sol
│ │ │ ├── elementary_non_address_payable_return.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
│ │ │ ├── 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_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
│ │ │ ├── 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_return_param_trailing_comma.sol
│ │ │ ├── multiple_statemutability_specifiers.sol
│ │ │ ├── multiple_visibility_specifiers.sol
│ │ │ ├── new_address_payable.sol
│ │ │ ├── new_invalid_type_name.sol
│ │ │ ├── no_function_params.sol
│ │ │ ├── overloaded_functions.sol
│ │ │ ├── payable_accessor.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
│ │ │ ├── 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
│ │ │ ├── invalid_pragma.sol
│ │ │ ├── unknown_pragma.sol
│ │ │ └── version_check.sol
│ │ ├── receiveEther
│ │ │ ├── arguments.sol
│ │ │ ├── default_visibility.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
│ │ ├── scoping
│ │ │ ├── access_in_assignment_dynamic_array.sol
│ │ │ ├── access_in_assignment_struct.sol
│ │ │ ├── double_function_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
│ │ │ ├── function_state_variable_conflict.sol
│ │ │ ├── library_inherited.sol
│ │ │ ├── library_inherited2.sol
│ │ │ ├── name_pseudo_shadowing.sol
│ │ │ ├── name_pseudo_shadowing2.sol
│ │ │ ├── name_shadowing.sol
│ │ │ ├── name_shadowing2.sol
│ │ │ ├── name_shadowing3.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_singed_rvalue.sol
│ │ ├── signed_rational_modulus.sol
│ │ ├── smoke_test.sol
│ │ ├── specialFunctions
│ │ │ ├── abi_encodePacked_nested_dynamic_array.sol
│ │ │ ├── abi_encodePacked_nested_dynamic_array_v2.sol
│ │ │ ├── abi_encodePacked_structs_v2.sol
│ │ │ ├── abi_encode_nested_dynamic_array.sol
│ │ │ ├── abi_encode_nested_dynamic_array_v2.sol
│ │ │ ├── abi_encode_structs.sol
│ │ │ ├── abi_encode_structs_abiv2.sol
│ │ │ ├── abi_functions_member_access.sol
│ │ │ ├── abidecode
│ │ │ │ ├── abi_decode_calldata.sol
│ │ │ │ ├── abi_decode_empty.sol
│ │ │ │ ├── abi_decode_invalid_arg_count.sol
│ │ │ │ ├── abi_decode_invalid_arg_type.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
│ │ │ │ └── contract_array.sol
│ │ │ ├── encodePacked_array_of_structs.sol
│ │ │ ├── encodePacked_dynamic_string_array_v2.sol
│ │ │ ├── encode_array_of_struct.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
│ │ ├── string
│ │ │ ├── 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
│ │ │ ├── global_struct.sol
│ │ │ ├── global_struct_contract_name_clash.sol
│ │ │ ├── global_struct_shadowing.sol
│ │ │ ├── global_structs_name_clash.sol
│ │ │ ├── member_type_eq_name.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
│ │ ├── super
│ │ │ ├── super_in_function.sol
│ │ │ └── super_in_library.sol
│ │ ├── tight_packing_literals.sol
│ │ ├── tight_packing_literals_fine.sol
│ │ ├── tryCatch
│ │ │ ├── almost_call_options.sol
│ │ │ ├── catch_error.sol
│ │ │ ├── catch_error_named.sol
│ │ │ ├── catch_low_level.sol
│ │ │ ├── creation.sol
│ │ │ ├── empty_catch.sol
│ │ │ ├── empty_returns.sol
│ │ │ ├── error_with_wrong_type.sol
│ │ │ ├── invalid_error_name.sol
│ │ │ ├── invalid_returns.sol
│ │ │ ├── library_call.sol
│ │ │ ├── low_level_pre-byzantium.sol
│ │ │ ├── low_level_with_wrong_type.sol
│ │ │ ├── no_catch.sol
│ │ │ ├── no_external_call.sol
│ │ │ ├── no_returns.sol
│ │ │ ├── no_special.sol
│ │ │ ├── returns.sol
│ │ │ ├── returns_memory.sol
│ │ │ ├── returns_memory_anonymous.sol
│ │ │ ├── scoping.sol
│ │ │ ├── simple_catch.sol
│ │ │ ├── structured_pre_byzantium.sol
│ │ │ ├── two_catch_clauses.sol
│ │ │ ├── two_error_catch_clauses.sol
│ │ │ └── two_low_level_catch_clauses.sol
│ │ ├── tupleAssignments
│ │ │ ├── double_storage_crash.sol
│ │ │ ├── empty_tuples_lhs.sol
│ │ │ ├── err_fill_assignment.sol
│ │ │ ├── error_fill.sol
│ │ │ ├── large_component_count.sol
│ │ │ ├── nowarn_swap_memory.sol
│ │ │ ├── nowarn_swap_storage_pointers.sol
│ │ │ ├── tuple_in_tuple_long.sol
│ │ │ ├── tuple_in_tuple_short.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_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
│ │ │ │ ├── bytes_long_to_payable_address.sol
│ │ │ │ ├── bytes_short_to_payable_address.sol
│ │ │ │ ├── bytes_to_payable_address.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
│ │ │ │ ├── literal_to_address.sol
│ │ │ │ ├── literal_to_payable_address.sol
│ │ │ │ ├── nonpayable_address_to_contract_payable_fallback.sol
│ │ │ │ ├── nonpayable_address_to_contract_receive.sol
│ │ │ │ ├── payable_address_to_address.sol
│ │ │ │ ├── super_to_address.sol
│ │ │ │ ├── type_type_to_address.sol
│ │ │ │ └── uint_to_payable_address.sol
│ │ │ ├── array_index_too_large.sol
│ │ │ ├── bool_ops.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
│ │ │ ├── function_call_fail.sol
│ │ │ ├── function_call_fail2.sol
│ │ │ ├── function_types
│ │ │ │ ├── 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
│ │ │ │ │ ├── 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
│ │ │ ├── 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_same_size_explicit.sol
│ │ │ ├── hex_string_to_bytesNN_same_size_implicit.sol
│ │ │ ├── index_access_for_bytes.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_istanbul.sol
│ │ │ ├── mapping
│ │ │ │ ├── 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
│ │ │ │ ├── contract_mapping.sol
│ │ │ │ ├── contract_mapping_invalid.sol
│ │ │ │ ├── contract_storage_parameter_with_mapping.sol
│ │ │ │ ├── enum_mapping.sol
│ │ │ │ ├── enum_mapping_invalid.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
│ │ │ │ ├── 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_recusrive_data_location_memory.sol
│ │ │ │ ├── memory_struct_recursive.sol
│ │ │ │ └── memory_structs_with_mappings.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
│ │ │ ├── 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
│ │ ├── underscore
│ │ │ ├── as_function.sol
│ │ │ ├── in_function.sol
│ │ │ └── in_modifier.sol
│ │ ├── unexpected.sol
│ │ ├── unimplemented_super_function.sol
│ │ ├── unimplemented_super_function_derived.sol
│ │ ├── unterminatedBlocks
│ │ │ ├── one_dot.sol
│ │ │ ├── one_dot_x.sol
│ │ │ ├── zero_dot.sol
│ │ │ └── zero_dot_x.sol
│ │ ├── unusedVariables
│ │ │ └── try_catch.sol
│ │ ├── upper_case_hex_literals.sol
│ │ ├── variableDeclaration
│ │ │ ├── do_while.sol
│ │ │ ├── else.sol
│ │ │ ├── for.sol
│ │ │ ├── if.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
│ │ │ ├── array
│ │ │ │ ├── access_to_array_push.sol
│ │ │ │ ├── access_to_array_push_view.sol
│ │ │ │ └── access_to_base_member_array.sol
│ │ │ ├── assembly.sol
│ │ │ ├── assembly_constantinople.sol
│ │ │ ├── assembly_istanbul.sol
│ │ │ ├── builtin_functions.sol
│ │ │ ├── builtin_functions_restrict_warning.sol
│ │ │ ├── builtin_functions_view_fail.sol
│ │ │ ├── call_internal_functions_fail.sol
│ │ │ ├── call_internal_functions_success.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
│ │ │ ├── function_types.sol
│ │ │ ├── function_types_fail.sol
│ │ │ ├── gas_value_without_call.sol
│ │ │ ├── gas_with_call_nonpayable.sol
│ │ │ ├── immutable.sol
│ │ │ ├── interface.sol
│ │ │ ├── local_storage_variables.sol
│ │ │ ├── local_storage_variables_fail.sol
│ │ │ ├── mappings.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
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ └── library_self_delegatecall.sol
│ └── util
│ │ ├── BytesUtils.cpp
│ │ ├── BytesUtils.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
│ ├── FixedHash.cpp
│ ├── IndentedWriter.cpp
│ ├── IpfsHash.cpp
│ ├── IterateReplacing.cpp
│ ├── JSON.cpp
│ ├── Keccak256.cpp
│ ├── LEB128.cpp
│ ├── LazyInit.cpp
│ ├── StringUtils.cpp
│ ├── SwarmHash.cpp
│ ├── UTF8.cpp
│ └── Whiskers.cpp
├── libyul
│ ├── Common.cpp
│ ├── Common.h
│ ├── CompilabilityChecker.cpp
│ ├── EwasmTranslationTest.cpp
│ ├── EwasmTranslationTest.h
│ ├── FunctionSideEffects.cpp
│ ├── FunctionSideEffects.h
│ ├── Inliner.cpp
│ ├── Metrics.cpp
│ ├── ObjectCompilerTest.cpp
│ ├── ObjectCompilerTest.h
│ ├── ObjectParser.cpp
│ ├── Parser.cpp
│ ├── StackReuseCodegen.cpp
│ ├── SyntaxTest.cpp
│ ├── SyntaxTest.h
│ ├── YulInterpreterTest.cpp
│ ├── YulInterpreterTest.h
│ ├── YulOptimizerTest.cpp
│ ├── YulOptimizerTest.h
│ ├── ewasmTranslationTests
│ │ ├── address.yul
│ │ ├── arithmetic_add.yul
│ │ ├── arithmetic_addmod.yul
│ │ ├── arithmetic_div.yul
│ │ ├── arithmetic_exp.yul
│ │ ├── arithmetic_mod.yul
│ │ ├── arithmetic_mul.yul
│ │ ├── arithmetic_mulmod.yul
│ │ ├── arithmetic_sdiv.yul
│ │ ├── arithmetic_smod.yul
│ │ ├── arithmetic_sub.yul
│ │ ├── balance.yul
│ │ ├── bitwise_and.yul
│ │ ├── bitwise_not.yul
│ │ ├── bitwise_or.yul
│ │ ├── bitwise_xor.yul
│ │ ├── blockhash.yul
│ │ ├── calldatacopy.yul
│ │ ├── calldataload.yul
│ │ ├── calldatasize.yul
│ │ ├── caller.yul
│ │ ├── callvalue.yul
│ │ ├── chainid.yul
│ │ ├── codecopy.yul
│ │ ├── codesize.yul
│ │ ├── coinbase.yul
│ │ ├── comparison_eq.yul
│ │ ├── comparison_gt.yul
│ │ ├── comparison_lt.yul
│ │ ├── comparison_sgt.yul
│ │ ├── comparison_slt.yul
│ │ ├── datacopy.yul
│ │ ├── dataoffset.yul
│ │ ├── datasize.yul
│ │ ├── difficulty.yul
│ │ ├── extcodecopy.yul
│ │ ├── extcodehash.yul
│ │ ├── extcodesize.yul
│ │ ├── gas.yul
│ │ ├── gaslimit.yul
│ │ ├── gasprice.yul
│ │ ├── invalid.yul
│ │ ├── iszero.yul
│ │ ├── keccak256.yul
│ │ ├── log0.yul
│ │ ├── log1.yul
│ │ ├── log2.yul
│ │ ├── log3.yul
│ │ ├── log4.yul
│ │ ├── loop_break.yul
│ │ ├── loop_continue.yul
│ │ ├── memoryguard.yul
│ │ ├── msize.yul
│ │ ├── mstore8.yul
│ │ ├── mstore_mload.yul
│ │ ├── number.yul
│ │ ├── origin.yul
│ │ ├── return.yul
│ │ ├── returndatacopy.yul
│ │ ├── returndatasize.yul
│ │ ├── revert.yul
│ │ ├── selfbalance.yul
│ │ ├── selfdestruct.yul
│ │ ├── shifts.yul
│ │ ├── signextend.yul
│ │ ├── simple_mstore.yul
│ │ ├── simple_sload.yul
│ │ ├── simple_sstore.yul
│ │ ├── smoke.yul
│ │ ├── smoke_call.yul
│ │ ├── smoke_callcode.yul
│ │ ├── smoke_create.yul
│ │ ├── smoke_create2.yul
│ │ ├── smoke_delegatecall.yul
│ │ ├── smoke_staticcall.yul
│ │ └── timestamp.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
│ │ └── 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
│ │ ├── function_series.yul
│ │ ├── immutable_long_name_does_not_end_up_in_bytecode.yul
│ │ ├── jump_tags.yul
│ │ ├── linkersymbol.yul
│ │ ├── long_object_name.yul
│ │ ├── namedObject.yul
│ │ ├── namedObjectCode.yul
│ │ ├── nested_optimizer.yul
│ │ ├── simple.yul
│ │ ├── simple_optimizer.yul
│ │ ├── smoke.yul
│ │ ├── subObject.yul
│ │ ├── subObjectAccess.yul
│ │ ├── subSubObject.yul
│ │ └── wasm
│ │ │ ├── no_main_function.yul
│ │ │ ├── simple.yul
│ │ │ ├── subObject.yul
│ │ │ └── subObjectAccess.yul
│ ├── yulInterpreterTests
│ │ ├── access_large_memory_offsets.yul
│ │ ├── ambiguous_vars.yul
│ │ ├── and_create.yul
│ │ ├── and_create2.yul
│ │ ├── bounded_recursion.yul
│ │ ├── datacopy.yul
│ │ ├── dataoffset.yul
│ │ ├── datasize.yul
│ │ ├── exp.yul
│ │ ├── expr_nesting_depth_exceeded.yul
│ │ ├── expr_nesting_depth_not_exceeded.yul
│ │ ├── external_call.yul
│ │ ├── function_calls.yul
│ │ ├── function_scopes.yul
│ │ ├── infinite_recursion.yul
│ │ ├── infinite_recursion_tracelimit.yul
│ │ ├── leave.yul
│ │ ├── leave_for_init.yul
│ │ ├── long_obect_name.yul
│ │ ├── loop.yul
│ │ ├── pop_byte_shr_call.yul
│ │ ├── pop_byte_shr_func.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
│ ├── 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
│ │ │ ├── loop.yul
│ │ │ ├── movable_functions.yul
│ │ │ ├── non_movable_instr.yul
│ │ │ ├── non_movable_instr2.yul
│ │ │ ├── object_access.yul
│ │ │ ├── scopes.yul
│ │ │ ├── smoke.yul
│ │ │ ├── trivial.yul
│ │ │ ├── unassigned_return.yul
│ │ │ ├── unassigned_variables.yul
│ │ │ └── variable_for_variable.yul
│ │ ├── conditionalSimplifier
│ │ │ ├── add_correct_type.yul
│ │ │ ├── add_correct_type_wasm.yul
│ │ │ ├── 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
│ │ │ └── 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
│ │ │ └── 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
│ │ │ ├── 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
│ │ │ ├── funtion_call.yul
│ │ │ ├── if_statement.yul
│ │ │ ├── long_names.yul
│ │ │ ├── smoke.yul
│ │ │ ├── smoke_yul.yul
│ │ │ ├── switch_statement.yul
│ │ │ ├── variables.yul
│ │ │ ├── variables_clash.yul
│ │ │ └── variables_inside_functions.yul
│ │ ├── equivalentFunctionCombiner
│ │ │ ├── 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_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
│ │ │ ├── invariant.yul
│ │ │ ├── large_byte_access.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
│ │ │ ├── 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
│ │ ├── expressionSplitter
│ │ │ ├── control_flow.yul
│ │ │ ├── inside_function.yul
│ │ │ ├── object_access.yul
│ │ │ ├── smoke.yul
│ │ │ ├── switch.yul
│ │ │ ├── trivial.yul
│ │ │ └── typed.yul
│ │ ├── fakeStackLimitEvader
│ │ │ ├── connected.yul
│ │ │ ├── function_arg.yul
│ │ │ ├── outer_block.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
│ │ │ ├── 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
│ │ │ ├── multi_return_typed.yul
│ │ │ ├── no_inline_into_big_function.yul
│ │ │ ├── no_inline_into_big_global_context.yul
│ │ │ ├── no_inline_leave.yul
│ │ │ ├── no_return.yul
│ │ │ ├── not_inside_for.yul
│ │ │ ├── pop_result.yul
│ │ │ ├── recursion.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
│ │ │ ├── signextend.yul
│ │ │ └── smoke.yul
│ │ ├── fullSuite
│ │ │ ├── abi2.yul
│ │ │ ├── abi_example1.yul
│ │ │ ├── aztec.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
│ │ │ ├── loopInvariantCodeMotion.yul
│ │ │ ├── medium.yul
│ │ │ ├── name_cleaner_reserved.yul
│ │ │ ├── no_move_loop_orig.yul
│ │ │ ├── remove_redundant_assignments_in_switch.yul
│ │ │ ├── reuse_vars_bug_in_simplifier.yul
│ │ │ ├── ssaReverse.yul
│ │ │ ├── ssaReverseComplex.yul
│ │ │ ├── stack_compressor_msize.yul
│ │ │ ├── storage.yul
│ │ │ ├── switch_inline.yul
│ │ │ ├── switch_inline_match_default.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
│ │ ├── loadResolver
│ │ │ ├── double_mload.yul
│ │ │ ├── double_mload_with_other_reassignment.yul
│ │ │ ├── double_mload_with_reassignment.yul
│ │ │ ├── loop.yul
│ │ │ ├── memory_with_different_kinds_of_invalidation.yul
│ │ │ ├── memory_with_msize.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
│ │ │ ├── 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
│ │ ├── 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_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_loop.yul
│ │ │ ├── non-ssavar.yul
│ │ │ ├── nonMovable.yul
│ │ │ ├── not_first.yul
│ │ │ ├── recursive.yul
│ │ │ ├── simple.yul
│ │ │ ├── simple_memory.yul
│ │ │ ├── simple_state.yul
│ │ │ └── simple_storage.yul
│ │ ├── mainFunction
│ │ │ ├── empty_block.yul
│ │ │ ├── multi_fun_mixed.yul
│ │ │ ├── nested_fun.yul
│ │ │ ├── single_fun.yul
│ │ │ └── smoke.yul
│ │ ├── nameDisplacer
│ │ │ ├── funtion_call.yul
│ │ │ ├── variables.yul
│ │ │ └── variables_inside_functions.yul
│ │ ├── reasoningBasedSimplifier
│ │ │ ├── addmod.yul
│ │ │ ├── arith.yul
│ │ │ ├── arith_movable.yul
│ │ │ ├── arith_non_movable.yul
│ │ │ ├── mulcheck.yul
│ │ │ ├── mulmod.yul
│ │ │ ├── negative_rounding.yul
│ │ │ ├── nested.yul
│ │ │ ├── signed_division.yul
│ │ │ ├── smod.yul
│ │ │ ├── smoke.yul
│ │ │ └── wrapping.yul
│ │ ├── redundantAssignEliminator
│ │ │ ├── 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
│ │ │ ├── scopes.yul
│ │ │ ├── simple.yul
│ │ │ ├── switch_overwrite_in_all.yul
│ │ │ ├── switch_overwrite_in_one.yul
│ │ │ ├── switch_overwrite_use_combination.yul
│ │ │ └── switch_unused.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
│ │ │ ├── function.yul
│ │ │ ├── multi_assign.yul
│ │ │ ├── multi_decl.yul
│ │ │ ├── nested.yul
│ │ │ ├── nested_reassign.yul
│ │ │ ├── notransform.yul
│ │ │ ├── simple.yul
│ │ │ ├── switch.yul
│ │ │ ├── switch_reassign.yul
│ │ │ ├── typed.yul
│ │ │ ├── typed_for.yul
│ │ │ ├── typed_switch.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
│ │ │ └── tree.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
│ │ ├── 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
│ │ │ └── trivial.yul
│ │ ├── varDeclInitializer
│ │ │ ├── ambiguous.yul
│ │ │ ├── inside_func.yul
│ │ │ ├── multi.yul
│ │ │ ├── multi_assign.yul
│ │ │ ├── simple.yul
│ │ │ └── typed.yul
│ │ ├── varNameCleaner
│ │ │ ├── builtins.yul
│ │ │ ├── function_names.yul
│ │ │ ├── function_parameters.yul
│ │ │ ├── function_scopes.yul
│ │ │ ├── instructions.yul
│ │ │ ├── name_stripping.yul
│ │ │ ├── reshuffling-inverse.yul
│ │ │ └── reshuffling.yul
│ │ └── wordSizeTransform
│ │ │ ├── constant_assignment.yul
│ │ │ ├── function_call.yul
│ │ │ ├── functional_instruction.yul
│ │ │ ├── if.yul
│ │ │ ├── or_bool_renamed.yul
│ │ │ ├── switch_1.yul
│ │ │ ├── switch_2.yul
│ │ │ ├── switch_3.yul
│ │ │ ├── switch_4.yul
│ │ │ └── switch_5.yul
│ └── yulSyntaxTests
│ │ ├── are_we_perl_yet.yul
│ │ ├── assign_from_stack.yul
│ │ ├── assignment.yul
│ │ ├── assignment_duplicate_vars.yul
│ │ ├── assignment_fail.yul
│ │ ├── assignment_of_function.yul
│ │ ├── blocks.yul
│ │ ├── break_outside_of_for_loop.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
│ │ ├── 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
│ │ ├── 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_loop_condition_fail.yul
│ │ ├── for_loop_condition_fail_ewasm.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_expression.yul
│ │ ├── hex_switch_case.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_fail_3.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
│ │ ├── dup_disallowed.yul
│ │ ├── invalid_octal_number.yul
│ │ ├── jump_disallowed.yul
│ │ ├── jumpdest_disallowed.yul
│ │ ├── jumpi_disallowed.yul
│ │ ├── label_disallowed.yul
│ │ ├── leave_items_on_tack.yul
│ │ ├── literals_on_stack_disallowed.yul
│ │ ├── pc_disallowed.yul
│ │ ├── push_disallowed.yul
│ │ └── swap_disallowed.yul
│ │ ├── invalid_tuple_assignment.yul
│ │ ├── invalid_type.yul
│ │ ├── invalid_type2.yul
│ │ ├── invalid_type3.yul
│ │ ├── invalid_type4.yul
│ │ ├── keywords.yul
│ │ ├── linkersymbol_bad_literal.yul
│ │ ├── linkersymbol_evm.yul
│ │ ├── linkersymbol_evmtyped.yul
│ │ ├── linkersymbol_ewasm.yul
│ │ ├── linkersymbol_non_literal_args.yul
│ │ ├── linkersymbol_shadowing.yul
│ │ ├── literal_invalid_type.yul
│ │ ├── loadimmutable.yul
│ │ ├── loadimmutable_bad_literal.yul
│ │ ├── loadimmutable_shadowing.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_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
│ │ ├── 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
│ │ ├── 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
│ │ ├── token_as_identifier.yul
│ │ ├── tuple_assignment.yul
│ │ ├── type_check_cases.yul
│ │ ├── type_check_cases_fail.yul
│ │ ├── type_check_cases_fail_evmtyped.yul
│ │ ├── type_check_if_condition.yul
│ │ ├── type_check_if_condition_fail.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
├── solc-verify
│ ├── arrays
│ │ ├── ArrayInit.sol
│ │ ├── ArrayInit.sol.gold
│ │ ├── ArrayLayout.sol
│ │ ├── ArrayLocalStorage.sol
│ │ ├── ArrayLocalStorage.sol.gold
│ │ ├── ArrayLocalStoragePushPopLen.sol
│ │ ├── ArrayLocalStoragePushPopLen.sol.gold
│ │ ├── Arrays.sol
│ │ ├── Arrays.sol.gold
│ │ ├── ArraysCopying.sol
│ │ ├── ArraysCopying.sol.gold
│ │ ├── ArraysMem.sol
│ │ ├── ArraysMem.sol.gold
│ │ ├── ArraysMemAliasing.sol
│ │ ├── ArraysMemAliasing.sol.gold
│ │ ├── ArraysMemAliasingParam.sol
│ │ ├── ArraysMemAliasingParam.sol.gold
│ │ ├── ArraysMemDynamic.sol
│ │ ├── ArraysMemDynamic.sol.gold
│ │ ├── ArraysMemWarning.sol
│ │ ├── ArraysMemWarning.sol.gold
│ │ ├── ArraysPopDangling.sol
│ │ ├── ArraysPopDangling.sol.gold
│ │ ├── ArraysPushPop.sol
│ │ ├── ArraysPushPop.sol.gold
│ │ ├── ArraysStorage.sol
│ │ ├── ArraysStorage.sol.gold
│ │ ├── CallDataArray.sol
│ │ ├── CallDataArray.sol.gold
│ │ ├── DeleteStorageArray.sol
│ │ ├── DeleteStorageArray.sol.gold
│ │ ├── FixedBytes.sol
│ │ ├── FixedBytes.sol.gold
│ │ ├── MappingInArray.sol
│ │ ├── MappingInArray.sol.gold
│ │ ├── MappingInit.sol
│ │ ├── MappingInit.sol.gold
│ │ ├── MappingLayout.sol
│ │ ├── MappingLayout.sol.gold
│ │ ├── MappingLocalStorage.sol
│ │ ├── MappingLocalStorage.sol.gold
│ │ ├── Mappings.sol
│ │ ├── Mappings.sol.gold
│ │ ├── PushBeforeLocal.sol
│ │ ├── PushBeforeLocal.sol.gold
│ │ ├── StringEq.sol
│ │ └── StringEq.sol.gold
│ ├── azure
│ │ ├── AssetTransfer.sol
│ │ ├── AssetTransfer.sol.gold
│ │ ├── BasicProvenance.sol
│ │ ├── BasicProvenance.sol.gold
│ │ ├── BazaarItemListing.sol
│ │ ├── BazaarItemListing.sol.gold
│ │ ├── DefectiveComponentCounter.sol
│ │ ├── DefectiveComponentCounter.sol.gold
│ │ ├── DigitalLocker.sol
│ │ ├── DigitalLocker.sol.gold
│ │ ├── FrequentFlyerRewardsCalculator.sol
│ │ ├── FrequentFlyerRewardsCalculator.sol.gold
│ │ ├── HelloBlockchain.sol
│ │ ├── HelloBlockchain.sol.gold
│ │ ├── PingPongGame.sol
│ │ ├── PingPongGame.sol.gold
│ │ ├── README.md
│ │ ├── RefrigeratedTransportation.sol
│ │ ├── RefrigeratedTransportation.sol.gold
│ │ ├── RefrigeratedTransportationWithTime.sol
│ │ ├── RefrigeratedTransportationWithTime.sol.gold
│ │ ├── RoomThermostat.sol
│ │ ├── RoomThermostat.sol.gold
│ │ ├── SimpleMarketplace.sol
│ │ └── SimpleMarketplace.sol.gold
│ ├── basic
│ │ ├── AddressCompare.sol
│ │ ├── AddressCompare.sol.gold
│ │ ├── Arithmetic.sol
│ │ ├── Arithmetic.sol.gold
│ │ ├── Assignments.sol
│ │ ├── Assignments.sol.gold
│ │ ├── Casts.sol
│ │ ├── Casts.sol.gold
│ │ ├── Constants.sol
│ │ ├── Constants.sol.gold
│ │ ├── Constructor.sol
│ │ ├── Constructor.sol.gold
│ │ ├── Continue.sol
│ │ ├── Continue.sol.gold
│ │ ├── Conversions.sol
│ │ ├── Conversions.sol.gold
│ │ ├── DeleteValType.sol
│ │ ├── DeleteValType.sol.gold
│ │ ├── ECRecover.sol
│ │ ├── ECRecover.sol.flags
│ │ ├── ECRecover.sol.gold
│ │ ├── EnumInFile.sol
│ │ ├── EnumInFile.sol.gold
│ │ ├── Enums.sol
│ │ ├── Enums.sol.gold
│ │ ├── EnumsBv.sol
│ │ ├── EnumsBv.sol.flags
│ │ ├── EnumsBv.sol.gold
│ │ ├── EnumsTcc.sol
│ │ ├── EnumsTcc.sol.flags
│ │ ├── EnumsTcc.sol.gold
│ │ ├── ErrorHandling.sol
│ │ ├── ErrorHandling.sol.gold
│ │ ├── EvalOrder.sol
│ │ ├── EvalOrder.sol.gold
│ │ ├── ExplicitScopings.sol
│ │ ├── ExplicitScopings.sol.gold
│ │ ├── Exponentiation.sol
│ │ ├── Exponentiation.sol.gold
│ │ ├── ExtCall.sol
│ │ ├── ExtCall.sol.gold
│ │ ├── ExtCallBalance.sol
│ │ ├── ExtCallBalance.sol.gold
│ │ ├── FunctionCall.sol
│ │ ├── FunctionCall.sol.gold
│ │ ├── GetterArgs.sol
│ │ ├── GetterArgs.sol.gold
│ │ ├── Havoc.sol
│ │ ├── Havoc.sol.gold
│ │ ├── IfElse.sol
│ │ ├── IfElse.sol.gold
│ │ ├── Import1.sol
│ │ ├── Import1.sol.gold
│ │ ├── Import2.sol
│ │ ├── Import2.sol.gold
│ │ ├── Initializers.sol
│ │ ├── Initializers.sol.gold
│ │ ├── IntLiterals.sol
│ │ ├── IntLiterals.sol.gold
│ │ ├── IntegerExp.sol
│ │ ├── IntegerExp.sol.flags
│ │ ├── IntegerExp.sol.gold
│ │ ├── Keccak256.sol
│ │ ├── Keccak256.sol.flags
│ │ ├── Keccak256.sol.gold
│ │ ├── Library.sol
│ │ ├── Library.sol.gold
│ │ ├── LocalVars.sol
│ │ ├── LocalVars.sol.gold
│ │ ├── Loops.sol
│ │ ├── Loops.sol.gold
│ │ ├── MappingKeyIsMemory.sol
│ │ ├── MappingKeyIsMemory.sol.gold
│ │ ├── ModArith.sol
│ │ ├── ModArith.sol.flags
│ │ ├── ModArith.sol.gold
│ │ ├── ModTccs.sol
│ │ ├── ModTccs.sol.flags
│ │ ├── ModTccs.sol.gold
│ │ ├── Modifiers.sol
│ │ ├── Modifiers.sol.gold
│ │ ├── ModifiersDuplicate.sol
│ │ ├── ModifiersDuplicate.sol.gold
│ │ ├── Partial.sol
│ │ ├── Partial.sol.gold
│ │ ├── RIPMD160.sol
│ │ ├── RIPMD160.sol.flags
│ │ ├── RIPMD160.sol.gold
│ │ ├── SHA256.sol
│ │ ├── SHA256.sol.flags
│ │ ├── SHA256.sol.gold
│ │ ├── StringLiterals.sol
│ │ ├── StringLiterals.sol.gold
│ │ ├── Swap.sol
│ │ ├── Swap.sol.gold
│ │ ├── Tuples.sol
│ │ ├── Tuples.sol.flags
│ │ ├── Tuples.sol.gold
│ │ ├── Units.sol
│ │ └── Units.sol.gold
│ ├── bitvector
│ │ ├── BitPrecise.sol
│ │ ├── BitPrecise.sol.flags
│ │ ├── BitPrecise.sol.gold
│ │ ├── BitPreciseArith.sol
│ │ ├── BitPreciseArith.sol.flags
│ │ ├── BitPreciseArith.sol.gold
│ │ ├── BitPreciseCast.sol
│ │ ├── BitPreciseCast.sol.flags
│ │ ├── BitPreciseCast.sol.gold
│ │ ├── BitPreciseExt.sol
│ │ ├── BitPreciseExt.sol.flags
│ │ ├── BitPreciseExt.sol.gold
│ │ ├── DefaultBvMapping.sol
│ │ ├── DefaultBvMapping.sol.flags
│ │ └── DefaultBvMapping.sol.gold
│ ├── examples
│ │ ├── Annotations.sol
│ │ ├── Annotations.sol.gold
│ │ ├── BTXToken.sol
│ │ ├── BTXToken.sol.flags
│ │ ├── BecTokenSimplifiedCorrect.sol
│ │ ├── BecTokenSimplifiedCorrect.sol.flags
│ │ ├── BecTokenSimplifiedCorrect.sol.gold
│ │ ├── BecTokenSimplifiedOverflow.sol
│ │ ├── BecTokenSimplifiedOverflow.sol.flags
│ │ ├── BecTokenSimplifiedOverflow.sol.gold
│ │ ├── BinarySearch.sol
│ │ ├── BinarySearch.sol.gold
│ │ ├── Events.sol
│ │ ├── Events.sol.gold
│ │ ├── NGToken.sol
│ │ ├── NGToken.sol.flags
│ │ ├── QuantifiersSimple.sol
│ │ ├── QuantifiersSimple.sol.gold
│ │ ├── RefundEscrow.sol
│ │ ├── RefundEscrow.sol.flags
│ │ ├── RefundEscrow.sol.gold
│ │ ├── SimpleBankCorrect.sol
│ │ ├── SimpleBankCorrect.sol.gold
│ │ ├── SimpleBankReentrancy.sol
│ │ ├── SimpleBankReentrancy.sol.gold
│ │ ├── SmartMeshToken.sol
│ │ ├── SmartMeshToken.sol.flags
│ │ ├── Storage.sol
│ │ ├── Storage.sol.gold
│ │ ├── SumOverStructMember.sol
│ │ ├── SumOverStructMember.sol.gold
│ │ ├── VerifResults.sol
│ │ └── VerifResults.sol.gold
│ ├── inheritance
│ │ ├── BaseConstructorAndModifiers.sol
│ │ ├── BaseConstructorAndModifiers.sol.gold
│ │ ├── BaseConstructorMulti.sol
│ │ ├── BaseConstructorMulti.sol.gold
│ │ ├── BaseConstructorOrder.sol
│ │ ├── BaseConstructorOrder.sol.gold
│ │ ├── BaseConstructorWithModifiers.sol
│ │ ├── BaseConstructorWithModifiers.sol.gold
│ │ ├── Inheritance.sol
│ │ ├── Inheritance.sol.gold
│ │ ├── InheritanceBaseConstructor.sol
│ │ ├── InheritanceBaseConstructor.sol.gold
│ │ ├── InheritanceBaseConstructorArgs.sol
│ │ ├── InheritanceBaseConstructorArgs.sol.gold
│ │ ├── InheritanceInitializers.sol
│ │ └── InheritanceInitializers.sol.gold
│ ├── issues
│ │ ├── Issue003.sol
│ │ ├── Issue003.sol.gold
│ │ ├── Issue004.sol
│ │ ├── Issue004.sol.gold
│ │ ├── Issue009.sol
│ │ ├── Issue009.sol.gold
│ │ ├── Issue015.sol
│ │ ├── Issue015.sol.gold
│ │ ├── Issue020.sol
│ │ ├── Issue020.sol.gold
│ │ ├── Issue021.sol
│ │ ├── Issue021.sol.gold
│ │ ├── Issue025.sol
│ │ ├── Issue025.sol.gold
│ │ ├── Issue028.sol
│ │ ├── Issue028.sol.gold
│ │ ├── Issue029.sol
│ │ ├── Issue029.sol.gold
│ │ ├── Issue036.sol
│ │ ├── Issue036.sol.gold
│ │ ├── Issue046.sol
│ │ ├── Issue046.sol.gold
│ │ ├── Issue049.sol
│ │ ├── Issue049.sol.gold
│ │ ├── Issue051.sol
│ │ ├── Issue051.sol.flags
│ │ ├── Issue051.sol.gold
│ │ ├── Issue054.sol
│ │ ├── Issue054.sol.gold
│ │ ├── Issue065.sol
│ │ ├── Issue065.sol.gold
│ │ ├── Issue066.sol
│ │ ├── Issue066.sol.gold
│ │ ├── Issue069.sol
│ │ ├── Issue069.sol.flags
│ │ ├── Issue069.sol.gold
│ │ ├── Issue076.sol
│ │ ├── Issue076.sol.gold
│ │ ├── Issue081.sol
│ │ ├── Issue081.sol.gold
│ │ ├── Issue083.sol
│ │ ├── Issue083.sol.flags
│ │ ├── Issue083.sol.gold
│ │ ├── Issue084.sol
│ │ ├── Issue084.sol.flags
│ │ ├── Issue084.sol.gold
│ │ ├── Issue085.sol
│ │ ├── Issue085.sol.flags
│ │ ├── Issue087.sol
│ │ ├── Issue087.sol.gold
│ │ ├── Issue088.sol
│ │ ├── Issue088.sol.gold
│ │ ├── Issue089.sol
│ │ ├── Issue089.sol.gold
│ │ ├── Issue091.sol
│ │ ├── Issue091.sol.flags
│ │ ├── Issue091.sol.gold
│ │ ├── Issue092.sol
│ │ ├── Issue092.sol.gold
│ │ ├── Issue093.sol
│ │ ├── Issue093.sol.gold
│ │ ├── Issue097.sol
│ │ ├── Issue097.sol.gold
│ │ ├── Issue098.sol
│ │ ├── Issue098.sol.gold
│ │ ├── Issue099.sol
│ │ ├── Issue099.sol.gold
│ │ ├── Issue101.sol
│ │ ├── Issue101.sol.gold
│ │ ├── Issue102.sol
│ │ ├── Issue102.sol.gold
│ │ ├── Issue106.sol
│ │ ├── Issue106.sol.gold
│ │ ├── Issue107.sol
│ │ ├── Issue107.sol.gold
│ │ ├── Issue111.sol
│ │ ├── Issue111.sol.gold
│ │ ├── Issue112.sol
│ │ ├── Issue112.sol.gold
│ │ ├── Issue117.sol
│ │ ├── Issue117.sol.flags
│ │ ├── Issue117.sol.gold
│ │ ├── Issue127.sol
│ │ ├── Issue127.sol.gold
│ │ ├── Issue128.sol
│ │ ├── Issue128.sol.gold
│ │ ├── Issue129.sol
│ │ ├── Issue129.sol.gold
│ │ ├── Issue131.sol
│ │ ├── Issue131.sol.gold
│ │ ├── Issue134.sol
│ │ ├── Issue134.sol.gold
│ │ ├── Issue137.sol
│ │ ├── Issue137.sol.gold
│ │ ├── Issue141.sol
│ │ ├── Issue141.sol.gold
│ │ ├── Issue147.sol
│ │ ├── Issue147.sol.gold
│ │ ├── Issue150.sol
│ │ ├── Issue150.sol.gold
│ │ ├── Issue151.sol
│ │ ├── Issue151.sol.gold
│ │ ├── Issue164.sol
│ │ ├── Issue164.sol.gold
│ │ ├── Issue166.sol
│ │ └── Issue166.sol.gold
│ ├── multicontract
│ │ ├── Aliasing.sol
│ │ ├── Composition.sol
│ │ ├── Composition.sol.gold
│ │ ├── NewExpr.sol
│ │ └── Trust.sol
│ ├── overflow
│ │ ├── ArrayPush.sol
│ │ ├── ArrayPush.sol.flags
│ │ ├── ArrayPush.sol.gold
│ │ ├── OverflowBalance.sol
│ │ ├── OverflowBalance.sol.flags
│ │ ├── OverflowBalance.sol.gold
│ │ ├── OverflowSideEffect.sol
│ │ ├── OverflowSideEffect.sol.flags
│ │ ├── OverflowSideEffect.sol.gold
│ │ ├── OverflowSimple.sol
│ │ ├── OverflowSimple.sol.flags
│ │ ├── OverflowSimple.sol.gold
│ │ ├── OverflowSpec.sol
│ │ ├── OverflowSpec.sol.flags
│ │ └── OverflowSpec.sol.gold
│ ├── specs
│ │ ├── ArrayProperties.sol
│ │ ├── ArrayProperties.sol.flags
│ │ ├── ArrayProperties.sol.gold
│ │ ├── CaseAnalysis.sol
│ │ ├── CaseAnalysis.sol.gold
│ │ ├── CaseAnalysisSimple.sol
│ │ ├── CaseAnalysisSimple.sol.gold
│ │ ├── DefaultConstructor.sol
│ │ ├── DefaultConstructor.sol.gold
│ │ ├── DoWhile.sol
│ │ ├── DoWhile.sol.gold
│ │ ├── EmitsEvents.sol
│ │ ├── EmitsEvents.sol.gold
│ │ ├── EmitsEventsIncorrect.sol
│ │ ├── EmitsEventsIncorrect.sol.gold
│ │ ├── EmitsEventsModular.sol
│ │ ├── EmitsEventsModular.sol.gold
│ │ ├── EmitsEventsOverload.sol
│ │ ├── EmitsEventsOverload.sol.gold
│ │ ├── Eq.sol
│ │ ├── Eq.sol.gold
│ │ ├── EventDataSpecs.sol
│ │ ├── EventDataSpecs.sol.gold
│ │ ├── EventDataSpecsBefore.sol
│ │ ├── EventDataSpecsBefore.sol.gold
│ │ ├── EventDataSpecsOnlyTrack.sol
│ │ ├── EventDataSpecsOnlyTrack.sol.gold
│ │ ├── Getter.sol
│ │ ├── Getter.sol.gold
│ │ ├── GetterArgsInSpec.sol
│ │ ├── GetterArgsInSpec.sol.gold
│ │ ├── LoopInvar.sol
│ │ ├── LoopInvar.sol.gold
│ │ ├── Modifies.sol
│ │ ├── Modifies.sol.gold
│ │ ├── ModifiesBalance.sol
│ │ ├── ModifiesBalance.sol.gold
│ │ ├── ModifiesIdx.sol
│ │ ├── ModifiesIdx.sol.gold
│ │ ├── ModifiesInheritance.sol
│ │ ├── ModifiesInheritance.sol.gold
│ │ ├── ModifiesSimple.sol
│ │ ├── ModifiesSimple.sol.gold
│ │ ├── ModifiesStructs.sol
│ │ ├── ModifiesStructs.sol.gold
│ │ ├── ModifiesWarning.sol
│ │ ├── ModifiesWarning.sol.gold
│ │ ├── NoEmitsSpecs.sol
│ │ ├── NoEmitsSpecs.sol.gold
│ │ ├── OldExpr.sol
│ │ ├── OldExpr.sol.gold
│ │ ├── PrePost.sol
│ │ ├── PrePost.sol.gold
│ │ ├── PrivateFunctions.sol
│ │ ├── PrivateFunctions.sol.gold
│ │ ├── Quantifiers.sol
│ │ ├── Quantifiers.sol.gold
│ │ ├── Scoping.sol
│ │ ├── Scoping.sol.gold
│ │ ├── Simple.sol
│ │ ├── Simple.sol.gold
│ │ ├── SimpleBank.sol
│ │ ├── SimpleBank.sol.gold
│ │ ├── SimpleMultiBankCorrect.sol
│ │ ├── SimpleMultiBankCorrect.sol.flags
│ │ ├── SimpleMultiBankCorrect.sol.gold
│ │ ├── Sum.sol
│ │ ├── Sum.sol.gold
│ │ ├── SumInheritance.sol
│ │ ├── SumInheritance.sol.gold
│ │ ├── SumLocalPtr.sol
│ │ ├── SumLocalPtr.sol.gold
│ │ ├── SumPushPop.sol
│ │ ├── SumPushPop.sol.gold
│ │ ├── SumStructs.sol
│ │ └── SumStructs.sol.gold
│ ├── structs
│ │ ├── CallDataStruct.sol
│ │ ├── CallDataStruct.sol.gold
│ │ ├── DeleteStorageStruct.sol
│ │ ├── DeleteStorageStruct.sol.gold
│ │ ├── LocalStorageLibOnly.sol
│ │ ├── LocalStorageLibOnly.sol.gold
│ │ ├── LocalStorageLibrary.sol
│ │ ├── LocalStorageLibrary.sol.gold
│ │ ├── LocalStorageRepack.sol
│ │ ├── LocalStorageRepack.sol.gold
│ │ ├── LocalStorageSpec.sol
│ │ ├── NamedArgs.sol
│ │ ├── NamedArgs.sol.gold
│ │ ├── StructInFile.sol
│ │ ├── StructInFile.sol.gold
│ │ ├── Structs.sol
│ │ ├── StructsArrays.sol
│ │ ├── StructsArrays.sol.gold
│ │ ├── StructsCopying.sol
│ │ ├── StructsCopying.sol.gold
│ │ ├── StructsLocalStorage.sol
│ │ ├── StructsLocalStorage.sol.gold
│ │ ├── StructsLocalStorageFunc.sol
│ │ ├── StructsLocalStorageFunc.sol.gold
│ │ ├── StructsMaps.sol
│ │ ├── StructsMem.sol
│ │ ├── StructsMem.sol.gold
│ │ ├── StructsMemAliasing.sol
│ │ ├── StructsMemAliasing.sol.gold
│ │ ├── StructsMemAliasingParam.sol
│ │ ├── StructsMemAliasingParam.sol.gold
│ │ ├── StructsNestedAccess.sol
│ │ ├── StructsNestedAccess.sol.gold
│ │ ├── StructsStorMemCopy.sol
│ │ ├── StructsStorMemCopy.sol.gold
│ │ ├── StructsStorage.sol
│ │ ├── StructsStorage.sol.gold
│ │ ├── StructsSwap.sol
│ │ ├── StructsSwap.sol.gold
│ │ ├── StructsSwap0.sol
│ │ └── StructsSwap0.sol.gold
│ ├── test_semantic_with_boogie.sh
│ ├── test_syntax_with_boogie.sh
│ ├── test_with_boogie.sh
│ ├── test_with_truffle.sh
│ ├── transactions
│ │ ├── AddressConv.sol
│ │ ├── AddressConv.sol.gold
│ │ ├── Addresses.sol
│ │ ├── Addresses.sol.gold
│ │ ├── Gas.sol
│ │ ├── Gas.sol.gold
│ │ ├── InternalMsgValue.sol
│ │ ├── InternalMsgValue.sol.gold
│ │ ├── MsgValue.sol
│ │ ├── MsgValue.sol.gold
│ │ ├── Payable.sol
│ │ ├── Payable.sol.gold
│ │ ├── SelfDestruct.sol
│ │ ├── SpecialMembers.sol
│ │ ├── SpecialMembers.sol.gold
│ │ ├── Transactions.sol
│ │ └── Transactions.sol.gold
│ └── truffle-config.js
├── 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
│ │ ├── README.md
│ │ ├── SolidityCustomMutatorInterface.cpp
│ │ ├── SolidityCustomMutatorInterface.h
│ │ ├── SolidityGenerator.cpp
│ │ ├── SolidityGenerator.h
│ │ ├── abiV2FuzzerCommon.cpp
│ │ ├── abiV2FuzzerCommon.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_noopt_ossfuzz.cpp
│ │ ├── solc_opt_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
│ │ ├── EwasmBuiltinInterpreter.cpp
│ │ ├── EwasmBuiltinInterpreter.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
├── solidityUpgrade
├── SourceTransform.h
├── SourceUpgrade.cpp
├── SourceUpgrade.h
├── Upgrade050.cpp
├── Upgrade050.h
├── Upgrade060.cpp
├── Upgrade060.h
├── Upgrade070.cpp
├── Upgrade070.h
├── UpgradeChange.cpp
├── UpgradeChange.h
├── UpgradeSuite.h
├── contracts
│ ├── DocsExamplePass.sol
│ ├── Test.sol
│ ├── TestMultiline.sol
│ └── TestNonFixable.sol
└── main.cpp
└── 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
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.sol linguist-language=Solidity
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/general.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SRI-CSL/solidity/8ea107cecd90ffff0d6a8f276b434b5ac9aa043b/.github/ISSUE_TEMPLATE/general.md
--------------------------------------------------------------------------------
/.settings/org.eclipse.cdt.ui.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | formatter_profile=_Solidity
3 | formatter_settings_version=1
4 |
--------------------------------------------------------------------------------
/cmake/toolchains/default.cmake:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SRI-CSL/solidity/8ea107cecd90ffff0d6a8f276b434b5ac9aa043b/cmake/toolchains/default.cmake
--------------------------------------------------------------------------------
/cmake/toolchains/emscripten.cmake:
--------------------------------------------------------------------------------
1 | include("${CMAKE_CURRENT_LIST_DIR}/default.cmake")
2 | include("$ENV{EMSCRIPTEN}/cmake/Modules/Platform/Emscripten.cmake")
3 |
--------------------------------------------------------------------------------
/docs/_templates/layout.html:
--------------------------------------------------------------------------------
1 | {% extends "!layout.html" %}
2 |
3 | {% block menu %}
4 | {{ super() }}
5 | Keyword Index
6 | {% endblock %}
7 |
--------------------------------------------------------------------------------
/docs/requirements.txt:
--------------------------------------------------------------------------------
1 | sphinx_rtd_theme>=0.3.1
2 | pygments-lexer-solidity>=0.5.1
3 | sphinx-a4doc>=1.2.1
4 |
--------------------------------------------------------------------------------
/scripts/Dockerfile_alpine:
--------------------------------------------------------------------------------
1 | FROM alpine
2 | MAINTAINER chriseth
3 |
4 | COPY upload/solc-static-linux /usr/local/bin/solc
5 | ENTRYPOINT ["/usr/local/bin/solc"]
6 |
--------------------------------------------------------------------------------
/scripts/bytecodecompare/deploy_key.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SRI-CSL/solidity/8ea107cecd90ffff0d6a8f276b434b5ac9aa043b/scripts/bytecodecompare/deploy_key.enc
--------------------------------------------------------------------------------
/scripts/ci/buildpack-deps_test_emscripten.sh:
--------------------------------------------------------------------------------
1 | build_emscripten.sh
--------------------------------------------------------------------------------
/scripts/ci/buildpack-deps_test_ubuntu1604.clang.ossfuzz.sh:
--------------------------------------------------------------------------------
1 | build_ossfuzz.sh
--------------------------------------------------------------------------------
/scripts/ci/buildpack-deps_test_ubuntu1804.sh:
--------------------------------------------------------------------------------
1 | build.sh
--------------------------------------------------------------------------------
/scripts/ci/buildpack-deps_test_ubuntu2004.clang.sh:
--------------------------------------------------------------------------------
1 | build.sh
--------------------------------------------------------------------------------
/scripts/ci/buildpack-deps_test_ubuntu2004.sh:
--------------------------------------------------------------------------------
1 | build.sh
--------------------------------------------------------------------------------
/scripts/download_ossfuzz_corpus.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | set -e
3 | cd /tmp
4 | git clone --depth 1 https://github.com/ethereum/solidity-fuzzing-corpus.git
5 |
--------------------------------------------------------------------------------
/scripts/isoltest.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 |
5 | REPO_ROOT="$(dirname "$0")"/..
6 | exec ${REPO_ROOT}/build/test/tools/isoltest --testpath ${REPO_ROOT}/test
7 |
--------------------------------------------------------------------------------
/test/.solhint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "solhint:default",
3 | "plugins": [],
4 | "rules": {
5 | "compiler-fixed": "off",
6 | "no-inline-assembly": "off"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/test/.solhintignore:
--------------------------------------------------------------------------------
1 | *contributing_rst*
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/abiencoderv2_no_warning/args:
--------------------------------------------------------------------------------
1 | --hashes
--------------------------------------------------------------------------------
/test/cmdlineTests/abiencoderv2_no_warning/err:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/abiencoderv2_no_warning/exit:
--------------------------------------------------------------------------------
1 | 0
--------------------------------------------------------------------------------
/test/cmdlineTests/abiencoderv2_no_warning/output:
--------------------------------------------------------------------------------
1 |
2 | ======= abiencoderv2_no_warning/input.sol:C =======
3 | Function signatures:
4 | 3fc03eeb: f((uint256))
5 |
--------------------------------------------------------------------------------
/test/cmdlineTests/ast_json_import_wrong_evmVersion/args:
--------------------------------------------------------------------------------
1 | --evm-version=homestead --import-ast --combined-json ast,compact-format --pretty-json
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/ast_json_import_wrong_evmVersion/err:
--------------------------------------------------------------------------------
1 | Failed to import AST: Imported tree evm version differs from configured evm version!
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/ast_json_import_wrong_evmVersion/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/combined_json_generated_sources/args:
--------------------------------------------------------------------------------
1 | --combined-json generated-sources,generated-sources-runtime --pretty-json
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/combined_json_generated_sources/exit:
--------------------------------------------------------------------------------
1 | 0
--------------------------------------------------------------------------------
/test/cmdlineTests/combined_json_generated_sources/input.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 |
3 | contract C {
4 | function f(uint[] calldata) pure external {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/cmdlineTests/dup_opt_peephole/args:
--------------------------------------------------------------------------------
1 | --asm
--------------------------------------------------------------------------------
/test/cmdlineTests/error_codes/args:
--------------------------------------------------------------------------------
1 | --error-codes
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/error_codes/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/error_codes/input.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() {
3 | 2=0;
4 | ""[2];
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm/args:
--------------------------------------------------------------------------------
1 | --assemble --optimize --yul-dialect evm --machine ewasm
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm/input.yul:
--------------------------------------------------------------------------------
1 | {
2 | sstore(0, 1)
3 | }
4 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm_break/args:
--------------------------------------------------------------------------------
1 | --assemble --optimize --yul-dialect evm --machine ewasm
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm_break/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm_unsupported_translation/args:
--------------------------------------------------------------------------------
1 | --assemble --machine ewasm
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm_unsupported_translation/err:
--------------------------------------------------------------------------------
1 | The selected input language is not directly supported when targeting the Ewasm machine and automatic translation is not available.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm_unsupported_translation/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm_unsupported_translation/input.yul:
--------------------------------------------------------------------------------
1 | {
2 | sstore(0, 1)
3 | }
4 |
--------------------------------------------------------------------------------
/test/cmdlineTests/evm_to_wasm_unsupported_translation/output:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/exp_base_literal/args:
--------------------------------------------------------------------------------
1 | --ir
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/exp_base_literal/err:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/exp_base_literal/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize
--------------------------------------------------------------------------------
/test/cmdlineTests/ir_compiler_subobjects/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize
--------------------------------------------------------------------------------
/test/cmdlineTests/ir_compiler_subobjects/err:
--------------------------------------------------------------------------------
1 | Warning: Unused local variable.
2 | --> ir_compiler_subobjects/input.sol:8:9:
3 | |
4 | 8 | C c = new C();
5 | | ^^^
6 |
--------------------------------------------------------------------------------
/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize
--------------------------------------------------------------------------------
/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_solidity/args:
--------------------------------------------------------------------------------
1 | --bin --bin-runtime --libraries linking_solidity/input.sol:L:0x1234567890123456789012345678901234567890
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_solidity_unresolved_references/args:
--------------------------------------------------------------------------------
1 | --bin --bin-runtime --libraries linking_solidity_unresolved_references/input.sol:L1:0x1234567890123456789012345678901234567890
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_standard_solidity/output.json:
--------------------------------------------------------------------------------
1 | {"contracts":{"A":{"C":{"evm":{"bytecode":{"linkReferences":{},"object":""}}}}},"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --libraries contract/test.sol:L:0x1234567890123456789012345678901234567890
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly/input.yul:
--------------------------------------------------------------------------------
1 | object "a" {
2 | code {
3 | let addr := linkersymbol("contract/test.sol:L")
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_duplicate_library_name/err:
--------------------------------------------------------------------------------
1 | Address specified more than once for library "library.sol:L".
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_duplicate_library_name/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_duplicate_library_name/input.yul:
--------------------------------------------------------------------------------
1 | object "a" {
2 | code {
3 | let addr := linkersymbol("library.sol:L")
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_no_file_name_in_link_reference/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --libraries L:0x1234567890123456789012345678901234567890
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_no_file_name_in_link_reference/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_no_file_name_in_link_reference/input.yul:
--------------------------------------------------------------------------------
1 | object "a" {
2 | code {
3 | let addr := linkersymbol("L")
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files_in_link_references/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --libraries library1.sol:L:0x1234567890123456789012345678901234567890
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files_in_link_references/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_unresolved_references/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --libraries contract/test.sol:L1:0x1234567890123456789012345678901234567890
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/linking_strict_assembly_unresolved_references/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/model_checker_engine_all/args:
--------------------------------------------------------------------------------
1 | --model-checker-engine all
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/model_checker_engine_bmc/args:
--------------------------------------------------------------------------------
1 | --model-checker-engine bmc
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/model_checker_engine_chc/args:
--------------------------------------------------------------------------------
1 | --model-checker-engine chc
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/model_checker_engine_none/args:
--------------------------------------------------------------------------------
1 | --model-checker-engine none
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/model_checker_timeout_all/args:
--------------------------------------------------------------------------------
1 | --model-checker-timeout 1000
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/model_checker_timeout_bmc/args:
--------------------------------------------------------------------------------
1 | --model-checker-engine bmc --model-checker-timeout 1000
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/model_checker_timeout_chc/args:
--------------------------------------------------------------------------------
1 | --model-checker-engine chc --model-checker-timeout 1000
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/name_simplifier/args:
--------------------------------------------------------------------------------
1 | --optimize --ir-optimized --metadata-hash none
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/object_compiler/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --optimize
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/object_compiler/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/object_compiler/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/optimizer_BlockDeDuplicator/args:
--------------------------------------------------------------------------------
1 | --optimize --asm --metadata-hash none
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/optimizer_array_sload/args:
--------------------------------------------------------------------------------
1 | --optimize --ir-optimized --metadata-hash none
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/optimizer_user_yul/args:
--------------------------------------------------------------------------------
1 | --optimize --asm --metadata-hash none
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/recovery_ast_constructor/args:
--------------------------------------------------------------------------------
1 | --error-recovery --ast-json --hashes
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/recovery_ast_empty_contract/args:
--------------------------------------------------------------------------------
1 | --error-recovery
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/recovery_ast_empty_contract/input.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | pragma 0.5.11;
3 | c
--------------------------------------------------------------------------------
/test/cmdlineTests/require_overload/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_default_success/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_default_success/output.json:
--------------------------------------------------------------------------------
1 | {"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_empty_file_name/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_ewasm_requested_abstract/output.json:
--------------------------------------------------------------------------------
1 | {"contracts":{"A":{"C":{"ewasm":{"wasm":"","wast":""}}}},"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_file_not_found/args:
--------------------------------------------------------------------------------
1 | --standard-json
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_file_not_found/err:
--------------------------------------------------------------------------------
1 | File not found: standard_file_not_found/input.sol
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_file_not_found/exit:
--------------------------------------------------------------------------------
1 | 1
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_method_identifiers_requested/output.json:
--------------------------------------------------------------------------------
1 | {"contracts":{"A":{"C":{"evm":{"methodIdentifiers":{"f()":"26121ff0"}}}}},"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_missing_key_useLiteralContent/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_missing_key_useLiteralContent/output.json:
--------------------------------------------------------------------------------
1 | {"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_model_checker_engine_none/output.json:
--------------------------------------------------------------------------------
1 | {"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_optimizer_no_yul/output.json:
--------------------------------------------------------------------------------
1 | {"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_optimizer_yul/output.json:
--------------------------------------------------------------------------------
1 | {"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_optimizer_yulDetails/output.json:
--------------------------------------------------------------------------------
1 | {"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_optimizer_yulDetails_optimiserSteps/output.json:
--------------------------------------------------------------------------------
1 | {"sources":{"A":{"id":0}}}
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_secondary_source_location/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_key_auxiliary_input/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_key_metadata/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_key_optimizer/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_key_root/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_key_settings/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_key_source/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_auxiliary_input/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_auxiliary_input_smtlib2responses/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_auxiliary_input_smtlib2responses_member/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_metadata/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_optimizer/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_output_selection/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_output_selection_contract/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_output_selection_file/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_output_selection_output/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_remappings/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_remappings_entry/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_root/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_root/input.json:
--------------------------------------------------------------------------------
1 | ["abc"]
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_settings/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_source/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_sources/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_sources/input.json:
--------------------------------------------------------------------------------
1 | {
2 | "language": "Solidity",
3 | "sources": ["source1", "source2", "source3"]
4 | }
5 |
--------------------------------------------------------------------------------
/test/cmdlineTests/standard_wrong_type_useLiteralContent/exit:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_invalid_option_optimize_yul/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --optimize-yul
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_invalid_option_optimize_yul/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_invalid_option_optimize_yul/input.yul:
--------------------------------------------------------------------------------
1 | {
2 | sstore(0, 1)
3 | }
4 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_invalid_option_output_dir/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --output-dir /tmp/
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_invalid_option_output_dir/err:
--------------------------------------------------------------------------------
1 | The following options are invalid in assembly mode: --output-dir.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_invalid_option_output_dir/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_invalid_option_output_dir/input.yul:
--------------------------------------------------------------------------------
1 | {
2 | sstore(0, 1)
3 | }
4 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_jump/args:
--------------------------------------------------------------------------------
1 | --strict-assembly
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_jump/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_jump/input.yul:
--------------------------------------------------------------------------------
1 | { jump(1) }
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_optimizer_steps/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --optimize --yul-optimizations dhfoDgvulfnTUtnIf
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_optimizer_steps/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_options_in_non_asm_mode/args:
--------------------------------------------------------------------------------
1 | --yul-dialect evm --machine ewasm
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_options_in_non_asm_mode/err:
--------------------------------------------------------------------------------
1 | --yul-dialect and --machine are only valid in assembly mode.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_options_in_non_asm_mode/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/strict_asm_options_in_non_asm_mode/input.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | pragma solidity >=0.0;
3 |
4 | contract C
5 | {
6 | function f() public pure {}
7 | }
8 |
--------------------------------------------------------------------------------
/test/cmdlineTests/structured_documentation_source_location/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/too_long_line/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/too_long_line_both_sides_short/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/too_long_line_edge_in/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/too_long_line_edge_out/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/too_long_line_left_short/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/too_long_line_multiline/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/too_long_line_right_short/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/viair_abicoder_v1/args:
--------------------------------------------------------------------------------
1 | --ir --error-codes
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/viair_subobjects/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --experimental-via-ir --optimize --bin --bin-runtime
--------------------------------------------------------------------------------
/test/cmdlineTests/viair_subobjects/err:
--------------------------------------------------------------------------------
1 | Warning: Unused local variable.
2 | --> viair_subobjects/input.sol:8:9:
3 | |
4 | 8 | C c = new C();
5 | | ^^^
6 |
--------------------------------------------------------------------------------
/test/cmdlineTests/wasm_to_wasm_function_returning_multiple_values/args:
--------------------------------------------------------------------------------
1 | --yul --yul-dialect ewasm --machine ewasm
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/wasm_to_wasm_function_returning_multiple_values/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/wasm_to_wasm_memory_instructions_alignment/args:
--------------------------------------------------------------------------------
1 | --yul --yul-dialect ewasm --machine ewasm
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/wasm_to_wasm_memory_instructions_alignment/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize --yul-optimizations dhfoDgvulfnTUtnIf
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps/input.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | pragma solidity >=0.0;
3 | pragma abicoder v2;
4 |
5 | contract C
6 | {
7 | constructor() {}
8 | }
9 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_disabled/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --yul-optimizations dhfoDgvulfnTUtnIf
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_disabled/err:
--------------------------------------------------------------------------------
1 | --yul-optimizations is invalid if Yul optimizer is disabled
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_disabled/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_disabled/input.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | pragma solidity >=0.0;
3 |
4 | contract C
5 | {
6 | function f() public pure {}
7 | }
8 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_invalid_abbreviation/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize --yul-optimizations abcdefg{hijklmno}pqr[st]uvwxyz
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_invalid_abbreviation/err:
--------------------------------------------------------------------------------
1 | Invalid optimizer step sequence in --yul-optimizations: 'b' is not a valid step abbreviation
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_invalid_abbreviation/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_invalid_nesting/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize --yul-optimizations a[a][aa[aa]]a
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_invalid_nesting/err:
--------------------------------------------------------------------------------
1 | Invalid optimizer step sequence in --yul-optimizations: Nested brackets are not supported
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_invalid_nesting/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_invalid_nesting/input.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | pragma solidity >=0.0;
3 |
4 | contract C
5 | {
6 | function f() public pure {}
7 | }
8 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_unbalanced_bracket/args:
--------------------------------------------------------------------------------
1 | --ir-optimized --optimize --yul-optimizations a[a][
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_unbalanced_bracket/err:
--------------------------------------------------------------------------------
1 | Invalid optimizer step sequence in --yul-optimizations: Unbalanced brackets
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_unbalanced_bracket/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_optimizer_steps_unbalanced_bracket/input.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | pragma solidity >=0.0;
3 |
4 | contract C
5 | {
6 | function f() public pure {}
7 | }
8 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_stack_opt/args:
--------------------------------------------------------------------------------
1 | --strict-assembly --optimize
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_stack_opt/err:
--------------------------------------------------------------------------------
1 | Warning: Yul is still experimental. Please use the output with care.
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_stack_opt_disabled/args:
--------------------------------------------------------------------------------
1 | --strict-assembly
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_stack_opt_disabled/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_unimplemented/args:
--------------------------------------------------------------------------------
1 | --ir --error-codes
2 |
--------------------------------------------------------------------------------
/test/cmdlineTests/yul_unimplemented/exit:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/compilationTests/MultiSigWallet/README.md:
--------------------------------------------------------------------------------
1 | MultiSigWallet contracts, originally from
2 |
3 | https://github.com/ConsenSys/MultiSigWallet
4 |
--------------------------------------------------------------------------------
/test/compilationTests/corion/README.md:
--------------------------------------------------------------------------------
1 | CORION contracts, originally from
2 |
3 | https://github.com/CORIONplatform/solidity
4 |
--------------------------------------------------------------------------------
/test/compilationTests/gnosis/README.md:
--------------------------------------------------------------------------------
1 | Gnosis contracts, originally from
2 |
3 | https://github.com/gnosis/gnosis-contracts
4 |
--------------------------------------------------------------------------------
/test/compilationTests/milestonetracker/README.md:
--------------------------------------------------------------------------------
1 | Giveth milestone tracker, originally from
2 |
3 | https://github.com/Giveth/milestonetracker/
4 |
--------------------------------------------------------------------------------
/test/compilationTests/stringutils/README.md:
--------------------------------------------------------------------------------
1 | String utilities, originally from
2 |
3 | https://github.com/Arachnid/solidity-stringutils
4 |
5 |
--------------------------------------------------------------------------------
/test/evmc/README.md:
--------------------------------------------------------------------------------
1 | # EVMC
2 |
3 | This is an import of [EVMC](https://github.com/ethereum/evmc) version [7.2.0](https://github.com/ethereum/evmc/releases/tag/v7.2.0).
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ABIJson/empty_contract.sol:
--------------------------------------------------------------------------------
1 | contract test { }
2 | // ----
3 | // :test
4 | // []
5 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/abstract_contract.sol:
--------------------------------------------------------------------------------
1 | abstract contract C {
2 | constructor() {
3 | }
4 | }
5 |
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/array_type_name.sol:
--------------------------------------------------------------------------------
1 | contract C { uint[] i; }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/call.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function j() public {
3 | assembly { pop(call(0, 1, 2, 3, 4, 5, 6)) }
4 | }
5 | }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/empty_block.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function g() view public {
3 | assembly { {} }
4 | }
5 | }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/function.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function h() view public {
3 | assembly { function g() { pop(blockhash(20)) } g() }
4 | }
5 | }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/leave.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function l() public {
3 | assembly { function f() { leave } }
4 | }
5 | }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/loop.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function g() view public {
3 | assembly { for {} 1 { pop(sload(0)) } { break continue } }
4 | }
5 | }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/stringlit.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function m() public {
3 | assembly { let x := "abc" }
4 | }
5 | }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/switch_default.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function g() view public {
3 | assembly { switch 0 case 0 {} default {} }
4 | }
5 | }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/assembly/var_access.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() pure public {
3 | uint x;
4 | assembly { x := 7 }
5 | }
6 | }
7 |
8 | // ----
9 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/constructor.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | constructor() {
3 | }
4 | }
5 |
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/contract_dep_order.sol:
--------------------------------------------------------------------------------
1 | contract A { }
2 | contract B is A { }
3 | contract C is B { }
4 | contract D is C { }
5 | contract E is D { }
6 |
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/enum_value.sol:
--------------------------------------------------------------------------------
1 | contract C { enum E { A, B } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/event_definition.sol:
--------------------------------------------------------------------------------
1 | contract C { event E(); }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/fallback.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | fallback() external payable {
3 | }
4 | }
5 |
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/fallback_and_reveice_ether.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | receive() external payable {
3 | }
4 | fallback() external payable {
5 | }
6 | }
7 |
8 | // ----
9 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/fallback_payable.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | fallback() external {}
3 | }
4 |
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/function_type.sol:
--------------------------------------------------------------------------------
1 | contract C { function f(function() external payable returns (uint) x) returns (function() external view returns (uint)) {} }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/global_enum.sol:
--------------------------------------------------------------------------------
1 | enum E { A }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/global_struct.sol:
--------------------------------------------------------------------------------
1 | struct S { uint256 a; }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/inheritance_specifier.sol:
--------------------------------------------------------------------------------
1 | contract C1 {} contract C2 is C1 {}
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/license.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | contract C {}
3 |
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/long_type_name_binary_operation.sol:
--------------------------------------------------------------------------------
1 | contract c { function f() public { uint a = 2 + 3; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/long_type_name_identifier.sol:
--------------------------------------------------------------------------------
1 | contract c { uint[] a; function f() public { uint[] storage b = a; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/modifier_definition.sol:
--------------------------------------------------------------------------------
1 | contract C { modifier M(uint i) { _; } function F() M(1) public {} }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/modifier_invocation.sol:
--------------------------------------------------------------------------------
1 | contract C { modifier M(uint i) { _; } function F() M(1) public {} }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/mutability.sol:
--------------------------------------------------------------------------------
1 | contract C
2 | {
3 | uint public immutable a = 4;
4 | uint public constant b = 2;
5 | uint public c = 3;
6 | }
7 |
8 | // ----
9 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/non_utf8.sol:
--------------------------------------------------------------------------------
1 | contract C { function f() public { string memory x = hex"ff"; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/not_existing_import.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SRI-CSL/solidity/8ea107cecd90ffff0d6a8f276b434b5ac9aa043b/test/libsolidity/ASTJSON/not_existing_import.json
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/placeholder_statement.sol:
--------------------------------------------------------------------------------
1 | contract C { modifier M { _; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/receive_ether.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | receive() external payable {
3 | }
4 | }
5 |
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/short_type_name.sol:
--------------------------------------------------------------------------------
1 | contract c { function f() public { uint[] memory x; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/short_type_name_ref.sol:
--------------------------------------------------------------------------------
1 | contract c { function f() public { uint[][] memory rows; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/smoke.sol:
--------------------------------------------------------------------------------
1 | contract C {}
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/source_location.sol:
--------------------------------------------------------------------------------
1 | contract C { function f() { uint x = 2; x++; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/string.sol:
--------------------------------------------------------------------------------
1 | contract C { function f() public { string memory x = "Hello World"; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/unicode.sol:
--------------------------------------------------------------------------------
1 | contract C { function f() public { string memory x = unicode"Hello 😃"; } }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/ASTJSON/using_for_directive.sol:
--------------------------------------------------------------------------------
1 | library L {} contract C { using L for uint; }
2 |
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/semanticTests/immutable/getter.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint immutable public x = 1;
3 | }
4 | // ====
5 | // compileViaYul: also
6 | // ----
7 | // x() -> 1
8 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 |
3 | abstract contract A {
4 | function f() public mod {}
5 | modifier mod virtual;
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 |
3 | contract A{
4 | function f() public pure {
5 | delete ([""][0]);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 | contract C {
3 | function f(bytes calldata b) external pure {
4 | ((b[:])[5]);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/simple/smoke_test.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 | contract C {
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 | contract a { event b(uint[(1 / 1)]); }
3 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 | contract C {
3 | function f(function(uint) external g) public {
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 | contract C {
3 | function f() public pure {
4 | (((,))) = ((2),3);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol:
--------------------------------------------------------------------------------
1 | pragma experimental SMTChecker;
2 | contract C {
3 | function f3() public pure {
4 | ((, ), ) = ((7, 8), 9);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/abiEncoder/select_v1.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v1;
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/abiEncoder/selected_twice_v2.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | pragma experimental ABIEncoderV2;
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/abstract/abstract_without_contract.sol:
--------------------------------------------------------------------------------
1 | abstract A { }
2 | // ----
3 | // ParserError 3515: (9-10): Expected keyword "contract", "interface" or "library".
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/abstract/contract.sol:
--------------------------------------------------------------------------------
1 | abstract contract A { constructor() {} }
2 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/abstract/library.sol:
--------------------------------------------------------------------------------
1 | abstract library A { }
2 | // ----
3 | // TypeError 9571: (0-22): Libraries cannot be abstract.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/array_pop.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint[] data;
3 | function test() public {
4 | data.pop();
5 | }
6 | }
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/bytes_pop.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes data;
3 | function test() public {
4 | data.pop();
5 | }
6 | }
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/calldata.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract Test {
3 | function f(uint[3] calldata) external { }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/calldata_dynamic.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract Test {
3 | function f(uint[] calldata) external { }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/calldata_multi.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract Test {
3 | function f(uint[3][4] calldata) external { }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/calldata_multi_dynamic.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract Test {
3 | function f(uint[][] calldata) external { }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/length/can_be_constant_in_struct.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint constant LEN = 10;
3 | struct Test {
4 | uint[LEN] ids;
5 | }
6 | }
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/length/can_be_recursive_constant.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint constant L = 5;
3 | uint constant LEN = L + 4 * L;
4 | uint[LEN] ids;
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/length/constant_var.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint constant LEN = 10;
3 | uint[LEN] ids;
4 | }
5 | // ----
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/slice/assign_to_storage.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | bytes public b;
3 | function f() public {
4 | b = msg.data[:];
5 | }
6 | }
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/slice/bytes_calldata.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(bytes calldata x) external pure {
3 | x[1:2];
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/slice/calldata_dynamic.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(uint256[] calldata x) external pure {
3 | x[1:2];
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/array/slice/calldata_dynamic_forward.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(bytes calldata x) external {
3 | return this.f(x[1:2]);
4 | }
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/constant_natspec.sol:
--------------------------------------------------------------------------------
1 | /// @dev Documentation
2 | uint constant x = 8;
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/constant_override.sol:
--------------------------------------------------------------------------------
1 | uint constant override x = 2;
2 | // ----
3 | // ParserError 2314: (14-22): Expected identifier but got 'override'
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/constant_unassigned.sol:
--------------------------------------------------------------------------------
1 | uint constant x;
2 | // ----
3 | // TypeError 4266: (0-15): Uninitialized "constant" variable.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/constant_virtual.sol:
--------------------------------------------------------------------------------
1 | uint constant virtual x;
2 | // ----
3 | // ParserError 2314: (14-21): Expected identifier but got 'virtual'
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/constant_with_visibility.sol:
--------------------------------------------------------------------------------
1 | uint public constant x = 7;
2 | // ----
3 | // ParserError 2314: (5-11): Expected identifier but got 'public'
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/constant_with_visibility_inverted.sol:
--------------------------------------------------------------------------------
1 | uint constant public y = 7;
2 | // ----
3 | // ParserError 2314: (14-20): Expected identifier but got 'public'
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/file_level_memory.sol:
--------------------------------------------------------------------------------
1 | uint[] memory constant x = 2;
2 | // ----
3 | // ParserError 2314: (7-13): Expected identifier but got 'memory'
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/file_level_memory_inverted.sol:
--------------------------------------------------------------------------------
1 | uint[] constant memory x = 2;
2 | // ----
3 | // ParserError 2314: (16-22): Expected identifier but got 'memory'
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/mapping_constant.sol:
--------------------------------------------------------------------------------
1 | mapping(uint => uint) constant b = b;
2 | // ----
3 | // TypeError 9259: (0-36): Constants of non-value type not yet implemented.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constants/non_constant.sol:
--------------------------------------------------------------------------------
1 | uint x = 7;
2 | // ----
3 | // DeclarationError 8342: (0-10): Only constant variables are allowed at file level.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constructor/constructer_internal_function_abstract.sol:
--------------------------------------------------------------------------------
1 | abstract contract A {
2 | constructor(function() internal) {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constructor/constructible_abstract_base.sol:
--------------------------------------------------------------------------------
1 | abstract contract C {
2 | constructor() {}
3 | }
4 | contract D is C {
5 | constructor() { }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constructor/constructor.sol:
--------------------------------------------------------------------------------
1 | contract A { constructor() {} }
2 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constructor/constructor_override.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | constructor() override {}
3 | }
4 | // ----
5 | // TypeError 1209: (17-42): Constructors cannot override.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constructor/constructor_storage_abstract.sol:
--------------------------------------------------------------------------------
1 | abstract contract A {
2 | constructor(uint[] storage a) {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constructor/constructor_virtual.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | constructor() virtual {}
3 | }
4 | // ----
5 | // TypeError 7001: (17-41): Constructors cannot be virtual.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/constructor/nonabiv2_type_abstract.sol:
--------------------------------------------------------------------------------
1 | abstract contract C {
2 | constructor(uint[][][] memory t) {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/controlFlow/unreachableCode/comment_fine.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public pure {
3 | return;
4 | // unreachable comment
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/conversion/conversion_to_bytes.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f() public pure returns (bytes memory) {
3 | return bytes("abc");
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/conversion/implicit_conversion_from_storage_array_ref.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | int[10] x;
3 | int[] y;
4 | function f() public {
5 | y = x;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/dataLocations/publicFunction/function_argument_location_specifier_test_public_memory.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f(bytes memory) public {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/denominations/gwei_as_identifier.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint constant gwei = 1;
3 | }
4 | // ----
5 | // ParserError 2314: (28-32): Expected identifier but got 'gwei'
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/duplicate_contract.sol:
--------------------------------------------------------------------------------
1 | contract X {}
2 | contract X {}
3 | // ----
4 | // DeclarationError 2333: (14-27): Identifier already declared.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/emit/emit_empty.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public {
3 | emit;
4 | }
5 | }
6 | // ----
7 | // ParserError 5620: (45-46): Expected event name or path.
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/empty_struct.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | struct A {}
3 | }
4 | // ----
5 | // SyntaxError 5306: (17-28): Defining empty structs is disallowed.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/enums/global_enum.sol:
--------------------------------------------------------------------------------
1 | enum E { A }
2 | contract C {
3 | function f() public pure {
4 | E e = E.A;
5 | e;
6 | }
7 | }
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/enums/global_enum_contract_name_clash.sol:
--------------------------------------------------------------------------------
1 | enum E { A }
2 | contract E {}
3 | // ----
4 | // DeclarationError 2333: (13-26): Identifier already declared.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/enums/global_enum_name_clash.sol:
--------------------------------------------------------------------------------
1 | enum E { A }
2 | enum E { A }
3 | // ----
4 | // DeclarationError 2333: (13-25): Identifier already declared.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/anonymous_event_four_indexed.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event e(uint indexed a, bytes3 indexed b, bool indexed c, uint indexed d) anonymous;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_array_indexed_v2.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract c {
3 | event E(uint[] indexed);
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_array_v2.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract c {
3 | event E(uint[]);
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_emit_simple.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | event e();
3 | function f() public {
4 | emit e();
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_function_type_indexed.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | event Test(function() external indexed);
3 | function f() public {
4 | emit Test(this.f);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_nested_array_2.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event E(uint[2][]);
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_nested_array_indexed_v2.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract c {
3 | event E(uint[][] indexed);
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_nested_array_v2.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract c {
3 | event E(uint[][]);
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_struct_indexed_v2.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract c {
3 | struct S { uint a ; }
4 | event E(S indexed);
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/event_struct_v2.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract c {
3 | struct S { uint a ; }
4 | event E(S);
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/events_with_same_name.sol:
--------------------------------------------------------------------------------
1 | contract TestIt {
2 | event A();
3 | event A(uint i);
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/events_with_same_name_different_types.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | event A(uint);
3 | event A(bytes);
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/events_with_same_name_unnamed_arguments.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | event A(uint);
3 | event A(uint, uint);
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/inheritance_adds_parameter.sol:
--------------------------------------------------------------------------------
1 | contract A {
2 | event X();
3 | }
4 | contract B is A {
5 | event X(uint);
6 | }
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/multiple_events_argument_clash.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event e1(uint a, uint e1, uint e2);
3 | event e2(uint a, uint e1, uint e2);
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/multiple_inheritance.sol:
--------------------------------------------------------------------------------
1 | contract A { event X(uint); }
2 | contract B is A {}
3 | contract C is A {}
4 | contract D is B, C {}
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/events/overloading_in_contract.sol:
--------------------------------------------------------------------------------
1 | contract A {
2 | event X();
3 | event X(uint);
4 | }
5 | // ----
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/fallback/payable_fallback_without_receive_empty.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | fallback() external payable { }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/fallback/payable_fallback_without_receive_only_internal.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | fallback() external payable { }
3 | function f() internal pure { }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/fallback/returns.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | fallback(bytes calldata _input) external returns (bytes memory _output) {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/free_different_integer_types.sol:
--------------------------------------------------------------------------------
1 | function f(uint24) {}
2 | function f(uint16) {}
3 | function f(int24) {}
4 | function f(bool) {}
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/free_function_modifier.sol:
--------------------------------------------------------------------------------
1 | function fun() someModifier {
2 | }
3 | // ----
4 | // DeclarationError 7576: (15-27): Undeclared identifier.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/free_function_without_body.sol:
--------------------------------------------------------------------------------
1 | function f();
2 | // ----
3 | // TypeError 4668: (0-13): Free functions must be implemented.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/free_override.sol:
--------------------------------------------------------------------------------
1 | function fun() override {
2 | }
3 | // ----
4 | // SyntaxError 1750: (0-27): Free functions cannot override.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/free_payable.sol:
--------------------------------------------------------------------------------
1 | function fun() payable {
2 | }
3 | // ----
4 | // TypeError 9559: (0-26): Free functions cannot be payable.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/free_storage.sol:
--------------------------------------------------------------------------------
1 | struct S { uint x; }
2 | function fun(S storage) {
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/free_virtual.sol:
--------------------------------------------------------------------------------
1 | function fun() virtual {
2 | }
3 | // ----
4 | // SyntaxError 4493: (0-26): Free functions cannot be virtual.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/function_same_name_as_contract.sol:
--------------------------------------------------------------------------------
1 | contract C {}
2 | function C() {}
3 | // ----
4 | // DeclarationError 2333: (14-29): Identifier already declared.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/freeFunctions/struct_after_function.sol:
--------------------------------------------------------------------------------
1 | function f(S storage g) view returns (uint) { S storage t = g; return t.x; }
2 | struct S { uint x; }
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/functionTypes/function_type.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() pure public {
3 | function(uint) returns (uint) x;
4 | x;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/getter/complex_struct.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | struct Y {
3 | uint a;
4 | uint b;
5 | }
6 | mapping(uint256 => Y) public m;
7 | }
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/getter/simple_struct.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | struct Y {
3 | uint b;
4 | }
5 | mapping(uint256 => Y) public m;
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/immutable/function_initialization.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint immutable x = f();
3 |
4 | function f() public pure returns (uint) { return 3; }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/immutable/immutable_basic.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint immutable x = 0;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/immutable/initialized_after_ctor.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | constructor() {
3 | return;
4 | }
5 |
6 | uint immutable x = 3;
7 | }
8 | // ----
9 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/immutable/long_name.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint immutable long___name___that___definitely___exceeds___the___thirty___two___byte___limit = 0;
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/circular_import.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | import "b"; contract C { D d; }
3 | ==== Source: b ====
4 | import "a"; contract D { C c; }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/library_name_clash_with_contract.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | contract A {}
3 | ==== Source: b ====
4 | library A {}
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/name_clash_in_import_5.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | contract A {}
3 | ==== Source: b ====
4 | import {A} from "a"; contract B {}
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/name_clash_in_import_contract_struct_5.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | contract A {}
3 | ==== Source: b ====
4 | import {A} from "a";
5 | struct B { uint256 a; }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/name_clash_in_import_struct_contract_5.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | struct A { uint256 a; }
3 | ==== Source: b ====
4 | import {A} from "a";
5 | contract B {}
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/regular_import.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | contract C {}
3 | ==== Source: b ====
4 | import "a"; contract D is C {}
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/relative_import_multiplex.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | contract A {}
3 | ==== Source: dir/a/b/c ====
4 | import "../../.././a"; contract B is A {}
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/imports/smoke_test.sol:
--------------------------------------------------------------------------------
1 | ==== Source: a ====
2 | contract C {}
3 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/inheritance/allow_empty_duplicated_super_constructor_call.sol:
--------------------------------------------------------------------------------
1 | contract A { constructor() { } }
2 | contract B is A { constructor() A() { } }
3 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/inheritance/base_not_contract.sol:
--------------------------------------------------------------------------------
1 | function fun() {}
2 |
3 | contract C is fun {}
4 | // ----
5 | // TypeError 8758: (33-36): Contract expected.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/inheritance/interface/single_parent.sol:
--------------------------------------------------------------------------------
1 | interface Super {
2 | function test() external returns (uint256);
3 | }
4 |
5 | interface Sub is Super {}
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/inheritance/override/add_view.sol:
--------------------------------------------------------------------------------
1 | contract B { function f() virtual public {} }
2 | contract C is B { function f() override public view {} }
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/inheritance/override/function_state_variable.sol:
--------------------------------------------------------------------------------
1 | interface ERC20 { function x() external returns (uint); }
2 | contract C is ERC20 { uint public override x; }
3 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/inheritance/shadowing_private_base_state_vars.sol:
--------------------------------------------------------------------------------
1 | contract A {
2 | uint private i;
3 | }
4 | contract B is A {
5 | uint i;
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/inheritance/virtual/simple.sol:
--------------------------------------------------------------------------------
1 | contract C
2 | {
3 | function foo() public virtual {}
4 | function foo2() virtual public {}
5 | modifier modi() virtual {_;}
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/largeTypes/large_storage_array_fine.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint[2**64 - 1] x;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/largeTypes/large_storage_arrays_combined.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint[200][200][2**30][][2**30] x;
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/license/license_missing.sol:
--------------------------------------------------------------------------------
1 | contract C {}
2 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/literal_comparisons.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f(int8 x) public pure {
3 | if (x == 1) {}
4 | if (1 == x) {}
5 | }
6 | }
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/literals/hex_string_underscores_valid.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes constant c = hex"12_3456_789012";
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/metaTypes/name.sol:
--------------------------------------------------------------------------------
1 | contract Test {
2 | function f() public pure returns (string memory) {
3 | return type(Test).name;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/metaTypes/name_constant.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | string public constant name = type(C).name;
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/metaTypes/typeNotRegularIdentifierContractName.sol:
--------------------------------------------------------------------------------
1 | contract type { }
2 | // ----
3 | // ParserError 2314: (9-13): Expected identifier but got 'type'
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/modifiers/legal_modifier_override.sol:
--------------------------------------------------------------------------------
1 | contract A { modifier mod(uint a) virtual { _; } }
2 | contract B is A { modifier mod(uint a) override { _; } }
3 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/004_reference_to_later_declaration.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function g() public { f(); }
3 | function f() public {}
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/057_legal_override_direct.sol:
--------------------------------------------------------------------------------
1 | contract B { function f() public {} }
2 | contract C is B { function f(uint i) public {} }
3 | // ----
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/074_fallback_function.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint x;
3 | fallback() external { x = 2; }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/104_empty_name_input_parameter.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f(uint) public { }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/106_empty_name_return_parameter.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f() public returns (bool) { }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/115_exp_warn_literal_base_3.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f() pure public returns(uint) {
3 | return 2**80;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/118_shift_warn_literal_base_3.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f() pure public returns(uint) {
3 | return 2 << 80;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/146_external_argument_assign.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | function f(uint a) external pure { a = 1; }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/147_external_argument_increment.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | function f(uint a) external pure { a++; }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/168_assignment_to_const_var_involving_conversion.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | C constant x = C(0x123);
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/169_assignment_to_const_var_involving_expression.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint constant x = 0x123 + 0x456;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/170_assignment_to_const_var_involving_keccak.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes32 constant x = keccak256("abc");
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/174_address_is_constant.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | address constant x = 0x1212121212121212121212121212121212121212;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/191_negative_integers_to_signed_min.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | int8 public i = -128;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/193_positive_integers_to_signed_out_of_bound_max.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | int8 public j = 127;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/204_overwrite_memory_location_external.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(uint[] memory a) external {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/228_valid_library.sol:
--------------------------------------------------------------------------------
1 | library Lib { uint constant x = 9; }
2 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/251_using_for_library.sol:
--------------------------------------------------------------------------------
1 | library D { }
2 | contract C {
3 | using D for uint;
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/355_payable_external.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f() payable external {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/398_does_not_warn_msg_value_in_payable_function.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() payable public {
3 | msg.value;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/400_does_not_warn_msg_value_in_library.sol:
--------------------------------------------------------------------------------
1 | library C {
2 | function f() view public {
3 | msg.value;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/414_interface.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | }
3 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/415_interface_functions.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | fallback() external;
3 | function f() external;
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/417_interface_events.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | event E();
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/418_interface_inheritance.sol:
--------------------------------------------------------------------------------
1 | interface A {
2 | }
3 | interface I is A {
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/419_interface_structs.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | struct A {
3 | int dummy;
4 | }
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/421_interface_function_parameters.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | function f(uint a) external returns (bool);
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/422_interface_enums.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | enum A { B, C }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/438_unused_unnamed_function_parameter.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(uint) pure public {
3 | }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/441_unused_unnamed_return_parameter.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() pure public returns (uint) {
3 | }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/442_named_return_parameter.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() pure public returns (uint a) {
3 | a = 1;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/445_no_unused_warning_interface_arguments.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | function f(uint a) pure external returns (uint b);
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/459_function_overload_is_not_shadowing.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() pure public {}
3 | function f(uint) pure public {}
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/461_event_parameter_cannot_shadow_state_variable.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | address a;
3 | event E(address a);
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/497_gasleft.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public view returns (uint256 val) { return gasleft(); }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/515_experimental_pragma_empty.sol:
--------------------------------------------------------------------------------
1 | pragma experimental;
2 | // ----
3 | // SyntaxError 9679: (0-20): Experimental feature name is missing.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/526_fallback_marked_external.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | fallback () external { }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/568_blockhash.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public view returns (bytes32) { return blockhash(3); }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/shadowsBuiltin/global_scope.sol:
--------------------------------------------------------------------------------
1 | contract msg {
2 | }
3 | // ----
4 | // Warning 2319: (0-16): This declaration shadows a builtin symbol.
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/shadowsBuiltin/ignores_constructor.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | constructor() {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/shadowsBuiltin/ignores_struct.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | struct a {
3 | uint msg;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/warnUnused/function_parameter.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(uint a) pure public {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/nameAndTypeResolution/warnUnused/return_parameter.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() pure public returns (uint a) {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/natspec/docstring_double_empty.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | ///
3 | ///
4 | function vote(uint id) public {
5 | }
6 | }
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/natspec/docstring_state_variable.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | /// @notice example of notice
3 | /// @dev example of dev
4 | uint public state;
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/address_in_struct.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | struct S {
3 | address payable a;
4 | address b;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/address_payable_constant.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | address payable constant a = address(0);
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/address_payable_library.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | }
3 | contract C {
4 | using L for address payable;
5 | }
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/array_range_no_start.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(uint256[] calldata x) external pure {
3 | x[:][:10];
4 | }
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/arrays_in_events.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event e(uint[10] a, bytes7[8] indexed b, c[3] x);
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/assembly_evmasm_type.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public pure {
3 | assembly "evmasm" {}
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/comment_end_with_double_star.sol:
--------------------------------------------------------------------------------
1 | contract C1 {
2 | /**
3 | **/
4 | }
5 | contract C2 {}
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/constant_is_keyword.sol:
--------------------------------------------------------------------------------
1 | contract Foo {
2 | uint constant = 4;
3 | }
4 | // ----
5 | // ParserError 2314: (30-31): Expected identifier but got '='
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/empty_comment.sol:
--------------------------------------------------------------------------------
1 | //
2 | contract test
3 | {}
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/empty_enum.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | enum foo { }
3 | }
4 | // ----
5 | // ParserError 3147: (25-26): enum with no members is not allowed.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/event.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event e();
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/event_arguments.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event e(uint a, bytes32 s);
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/event_arguments_indexed.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event e(uint a, bytes32 indexed s, bool indexed b);
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/event_with_no_argument_list.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | event e;
3 | }
4 | // ----
5 | // ParserError 2314: (21-22): Expected '(' but got ';'
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/external_function.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | function x() external {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/external_variable.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | uint external x;
3 | }
4 | // ----
5 | // ParserError 2314: (19-27): Expected identifier but got 'external'
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/fallback_function.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | fallback() external { }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/from_is_not_keyword.sol:
--------------------------------------------------------------------------------
1 | // "from" is not a keyword although it is used as a keyword in import directives.
2 | contract from {
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/function_no_body.sol:
--------------------------------------------------------------------------------
1 | abstract contract test {
2 | function functionName(bytes32 input) public virtual returns (bytes32 out);
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/function_type_as_storage_variable.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function (uint, uint) internal returns (uint) f1;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/function_type_state_variable.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function() x;
3 | function() y = x;
4 | }
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/import_complex.sol:
--------------------------------------------------------------------------------
1 | import {hello, world} from "hello";
2 | // ----
3 | // ParserError 6275: (0-35): Source "hello" not found: File not supplied initially.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/import_complex_invalid_from.sol:
--------------------------------------------------------------------------------
1 | import {hello, world} from function;
2 | // ----
3 | // ParserError 6845: (27-35): Expected import path.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/import_complex_without_from.sol:
--------------------------------------------------------------------------------
1 | import {hello, world};
2 | // ----
3 | // ParserError 8208: (21-22): Expected "from".
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/import_empty.sol:
--------------------------------------------------------------------------------
1 | import "";
2 | // ----
3 | // ParserError 6326: (9-10): Import path cannot be empty.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/import_invalid_token.sol:
--------------------------------------------------------------------------------
1 | import function;
2 | // ----
3 | // ParserError 9478: (7-15): Expected string literal (path), "*" or alias list.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/import_simple.sol:
--------------------------------------------------------------------------------
1 | import "hello";
2 | // ----
3 | // ParserError 6275: (0-15): Source "hello" not found: File not supplied initially.
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/interface_basic.sol:
--------------------------------------------------------------------------------
1 | interface Interface {
2 | function f() external;
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/library_simple.sol:
--------------------------------------------------------------------------------
1 | library Lib {
2 | function f() public { }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/malformed_enum_declaration.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | enum foo { WARNING,}
3 | }
4 | // ----
5 | // ParserError 1612: (33-34): Expected identifier after ','
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/mapping.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | mapping(address => bytes32) names;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/mapping_nonelementary_key_1.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | mapping(uint[] => uint) data;
3 | }
4 | // ----
5 | // ParserError 2314: (26-27): Expected '=>' but got '['
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/modifier.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | modifier mod { if (msg.sender == 0x0000000000000000000000000000000000000000) _; }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/modifier_arguments.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | modifier mod(address a) { if (msg.sender == a) _; }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/multi_arrays.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | mapping(uint => mapping(uint => int8)[8][][9])[] x;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/new_invalid_type_name.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() {
3 | new var;
4 | }
5 | }
6 | // ----
7 | // ParserError 3546: (35-38): Expected type name
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/no_function_params.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | uint256 stateVar;
3 | function functionName() public {}
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/single_function_param.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | uint256 stateVar;
3 | function functionName(bytes32 input) public returns (bytes32 out) {}
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/smoke_test.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | uint256 stateVariable1;
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/trailing_dot3.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | uint a = 2.
3 | // ----
4 | // ParserError 2314: (29-29): Expected identifier but got end of source
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/parsing/var_array.sol:
--------------------------------------------------------------------------------
1 | contract Foo {
2 | function f() { var[] a; }
3 | }
4 | // ----
5 | // ParserError 6933: (31-34): Expected primary expression.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/pragma/invalid_pragma.sol:
--------------------------------------------------------------------------------
1 | pragma 0;
2 | // ----
3 | // SyntaxError 5226: (0-9): Invalid pragma "0"
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/pragma/unknown_pragma.sol:
--------------------------------------------------------------------------------
1 | pragma thisdoesntexist;
2 | // ----
3 | // SyntaxError 4936: (0-23): Unknown pragma "thisdoesntexist"
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/scoping/scoping_for2.sol:
--------------------------------------------------------------------------------
1 | contract test {
2 | function f() pure public {
3 | for (uint x = 0; x < 10; x ++)
4 | x = 2;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/string/invalid_utf8_in_bytes.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes b1 = "\xa0\x00";
3 | bytes32 b2 = "\xa0\x00";
4 | bytes b3 = hex"a000";
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/string/large_utf8_codepoint.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | string s = "\xf0\x9f\xa6\x84";
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/structs/calldata.sol:
--------------------------------------------------------------------------------
1 | pragma abicoder v2;
2 | contract Test {
3 | struct S { int a; }
4 | function f(S calldata) external { }
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/structs/global_struct.sol:
--------------------------------------------------------------------------------
1 | struct S { uint a; }
2 | contract C {
3 | function f() public pure {
4 | S memory s = S(42);
5 | s;
6 | }
7 | }
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/structs/recursion/struct_definition_not_really_recursive.sol:
--------------------------------------------------------------------------------
1 | contract Test {
2 | struct S1 { uint a; }
3 | struct S2 { S1 x; S1 y; }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/structs/recursion/struct_definition_not_really_recursive_array.sol:
--------------------------------------------------------------------------------
1 | contract Test {
2 | struct S1 { uint a; }
3 | struct S2 { S1[1] x; S1[1] y; }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/tryCatch/simple_catch.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public {
3 | try this.f() {
4 |
5 | } catch {
6 |
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/tupleAssignments/tuple_in_tuple_short.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public pure {
3 | int a;
4 | (((a,),)) = ((1,2),3);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/address/address_payable_selfdestruct.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(address payable a) public {
3 | selfdestruct(a);
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/address/address_to_contract.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public pure returns (C c) {
3 | c = C(address(2));
4 | }
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/address/contract_to_address.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public view {
3 | address a = address(this);
4 | a;
5 | }
6 | }
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/bytes0.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes0 b0 = 1;
3 | }
4 | // ----
5 | // DeclarationError 7920: (15-21): Identifier not found or not unique.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/bytes256.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes256 b256 = 1;
3 | }
4 | // ----
5 | // DeclarationError 7920: (15-23): Identifier not found or not unique.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/bytes33.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes33 b33 = 1;
3 | }
4 | // ----
5 | // DeclarationError 7920: (15-22): Identifier not found or not unique.
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/bytesNN_bitnot.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes32 b32 = ~bytes32(hex"ff");
3 | bytes32 b25 = ~bytes25(hex"ff");
4 | bytes25 b8 = ~bytes8(hex"ff");
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/event_with_rational_size_array.sol:
--------------------------------------------------------------------------------
1 | contract a { event b(uint[(1 / 1)]); }
2 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/index_access_for_bytes.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | bytes20 x;
3 | function f(bytes16 b) public view {
4 | b[uint8(x[2])];
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/library_internal_call.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function a() public pure {}
3 | function b() public pure { a(); }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/argument_internal.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(mapping(uint => uint) storage) internal pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/argument_private.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(mapping(uint => uint) storage) private pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/array_argument_internal.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(mapping(uint => uint)[] storage) internal pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/array_argument_private.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(mapping(uint => uint)[] storage) private pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/function_type_argument_internal.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f(function(mapping(uint=>uint) storage) internal) internal pure {
3 | }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_argument_external.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint) storage) external pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_argument_internal.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint) storage) internal pure {
3 | }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_argument_private.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint) storage) private pure {
3 | }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_argument_public.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint) storage) public pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_array_argument_external.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint)[] storage) external pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_array_argument_internal.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint)[] storage) internal pure {
3 | }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_array_argument_private.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint)[] storage) private pure {
3 | }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_array_argument_public.sol:
--------------------------------------------------------------------------------
1 | library L {
2 | function f(mapping(uint => uint)[] storage) public pure {
3 | }
4 | }
5 | // ----
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/library_storage_parameter_with_mapping.sol:
--------------------------------------------------------------------------------
1 | struct S { mapping(uint => uint)[2] a; }
2 | library L {
3 | function f(S storage s) public {}
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/mapping_dynamic_key.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | mapping(string => uint) data;
3 | }
4 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/mapping/mapping_dynamic_key_public.sol:
--------------------------------------------------------------------------------
1 | contract c {
2 | mapping(string => uint) public data;
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/types/rational_negative_numerator_negative_exp.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function f() public pure returns (int) {
3 | return (-1 / 2) ** -1;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/viewPureChecker/constant.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | uint constant x = 2;
3 | function k() pure public returns (uint) {
4 | return x;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/viewPureChecker/creation_no_restrict_warning.sol:
--------------------------------------------------------------------------------
1 | contract D {}
2 | contract C {
3 | function f() public { new D(); }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/viewPureChecker/suggest_pure.sol:
--------------------------------------------------------------------------------
1 | contract C {
2 | function g() view public { }
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libsolidity/syntaxTests/visibility/interface/function_external.sol:
--------------------------------------------------------------------------------
1 | interface I {
2 | function f() external;
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/calldatacopy.yul:
--------------------------------------------------------------------------------
1 | {
2 | calldatacopy(0, 0, 32)
3 | sstore(0, mload(0))
4 | }
5 | // ----
6 | // Trace:
7 | // Memory dump:
8 | // Storage dump:
9 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/calldataload.yul:
--------------------------------------------------------------------------------
1 | {
2 | sstore(0, calldataload(0))
3 | }
4 | // ----
5 | // Trace:
6 | // Memory dump:
7 | // Storage dump:
8 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/calldatasize.yul:
--------------------------------------------------------------------------------
1 | {
2 | sstore(0, calldatasize())
3 | }
4 | // ----
5 | // Trace:
6 | // Memory dump:
7 | // Storage dump:
8 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/log0.yul:
--------------------------------------------------------------------------------
1 | {
2 | log0(0x20, 0x40)
3 | }
4 | // ----
5 | // Trace:
6 | // LOG0()
7 | // Memory dump:
8 | // Storage dump:
9 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/log1.yul:
--------------------------------------------------------------------------------
1 | {
2 | log1(0x20, 0x40, 0x60)
3 | }
4 | // ----
5 | // Trace:
6 | // LOG1()
7 | // Memory dump:
8 | // Storage dump:
9 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/log2.yul:
--------------------------------------------------------------------------------
1 | {
2 | log2(0x20, 0x40, 0x60, 0x80)
3 | }
4 | // ----
5 | // Trace:
6 | // LOG2()
7 | // Memory dump:
8 | // Storage dump:
9 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/log3.yul:
--------------------------------------------------------------------------------
1 | {
2 | log3(0x20, 0x40, 0x60, 0x80, 0xa0)
3 | }
4 | // ----
5 | // Trace:
6 | // LOG3()
7 | // Memory dump:
8 | // Storage dump:
9 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/log4.yul:
--------------------------------------------------------------------------------
1 | {
2 | log4(0x20, 0x40, 0x60, 0x80, 0xa0, 0xb0)
3 | }
4 | // ----
5 | // Trace:
6 | // LOG4()
7 | // Memory dump:
8 | // Storage dump:
9 |
--------------------------------------------------------------------------------
/test/libyul/ewasmTranslationTests/smoke.yul:
--------------------------------------------------------------------------------
1 | {}
2 | // ----
3 | // Trace:
4 | // Memory dump:
5 | // Storage dump:
6 |
--------------------------------------------------------------------------------
/test/libyul/functionSideEffects/empty.yul:
--------------------------------------------------------------------------------
1 | {
2 | }
3 | // ----
4 | // : movable, movable apart from effects, can be removed, can be removed if no msize
5 |
--------------------------------------------------------------------------------
/test/libyul/functionSideEffects/empty_with_sstore.yul:
--------------------------------------------------------------------------------
1 | {
2 | sstore(0, 1)
3 | }
4 | // ----
5 | // : writes storage
6 |
--------------------------------------------------------------------------------
/test/libyul/objectCompiler/namedObject.yul:
--------------------------------------------------------------------------------
1 | object "a" {
2 | code {}
3 | }
4 | // ----
5 | // Assembly:
6 | // -- empty bytecode --
7 |
--------------------------------------------------------------------------------
/test/libyul/objectCompiler/smoke.yul:
--------------------------------------------------------------------------------
1 | {
2 | }
3 | // ----
4 | // Assembly:
5 | // -- empty bytecode --
6 |
--------------------------------------------------------------------------------
/test/libyul/yulInterpreterTests/smoke.yul:
--------------------------------------------------------------------------------
1 | {}
2 | // ----
3 | // Trace:
4 | // Memory dump:
5 | // Storage dump:
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/commonSubexpressionEliminator/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: commonSubexpressionEliminator
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/conditionalSimplifier/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: conditionalSimplifier
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/conditionalUnsimplifier/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: conditionalUnsimplifier
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/controlFlowSimplifier/empty_if_non_movable_condition.yul:
--------------------------------------------------------------------------------
1 | { if mload(0) {} }
2 | // ----
3 | // step: controlFlowSimplifier
4 | //
5 | // { pop(mload(0)) }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/disambiguator/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: disambiguator
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/disambiguator/smoke_yul.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ====
3 | // dialect: yul
4 | // ----
5 | // step: disambiguator
6 | //
7 | // { }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/expressionJoiner/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: expressionJoiner
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/expressionSimplifier/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: expressionSimplifier
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/expressionSplitter/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: expressionSplitter
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/fullSimplify/constants.yul:
--------------------------------------------------------------------------------
1 | {
2 | let a := add(1, mul(3, 4))
3 | mstore(0, a)
4 | }
5 | // ----
6 | // step: fullSimplify
7 | //
8 | // { mstore(0, 13) }
9 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/fullSimplify/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: fullSimplify
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/functionGrouper/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: functionGrouper
4 | //
5 | // { { } }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/functionHoister/smoke.yul:
--------------------------------------------------------------------------------
1 | {
2 | }
3 | // ----
4 | // step: functionHoister
5 | //
6 | // { }
7 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/reasoningBasedSimplifier/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: reasoningBasedSimplifier
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/rematerialiser/smoke.yul:
--------------------------------------------------------------------------------
1 | {}
2 | // ----
3 | // step: rematerialiser
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/splitJoin/smoke.yul:
--------------------------------------------------------------------------------
1 | {}
2 | // ----
3 | // step: splitJoin
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/ssaReverser/self_assign.yul:
--------------------------------------------------------------------------------
1 | {
2 | let a := calldataload(0)
3 | a := a
4 | }
5 | // ----
6 | // step: ssaReverser
7 | //
8 | // { let a := calldataload(0) }
9 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/structuralSimplifier/if_false_condition.yul:
--------------------------------------------------------------------------------
1 | { if 0 { mstore(0, 0) } }
2 | // ----
3 | // step: structuralSimplifier
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/structuralSimplifier/if_true_condition.yul:
--------------------------------------------------------------------------------
1 | { if 1 { mstore(0, 0) } }
2 | // ----
3 | // step: structuralSimplifier
4 | //
5 | // { mstore(0, 0) }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/unusedFunctionParameterPruner/smoke.yul:
--------------------------------------------------------------------------------
1 | {}
2 | // ----
3 | // step: unusedFunctionParameterPruner
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/unusedPruner/functions.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f() { let a := 1 }
3 | function g() { f() }
4 | }
5 | // ----
6 | // step: unusedPruner
7 | //
8 | // { }
9 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/unusedPruner/multi_declarations.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x, y
3 | }
4 | // ----
5 | // step: unusedPruner
6 | //
7 | // { }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/unusedPruner/multi_declare.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f() -> x, y { }
3 | let a, b := f()
4 | }
5 | // ----
6 | // step: unusedPruner
7 | //
8 | // { }
9 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/unusedPruner/pop.yul:
--------------------------------------------------------------------------------
1 | {
2 | let a := 1
3 | pop(a)
4 | }
5 | // ----
6 | // step: unusedPruner
7 | //
8 | // { }
9 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/unusedPruner/smoke.yul:
--------------------------------------------------------------------------------
1 | { }
2 | // ----
3 | // step: unusedPruner
4 | //
5 | // { }
6 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/varDeclInitializer/simple.yul:
--------------------------------------------------------------------------------
1 | {
2 | let a
3 | }
4 | // ----
5 | // step: varDeclInitializer
6 | //
7 | // { let a := 0 }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/varNameCleaner/builtins.yul:
--------------------------------------------------------------------------------
1 | {
2 | let datasize_256 := 1
3 | }
4 | // ----
5 | // step: varNameCleaner
6 | //
7 | // { { let datasize_1 := 1 } }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulOptimizerTests/varNameCleaner/instructions.yul:
--------------------------------------------------------------------------------
1 | {
2 | let mul_256 := 1
3 | }
4 | // ----
5 | // step: varNameCleaner
6 | //
7 | // { { let mul_1 := 1 } }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/assign_from_stack.yul:
--------------------------------------------------------------------------------
1 | { =: x:u256 }
2 | // ----
3 | // ParserError 1856: (2-3): Literal or identifier expected.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/assignment.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x:u256 := 2:u256
3 | let y:u256 := x
4 | }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/assignment_of_function.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f() {}
3 | let x := f
4 | }
5 | // ----
6 | // TypeError 6041: (35-36): Function f used without being called.
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/blocks.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x:u256 := 7:u256
3 | {
4 | let y:u256 := 3:u256
5 | }
6 | {
7 | let z:u256 := 2:u256
8 | }
9 | }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/builtin_identifier_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | let add := 6
3 | }
4 | // ----
5 | // ParserError 5568: (7-10): Cannot use builtin function name "add" as identifier name.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/builtin_identifier_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | function add() {}
3 | }
4 | // ----
5 | // ParserError 5568: (12-15): Cannot use builtin function name "add" as identifier name.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/builtin_identifier_3.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f(x) { f(add) }
3 | }
4 | // ----
5 | // ParserError 7104: (21-24): Builtin function "add" must be called.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/builtin_identifier_4.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f(add) {}
3 | }
4 | // ----
5 | // ParserError 5568: (14-17): Cannot use builtin function name "add" as identifier name.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/builtin_identifier_5.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f() -> add {}
3 | }
4 | // ----
5 | // ParserError 5568: (19-22): Cannot use builtin function name "add" as identifier name.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/builtin_identifier_6.yul:
--------------------------------------------------------------------------------
1 | {
2 | add := 1
3 | }
4 | // ----
5 | // ParserError 6272: (7-9): Cannot assign to builtin function "add".
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/byte_of_string_literal.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := byte(31, "11112222333344445555666677778888")
3 | }
4 | // ====
5 | // dialect: evm
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/call_literal.yul:
--------------------------------------------------------------------------------
1 | {
2 | 1()
3 | }
4 | // ----
5 | // ParserError 9980: (7-8): Function name expected.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/constants.yul:
--------------------------------------------------------------------------------
1 | {
2 | pop(mul(7, 8))
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_leading_function.yul:
--------------------------------------------------------------------------------
1 | {
2 | function .x() {}
3 | }
4 | // ----
5 | // ParserError 2314: (15-16): Expected identifier but got '.'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_leading_function_arg.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x(.a) {}
3 | }
4 | // ----
5 | // ParserError 2314: (17-18): Expected identifier but got '.'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_leading_function_ret.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x() -> .a {}
3 | }
4 | // ----
5 | // ParserError 2314: (22-23): Expected identifier but got '.'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_leading_variabledeclaration.yul:
--------------------------------------------------------------------------------
1 | {
2 | let .a := 1
3 | }
4 | // ----
5 | // ParserError 2314: (10-11): Expected identifier but got '.'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_middle_function.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x.y() {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_middle_function_arg.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x(a.b) {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_middle_function_ret.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x() -> a.b {}
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_middle_variabledeclaration.yul:
--------------------------------------------------------------------------------
1 | {
2 | let a.b := 1
3 | }
4 | // ----
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_trailing_function.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x.() {}
3 | }
4 | // ----
5 | // SyntaxError 3384: (6-22): "x." is not a valid identifier (ends with a dot).
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_trailing_function_arg.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x(a.) {}
3 | }
4 | // ----
5 | // SyntaxError 3384: (17-19): "a." is not a valid identifier (ends with a dot).
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_trailing_function_ret.yul:
--------------------------------------------------------------------------------
1 | {
2 | function x() -> a. {}
3 | }
4 | // ----
5 | // SyntaxError 3384: (22-24): "a." is not a valid identifier (ends with a dot).
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/dot_trailing_variabledeclaration.yul:
--------------------------------------------------------------------------------
1 | {
2 | let a. := 1
3 | }
4 | // ----
5 | // SyntaxError 3384: (10-12): "a." is not a valid identifier (ends with a dot).
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/empty_call.yul:
--------------------------------------------------------------------------------
1 | { () }
2 | // ----
3 | // ParserError 1856: (2-3): Literal or identifier expected.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_expr_invalid_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {} {} {} {}
3 | }
4 | // ----
5 | // ParserError 1856: (10-11): Literal or identifier expected.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_expr_invalid_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | for 1 1 {} {}
3 | }
4 | // ----
5 | // ParserError 2314: (7-8): Expected '{' but got 'Number'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_expr_invalid_3.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {} 1 1 {}
3 | }
4 | // ----
5 | // ParserError 2314: (12-13): Expected '{' but got 'Number'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_expr_invalid_4.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {} 1 {} 1
3 | }
4 | // ----
5 | // ParserError 2314: (15-16): Expected '{' but got 'Number'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_expr_invalid_5.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {} mload {} {}
3 | }
4 | // ----
5 | // ParserError 7104: (10-15): Builtin function "mload" must be called.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_loop_condition.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x:bool
3 | for {} x {} {}
4 | }
5 | // ====
6 | // dialect: evmTyped
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_statement.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x:bool
3 | for {let i := 0} x {i := add(i, 1)} {}
4 | }
5 | // ====
6 | // dialect: evmTyped
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_statement_break_nested_body_in_init.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {let x:bool for {} x {} { break }} 1:bool {}
3 | {}
4 | }
5 | // ====
6 | // dialect: evmTyped
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_statement_break_nested_body_in_post.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {} 1:bool {let x:bool for {} x {} { break }}
3 | {}
4 | }
5 | // ====
6 | // dialect: evmTyped
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_visibility_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | for { let i := 1 } i { pop(i) } { pop(i) }
3 | }
4 | // ====
5 | // dialect: evm
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_visibility_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {} i { let i := 1 } {}
3 | }
4 | // ====
5 | // dialect: evm
6 | // ----
7 | // DeclarationError 8198: (10-11): Identifier not found.
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_visibility_7.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {} i {} { let i := 1 }
3 | }
4 | // ====
5 | // dialect: evm
6 | // ----
7 | // DeclarationError 8198: (10-11): Identifier not found.
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_visibility_B.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 1 for { let x := 1 } 1 {} {}
3 | }
4 | // ----
5 | // DeclarationError 1395: (20-30): Variable name x already taken in this scope.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_visibility_C.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 1 for {} 1 { let x := 1 } {}
3 | }
4 | // ----
5 | // DeclarationError 1395: (25-35): Variable name x already taken in this scope.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/for_visibility_D.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 1 for {} 1 {} { let x := 1 }
3 | }
4 | // ----
5 | // DeclarationError 1395: (28-38): Variable name x already taken in this scope.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_def_multiple_args.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f(a, d) { }
3 | function g(a, d) -> x, y { }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_defined_in_init_block_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | for { } 1:bool { function f() {} } {}
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_defined_in_init_block_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | for { } 1:bool {} { function f() {} }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_defined_in_init_nested_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | for {
3 | for {} 1:bool { function f() {} }
4 | {}
5 | } 1:bool {}
6 | {}
7 | }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_definition.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f (a, b , c ) -> y,x,z {
3 | }
4 |
5 | function g() { }
6 | function h(a) -> x { }
7 | }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_definitions.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f() { }
3 | function g(a:u256) -> x:u256 { }
4 | }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_embedded.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f(r, s) -> x {
3 | function g(a) -> b { }
4 | x := g(2)
5 | }
6 | let x := f(2, 3)
7 | }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_literal.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f(a,b) {}
3 | f(x,1)
4 | }
5 | // ----
6 | // DeclarationError 8198: (27-28): Identifier not found.
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_literal_valid.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x
3 | function f(a,b) {}
4 | f(x,1)
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/function_shadowing_outside_vars_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | { let x:u256 }
3 | function f() -> x:u256 {}
4 | }
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functional.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 2 x := add(add(7, mul(6, x)), mul(7, 8))
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functional_assign_complex.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 2 x := add(add(7, mul(6, x)), mul(7, 8))
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functional_assignment.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 2
3 | x := 7
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functional_partial.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := byte
3 | }
4 | // ----
5 | // ParserError 7104: (15-19): Builtin function "byte" must be called.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functional_partial_success.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := byte(1, 2)
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functional_returndatacopy.yul:
--------------------------------------------------------------------------------
1 | {
2 | returndatacopy(0, 32, 64)
3 | }
4 | // ====
5 | // EVMVersion: >=byzantium
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functions_in_parallel_scopes.yul:
--------------------------------------------------------------------------------
1 | {
2 | { function g() {} }
3 | { function g() {} }
4 | }
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/functions_multiple_args.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f(a:u256, d:u256) { }
3 | function g(a:u256, d:u256) -> x:u256, y:u256 { }
4 | }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/hex_assignment.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := hex"0011"
3 | }
4 | // ----
5 | // ParserError 3772: (15-24): Hex literals are not valid in this context.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/hex_expression.yul:
--------------------------------------------------------------------------------
1 | {
2 | pop(hex"2233")
3 | }
4 | // ----
5 | // ParserError 3772: (10-19): Hex literals are not valid in this context.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/if_statement_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | if true:bool {}
3 | }
4 | // ====
5 | // dialect: evmTyped
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/if_statement_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | if false:bool
3 | {
4 | let x:u256 := 3:u256
5 | }
6 | }
7 | // ====
8 | // dialect: evmTyped
9 | // ----
10 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/if_statement_fail_1.yul:
--------------------------------------------------------------------------------
1 | { if let x:u256 {} }
2 | // ====
3 | // dialect: evmTyped
4 | // ----
5 | // ParserError 1856: (5-8): Literal or identifier expected.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/if_statement_invalid_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | if mload {}
3 | }
4 | // ----
5 | // ParserError 7104: (9-14): Builtin function "mload" must be called.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/if_statement_invalid_4.yul:
--------------------------------------------------------------------------------
1 | {
2 | if calldatasize {}
3 | }
4 | // ----
5 | // ParserError 7104: (9-21): Builtin function "calldatasize" must be called.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/if_statement_scope_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 2
3 | if 42 { x := 3 }
4 | }
5 | // ====
6 | // dialect: evm
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/instructions.yul:
--------------------------------------------------------------------------------
1 | { pop }
2 | // ====
3 | // dialect: yul
4 | // ----
5 | // ParserError 6913: (6-7): Call or assignment expected.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/instructions_too_few_args_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | pop(mul())
3 | }
4 | // ----
5 | // TypeError 7000: (7-10): Function expects 2 arguments but got 0.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/instructions_too_few_args_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | pop(mul(1))
3 | }
4 | // ----
5 | // TypeError 7000: (7-10): Function expects 2 arguments but got 1.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/instructions_too_many_args.yul:
--------------------------------------------------------------------------------
1 | {
2 | pop(mul(1, 2, 3))
3 | }
4 | // ----
5 | // TypeError 7000: (7-10): Function expects 2 arguments but got 3.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/invalid/invalid_octal_number.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 0100
3 | }
4 | // ----
5 | // ParserError 1856: (15-16): Literal or identifier expected.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/invalid/jump_disallowed.yul:
--------------------------------------------------------------------------------
1 | {
2 | jump(2)
3 | }
4 | // ----
5 | // DeclarationError 4619: (6-10): Function not found.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/invalid/jumpdest_disallowed.yul:
--------------------------------------------------------------------------------
1 | {
2 | jumpdest()
3 | }
4 | // ----
5 | // DeclarationError 4619: (6-14): Function not found.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/invalid/jumpi_disallowed.yul:
--------------------------------------------------------------------------------
1 | {
2 | jumpi(2, 1)
3 | }
4 | // ----
5 | // DeclarationError 4619: (6-11): Function not found.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/invalid/label_disallowed.yul:
--------------------------------------------------------------------------------
1 | {
2 | label:
3 | }
4 | // ----
5 | // ParserError 6913: (11-12): Call or assignment expected.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/invalid/literals_on_stack_disallowed.yul:
--------------------------------------------------------------------------------
1 | {
2 | 1
3 | }
4 | // ----
5 | // ParserError 6913: (8-9): Call or assignment expected.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/invalid_tuple_assignment.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x, y := 1
3 | }
4 | // ----
5 | // DeclarationError 3812: (3-16): Variable count mismatch: 2 variables and 1 values.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/keywords.yul:
--------------------------------------------------------------------------------
1 | {
2 | return (byte(1, 2), 2)
3 | pop(address()) // this is valid (but unreachable) code
4 | }
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/linkersymbol_evm.yul:
--------------------------------------------------------------------------------
1 | {
2 | let addr := linkersymbol("contract/library.sol:L")
3 | }
4 | // ====
5 | // dialect: evm
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/linkersymbol_evmtyped.yul:
--------------------------------------------------------------------------------
1 | {
2 | let addr:u256 := linkersymbol("contract/library.sol:L")
3 | }
4 | // ====
5 | // dialect: evmTyped
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/loadimmutable.yul:
--------------------------------------------------------------------------------
1 | {
2 | let addr := loadimmutable("address")
3 | }
4 | // ====
5 | // dialect: evm
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literal_1.yul:
--------------------------------------------------------------------------------
1 | { let x:u256 := 1:u256 }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literal_2.yul:
--------------------------------------------------------------------------------
1 | { let x:u256 := .1:u256 }
2 | // ----
3 | // ParserError 4828: (16-18): Invalid number literal.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literal_3.yul:
--------------------------------------------------------------------------------
1 | { let x:u256 := 1e5:u256 }
2 | // ----
3 | // ParserError 4828: (16-19): Invalid number literal.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literal_4.yul:
--------------------------------------------------------------------------------
1 | { let x:u256 := 67.235:u256 }
2 | // ----
3 | // ParserError 4828: (16-22): Invalid number literal.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literals_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 1
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literals_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := .1
3 | }
4 | // ----
5 | // ParserError 4828: (12-14): Invalid number literal.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literals_3.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 1e5
3 | }
4 | // ----
5 | // ParserError 4828: (12-15): Invalid number literal.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/number_literals_4.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 67.235
3 | }
4 | // ----
5 | // ParserError 4828: (12-18): Invalid number literal.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/basic_subobject.yul:
--------------------------------------------------------------------------------
1 | object "A" {
2 | code {}
3 |
4 | object "B" {
5 | code {}
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/code_without_object.yul:
--------------------------------------------------------------------------------
1 | code {
2 | }
3 | // ----
4 | // ParserError 4294: (0-4): Expected keyword "object".
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/data_first.yul:
--------------------------------------------------------------------------------
1 | object "A" {
2 | data "B" ""
3 | code {}
4 | }
5 | // ----
6 | // ParserError 4846: (15-19): Expected keyword "code".
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/empty_code.yul:
--------------------------------------------------------------------------------
1 | object "A" {
2 | code { }
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/empty_data.yul:
--------------------------------------------------------------------------------
1 | object "A" {
2 | data "tmp" ""
3 | }
4 | // ----
5 | // ParserError 4846: (15-19): Expected keyword "code".
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/empty_object.yul:
--------------------------------------------------------------------------------
1 | object "A" {
2 | }
3 | // ----
4 | // ParserError 4846: (13-14): Expected keyword "code".
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/incomplete1.yul:
--------------------------------------------------------------------------------
1 | object {
2 | // ----
3 | // ParserError 2314: (7-8): Expected 'StringLiteral' but got '{'
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/incomplete2.yul:
--------------------------------------------------------------------------------
1 | object "A" {
2 | code {}
3 | }
4 |
5 | object
6 | // ----
7 | // ParserError 2314: (26-32): Expected end of source but got identifier
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/multiple_data.yul:
--------------------------------------------------------------------------------
1 | object "A" {
2 | code { }
3 | data "one" ""
4 | data "two" ""
5 | }
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/objects/object_hex_name.yul:
--------------------------------------------------------------------------------
1 | object hex"11" {
2 | code {}
3 | }
4 | // ----
5 | // ParserError 2314: (7-14): Expected 'StringLiteral' but got 'HexStringLiteral'
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/opcode_for_functions.yul:
--------------------------------------------------------------------------------
1 | {
2 | function gas() {}
3 | }
4 | // ----
5 | // ParserError 5568: (12-15): Cannot use builtin function name "gas" as identifier name.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/optional_types.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 1:u256
3 | let y:u256 := 1
4 | function f(a) {}
5 | function g(a:u256) -> b {}
6 | }
7 | // ====
8 | // dialect: yul
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/period_in_identifier.yul:
--------------------------------------------------------------------------------
1 | { let x.y:u256 := 2:u256 }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/period_in_identifier_spaced_1.yul:
--------------------------------------------------------------------------------
1 | { let x. y:u256 }
2 | // ----
3 | // ParserError 6913: (10-11): Call or assignment expected.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/period_in_identifier_spaced_2.yul:
--------------------------------------------------------------------------------
1 | { let x .y:u256 }
2 | // ----
3 | // ParserError 1856: (8-9): Literal or identifier expected.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/period_in_identifier_spaced_3.yul:
--------------------------------------------------------------------------------
1 | { let x . y:u256 }
2 | // ----
3 | // ParserError 1856: (8-9): Literal or identifier expected.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/period_in_identifier_start.yul:
--------------------------------------------------------------------------------
1 | {
2 | x.y(2:u256)
3 | function x.y(a:u256) {}
4 | }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/period_in_identifier_start_with_comment.yul:
--------------------------------------------------------------------------------
1 | /// comment
2 | { x.y(2:u256) function x.y(a:u256) {} }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/period_not_as_identifier_start.yul:
--------------------------------------------------------------------------------
1 | { let .y:u256 }
2 | // ----
3 | // ParserError 2314: (6-7): Expected identifier but got '.'
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/push.yul:
--------------------------------------------------------------------------------
1 | { 0x42:u256 }
2 | // ----
3 | // ParserError 6913: (12-13): Call or assignment expected.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/selfdestruct.yul:
--------------------------------------------------------------------------------
1 | {
2 | selfdestruct(0x02)
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/setimmutable.yul:
--------------------------------------------------------------------------------
1 | {
2 | setimmutable("address", 0x1234567890123456789012345678901234567890)
3 | }
4 | // ====
5 | // dialect: evm
6 | // ----
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/simple_instructions.yul:
--------------------------------------------------------------------------------
1 | {
2 | let y := mul(0x10, mul(0x20, mload(0x40)))
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/smoke.yul:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/smoke_test.yul:
--------------------------------------------------------------------------------
1 | { { } }
2 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/string_literal_switch_case.yul:
--------------------------------------------------------------------------------
1 | {
2 | switch codesize()
3 | case "1" {}
4 | case "2" {}
5 | }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/surplus_input.yul:
--------------------------------------------------------------------------------
1 | {}
2 | {}
3 | // ----
4 | // ParserError 2314: (3-4): Expected end of source but got '{'
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/switch_case.yul:
--------------------------------------------------------------------------------
1 | {
2 | switch 0:u256
3 | case 42:u256 {}
4 | case 0x42:u256 {}
5 | }
6 | // ====
7 | // dialect: evmTyped
8 | // ----
9 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/switch_case_different_literal.yul:
--------------------------------------------------------------------------------
1 | {
2 | switch 1:u256
3 | case "1":u256 {}
4 | case "2":u256 {}
5 | }
6 | // ====
7 | // dialect: evmTyped
8 | // ----
9 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/switch_statement_1.yul:
--------------------------------------------------------------------------------
1 | { switch 42 default {} }
2 | // ----
3 | // Warning 9592: (2-22): "switch" statement with only a default case.
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/switch_statement_no_access.yul:
--------------------------------------------------------------------------------
1 | {
2 | switch 42
3 | }
4 | // ----
5 | // ParserError 2418: (16-17): Switch statement without any cases.
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/tuple_assignment.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f() -> a:u256, b:u256, c:u256 {}
3 | let x:u256, y:u256, z:u256 := f()
4 | }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/type_check_cases.yul:
--------------------------------------------------------------------------------
1 | {
2 | switch 7:i64
3 | case 0:i64 {}
4 | case 2:i64 {}
5 | }
6 | // ====
7 | // dialect: ewasm
8 | // ----
9 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/type_check_if_condition.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x:i32
3 | if x {}
4 | }
5 | // ====
6 | // dialect: ewasm
7 | // ----
8 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/vardecl.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 7
3 | }
4 | // ====
5 | // dialect: yul
6 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/vardecl_bool.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := true
3 | let y := false
4 | }
5 | // ====
6 | // dialect: evm
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/vardecl_complex.yul:
--------------------------------------------------------------------------------
1 | {
2 | let y := 2
3 | let x := add(add(7, mul(6, y)), mul(7, 8))
4 | }
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/vardecl_empty.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x
3 | }
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/vardecl_multi.yul:
--------------------------------------------------------------------------------
1 | {
2 | function f() -> x, y {}
3 | let x, y := f()
4 | }
5 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/vardecl_name_clashes.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := 1
3 | let x := 2
4 | }
5 | // ----
6 | // DeclarationError 1395: (15-25): Variable name x already taken in this scope.
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/variable_declaration.yul:
--------------------------------------------------------------------------------
1 | { let x:u256 := 7:u256 }
2 | // ====
3 | // dialect: evmTyped
4 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/variable_declaration_bool.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x:bool := true:bool
3 | let y:bool := false:bool
4 | }
5 | // ====
6 | // dialect: evmTyped
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/variable_declaration_empty.yul:
--------------------------------------------------------------------------------
1 | { let x:u256 }
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/variable_use_before_decl_1.yul:
--------------------------------------------------------------------------------
1 | {
2 | x := 2
3 | let x := 3
4 | }
5 | // ----
6 | // DeclarationError 1133: (3-4): Variable x used before it was declared.
7 |
--------------------------------------------------------------------------------
/test/libyul/yulSyntaxTests/variable_use_before_decl_2.yul:
--------------------------------------------------------------------------------
1 | {
2 | let x := mul(2, x)
3 | }
4 |
5 | // ----
6 | // DeclarationError 4990: (19-20): Variable x used before it was declared.
7 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArrayInit.sol.gold:
--------------------------------------------------------------------------------
1 | ArrayInit::[constructor]: OK
2 | ArrayInit::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArrayLocalStoragePushPopLen.sol.gold:
--------------------------------------------------------------------------------
1 | ArrayLocalStoragePushPopLen::[receive]: OK
2 | ArrayLocalStoragePushPopLen::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArraysCopying.sol.gold:
--------------------------------------------------------------------------------
1 | ArraysCopying::[receive]: OK
2 | ArraysCopying::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArraysMem.sol.gold:
--------------------------------------------------------------------------------
1 | ArraysMem::returnArray: OK
2 | ArraysMem::[receive]: OK
3 | ArraysMem::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArraysMemAliasing.sol.gold:
--------------------------------------------------------------------------------
1 | ArraysMemAliasing::[receive]: OK
2 | ArraysMemAliasing::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArraysMemDynamic.sol.gold:
--------------------------------------------------------------------------------
1 | ArraysMemDynamic::f: OK
2 | ArraysMemDynamic::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArraysPopDangling.sol.gold:
--------------------------------------------------------------------------------
1 | ArraysPopDangling::[receive]: OK
2 | ArraysPopDangling::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/ArraysStorage.sol.gold:
--------------------------------------------------------------------------------
1 | ArraysStorage::[receive]: OK
2 | ArraysStorage::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/CallDataArray.sol.gold:
--------------------------------------------------------------------------------
1 | CallData::calldata_to_memory: OK
2 | CallData::calldata_to_storage: OK
3 | CallData::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/DeleteStorageArray.sol.gold:
--------------------------------------------------------------------------------
1 | DeleteStorageArray::[constructor]: OK
2 | DeleteStorageArray::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/MappingInArray.sol.gold:
--------------------------------------------------------------------------------
1 | MappingInArray::[constructor]: OK
2 | MappingInArray::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/MappingInit.sol.gold:
--------------------------------------------------------------------------------
1 | MappingInit::[constructor]: OK
2 | MappingInit::[receive]: OK
3 | MappingInit::[receive_ether_selfdestruct]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/MappingLayout.sol.gold:
--------------------------------------------------------------------------------
1 | MappingLayout::[receive]: OK
2 | MappingLayout::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/MappingLocalStorage.sol.gold:
--------------------------------------------------------------------------------
1 | MappingLocalStorage::[receive]: OK
2 | MappingLocalStorage::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/PushBeforeLocal.sol.gold:
--------------------------------------------------------------------------------
1 | PushBeforeLocal::[constructor]: OK
2 | PushBeforeLocal::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/arrays/StringEq.sol.gold:
--------------------------------------------------------------------------------
1 | StringEq::add: OK
2 | StringEq::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/azure/BasicProvenance.sol.gold:
--------------------------------------------------------------------------------
1 | BasicProvenance::[constructor]: OK
2 | BasicProvenance::TransferResponsibility: OK
3 | BasicProvenance::Complete: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/azure/HelloBlockchain.sol.gold:
--------------------------------------------------------------------------------
1 | HelloBlockchain::[constructor]: OK
2 | HelloBlockchain::SendRequest: OK
3 | HelloBlockchain::SendResponse: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/AddressCompare.sol.gold:
--------------------------------------------------------------------------------
1 | A::add: OK
2 | A::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Arithmetic.sol.gold:
--------------------------------------------------------------------------------
1 | Arithmetic::[receive]: OK
2 | Arithmetic::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Assignments.sol.gold:
--------------------------------------------------------------------------------
1 | Assignments::[receive]: OK
2 | Assignments::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Casts.sol.gold:
--------------------------------------------------------------------------------
1 | Casts::[receive]: OK
2 | Casts::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Constants.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::[implicit_constructor]: OK
3 | B::g: OK
4 | B::[implicit_constructor]: OK
5 | No errors found.
6 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Constructor.sol.gold:
--------------------------------------------------------------------------------
1 | Constr::[constructor]: OK
2 | Constr::doSomething: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Continue.sol.gold:
--------------------------------------------------------------------------------
1 | Continue::whileloop: OK
2 | Continue::forloop: OK
3 | Continue::nested: OK
4 | Continue::[implicit_constructor]: OK
5 | No errors found.
6 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/DeleteValType.sol.gold:
--------------------------------------------------------------------------------
1 | DeleteValType::[constructor]: OK
2 | DeleteValType::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ECRecover.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ECRecover.sol.gold:
--------------------------------------------------------------------------------
1 | ECRecover::verifyTwice: OK
2 | ECRecover::[receive]: OK
3 | ECRecover::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/EnumInFile.sol.gold:
--------------------------------------------------------------------------------
1 | C::f: OK
2 | C::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/EnumsBv.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/EnumsTcc.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/EnumsTcc.sol.gold:
--------------------------------------------------------------------------------
1 | Enums::f: OK
2 | Enums::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/EvalOrder.sol.gold:
--------------------------------------------------------------------------------
1 | EvalOrder::[constructor]: OK
2 | EvalOrder::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ExplicitScopings.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::g: OK
3 | A::[implicit_constructor]: OK
4 | B::g: OK
5 | B::h: OK
6 | B::[implicit_constructor]: OK
7 | No errors found.
8 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Exponentiation.sol.gold:
--------------------------------------------------------------------------------
1 | SomeContract::someFunc: OK
2 | SomeContract::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/IfElse.sol.gold:
--------------------------------------------------------------------------------
1 | IfElse::[receive]: OK
2 | IfElse::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Import1.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Import2.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::[implicit_constructor]: OK
3 | B::g: OK
4 | B::[implicit_constructor]: OK
5 | No errors found.
6 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/IntLiterals.sol.gold:
--------------------------------------------------------------------------------
1 | IntLiterals::[receive]: OK
2 | IntLiterals::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/IntegerExp.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/IntegerExp.sol.gold:
--------------------------------------------------------------------------------
1 | IntegerExp::[receive]: OK
2 | IntegerExp::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Keccak256.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Keccak256.sol.gold:
--------------------------------------------------------------------------------
1 | Keccak256::hashTwice: OK
2 | Keccak256::[receive]: OK
3 | Keccak256::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Library.sol.gold:
--------------------------------------------------------------------------------
1 | Library::[receive]: OK
2 | Library::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/LocalVars.sol.gold:
--------------------------------------------------------------------------------
1 | LocalVars::doSomething: OK
2 | LocalVars::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Loops.sol.gold:
--------------------------------------------------------------------------------
1 | Loops::[receive]: OK
2 | Loops::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/MappingKeyIsMemory.sol.gold:
--------------------------------------------------------------------------------
1 | MappingKeyIsMemory::[receive]: OK
2 | MappingKeyIsMemory::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ModArith.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ModArith.sol.gold:
--------------------------------------------------------------------------------
1 | ModArith::[receive]: OK
2 | ModArith::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ModTccs.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ModTccs.sol.gold:
--------------------------------------------------------------------------------
1 | ModTccs::f: OK
2 | ModTccs::g: OK
3 | ModTccs::h: OK
4 | ModTccs::[implicit_constructor]: OK
5 | No errors found.
6 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/ModifiersDuplicate.sol.gold:
--------------------------------------------------------------------------------
1 | ModifiersDuplicate::test: OK
2 | ModifiersDuplicate::[receive]: OK
3 | ModifiersDuplicate::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/RIPMD160.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/RIPMD160.sol.gold:
--------------------------------------------------------------------------------
1 | RIPMD160::hashTwice: OK
2 | RIPMD160::[receive]: OK
3 | RIPMD160::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/SHA256.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/SHA256.sol.gold:
--------------------------------------------------------------------------------
1 | SHA256::hashTwice: OK
2 | SHA256::[receive]: OK
3 | SHA256::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/StringLiterals.sol.gold:
--------------------------------------------------------------------------------
1 | StringLiterals::[constructor]: OK
2 | StringLiterals::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Swap.sol.gold:
--------------------------------------------------------------------------------
1 | Swap::[receive]: OK
2 | Swap::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Tuples.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/basic/Units.sol.gold:
--------------------------------------------------------------------------------
1 | Units::[receive]: OK
2 | Units::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/BitPrecise.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/BitPreciseArith.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/BitPreciseArith.sol.gold:
--------------------------------------------------------------------------------
1 | BitPreciseArith::[receive]: OK
2 | BitPreciseArith::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/BitPreciseCast.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/BitPreciseCast.sol.gold:
--------------------------------------------------------------------------------
1 | BitPreciseCast::[receive]: OK
2 | BitPreciseCast::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/BitPreciseExt.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/BitPreciseExt.sol.gold:
--------------------------------------------------------------------------------
1 | BitPreciseExt::[receive]: OK
2 | BitPreciseExt::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/bitvector/DefaultBvMapping.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/examples/BTXToken.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/examples/BecTokenSimplifiedCorrect.sol.flags:
--------------------------------------------------------------------------------
1 | --solver z3 --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/examples/BecTokenSimplifiedOverflow.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/examples/BinarySearch.sol.gold:
--------------------------------------------------------------------------------
1 | BinarySearch::find: OK
2 | BinarySearch::[implicit_constructor]: OK
3 | BinarySearch::[receive_ether_selfdestruct]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/examples/Events.sol.gold:
--------------------------------------------------------------------------------
1 | Registry::add: OK
2 | Registry::update: OK
3 | Registry::add_or_update: OK
4 | Registry::[implicit_constructor]: OK
5 | No errors found.
6 |
--------------------------------------------------------------------------------
/test/solc-verify/examples/NGToken.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/examples/RefundEscrow.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
--------------------------------------------------------------------------------
/test/solc-verify/examples/SmartMeshToken.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/inheritance/InheritanceBaseConstructorArgs.sol.gold:
--------------------------------------------------------------------------------
1 | C::[constructor]: OK
2 | D::[constructor]: OK
3 | E::[constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/inheritance/InheritanceInitializers.sol.gold:
--------------------------------------------------------------------------------
1 | A::[implicit_constructor]: OK
2 | B::[constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue003.sol.gold:
--------------------------------------------------------------------------------
1 | I003_A::[implicit_constructor]: OK
2 | Issue003::[constructor]: OK
3 | Issue003::[receive]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue009.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: GPL-3.0
2 | pragma solidity >=0.7.0;
3 |
4 | contract C {}
5 |
6 | contract Issue009 {
7 | C m = new C();
8 | }
9 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue009.sol.gold:
--------------------------------------------------------------------------------
1 | C::[implicit_constructor]: OK
2 | Issue009::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue015.sol.gold:
--------------------------------------------------------------------------------
1 | L::[implicit_constructor]: OK
2 | C::f: OK
3 | C::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue020.sol.gold:
--------------------------------------------------------------------------------
1 | Issue020::[receive]: OK
2 | Issue020::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue021.sol.gold:
--------------------------------------------------------------------------------
1 | Issue021::f: OK
2 | Issue021::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue025.sol.gold:
--------------------------------------------------------------------------------
1 | Issue025::[receive]: OK
2 | Issue025::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue036.sol.gold:
--------------------------------------------------------------------------------
1 | C::f: OK
2 | C::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue049.sol.gold:
--------------------------------------------------------------------------------
1 | Test::[implicit_constructor]: OK
2 | No errors found.
3 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue051.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue051.sol.gold:
--------------------------------------------------------------------------------
1 | Test::f: OK
2 | Test::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue054.sol.gold:
--------------------------------------------------------------------------------
1 | C::[implicit_constructor]: OK
2 | No errors found.
3 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue065.sol.gold:
--------------------------------------------------------------------------------
1 | Issue065::value: OK
2 | Issue065::[receive]: OK
3 | Issue065::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue066.sol.gold:
--------------------------------------------------------------------------------
1 | Issue066::f: OK
2 | Issue066::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue069.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue069.sol.gold:
--------------------------------------------------------------------------------
1 | Base::[constructor]: OK
2 | Base::f: OK
3 | Derived::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue076.sol.gold:
--------------------------------------------------------------------------------
1 | Issue076::[receive]: OK
2 | Issue076::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue083.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue083.sol.gold:
--------------------------------------------------------------------------------
1 | Issue083::f: OK
2 | Issue083::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue084.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue084.sol.gold:
--------------------------------------------------------------------------------
1 | Issue084::[receive]: OK
2 | Issue084::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue085.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue087.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue088.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue089.sol.gold:
--------------------------------------------------------------------------------
1 | Issue089::sign: OK
2 | Issue089::sign2: OK
3 | Issue089::f: OK
4 | Issue089::[implicit_constructor]: OK
5 | No errors found.
6 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue091.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic bv
2 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue091.sol.gold:
--------------------------------------------------------------------------------
1 | Issue091::[receive]: OK
2 | Issue091::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue092.sol.gold:
--------------------------------------------------------------------------------
1 | Issue092::f: OK
2 | Issue092::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue097.sol.gold:
--------------------------------------------------------------------------------
1 | Issue097::[constructor]: OK
2 | Issue097::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue101.sol.gold:
--------------------------------------------------------------------------------
1 | C::test: OK
2 | C::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue102.sol.gold:
--------------------------------------------------------------------------------
1 | Issue102::[receive]: OK
2 | Issue102::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue106.sol.gold:
--------------------------------------------------------------------------------
1 | Test::test: OK
2 | Test::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue107.sol.gold:
--------------------------------------------------------------------------------
1 | Test::test: OK
2 | Test::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue111.sol.gold:
--------------------------------------------------------------------------------
1 | A::test: OK
2 | A::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue112.sol.gold:
--------------------------------------------------------------------------------
1 | test2::[implicit_constructor]: OK
2 | test::f: OK
3 | test::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue117.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue117.sol.gold:
--------------------------------------------------------------------------------
1 | C::f: OK
2 | C::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue127.sol.gold:
--------------------------------------------------------------------------------
1 | A::[constructor]: OK
2 | B::[constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue128.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue129.sol.gold:
--------------------------------------------------------------------------------
1 | A::[implicit_constructor]: OK
2 | B::f: OK
3 | B::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue131.sol.gold:
--------------------------------------------------------------------------------
1 | A::f: OK
2 | A::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue134.sol.gold:
--------------------------------------------------------------------------------
1 | A::[constructor]: OK
2 | No errors found.
3 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue147.sol.gold:
--------------------------------------------------------------------------------
1 | Thing::[implicit_constructor]: OK
2 | otherThing::f: OK
3 | otherThing::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue150.sol.gold:
--------------------------------------------------------------------------------
1 | A::[implicit_constructor]: OK
2 | C::f: OK
3 | C::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/issues/Issue151.sol.gold:
--------------------------------------------------------------------------------
1 | test::fun: OK
2 | test::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/overflow/ArrayPush.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/overflow/ArrayPush.sol.gold:
--------------------------------------------------------------------------------
1 | ArrayPush::add: OK
2 | ArrayPush::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/overflow/OverflowBalance.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/overflow/OverflowSideEffect.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/overflow/OverflowSideEffect.sol.gold:
--------------------------------------------------------------------------------
1 | OverflowSideEffeect::f: OK
2 | OverflowSideEffeect::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/overflow/OverflowSimple.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/overflow/OverflowSpec.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod-overflow
2 |
--------------------------------------------------------------------------------
/test/solc-verify/specs/ArrayProperties.sol.flags:
--------------------------------------------------------------------------------
1 | --solver cvc4
2 |
--------------------------------------------------------------------------------
/test/solc-verify/specs/EventDataSpecsBefore.sol.gold:
--------------------------------------------------------------------------------
1 | Token::transfer: OK
2 | Token::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/specs/GetterArgsInSpec.sol.gold:
--------------------------------------------------------------------------------
1 | A::setm1: OK
2 | A::setm2: OK
3 | A::seta: OK
4 | A::setma: OK
5 | A::[implicit_constructor]: OK
6 | No errors found.
7 |
--------------------------------------------------------------------------------
/test/solc-verify/specs/NoEmitsSpecs.sol.gold:
--------------------------------------------------------------------------------
1 | NoEmitsSpecs::increase: OK
2 | NoEmitsSpecs::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/specs/Scoping.sol.gold:
--------------------------------------------------------------------------------
1 | C::f: OK
2 | C::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/specs/SimpleMultiBankCorrect.sol.flags:
--------------------------------------------------------------------------------
1 | --arithmetic mod
2 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/CallDataStruct.sol.gold:
--------------------------------------------------------------------------------
1 | CallData::calldata_to_storage: OK
2 | CallData::calldata_to_memory: OK
3 | CallData::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/DeleteStorageStruct.sol.gold:
--------------------------------------------------------------------------------
1 | DeleteStorageStruct::[constructor]: OK
2 | DeleteStorageStruct::[receive]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/LocalStorageLibOnly.sol.gold:
--------------------------------------------------------------------------------
1 | L::square: OK
2 | L::swap_if_different: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/LocalStorageLibrary.sol.gold:
--------------------------------------------------------------------------------
1 | L::mul: OK
2 | LocalStorageLibrary::f: OK
3 | LocalStorageLibrary::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/LocalStorageRepack.sol.gold:
--------------------------------------------------------------------------------
1 | LocalStorageRepack::[receive]: OK
2 | LocalStorageRepack::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/NamedArgs.sol.gold:
--------------------------------------------------------------------------------
1 | NamedArgs::[receive]: OK
2 | NamedArgs::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/StructInFile.sol.gold:
--------------------------------------------------------------------------------
1 | C::set_x: OK
2 | C::set_y: OK
3 | C::set_z: OK
4 | C::[implicit_constructor]: OK
5 | No errors found.
6 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/StructsArrays.sol.gold:
--------------------------------------------------------------------------------
1 | StructsArrays::[receive]: OK
2 | StructsArrays::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/StructsLocalStorageFunc.sol.gold:
--------------------------------------------------------------------------------
1 | StructsLocalStorageFunc::[receive]: OK
2 | StructsLocalStorageFunc::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/StructsMem.sol.gold:
--------------------------------------------------------------------------------
1 | StructsMem::[receive]: OK
2 | StructsMem::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/StructsMemAliasing.sol.gold:
--------------------------------------------------------------------------------
1 | StructsMemAliasing::[receive]: OK
2 | StructsMemAliasing::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/StructsNestedAccess.sol.gold:
--------------------------------------------------------------------------------
1 | StructsNestedAccess::[receive]: OK
2 | StructsNestedAccess::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/structs/StructsStorage.sol.gold:
--------------------------------------------------------------------------------
1 | StructsStorage::[receive]: OK
2 | StructsStorage::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/transactions/AddressConv.sol.gold:
--------------------------------------------------------------------------------
1 | C::f: OK
2 | C::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/transactions/InternalMsgValue.sol.gold:
--------------------------------------------------------------------------------
1 | InternalMsgValue::f: OK
2 | InternalMsgValue::[receive]: OK
3 | InternalMsgValue::[implicit_constructor]: OK
4 | No errors found.
5 |
--------------------------------------------------------------------------------
/test/solc-verify/transactions/SpecialMembers.sol.gold:
--------------------------------------------------------------------------------
1 | SpecialMembers::[receive]: OK
2 | SpecialMembers::[implicit_constructor]: OK
3 | No errors found.
4 |
--------------------------------------------------------------------------------
/test/solc-verify/truffle-config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | compilers: {
3 | solc: {
4 | version: "native"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/tools/ossfuzz/config/solc_noopt_ossfuzz.options:
--------------------------------------------------------------------------------
1 | [libfuzzer]
2 | dict = solidity.dict
3 |
--------------------------------------------------------------------------------
/test/tools/ossfuzz/config/solc_opt_ossfuzz.options:
--------------------------------------------------------------------------------
1 | [libfuzzer]
2 | dict = solidity.dict
3 |
--------------------------------------------------------------------------------
/test/tools/ossfuzz/config/strictasm_assembly_ossfuzz.options:
--------------------------------------------------------------------------------
1 | [libfuzzer]
2 | dict = strict_assembly.dict
3 |
--------------------------------------------------------------------------------
/test/tools/ossfuzz/config/strictasm_opt_ossfuzz.options:
--------------------------------------------------------------------------------
1 | [libfuzzer]
2 | dict = strict_assembly.dict
3 |
--------------------------------------------------------------------------------