Commit Graph

1273 Commits

Author SHA1 Message Date
Alex Beregszaszi
b3db1c361c Warn if this is used in constructor 2017-07-19 06:47:36 -07:00
Yoichi Hirai
2a46e1b0e2 Merge pull request #2589 from ethereum/rename-onchainmetadata
Rename onChainMetadata to metadata
2017-07-19 11:43:19 +02:00
Yoichi Hirai
becb7af4a2 Merge pull request #2597 from ethereum/modifier-internal
Mark modifiers as internal
2017-07-19 11:41:07 +02:00
Yoichi Hirai
d63e7df897 Merge pull request #2593 from ethereum/parser-error-text
Update parser error for pragma/import/contract
2017-07-19 11:40:09 +02:00
Alex Beregszaszi
644de755dc Mark modifiers as internal 2017-07-18 23:00:17 +01:00
Alex Beregszaszi
c99d049ac0 Update parser error for pragma/import/contract 2017-07-18 21:23:49 +01:00
Alex Beregszaszi
5bb4bfb08b Remove unneccesary interface from Natspec 2017-07-18 21:05:34 +01:00
Alex Beregszaszi
6d8929a71a Rename onChainMetadata to metadata 2017-07-18 20:54:28 +01:00
Alex Beregszaszi
c40cbed9fb Mark const variables 2017-07-18 14:44:53 +01:00
Alex Beregszaszi
33ac1f29b5 Reorder code for readability 2017-07-18 14:44:19 +01:00
Alex Beregszaszi
033fc0cb1a Include types in explicit conversion error message 2017-07-13 23:09:01 +02:00
Alex Beregszaszi
4229caaadc Disable large arrays for memory location too 2017-07-13 22:47:35 +02:00
Alex Beregszaszi
cb4875a28b Issue error properly for oversized arrays for calldata 2017-07-13 22:33:46 +02:00
Alex Beregszaszi
b5da5f6e42 Merge pull request #2504 from ethereum/inlineasm-decl-empty
Support variable declarations without an assignment in assembly
2017-07-13 16:58:24 +02:00
chriseth
d1c3ecc94a Merge pull request #2567 from ethereum/refactorExceptions
Refactor exceptions and provide comment function.
2017-07-13 16:56:03 +02:00
Alex Beregszaszi
8d90e6fc4e Rename expectedItems to numVariables 2017-07-13 15:18:40 +02:00
Alex Beregszaszi
cee93d946d Support parsing let statements without a value 2017-07-13 15:18:18 +02:00
chriseth
09e821619e Refactor exceptions and provide comment function. 2017-07-13 11:34:03 +02:00
Federico Bond
f20b150f38 Add type error when attempting value transfer to a non-payable contract 2017-07-12 23:57:53 -03:00
chriseth
b7a59652f1 Merge pull request #2501 from ethereum/undef-macros
Move UndefMacros from libdevcore to libsolidity/parsing
2017-07-12 15:07:20 +02:00
Alex Beregszaszi
db7ad508f8 Issue proper warning trying to access calldata variables in inline assembly 2017-07-12 10:48:44 +02:00
chriseth
01a1296e90 Helper functions. 2017-07-11 11:24:41 +02:00
chriseth
883666d2c0 Fix invalid "explicit storage keyword" warning for reference members of structs. 2017-07-10 18:30:41 +02:00
chriseth
0400e61e28 Deprecate throw. 2017-07-05 21:15:00 +02:00
chriseth
4bde6fa961 Merge pull request #2528 from ethereum/warnNoStorage
Warn if local storage reference variable does not use "storage" explicitly.
2017-07-05 21:14:06 +02:00
chriseth
2dd9070a4f Merge pull request #2527 from ethereum/onlyASTIfAnalysisSuccessful
Only output AST if the analysis was successful.
2017-07-05 20:40:25 +02:00
chriseth
dd34277ca6 Warn if local storage reference variable does not use "storage" explicitly. 2017-07-05 19:38:00 +02:00
chriseth
75f7f7e1e6 Do not omit error type. 2017-07-05 18:28:14 +02:00
chriseth
da48bcc51e Only output AST if the analysis was successful. 2017-07-05 18:27:32 +02:00
chriseth
d58e439094 Fix internal "variable already present" error. 2017-07-04 19:33:55 +02:00
chriseth
2b233e7388 Merge pull request #2507 from ethereum/jsonio-safe
Handle parsing errors in StandardCompiler
2017-07-03 13:23:28 +02:00
chriseth
aa262d5c8f Merge pull request #2503 from ethereum/julia-analyzer
Add Julia-mode to AsmAnalyzer/CodeGen
2017-07-03 13:17:52 +02:00
Alex Beregszaszi
75c193e959 Use more refined states in StandardCompiler 2017-07-03 12:06:41 +01:00
Alex Beregszaszi
08069bf4a4 Export CompilerStack state 2017-07-03 12:06:41 +01:00
Alex Beregszaszi
7798a27112 Add Julia mode as an option to EVMCodeTransform 2017-07-03 10:13:36 +01:00
Alex Beregszaszi
677700d5ac Add assert to shift helper 2017-07-02 23:41:22 +01:00
Alex Beregszaszi
d261265595 Use shift helper in LValue 2017-07-02 23:40:51 +01:00
Alex Beregszaszi
68b0ac4fdd More uses of shift helper 2017-07-02 23:40:51 +01:00
Alex Beregszaszi
8fd1d4167d Change shiftNumberOnStack to bits 2017-07-02 23:40:47 +01:00
Alex Beregszaszi
c7ae042114 Use shift helper 2017-07-02 23:37:47 +01:00
Alex Beregszaszi
0494fa98c0 Add shift helper to CompilerUtils 2017-07-02 23:37:47 +01:00
Alex Beregszaszi
a33a5e3c08 Run analyzer in Julia mode if requested in AssemblyStack 2017-07-02 00:44:21 +01:00
Alex Beregszaszi
b615b01449 Move UndefMacros from libdevcore to libsolidity/parsing 2017-07-02 00:09:46 +01:00
Alex Beregszaszi
a46b3479bb Remove parsing of why3 doc strings 2017-06-30 22:34:03 +01:00
Alex Beregszaszi
c5947ae6e3 Remove Why3 error class 2017-06-30 22:30:43 +01:00
Alex Beregszaszi
d4fecc7b11 Warn on JUMP/JUMPI in inline assembly 2017-06-30 20:47:14 +01:00
Alex Beregszaszi
95f7902955 Merge pull request #2491 from ethereum/warnAboutCallcode
Warn about callcode.
2017-06-30 20:39:20 +01:00
chriseth
044058276e Warn about callcode. 2017-06-30 16:37:32 +02:00
chriseth
71d866cd7a Abort early if there is nothing to encode or decode. 2017-06-30 14:16:16 +02:00
Alex Beregszaszi
dad6a9ad08 Merge pull request #2457 from ethereum/fixNegativeStackHeight
Fix negative stack height
2017-06-28 18:16:52 +01:00
Alex Beregszaszi
c70d73809a Use boost::starts_with 2017-06-28 17:01:55 +01:00
Alex Beregszaszi
06fe61f89b Rename to isHexNumber() 2017-06-28 17:01:55 +01:00
Alex Beregszaszi
6a708b0cfe Document appendFunctionSelector 2017-06-28 18:00:40 +02:00
chriseth
ef9a7b2144 Stack adjustment and code generation for fallback function.
This assumes that the fallback function does not have return parameters.
2017-06-28 18:00:31 +02:00
Alex Beregszaszi
8b0c866f02 Add hasHexPrefix() to AST::Literal 2017-06-28 16:57:32 +01:00
chriseth
168f64f4cb Fix negative stack size checks. 2017-06-28 16:55:49 +01:00
chriseth
c3e5d6b7ef Give min and max values in warning message. 2017-06-28 15:02:25 +02:00
chriseth
9f19bc8cbc Warn if using var x = 0 2017-06-28 11:41:03 +02:00
chriseth
708d17d13f Merge pull request #2464 from federicobond/deprecate-function-type-names
Warn deprecated usage of parameter names in function types
2017-06-27 16:32:48 +02:00
Alex Beregszaszi
bc31d4969c Merge pull request #2437 from ethereum/warnDoubleCopyStorage
Warn about copies in storage that might overwrite unexpectedly.
2017-06-27 10:24:03 +01:00
Alex Beregszaszi
9d201a086c Merge pull request #2459 from ethereum/noComparisonForSomeTypes
No comparison for some types
2017-06-26 22:55:22 +01:00
Alex Beregszaszi
b0ab9aaee0 Merge pull request #2453 from ethereum/memcopyAsForLoop
Use for loop for assembly memcopy.
2017-06-26 22:39:30 +01:00
chriseth
ab15040caa Comment about zero length. 2017-06-26 21:48:17 +01:00
Federico Bond
70fd5c1770 Warn deprecated usage of parameter names in function types 2017-06-26 15:39:01 -03:00
chriseth
d0b6de0b34 Warn about copies in storage that might overwrite unexpectedly. 2017-06-26 16:31:36 +02:00
chriseth
4407a13c17 Only allow equality checks for internal function types. 2017-06-26 16:30:37 +02:00
chriseth
f47e6e90fb Disallow comparisons between some types. 2017-06-26 16:30:36 +02:00
Alex Beregszaszi
751ba701bc Merge pull request #2450 from ethereum/addressstring
Fix for strings treated as addresses.
2017-06-26 12:18:33 +01:00
Alex Beregszaszi
a0b0df2d98 Merge pull request #2460 from ethereum/disallowMultiModifier
Disallow invoking the same modifier multiple times.
2017-06-26 11:51:12 +01:00
chriseth
c328ab411b Merge pull request #2442 from ethereum/remove-why3
Remove Why3 generator
2017-06-26 09:20:23 +02:00
chriseth
d94a12a34c Reformat. 2017-06-26 09:19:11 +02:00
chriseth
0aaa6d876d Use for loop for assembly memcopy. 2017-06-26 09:18:14 +02:00
chriseth
f879489291 Merge pull request #2449 from federicobond/warn-bytesxx-decimal
Warn if decimal literals are used in a bytesXX context
2017-06-26 09:13:41 +02:00
Alex Beregszaszi
555dc4f46f Remove Why3 generator 2017-06-25 12:26:16 +01:00
Federico Bond
7a3ea61ffd Warn if decimal literals are used in a bytesXX context
Fixes #2349
2017-06-23 23:21:19 -03:00
chriseth
5a75581f66 Disallow invoking the same modifier multiple times. 2017-06-23 20:12:22 +02:00
chriseth
64067975e4 Review suggestions. 2017-06-23 19:29:11 +02:00
chriseth
831ed08387 Change invalid opcode to revert for input validation. 2017-06-23 19:29:11 +02:00
chriseth
1f7697eee3 Merge pull request #2448 from federicobond/constant-addresses
Fix address literals not being treated as compile-time constants
2017-06-23 11:56:24 +02:00
chriseth
50e8a887a4 Merge pull request #2443 from ethereum/julia-asm-size
Support appendAssemblySize() in AbstractAssembly
2017-06-23 11:30:02 +02:00
Federico Bond
0fb1621a98 Fix address literals not being treated as compile-time constants
The early return implemented for address literals in TypeChecker was
preventing the isPure annotation from getting applied. Closes #2441
2017-06-23 11:19:57 +02:00
Alex Beregszaszi
f9144ae5a4 Merge pull request #2444 from ethereum/parser-scanner
Avoid including Scanner.h in ParserBase.h
2017-06-23 00:14:18 +01:00
Alex Beregszaszi
5cf2332d6d Support appendAssemblySize() in AbstractAssembly 2017-06-23 00:09:35 +01:00
Alex Beregszaszi
79ed529b3f Merge pull request #2452 from ethereum/fixPassingEmptyString
Fix passing empty string
2017-06-22 22:33:06 +01:00
Alex Beregszaszi
007ffe9430 Avoid including Scanner.h in ParserBase.h 2017-06-22 22:22:19 +01:00
chriseth
bffb8c404f Merge pull request #2408 from federicobond/constant-parameters
Fix segmentation fault with constant function parameters
2017-06-22 18:46:15 +02:00
chriseth
83ea7793d9 Fix ABI encoding of empty string literal. 2017-06-22 17:55:06 +02:00
chriseth
f340ff8764 Fix strings interpreted as addresses. 2017-06-22 16:48:44 +02:00
Alex Beregszaszi
f823952d9f Merge pull request #2404 from ethereum/methodidentifiers
Clean up method identifiers handling in CLI/CompilerStack
2017-06-22 13:00:19 +01:00
Alex Beregszaszi
d5f8ce90c7 Merge interface/Exceptions and interface/Utils 2017-06-22 11:25:07 +01:00
Alex Beregszaszi
ba7d698ee6 Make compiler.contractDefinition private 2017-06-22 11:13:06 +01:00
Alex Beregszaszi
b99e4bc68b Rework functionHashes into methodIdentifiers 2017-06-22 11:13:06 +01:00
Alex Beregszaszi
63395b31af Use compilerStack.functionHashes in StandardCompiler 2017-06-22 11:13:06 +01:00
Federico Bond
0f8ad1d68f Fix segmentation fault with constant function parameters 2017-06-21 22:46:27 -03:00
chriseth
622703c0c0 Merge pull request #2409 from federicobond/trailing-commas-2
Improve error reporting of trailing commas
2017-06-19 12:01:19 +02:00
chriseth
b3a7b5a145 Merge pull request #2416 from federicobond/multiple-specifiers
Display error if payable or constant is specified multiple times
2017-06-19 12:00:04 +02:00
chriseth
0c75afb2c1 Merge pull request #2225 from ethereum/julia-for
Implement for statement in assembly parser / printer / code generator
2017-06-19 11:53:22 +02:00
Federico Bond
d170ceaf3d Display error if payable or constant is specified multiple times 2017-06-17 12:21:46 -03:00
chriseth
868b5ad3aa Split block code generation into main and finalize. 2017-06-16 10:56:21 +01:00
chriseth
78b49db779 Helper to count the number of variables in a scope. 2017-06-16 10:56:21 +01:00