Commit Graph

610 Commits

Author SHA1 Message Date
Yoichi Hirai
c9b23d9829 Fix a typo and whitespaces 2016-09-07 14:29:01 +02:00
Alex Beregszaszi
2d9c407456 Include assert for selfType on bound functions to avoid crash 2016-09-06 22:10:51 +01:00
Alex Beregszaszi
7af8ecc27a Constructor must be internal or public 2016-09-06 17:53:13 +02:00
Alex Beregszaszi
319ec34093 Reject constant constructors 2016-09-06 17:31:29 +02:00
chriseth
462fc84e53 Merge pull request #1016 from ethereum/reserved
Report the usage of reserved keywords more nicely
2016-09-06 15:52:44 +02:00
chriseth
3588125692 Merge pull request #1014 from ethereum/strict-fallback
Reject constant modifier on the fallback function
2016-09-06 15:51:45 +02:00
chriseth
fb73da30d8 Merge pull request #1011 from walter-weinmann/wwe_grammar
Changes related to issues #984, #989, #999, #1001 and #1004.
2016-09-06 15:43:06 +02:00
chriseth
5ade1bc20f Merge pull request #1008 from ethereum/stipendwithsend
Provide gas stipend manually for send(0).
2016-09-06 15:37:05 +02:00
Alex Beregszaszi
a13c5b3157 Raise proper error on reserved keywords 2016-09-06 12:03:05 +01:00
Alex Beregszaszi
cfb6dfc35e Introduce isReservedKeyword() 2016-09-06 12:01:02 +01:00
Alex Beregszaszi
6ec40b3cde Reject constant modifier on the fallback function 2016-09-06 11:40:00 +01:00
chriseth
9ca7472089 Provide gas stipend manually for send(0). 2016-09-06 12:37:01 +02:00
Alex Beregszaszi
496b7ea1d2 Reserve view and pure as keywords 2016-09-06 11:37:00 +01:00
chriseth
f687635e47 Merge pull request #665 from axic/feature/accept-ether
BREAKING: Add payable modifier
2016-09-06 12:25:19 +02:00
chriseth
171c74843b Merge pull request #995 from chriseth/fixutf8astjson
Do not emit non-utf8 strings for ast json.
2016-09-06 12:25:04 +02:00
walter-weinmann
70d91462db Considering comment from @chriseth regarding FunctionCall. 2016-09-06 11:53:46 +02:00
chriseth
114502f8ad Merge pull request #1006 from ethereum/nenewaccountgas
Do not pay new account gas.
2016-09-06 11:13:31 +02:00
chriseth
dff9633084 Test and fixes for payable fallback in ABI. 2016-09-06 10:59:13 +02:00
chriseth
384f189a6a Tests for payable / private combination. 2016-09-06 10:58:56 +02:00
walter-weinmann
215fc04857 Considering comments from @chriseth regarding ExpressionStatement and FunctionCall. 2016-09-06 05:26:18 +02:00
chriseth
1eb7ddbb09 Make constant and payable mutually exclusive. 2016-09-05 21:28:28 +02:00
chriseth
9c64edf110 Change function type to include and propagate payable and constant modifier. 2016-09-05 21:28:28 +02:00
Alex Beregszaszi
962531af96 Merged in changes from chriseth/payable 2016-09-05 21:28:28 +02:00
Alex Beregszaszi
75d556a2cf Do not include the payable keyword for constructors 2016-09-05 21:28:18 +02:00
Alex Beregszaszi
a34f2f1a31 Support payable keyword for functions 2016-09-05 21:28:18 +02:00
walter-weinmann
8f233b545f Changes related to issues #984, #989, #999, #1001 and #1004. 2016-09-05 18:58:58 +02:00
Yoichi Hirai
e2b787cdd0 Merge pull request #1005 from ethereum/modifierbody
Require ";" after "_"
2016-09-05 18:28:32 +02:00
chriseth
be6a5f44d7 Merge pull request #993 from chriseth/fixshacrash
Guard encoding crashes with assertions.
2016-09-05 18:09:32 +02:00
chriseth
bf3f45c948 Improve error message. 2016-09-05 17:11:23 +02:00
chriseth
3b2174f7a8 Update grammar.txt to reflect the change. 2016-09-05 16:13:31 +02:00
chriseth
69c175fe22 Do not pay new account gas.
If we checked that the target contract exists, we do not have
to pay the "new account gas".
2016-09-05 15:52:44 +02:00
chriseth
02984b8de1 Require ";" after "_" 2016-09-05 14:54:50 +02:00
chriseth
24ffc38575 Do not use internal types for event parameters. 2016-09-02 00:39:30 +02:00
chriseth
ada31fa9b7 Do not emit non-utf8 strings for ast json. 2016-09-02 00:22:03 +02:00
chriseth
4134834ff3 Guard encoding crashes with assertions. 2016-09-01 20:07:14 +02:00
chriseth
b5d941d3d9 Merge pull request #935 from chriseth/pragma
Version pragma
2016-09-01 11:02:50 +02:00
chriseth
d87450b9b2 Use version string (including prerelease) for pragma matching. 2016-09-01 00:02:51 +02:00
chriseth
3c412ed2f6 Version pragma. 2016-09-01 00:02:51 +02:00
Dimitry
061aee2e97 fix CompilerStack::absolutePath 2016-08-31 22:10:20 +03:00
chriseth
4bfe09897e Make fallback function throw by default. 2016-08-30 15:31:50 +02:00
chriseth
cf974fd103 Merge pull request #664 from axic/feature/interface-fallback
Introduce fallback entry in the ABI
2016-08-30 15:21:19 +02:00
Bob Summerwill
91d4fa477c Merge pull request #941 from chriseth/versionString
Version string
2016-08-26 22:58:32 -07:00
Alex Beregszaszi
36a567cd61 Introduce fallback entry in the ABI 2016-08-26 19:03:46 +01:00
chriseth
fb7836d87b Merge pull request #897 from Denton-L/remove-standard
BREAKING: Remove standard contracts
2016-08-26 19:32:18 +02:00
chriseth
54ab787b83 Make versioning semver compatible and force commit hash availability. 2016-08-26 10:14:44 +02:00
chriseth
21b6aa92ff Disallow fallback function to return values. 2016-08-26 00:07:50 +02:00
chriseth
cab0f5448f Merge pull request #921 from chriseth/astjsoncleanup
JSON AST: Some attribute cleanup. Add linearized base contracts.
2016-08-23 17:14:13 +02:00
chriseth
345c0f36fb Fix crash when using json compiler with exponentiation. 2016-08-20 03:45:39 +02:00
Denton Liu
e00f802f72 Remove standard contracts 2016-08-19 10:34:50 -04:00
chriseth
35276d99e0 JSON AST: Some attribute cleanup. Add linearized base contracts. 2016-08-19 13:05:12 +02:00
Alex Sinyagin
4b9eb299d0 Rename root AST JSON node to SourceUnit 2016-08-18 15:38:20 +00:00
Alex Sinyagin
4387d8bbe3 Do not add children to EnumValue and PlaceholderStatement elements in JSON AST 2016-08-18 13:29:44 +00:00
Alex Sinyagin
9139d763d3 Use the full names for JSON AST nodes 2016-08-18 13:12:15 +00:00
Alex Sinyagin
5061eb2b2b Move creation of the root element of JSON AST to the SourceUnit visitor 2016-08-18 12:51:17 +00:00
Alex Sinyagin
406f3a4b5d Add ast json converter for PlaceholderStatement 2016-08-18 12:30:00 +00:00
Alex Sinyagin
e9c894c9f8 Add ast json converter for ArrayTypeName 2016-08-18 12:30:00 +00:00
Alex Sinyagin
bdc2436ae3 Add ast json converter for ModifierInvocation and EventDefinition 2016-08-18 12:30:00 +00:00
Alex Sinyagin
a5d15e6895 Add ast json converter for ModifierDefinition 2016-08-18 12:29:59 +00:00
Alex Sinyagin
95832da16e Add ast json converter for EnumValue 2016-08-18 12:29:59 +00:00
Alex Sinyagin
a9e04217a4 Add ast json converter for EnumDefinition 2016-08-18 12:29:59 +00:00
Alex Sinyagin
40ca2c9e97 Add ast json converter for UsingForDirective 2016-08-18 12:29:59 +00:00
Alex Sinyagin
9e7fc12463 Add a ast json converter for InheritanceSpecifier 2016-08-18 12:29:59 +00:00
chriseth
c282ab379a Merge pull request #918 from winsvega/solremove4
remove solidity --interface
2016-08-17 17:55:40 +02:00
chriseth
b2507e9f10 Merge pull request #839 from chriseth/checkcode
BREAKING: Make function calls throw if target does not have code.
2016-08-17 16:44:15 +02:00
chriseth
d6579a0a5f Merge pull request #888 from chriseth/throwOnDivZero
Throw on division by zero.
2016-08-17 16:43:13 +02:00
Dimitry
e5e2597702 remove solidity --interface 2016-08-17 12:39:10 +03:00
chriseth
774bb8ab3b Make function calls throw if target does not have code.
Low-level calls still just execute and will actually report "success".
This allows `x.call.value(y)()` for x being a non-contract account.
2016-08-17 11:30:40 +02:00
chriseth
9c83109549 BREAKING: return only exits current function/modifier 2016-08-17 11:29:31 +02:00
chriseth
e7683f4722 Merge pull request #836 from chriseth/unusedunderscore
BREAKING: Require modifiers to contain "_".
2016-08-17 11:28:02 +02:00
chriseth
e7084d9e16 Throw on division by zero. 2016-08-17 11:27:15 +02:00
chriseth
d5505e21eb Merge pull request #838 from chriseth/ecrecover
Make ecrecover return zero for malformed input.
2016-08-17 11:05:20 +02:00
Alex Beregszaszi
ec3298535e Introduce hex literals (#832)
* Introduce hex keyword token

* Support hex literals

* Include tests for hex literals

* Document hex literals
2016-08-16 16:31:23 +02:00
Alex Beregszaszi
970260bf0f Reserved keywords update (#833)
* Reserve abstract, interface and payable keywords

* Keywords as and using aren't reserved anymore - they're used

* Reserve the static keyword
2016-08-16 16:28:45 +02:00
chriseth
77f4424589 Provide inline assembly to the code generator. (#840)
* Directly usable inline assembly.

* Add missing header.
2016-08-16 16:27:20 +02:00
chriseth
d731225d02 Actually better to return zero on error. 2016-08-16 14:53:01 +02:00
chriseth
034d436933 Make ecrecover throw for malformed input. 2016-08-16 14:53:01 +02:00
chriseth
6df6728165 Require modifiers to contain "_". 2016-08-16 14:52:47 +02:00
chriseth
2a560b798b Throw if contract creation fails. 2016-08-16 14:49:44 +02:00
chriseth
0d894a6832 Merge pull request #844 from Denton-L/remove-after
BREAKING: Remove after
2016-08-12 15:09:55 +02:00
Alex Sinyagin
cbedc7b343 Fix Mapping and InlineAssembly in JSON AST 2016-08-11 17:00:19 +00:00
Alex Sinyagin
a7ff352d38 Fix JSON AST structure 2016-08-11 17:00:19 +00:00
Denton Liu
92a711c4fb Remove after from grammar.txt 2016-08-11 10:15:59 -04:00
Denton Liu
faf0b3f669 Remove After from Types.cpp 2016-08-11 10:15:59 -04:00
Denton Liu
cab8e63a0e Revert "Change After to a deprecated token"
This reverts commit 91c97f73b50fc87662b5490b2fe6de1c6ef376c7.
2016-08-11 10:15:59 -04:00
Denton Liu
be98d3db51 Change After to a deprecated token 2016-08-11 10:15:59 -04:00
Denton Liu
5ee846e39f Remove After from ExpressionCompiler 2016-08-11 10:15:59 -04:00
Denton Liu
0988eba4fe Remove after from Token.h 2016-08-11 10:15:59 -04:00
chriseth
b7c26f4628 Merge pull request #722 from NicolaiSoeborg/develop
Fixes to grammar.txt [WIP]
2016-08-10 21:18:56 +02:00
chriseth
55858de1e9 Merge pull request #794 from chriseth/fixastsource
Fix segfault in ast output.
2016-08-10 16:58:17 +02:00
chriseth
fc60839105 Merge pull request #826 from axic/utf8-check
AST printer: do not output invalid UTF8 sequences
2016-08-10 16:31:27 +02:00
chriseth
4c54834908 Rename libevmasm. 2016-08-10 13:52:24 +02:00
Nicolai
399e1fe70c Add syntax for fallback functions 2016-08-09 11:53:38 +02:00
Alex Beregszaszi
5d9347f022 Remove dev::utf8 namespace 2016-08-08 20:05:31 +01:00
Alex Beregszaszi
f1df3dee53 Use size_t in dev::utf8::validate() 2016-08-08 20:05:31 +01:00
Alex Beregszaszi
e8c2e87397 Use utf8::validate in StringLiteral::toString 2016-08-08 19:57:41 +01:00
Alex Beregszaszi
bf76321c9e Move LiteralString::toString from the header 2016-08-08 19:08:31 +01:00
chriseth
539afbeea3 Merge pull request #828 from axic/identity-gas-fix
Fix identity precompile gas calculation
2016-08-08 19:15:03 +02:00
chriseth
ac8e726970 Fix segfault in ast output. 2016-08-08 19:10:17 +02:00
chriseth
c3ed550eb6 Merge pull request #834 from chriseth/devcorecleanup
Some cleanup regarding libdevcore. Also rename to avoid conflicts.
2016-08-08 15:11:36 +02:00
chriseth
ccd78d05d6 Correct library usage. 2016-08-08 12:26:07 +02:00
Alex Beregszaszi
17f760e2a9 Fix identity precompile gas calculation 2016-08-06 00:18:21 +01:00
chriseth
7ea5770598 Do not install headers. 2016-08-05 16:35:24 +02:00
Alex Beregszaszi
6db12c4f88 Rename addUnicodeChar to addUnicodeAsUTF8 2016-08-04 17:28:48 +01:00
Alex Beregszaszi
aa4593cab3 Support Unicode escape characters in string literals ('\uUUUU')
Fixes #638
2016-08-04 17:28:48 +01:00
Nicolai
cc863b0a63 Split ElementaryTypeName into smaller rules 2016-08-02 17:18:59 +02:00
Nicolai
baaad627c4 Remove ambiguity from EventDefinition. Fix SourceUnit 2016-08-01 22:33:05 +02:00
Nicolai
9f772cb9a1 Remove 'reduce/reduce conflicts' with comma operator 2016-07-30 19:27:32 +02:00
Nicolai
b2de2a9d0f Fix reduce/reduce conflicts w/ multiple FunctionCall in Expression 2016-07-30 16:03:10 +02:00
Nicolai
35182c7305 Remove TypeParameterList 2016-07-30 15:34:46 +02:00
chriseth
58cc6cbb37 Bugfix: Allocate empty array. 2016-07-28 17:24:18 +02:00
Nicolai
97d7b8509c Fixes to expression 2016-07-27 16:42:33 +02:00
Nicolai
cde629d48d Added wildcard to UsingForDeclaration 2016-07-27 16:03:40 +02:00
Nicolai
ec0933bf9f Imports => ImportDirective 2016-07-27 16:01:30 +02:00
Nicolai
e584a8396a Remove assignment as expr. Add functionCall as primaryExpression 2016-07-26 15:44:22 +02:00
Nicolai
3009064533 Fix missing seperator from commit 8b450dd8 2016-07-26 15:13:26 +02:00
Nicolai
8b450dd808 Added PlaceholderStatement 2016-07-25 17:48:49 +02:00
Nicolai
3f5bff968f Add StorageLocation 2016-07-25 17:28:30 +02:00
Nicolai
1a661c562a Allow function to call modifiers 2016-07-25 16:53:15 +02:00
Nicolai
bd2562ffd3 Order expression according to PR 732 2016-07-23 16:15:01 +02:00
Nicolai
28c4a0a3ab New regex for StringLiteral 2016-07-23 02:35:20 +02:00
Nicolai
5512b85594 Begin fixing expression syntax 2016-07-23 01:45:10 +02:00
chriseth
6610add63e Merge pull request #731 from Denton-L/move-token
Move `in` as a keyword to reserved word section
2016-07-21 14:34:22 +02:00
Denton Liu
8fbe994075 Fix isCompareOp() 2016-07-20 17:05:24 -04:00
Denton Liu
827208d1d6 Move in as a keyword to reserved word section 2016-07-20 15:42:18 -04:00
chriseth
c55584d3e2 Source location as part of AST. 2016-07-20 19:45:43 +02:00
chriseth
980abfe52a Merge pull request #720 from chriseth/formalState
Formal Verification: Handle external effects.
2016-07-20 19:37:57 +02:00
Nicolai
1c341add59 Added UsingDeclaration 2016-07-20 19:31:05 +02:00
Nicolai
ad2784b333 Extend EventDefinition 2016-07-20 19:17:03 +02:00
Nicolai
e1c69b11f4 Fix missing 'ether' from NumberUnit. Extend StringLiteral syntax 2016-07-20 17:07:26 +02:00
Nicolai
9324393975 Added missing (u)fixed types 2016-07-20 16:49:14 +02:00
Nicolai
da8b768713 Extend NumberLiteral with units 2016-07-20 16:23:30 +02:00
Nicolai
5abb9b6e41 Added imports 2016-07-20 16:14:23 +02:00
Nicolai
f76616889a Add EventDefinition 2016-07-20 15:59:00 +02:00
Nicolai
68b72d8667 NumberLiteral: Allow 0x prefix 2016-07-20 02:42:02 +02:00
Nicolai
6f7d8fb65b Allow function returns to be unnamed 2016-07-20 02:26:33 +02:00
Nicolai
f003bdafa6 Fix StructDef. Add BoolLiteral. Def NumLiteral, StringLiteral and Identifier. 2016-07-20 02:18:09 +02:00
Nicolai
1e2f071a11 Fix missing quotes in ElementaryTypeName 2016-07-20 01:33:08 +02:00
Nicolai
8e6272b020 Added ElementaryTypeName, removed explicit recursion 2016-07-19 18:59:34 +02:00
Nicolai
447797ad9c Add forStmt to Stmt, removes BasicBinaryOperation, throw expr, explicit rec in ArrTypeName 2016-07-19 17:27:53 +02:00
Nicolai
dc3828ee37 Remove "in", extra semicolons, forced function param. Added "throw". Changes FunctionCall & IndexAccess 2016-07-19 01:26:39 +02:00
Nicolai
ce8a003611 grammar.txt: Fixes to EnumDef and ArrayTypeName 2016-07-19 01:03:41 +02:00
Nicolai
c396148fe6 grammer.txt: inheritable => internal 2016-07-19 00:49:00 +02:00
chriseth
9a9a815fc9 Provide formal version in json output. 2016-07-18 18:26:56 +02:00
Nicolai Søborg
80b01f6ebd Grammar: tab => spaces 2016-07-14 23:48:29 +02:00
Nicolai
ff9d6e05f2 Typos + added missing grammar rules 2016-07-14 23:41:32 +02:00
Nicolai
c800f8c97d Remove the remains of "expresison" 2016-07-14 22:56:45 +02:00
chriseth
26e5faa038 Handle external effects. 2016-07-13 11:16:00 +02:00
chriseth
25a64c7f8f Only warn about unused return in low-level functions. 2016-06-26 13:53:32 +02:00
chriseth
cc6314cd01 Warn about unused return values. 2016-06-26 13:53:32 +02:00
chriseth
31aa67f1ca Merge pull request #640 from chriseth/globalPaths
Allow remappings to change depending on the context.
2016-06-10 17:58:25 +02:00