aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface/CompilerStack.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Restrict toHex to `bytes`.chriseth2018-12-061-1/+1
|
* Merge pull request #5537 from ethereum/cp-SourceLocation-related-refactoringchriseth2018-12-011-6/+6
|\ | | | | [1/3] SourceLocation related refactoring.
| * liblangutil: Scanner: remove superfluous sourceName field (it's in ↵Christian Parpart2018-12-011-2/+2
| | | | | | | | | | | | | | CharStream already) Also, ParserBase::sourceName() was dead code. Eliminating it should increase test coverage (how sneaky) :-)
| * liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream ↵Christian Parpart2018-12-011-4/+4
| | | | | | | | | | | | source, eliminating sourceName Also, adapted affecting code to those changes.
| * liblangutil: extends CharStream to know about the respective (file-)name ↵Christian Parpart2018-11-291-2/+2
| | | | | | | | (and adapt codebase to it)
* | Add skeleton for contract level checker.chriseth2018-11-301-2/+16
|/
* Merge pull request #5491 from ethereum/libyul-as-librarychriseth2018-11-241-3/+4
|\ | | | | Libyul as static library (version 3 ;( )
| * Reorder some include files and group <libyul/>'s together (as much as possible)Christian Parpart2018-11-231-3/+4
| |
* | Inject SMTLIB2 queries and responses via standard-json-io.chriseth2018-11-231-1/+4
|/
* Introduce namespace `langutil` in liblangutil directory.Christian Parpart2018-11-221-0/+1
| | | | | | | Also: - Use {}-style list initialisation for SourceLocation construction - Introduce new system includes - Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
* Isolating files shared between Yul- and Solidity language frontend.Christian Parpart2018-11-221-1/+1
|
* Add CompilerStack state assertions in internal methodsAlex Beregszaszi2018-11-141-6/+12
|
* Move lastContractName closer to contractNamesAlex Beregszaszi2018-11-141-13/+13
|
* Do not crash on filesystemFriendlyName if no contracts were compiledAlex Beregszaszi2018-11-141-0/+3
|
* Add Scanner function that prints source based on SourceLocationLeonardo Alt2018-11-131-1/+1
|
* Deterministic YulStringRepository using string hashes.Daniel Kirchner2018-11-131-1/+0
|
* Reset yul string repository.chriseth2018-11-091-0/+3
|
* Change find to use a single characterAlex Beregszaszi2018-10-101-1/+1
|
* Use GasEstimator::dataGas in CompilerStackAlex Beregszaszi2018-09-281-2/+1
|
* fix some format typosliangdzou2018-09-171-1/+1
|
* Disallow remappings with empty prefix.Daniel Kirchner2018-08-111-14/+23
|
* Merge pull request #4753 from mattaereal/boost-to-string-patchAlex Beregszaszi2018-08-081-3/+3
|\ | | | | Replace boost:lexical_cast<std::string> for std::to_string.
| * Removing std:: from std::to_string and include for boost/lexical_castMatías Aereal Aeón2018-08-081-3/+3
| |
* | Merge pull request #4692 from ethereum/devcore-pathchriseth2018-08-071-21/+4
|\ \ | | | | | | Move absolutePath/sanitizePath helpers from CompilerStack to libdevcore
| * | Move absolutePath/sanitizePath helpers from CompilerStack to libdevcoreAlex Beregszaszi2018-08-061-21/+4
| |/
* / Remove clone feature.chriseth2018-08-071-23/+0
|/
* Properly explain all the analsys steps in CompilerStackAlex Beregszaszi2018-07-311-1/+13
|
* Pull out createCBORMetadata helperAlex Beregszaszi2018-06-261-21/+29
|
* Properly catch optimizer/assembly exception in CompilerStackAlex Beregszaszi2018-06-211-9/+10
|
* CompilerStack absolutePath/sanitizePath can be made staticAlex Beregszaszi2018-06-201-1/+1
|
* Reorder some of the flow in CompilerStack::compileContract for readabilityAlex Beregszaszi2018-06-201-3/+9
|
* Add control flow analyzer and test for uninitialized storage returns.Daniel Kirchner2018-05-151-0/+9
|
* Add control flow graph.Daniel Kirchner2018-05-151-0/+9
|
* reindentAlex Beregszaszi2018-04-061-70/+69
|
* Catch FatalError in CompilerStack::analysis to cover all the analysis testsAlex Beregszaszi2018-04-061-0/+10
|
* Use EVM version in gas meter and optimizer.chriseth2018-03-051-4/+5
|
* Use EVM version in type checker.chriseth2018-03-021-1/+1
|
* Provide target EVM version in CompilerContext.chriseth2018-03-021-2/+2
|
* Store EVM version in settings.chriseth2018-03-021-0/+1
|
* Add ability to set the target EVM version.chriseth2018-03-021-0/+7
|
* Prevent libraries from being called.chriseth2018-01-191-3/+6
|
* Simplify contract lookup in CompileStackAlex Beregszaszi2017-10-191-5/+10
|
* Implement CompilerStack.lastContractName()Alex Beregszaszi2017-10-191-10/+16
|
* Provide optional list of contract names to CompilerStack.compileAlex Beregszaszi2017-10-051-1/+10
|
* Merge pull request #2848 from ethereum/checkViewPurechriseth2017-09-141-0/+11
|\ | | | | Enforce view and pure.
| * View-pure checker.chriseth2017-09-061-0/+11
| |
* | Introduce assemblyStringAlex Beregszaszi2017-09-111-5/+4
| |
* | Do not return the stream in asssemblyStreamAlex Beregszaszi2017-09-111-3/+2
| |
* | Split out the JSON functionality from assembly.stream()Alex Beregszaszi2017-09-111-3/+13
|/
* Removed unused natspec members of ContractDefinitionAlex Beregszaszi2017-08-261-3/+0
|
* Do not create a new TypeChecker instance for every contractAlex Beregszaszi2017-08-251-3/+1
|
* Attach natspec before type checkingAlex Beregszaszi2017-08-251-6/+4
|
* Remove duplicate work from CompilerStack.analyze()Alex Beregszaszi2017-08-251-10/+0
|
* Rename read file callback.chriseth2017-08-231-4/+4
|
* Cleanup.chriseth2017-08-231-1/+1
|
* z3 conditionschriseth2017-08-231-0/+8
|
* Merge pull request #2771 from ethereum/unused-includesAlex Beregszaszi2017-08-211-2/+0
|\ | | | | Remove some unused includes
| * Remove some unused includesAlex Beregszaszi2017-08-211-2/+0
| |
* | Remove DocumentationType from natspecAlex Beregszaszi2017-08-161-25/+28
|/
* Output experimental flag in metadata only for risky featuresAlex Beregszaszi2017-08-111-9/+27
|
* Store experimental flag in metadata CBORAlex Beregszaszi2017-08-111-0/+6
|
* Replace isFullyImplemented with unimplementedFunctions in ASTAnnotationsAlex Beregszaszi2017-08-041-1/+1
|
* Add isFallback() helperAlex Beregszaszi2017-07-281-1/+3
|
* Merge pull request #2645 from ethereum/assertsAlex Beregszaszi2017-07-271-5/+5
|\ | | | | Use solAssert where possible
| * Use solAssert instead of boost throw where possibleAlex Beregszaszi2017-07-271-5/+5
| |
* | Merge pull request #2643 from ethereum/compilerstackYoichi Hirai2017-07-271-10/+10
|\ \ | | | | | | Reorder CompilerStack to be in logical order
| * | Reorder CompilerStack to be in logical orderAlex Beregszaszi2017-07-271-10/+10
| |/
* | Merge pull request #2566 from ethereum/metadata-only-relevantchriseth2017-07-271-0/+9
|\ \ | |/ |/| Metadata: only include relevant files in the source list
| * Only include files usde in metadataAlex Beregszaszi2017-07-191-0/+9
| |
* | Add CompilerStack::setOptimiserSettingsAlex Beregszaszi2017-07-261-4/+1
| |
* | Add CompilerStack::setLibrariesAlex Beregszaszi2017-07-261-3/+2
| |
* | Remove unused interfaces from CompilerStackAlex Beregszaszi2017-07-261-23/+0
|/
* Merge pull request #2589 from ethereum/rename-onchainmetadataYoichi Hirai2017-07-191-7/+7
|\ | | | | Rename onChainMetadata to metadata
| * Rename onChainMetadata to metadataAlex Beregszaszi2017-07-191-7/+7
| |
* | Remove unneccesary interface from NatspecAlex Beregszaszi2017-07-191-4/+6
|/
* Remove Why3 generatorAlex Beregszaszi2017-06-251-15/+0
|
* Rework functionHashes into methodIdentifiersAlex Beregszaszi2017-06-221-5/+5
|
* Reverted functionHashes output to use method signature as keysEdward Ruchevits2017-06-141-1/+1
|
* Allow including hashes of method signatures in --combined-json outputEdward Ruchevits2017-06-141-0/+8
|
* Fix state after CompilerStack.reset()Alex Beregszaszi2017-06-011-1/+19
|
* Remove unused functions from CompilerStackAlex Beregszaszi2017-06-011-35/+0
|
* Refactor error reportingRhett Aultman2017-05-301-28/+20
| | | | | | | | | This commit introduces ErrorReporter, a utility class which consolidates all of the error logging functionality into a common set of functions. It also replaces all direct interactions with an ErrorList with calls to an ErrorReporter. This commit resolves issue #2209
* Also change error message.chriseth2017-05-261-1/+1
|
* Scanner requires only the SourcesSet stateAlex Beregszaszi2017-05-251-1/+1
|
* Rename CompilerStack.metadata to CompilerStack.natspecAlex Beregszaszi2017-05-191-5/+5
|
* Rename InterfaceHandler to NatspecAlex Beregszaszi2017-05-191-4/+4
|
* Split ABI out of InterfaceHandlerAlex Beregszaszi2017-05-191-5/+12
|
* Use CompilerStack.contractABI directlyAlex Beregszaszi2017-05-191-1/+6
|
* Rename CompilerStack.interface to CompilerStack.contractABIAlex Beregszaszi2017-05-191-1/+1
|
* Ensure proper checks are in CompilerStackAlex Beregszaszi2017-05-111-4/+10
|
* Do not crash on AST if parsing failedAlex Beregszaszi2017-05-111-0/+3
|
* conditional reset of compilerState-Enumdjuju2017-04-291-1/+4
|
* Merge pull request #2171 from ethereum/splitParseAndAnalyzechriseth2017-04-281-16/+45
|\ | | | | refactoring parse() into two separate functions
| * error fixeddjuju2017-04-281-8/+7
| |
| * enumchecks not workingdjuju2017-04-281-14/+28
| |
| * documentation, checks and renamingdjuju2017-04-271-12/+11
| |
| * refactoring parse() into two separate functionsdjuju2017-04-271-7/+24
| |
* | Make assembler errors fatalAlex Beregszaszi2017-04-271-12/+4
| |
* | Catch assembler exceptions and throw readable Solidity exceptionsAlex Beregszaszi2017-04-271-2/+35
|/
* Fix source index allocation in CompilerStack. Depending on ↵Alex Beregszaszi2017-04-211-1/+2
| | | | compiler(optimisations) this could be off-by-one.
* Keep gas values as a string in CompilerStack::gasEstimateAlex Beregszaszi2017-04-131-3/+3
|
* Exclude fallback function from the internal functions in estimateGasAlex Beregszaszi2017-04-131-1/+2
|
* Move gasEstimate into CompilerStackAlex Beregszaszi2017-04-131-0/+85
|
* Pull out ReadFile from CompilerStackAlex Beregszaszi2017-04-101-2/+2
|
* Rename ErrorMesage to ErrorMessageAlex Beregszaszi2017-03-171-2/+2
|
* Merge pull request #1747 from ethereum/fixICEInternalConstructorYoichi Hirai2017-03-091-1/+1
|\ | | | | Move privateness of constructor into AST itself.
| * Move public constructor property into AST itself.chriseth2017-03-061-1/+1
| |
* | Check for circular references in constant variables.chriseth2017-03-061-0/+9
|/
* Extract scopes into compiler stack.chriseth2017-02-141-1/+2
|
* Add option to store literal sources in metadataAlex Beregszaszi2017-01-261-4/+9
|
* Check if constructor is public or not.chriseth2017-01-211-1/+5
|
* Reset AST node IDs between compilation runs.chriseth2017-01-201-0/+1
|
* Merge pull request #1397 from roadriverrail/contract_collisionchriseth2017-01-181-39/+57
|\ | | | | Error out when contracts collide on name
| * Provide fall-back method for contract lookupRhett Aultman2017-01-171-1/+18
| | | | | | | | | | | | | | | | Properly, contracts are now looked up via <source>:<contract> identifiers called "fully qualified names." As a modicum of backward-compatibility, failure on a lookup is now backed up by seeing if the ":" exists at all, and if it doesn't, then the known contracts are scanned for any matching contract name.
| * Remove checkLibraryNameClashes()Rhett Aultman2017-01-171-34/+0
| | | | | | | | | | | | | | | | The library name clash checker throws errors when two libraries of the same name are spotted. In a previous commit, this function was rewritten to use fully-qualified names instead, which makes it redundant to the checker for multiply-declared identifiers. Since it no longer serves a clear purpose, the function is being dropped.
| * Remove unique error for contract collisionRhett Aultman2017-01-171-39/+10
| | | | | | | | | | | | Because contracts are uniquely identified by their source unit, there is no need for a unique error for this; it's actually covered by the checker for double-declaration of identifiers.
| * Stylistic correctionsRhett Aultman2017-01-171-8/+4
| |
| * Push the error instead of throwing itRhett Aultman2017-01-171-10/+34
| | | | | | | | | | | | | | Throwing a CompilerError on multiple contract definition violates the expectations of the test suite, which thinks that compile() will return false if the code can't compile. This brings contract collision reporting in line with most of the other errors.
| * Only avoid collision if it's the same fileRhett Aultman2017-01-171-12/+36
| | | | | | | | | | | | | | | | | | @chriseth had suggested that it would be better if contracts were referenced in a file:contract notation, and that we output .bin files that prepend original path names if necessary to avoid a collision. This commit is mostly a draft; it still needs to be run through the test suite.
| * Tab whitespace cleanup (again)Rhett Aultman2017-01-171-1/+2
| |
| * Tidy up the error messageRhett Aultman2017-01-171-3/+3
| |
| * Fix tab, drop stupid '!!!', change error message.Rhett Aultman2017-01-171-3/+3
| |
| * Error out when contracts collide on nameRhett Aultman2017-01-171-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous behaviour, courtesy of the [] operator in std::map, would uncritically store a new ContractDefinition in m_contracts even when a ContractDefinition already existed. This "resolved" collissions on contract names by clobbering the original one with the new one, and could lead to scenarios where the clobber would only be discovered when the original ContractDefinition could not be found or referred to, which was an unhelpful InternalCompilerError. This change checks the m_contracts map for a collision first and will not let the ContractDefinition be changed to a new one once it's set, throwing a CompilerError with information about the conflict.
* | Store strict version number in metadata (exclude the platform)Alex Beregszaszi2017-01-171-1/+1
|/
* fixedVoR02202017-01-121-2/+2
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* added fix and a test for order independence of nested prefixingVoR02202017-01-121-2/+2
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* cleanupVoR02202017-01-121-12/+12
| | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> fixup Signed-off-by: VoR0220 <rj@erisindustries.com>
* fixed unused filepath bugVoR02202017-01-111-2/+1
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* much smaller helper functionVoR02202017-01-101-4/+2
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* can do this purely on length. Also made prefix filesystem string for more ↵VoR02202017-01-091-27/+16
| | | | | | accurate readings. Signed-off-by: VoR0220 <rj@erisindustries.com>
* fixed test and added solutionVoR02202017-01-091-3/+26
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* interface: change absolutePath() so that ".dir" is considered as an absolute ↵Yoichi Hirai2017-01-041-3/+3
| | | | | | path fixes #1534
* Use multiple URLs for metadata.chriseth2016-12-131-2/+4
|
* Merge pull request #1491 from ameten/refactoringchriseth2016-12-131-1/+1
|\ | | | | Just refactored some code
| * - fixed a misprint.Danil Nemirovsky2016-12-091-1/+1
| |
* | Warn about using msg.value in non-payable functionFederico Bond2016-12-091-0/+10
|/
* Add the `_runs` parameter.chriseth2016-12-011-2/+2
|
* Use CBOR encoding.chriseth2016-12-011-1/+8
|
* Add swarm hash to the end of the bytecode.chriseth2016-12-011-0/+1
|
* Make sure some keys are present.chriseth2016-12-011-0/+3
|
* Incorporate comments.chriseth2016-12-011-10/+10
|
* Metadata stamp.chriseth2016-12-011-18/+80
|
* Fix licensing headersVoR02202016-11-231-4/+4
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Change encoding to address-funid and add "function" as ABI type.chriseth2016-11-161-1/+1
|
* Stored combined creation and runtime tags.chriseth2016-11-161-3/+14
| | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought.
* Move InterfaceHandler from string to JSONAlex Beregszaszi2016-11-151-4/+4
|
* Suggest correct version for pragma and complain about pre-release version.chriseth2016-10-251-3/+15
|
* Rename dev::sha3 to dev::keccak256Alex Beregszaszi2016-10-061-1/+1
|
* fix CompilerStack::absolutePathDimitry2016-09-011-1/+1
|
* Remove standard contractsDenton Liu2016-08-191-27/+6
|
* remove solidity --interfaceDimitry2016-08-171-8/+0
|
* Source location as part of AST.chriseth2016-07-211-0/+111
|
* Provide formal version in json output.chriseth2016-07-191-2/+4
|
* Allow remappings to change depending on the context.chriseth2016-06-091-13/+66
|
* Merge pull request #356 from guanqun/break-not-in-loopchriseth2016-01-211-0/+6
|\ | | | | check whether break/continue is in the loop
| * code changes according to Chris's commentsLu Guanqun2016-01-191-1/+1
| |
| * check whether break/continue is in the loopLu Guanqun2016-01-151-0/+6
| |
* | Merge pull request #351 from chriseth/autoloadchriseth2016-01-191-29/+62
|\ \ | | | | | | Automatically load imported files in solc.
| * | Build fix for MacOS.chriseth2016-01-141-1/+1
| | |
| * | Autoload files in solc.chriseth2016-01-121-29/+62
| |/
* | Set error flag to true.chriseth2016-01-141-0/+1
| |
* | Detect library name clashes.chriseth2016-01-141-0/+33
|/
* Simple aliasing during import.chriseth2015-12-181-0/+3
|
* Parse complex import directives.chriseth2015-12-181-1/+1
|
* Relative paths in import directives.chriseth2015-12-101-5/+24
|
* Source units are independent scopes.chriseth2015-12-101-0/+6
|
* Preliminary why3 code output.chriseth2015-10-271-0/+13
|
* Store docstrings in AST annotations.chriseth2015-10-261-10/+12
|
* File reorganisation.chriseth2015-10-211-0/+435