mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Solidity, the Smart Contract Programming Language
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. |
||
---|---|---|
cmake | ||
deps@b3db890589 | ||
docs | ||
libdevcore | ||
libevmasm | ||
liblll | ||
libsolidity | ||
lllc | ||
scripts | ||
solc | ||
std | ||
test | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
Changelog.md | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
README.md |
The Solidity Contract-Oriented Programming Language
Useful links
To get started you can find an introduction to the language in the Solidity documentation. In the documentation, you can find code examples as well as a reference of the syntax and details on how to write smart contracts.
You can start using Solidity in your browser with no need to download or compile anything.
The changelog for this project can be found here.
Solidity is still under development. So please do not hesitate and open an issue in GitHub if you encounter anything strange.
Building
See the Solidity documentation for build instructions.
How to Contribute
Please see our contribution guidelines in the Solidity documentation.
Any contributions are welcome!