Commit Graph
6849 Commits
Author SHA1 Message Date
Rhett Aultman 85c55c796a Remove unique error for contract collision
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.
2017-01-16 12:32:57 -05:00
Rhett Aultman f8914c6b28 Fix contract lookup in tests
The fully-qualified name of a contract with no source unit is :<Name>
instead of just <Name>, so the test system needed to be adjusted
accordingly.
2017-01-16 12:32:57 -05:00
Rhett Aultman f10bf36ae3 Move fullyQualified() name to Declaration 2017-01-16 12:32:57 -05:00
Rhett Aultman 0c98e4b2da Stylistic corrections 2017-01-16 12:32:57 -05:00
Rhett Aultman 220ccfb492 Move clashing libraries to common source in test
Since contracts and libraries only collide if they share a common
source file now, this test only works if both libraries are in the
same source.
2017-01-16 12:32:57 -05:00
Rhett Aultman e3b0827721 Push the error instead of throwing it
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.
2017-01-16 12:32:57 -05:00
Rhett Aultman 8f25bd54e3 Drop ':' if the source file name is empty
A large number of tests compile contracts while passing in an empty
string for the source name.  This leads to it being keyed by the name
":<contract>", while the tests try to look it up under the name
"<contract>".  This change resolves that issue by dropping the ':' in
cases where there is, effectively, no source file to prepend anyway.
2017-01-16 12:32:57 -05:00
Rhett Aultman 071b936b37 Only avoid collision if it's the same file
@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.
2017-01-16 12:32:57 -05:00
Rhett Aultman 9e88f1eebe Tab whitespace cleanup (again) 2017-01-16 12:32:57 -05:00
Rhett Aultman ce3082dec2 Tidy up the error message 2017-01-16 12:32:57 -05:00
Rhett Aultman b24ca4fa23 Fix tab, drop stupid '!!!', change error message. 2017-01-16 12:32:57 -05:00
Rhett Aultman f3a84eab91 Error out when contracts collide on name
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.
2017-01-16 12:32:57 -05:00
Nicola 79e5772b8a Update SolidityLexer.py (#1567)
Added number unit keywords
2017-01-16 10:26:09 +01:00
chriseth 8bdb99dcc5 Merge pull request #1564 from natzei/patch-1
Update SolidityLexer.py
2017-01-13 15:59:02 +01:00
Nicola fb5583857a Update SolidityLexer.py
'payable' added as a keyword
2017-01-13 15:40:46 +01:00
chriseth 42ae5d0282 Merge pull request #1562 from ethereum/gas-tier-enum-class
Make enum Tier into an enum class
2017-01-13 14:35:36 +01:00
chriseth 392ef5f4e1 Merge pull request #1563 from ethereum/updateVersion
Update version to 0.4.9.
2017-01-13 13:57:30 +01:00
chriseth 10c2df8b33 Update version to 0.4.9. 2017-01-13 13:56:55 +01:00
Yoichi Hirai 20c62a132d Make enum Tier into an enum class 2017-01-13 13:19:14 +01:00
chriseth e22672b7c7 Update Changelog.md 2017-01-13 12:18:22 +01:00
chriseth bde0b40634 Merge pull request #1479 from ethereum/function_variable_mixin
Disallow mixin of functions and attributes under the same name
2017-01-13 09:36:00 +01:00
chriseth 14703ca002 Merge pull request #1560 from ethereum/cmake
Travis CI: Install latest CMake
2017-01-13 00:28:09 +01:00
chriseth 6b364fc2fe Merge pull request #1549 from ethereum/optimizeOptimizer
Optimize optimizer
2017-01-12 18:43:55 +01:00
chriseth 3cfa851f6f Minor changes from review. 2017-01-12 17:53:06 +01:00
chriseth a32def5c42 Changelog entry. 2017-01-12 17:52:50 +01:00
chriseth d34b561f68 Windows build fix. 2017-01-12 17:52:27 +01:00
chriseth 58509ca3aa Fix match groups. 2017-01-12 17:52:27 +01:00
chriseth 7127f2fdfd Fix debug output. 2017-01-12 17:52:27 +01:00
chriseth da5e171f3b Optimize constant optimization. 2017-01-12 17:52:27 +01:00
chriseth f1a4976ce6 Optimise simplification rules (sort into bins). 2017-01-12 17:52:26 +01:00
chriseth a3b01eca27 Do not evaluate strings if assertion succeeds. 2017-01-12 17:52:26 +01:00
chriseth 652d8dab19 Optimize pattern matcher. 2017-01-12 17:52:26 +01:00
chriseth afad40ac5a Optimise AssemblyItem::m_data. 2017-01-12 17:52:26 +01:00
Alex Beregszaszi 0cb95ac35e LLL: add test for (panic) in a sequence 2017-01-12 14:52:01 +00:00
chriseth 4713dd625d Fix error tag usage in lll. 2017-01-23 15:46:03 +01:00
Paweł Bylica ee0bf07487 Travis CI: Install latest CMake 2017-01-12 14:14:19 +01:00
chriseth 74d74fb00b Merge pull request #1548 from VoR0220/remappingBugFix
Remapping bug fix
2017-01-12 12:02:30 +01:00
chriseth b983c7492f Merge pull request #1558 from anders94/doc-rewording
Re-wording for Clarity
2017-01-12 11:42:46 +01:00
Yoichi Hirai abc24420a7 ast: events have FunctionType too 2017-01-11 20:06:59 +01:00
Yoichi Hirai 7fea4b7360 analysis: use Declaration::functionType() in another location 2017-01-11 19:55:55 +01:00
Yoichi Hirai eda147f47b ast: add Declaration::functionType() 2017-01-11 19:55:50 +01:00
Anders Brownworth 5e29b4cde2 Re-word somewhat bumpy sentence to be more clear. 2017-01-11 13:13:11 -05:00
VoR0220 b6508ca992 fixed
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 12:03:54 -06:00
VoR0220 4542f459f1 added fix and a test for order independence of nested prefixing
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-11 11:45:14 -06:00
Yoichi Hirai e254a59bd2 Changelog: add a line about #1479 2017-01-11 18:28:11 +01:00
Yoichi Hirai bd6e65a89c docs: document the resriction about a function and an event of the same name, and so on 2017-01-11 18:28:11 +01:00
Yoichi Hirai 9602318eab test: allow multiple errors in modifier-function overriding 2017-01-11 18:28:11 +01:00
Yoichi Hirai 0216f34010 analysis: avoid emscripten build failure 2017-01-11 18:28:11 +01:00
Yoichi Hirai 91d4e8e0ba analysis: changes necessary to compile std/StandardToken.sol 2017-01-11 18:28:11 +01:00
Yoichi Hirai 42b6726173 analysis: allow some shadowings explicitly 2017-01-11 18:28:11 +01:00