Commit Graph

1687 Commits

Author SHA1 Message Date
chriseth
80ce3ca66f Move ABI encoder into its own function. 2017-09-15 20:46:32 +01:00
chriseth
73771f5bb2 Named assembly labels. 2017-09-15 20:44:49 +01:00
Alex Beregszaszi
7dd372ce5c Merge pull request #2904 from ethereum/viewPure5
Enforce view with error for experimental 0.5.0.
2017-09-14 18:13:56 +01:00
chriseth
24fd67b7db Enforce view with error for experimental 0.5.0. 2017-09-14 17:53:43 +02:00
Alex Beregszaszi
5b5367dc12 Warn if no visibility is specified on contract functions. 2017-09-14 15:58:04 +01:00
Alex Beregszaszi
06c2ddfd50 Add experimental feature 'v0.5.0' 2017-09-13 19:22:03 +01:00
Alex Beregszaszi
5c9dbd5083 Merge pull request #2473 from ethereum/functiontype-sig
Add .selector member on function types
2017-09-13 17:35:48 +01:00
chriseth
3f3bcc4f8a Merge pull request #2848 from ethereum/checkViewPure
Enforce view and pure.
2017-09-13 18:29:13 +02:00
chriseth
e2f30ce9ca Minor changes from review. 2017-09-13 17:29:27 +02:00
chriseth
66c01301fe Rename to invalidInPureFunctions 2017-09-13 17:18:22 +02:00
Alex Beregszaszi
fd1f8ab38b Rename .sig to .selector on function types 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
58f7a27ee0 Add sig member on function type 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
0259459b21 Limit each duplicate declaration error to 32 references 2017-09-12 21:37:06 +01:00
chriseth
5084a9cda9 Merge pull request #2852 from ssuman/develop
This commit will display warning when there is unused function parameter
2017-09-12 17:57:55 +02:00
Suman
10d290cb9b Display helpful warning for unused function arguments/return parameters 2017-09-12 15:35:03 +01:00
Alex Beregszaszi
5ae9b8dab1 Do not report overload conflicts for every line excessively 2017-09-12 14:58:10 +01:00
Alex Beregszaszi
f2412da800 Merge pull request #2888 from ethereum/same-declaration-error
Use secondary source location as a vector in same declaration errors
2017-09-12 14:57:42 +01:00
chriseth
ac3742cd25 Merge pull request #2887 from ethereum/missing-functions-list
Show each unimplemented function in secondary source location
2017-09-12 13:28:49 +02:00
chriseth
513ae59bba Merge pull request #2853 from ethereum/cleanup-asm-stream
Split out the JSON functionality from assembly.stream()
2017-09-12 13:23:59 +02:00
Alex Beregszaszi
da1a53e02a Use secondary source location as a vector in same declaration errors 2017-09-12 12:06:16 +01:00
Alex Beregszaszi
a03211f3c9 Show each unimplemented function in secondary source location 2017-09-12 10:59:56 +01:00
Alex Beregszaszi
a52e0de67c Do not show the same error multiple times for events 2017-09-12 00:03:35 +01:00
Alex Beregszaszi
bbfb16cf5c Introduce assemblyString 2017-09-11 15:53:20 +01:00
Alex Beregszaszi
50570c6c79 Do not return the stream in asssemblyStream 2017-09-11 15:48:58 +01:00
Alex Beregszaszi
a535a8b06e Split out the JSON functionality from assembly.stream() 2017-09-11 15:48:52 +01:00
chriseth
b756274357 Allow constant variables in pure functions. 2017-09-06 13:52:29 +02:00
chriseth
15bdc48a73 Rename and add anonymous namespace. 2017-09-06 13:52:29 +02:00
chriseth
c83768c426 Fix tests 2017-09-06 13:52:29 +02:00
chriseth
1a1db1ec96 Tone down error message. 2017-09-06 13:52:29 +02:00
chriseth
7886c24d40 Modifier invocation can be base constructor call 2017-09-06 13:52:29 +02:00
chriseth
d6861d909c Analyze assembly. 2017-09-06 13:52:29 +02:00
chriseth
ec27e569b0 Do not report on overriding function and only warn for view. 2017-09-06 13:50:49 +02:00
chriseth
342367d5dc Store super function. 2017-09-06 13:50:49 +02:00
chriseth
eacee5b25c Remove previous warning about pureness not being enforced. 2017-09-06 13:50:49 +02:00
chriseth
5470da4d9a View-pure checker. 2017-09-06 13:50:49 +02:00
Alex Beregszaszi
3326a2282e Change array too large error message as it is valid for non-calldata too 2017-09-05 22:38:45 +01:00
Alex Beregszaszi
bf294253bb Merge pull request #2860 from ethereum/noparamsfordefaulted
Remove parameter names for defaulted functions.
2017-08-31 12:38:08 +01:00
chriseth
9e63710b8e Remove parameter names for defaulted functions. 2017-08-31 12:16:41 +02:00
Alex Beregszaszi
eb33e76416 Use Json::valueToQuotedString directly 2017-08-29 15:51:37 +01:00
chriseth
cd22da1d9e Remove escape function. 2017-08-29 15:50:28 +01:00
Alex Beregszaszi
a3f77527e9 Merge pull request #2847 from ethereum/codegen-docs
Document more of the codegen features
2017-08-29 15:27:07 +01:00
chriseth
93b1cc9702 Merge pull request #2833 from ethereum/statemutability-builtins
Mark all built in functions with appropriate statemutability
2017-08-29 15:24:51 +02:00
Alex Beregszaszi
3c24dcfe45 Document more of the codegen features 2017-08-29 13:36:13 +01:00
Alex Beregszaszi
7fb4a64136 Move all file specific globals to anonymous namespace 2017-08-29 11:09:18 +01:00
Alex Beregszaszi
0e11e5af10 Include all overloaded events in ABI 2017-08-28 20:07:43 +01:00
Alex Beregszaszi
79e84a8fa4 Swap declaration/statemutability in FunctionType constructor 2017-08-28 19:43:35 +01:00
Alex Beregszaszi
aa94000a91 Mark all built in functions with appropriate statemutability 2017-08-28 19:43:35 +01:00
Alex Beregszaszi
c7cb00d49a Mark event non-payable and not view 2017-08-28 16:37:45 +01:00
Alex Beregszaszi
ab06346e6e Merge pull request #2835 from ethereum/compilerstack-docs
Reorder some methods in CompilerStack for readability
2017-08-28 16:27:10 +01:00
Alex Beregszaszi
ceba40c410 Reorder some methods in CompilerStack for readability 2017-08-28 15:14:19 +01:00
Alex Beregszaszi
1beef38361 Merge pull request #2834 from ethereum/fixTypeNameParsing
Crash fix, parseTypeName can return null.
2017-08-28 15:07:14 +01:00
chriseth
122e65f8f4 Crash fix, parseTypeName can return null. 2017-08-28 15:13:02 +02:00
chriseth
5bd6254449 Merge pull request #2825 from ethereum/contract-unused-natspec
Removed unused natspec members of ContractDefinition
2017-08-28 13:06:30 +02:00
Alex Beregszaszi
2b3a49f702 Merge pull request #2821 from ethereum/errorreporter-copy
Add copy constructor to ErrorReporter (since it has assignment operator)
2017-08-25 20:40:27 +01:00
Alex Beregszaszi
8e5f9c5981 Removed unused natspec members of ContractDefinition 2017-08-25 20:29:43 +01:00
chriseth
372279ceb2 Merge pull request #2819 from ethereum/compilerstack-typecheck
Simplify typechecking loop in compilerstack
2017-08-25 19:38:15 +02:00
chriseth
9e90ddcae5 Merge pull request #2820 from ethereum/fallthrough
Fix some other fallthrough cases
2017-08-25 19:37:59 +02:00
Alex Beregszaszi
523e76332a Merge pull request #2813 from ethereum/tightpack-warn
Warn on using literals in tight packing
2017-08-25 16:08:42 +01:00
Alex Beregszaszi
774363eb74 Add copy constructor to ErrorReporter (since it has assignment operator) 2017-08-25 16:03:24 +01:00
Alex Beregszaszi
da56bde58f Move the break in switch for readability 2017-08-25 16:02:05 +01:00
Alex Beregszaszi
51d6141f7e Mark to places fall-through 2017-08-25 16:00:36 +01:00
Alex Beregszaszi
5c73a80418 Remove fallthrough from ArrayUtils 2017-08-25 15:57:27 +01:00
Alex Beregszaszi
ec6d8007db Merge pull request #2815 from ethereum/parser-fallthrough
Remove fallthrough from literal parsing
2017-08-25 15:54:46 +01:00
Alex Beregszaszi
e6f55fb95e Do not create a new TypeChecker instance for every contract 2017-08-25 15:43:26 +01:00
Alex Beregszaszi
670df8e874 Attach natspec before type checking 2017-08-25 15:39:20 +01:00
Alex Beregszaszi
d60d4b3031 Remove duplicate work from CompilerStack.analyze() 2017-08-25 15:37:10 +01:00
Alex Beregszaszi
f2317670fa Remove two other fall-through cases in Parser 2017-08-25 14:24:07 +01:00
Alex Beregszaszi
ef8355da7f Remove fallthrough from literal parsing 2017-08-25 14:22:59 +01:00
Alex Beregszaszi
f6dba97fe1 Warn on using literals in tight packing 2017-08-25 14:16:50 +01:00
chriseth
4b0e30d259 Cleanup of Common.h 2017-08-25 14:54:23 +02:00
Alex Beregszaszi
e03dfd8476 Remove unused statements from the Natspec headers 2017-08-25 13:15:08 +01:00
Alex Beregszaszi
20e3b98d1f Reorder ABI for readability 2017-08-25 10:39:53 +01:00
Alex Beregszaszi
deeac7e2e0 Rename statemutability to stateMutability in ABI/AST 2017-08-24 15:23:00 +01:00
Alex Beregszaszi
f646247dfb Consider pure as constant for the AST JSON (to aid static analyzers) 2017-08-24 14:13:34 +01:00
Alex Beregszaszi
5668377c72 Introduce pure specifier on functions 2017-08-24 13:46:18 +01:00
chriseth
8af6f193bc Merge pull request #2770 from ethereum/recursionInAsm
Also prevent too much recursion in the assembly parser.
2017-08-24 11:14:01 +02:00
chriseth
cf5e1d6120 Review changes. 2017-08-23 17:37:35 +02:00
chriseth
c93f0434cd Use experimental feature pragma for SMT checker. 2017-08-23 17:37:35 +02:00
chriseth
75f09f2a84 Partial support for if statements. 2017-08-23 17:37:35 +02:00
chriseth
5bfd5d98c1 Format numbers more nicely. 2017-08-23 17:37:35 +02:00
chriseth
1e05ebe50e Refactor Z3 read callback. 2017-08-23 17:37:35 +02:00
chriseth
9ac2ac14c1 Rename read file callback. 2017-08-23 17:37:35 +02:00
chriseth
ab5e3a8f6d Introduce native Z3 support. 2017-08-23 17:37:35 +02:00
chriseth
4cea3d4aa4 Insert abstraction layer. 2017-08-23 17:37:35 +02:00
chriseth
c9cf24458b Prepare build system for Z3. 2017-08-23 17:37:35 +02:00
chriseth
b3f8ed457a Cleanup. 2017-08-23 14:24:30 +02:00
chriseth
39fc798999 Use file to communicate with z3. 2017-08-23 14:24:05 +02:00
chriseth
df848859da Rewrite using SMTLIB2 interface. 2017-08-23 14:24:05 +02:00
chriseth
1ece7bf443 z3 conditions 2017-08-23 14:24:04 +02:00
Alex Beregszaszi
3b07c4d38e Merge pull request #2757 from ethereum/cmake
Static linking
2017-08-23 12:36:24 +01:00
chriseth
c5f11d938f Merge pull request #2656 from ethereum/performance1
Avoid some Json copy operations.
2017-08-23 13:26:43 +02:00
Paweł Bylica
388fc983fa
CMake: Cleanup "local" include path 2017-08-22 22:50:25 +02:00
Alex Beregszaszi
efe4d68a7b Introduce view (and keep constant as an alias) 2017-08-22 18:24:22 +01:00
chriseth
210b4870a8 Merge pull request #2775 from ethereum/coverity
Fix some issues found by Coverity
2017-08-22 15:39:50 +02:00
Alex Beregszaszi
badb269502 Merge pull request #2776 from ethereum/removeVisitsToAbstractASTNode
Remove visits to abstract AST class TypeName.
2017-08-22 14:34:55 +01:00
chriseth
9b6caa3fc4 Remove visits to abstract AST class TypeName. 2017-08-22 15:12:38 +02:00
Alex Beregszaszi
f2d6226718 Some smaller issues found by Covertiy Scan 2017-08-22 13:55:28 +01:00
Alex Beregszaszi
97169e58ae Merge pull request #2734 from ethereum/reject-create-interface
Reject the creation of interface with the new statement
2017-08-22 12:11:37 +01:00
chriseth
628b54ce35 Reduce max recursion depth. 2017-08-22 12:44:23 +02:00
chriseth
692e4c57e8 Check recursion depth in assembly parser. 2017-08-22 12:44:22 +02:00
chriseth
7b0046a9aa Check inheritance specifier arguments for interfaces. 2017-08-22 11:39:50 +01:00
Alex Beregszaszi
9897c56b2c Mark a lot of functions static (where possible) 2017-08-22 10:51:46 +01:00
Alex Beregszaszi
2a5772cff7 Mark appropriate constructors explicit 2017-08-22 10:51:46 +01:00
Alex Beregszaszi
e2cfc9ee92 Mark a lot of functions const (where possible) 2017-08-22 10:51:46 +01:00
Alex Beregszaszi
b25f0c52ac Reject the creation of interface with the new statement 2017-08-21 23:02:18 +01:00
Alex Beregszaszi
c94b1f8173 Set variable to nullptr in ASTPrinter 2017-08-21 22:05:35 +01:00
Alex Beregszaszi
2c2ae74217 Merge pull request #2773 from ethereum/usingForWithoutLibrary
Fix crash related to ``using for`` without a library.
2017-08-21 19:47:57 +01:00
Alex Beregszaszi
4b56829ac3 Create children node in ASTJsonConverter when neccesary 2017-08-21 16:28:30 +01:00
chriseth
e3f90565d8 Avoid some Json copy operations. 2017-08-21 16:28:30 +01:00
Alex Beregszaszi
4219acaba9 Merge pull request #2771 from ethereum/unused-includes
Remove some unused includes
2017-08-21 16:26:44 +01:00
chriseth
ec82706396 Fix crash related to `using for` without a library. 2017-08-21 16:57:37 +02:00
chriseth
d270879c8f Merge pull request #2748 from ethereum/natspec
Remove DocumentationType from natspec
2017-08-21 16:46:00 +02:00
chriseth
01b4bba0ed Merge branch 'develop' into library-constructor 2017-08-21 16:34:59 +02:00
Alex Beregszaszi
b3986f1d07 Remove some unused includes 2017-08-21 14:08:58 +01:00
chriseth
2c5985de06 Be more strict about number literals in assembly. 2017-08-21 13:31:28 +02:00
Paweł Bylica
fa53494626
CMake: Remove libsolidity <- boost::regex dependency 2017-08-21 12:37:55 +02:00
Paweł Bylica
99d198ffb0
CMake: Make libs dependencies explicit 2017-08-21 12:27:06 +02:00
Alex Beregszaszi
fe25bcf350 Library cannot have constructors 2017-08-21 11:03:55 +01:00
Paweł Bylica
8404e2b6d7
CMake: Simplify libsolidity config 2017-08-18 13:32:35 +02:00
Paweł Bylica
d1f4d110fb
CMake: Build static libs by default 2017-08-18 13:32:35 +02:00
Alex Beregszaszi
7700f4033e Remove isDeclaredConst() from functions 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
33ea314a24 Add statemutability to AST JSON 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
a61c88e9fe Use state mutability in override error messages 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
a2aaa47ee2 Use state mutability in fallback/constructor check 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
93be0dd923 FunctionType comparison/identifer to support all statemutability levels 2017-08-16 17:23:08 +01:00
chriseth
3d595d4b14 Warn about shift of literals. 2017-08-16 13:54:28 +02:00
Alex Beregszaszi
7222fac456 Remove DocumentationType from natspec 2017-08-15 19:56:38 +01:00
Alex Beregszaszi
12f3257e7d Add statemutability field to the ABI 2017-08-15 11:35:50 +01:00
chriseth
32e43477c3 Prevent too deep recursion in parser. 2017-08-14 22:19:15 +02:00
chriseth
2411f5d839 Merge pull request #2704 from ethereum/newEncoder
New ABI encoder
2017-08-14 17:04:00 +02:00
Alex Beregszaszi
a26a5f20ce Remove constant/payable in all function types 2017-08-14 14:21:47 +01:00
Alex Beregszaszi
b225bf5d53 Remove useless payable & constant typecheck 2017-08-14 14:21:47 +01:00
Alex Beregszaszi
2a9ba937ba Replace constant/payable with StateMutability in AST 2017-08-14 14:21:47 +01:00
chriseth
d1ad62fccc Experimental feature switch for ABI encoder. 2017-08-14 13:11:41 +01:00
chriseth
ee6f56d641 Remove unused magic global feature. 2017-08-14 13:11:41 +01:00
chriseth
4630b3315a Interface for new ABI encoder. 2017-08-14 12:44:25 +02:00
chriseth
42fe8a2cb1 New ABI encoder. 2017-08-14 12:44:25 +02:00
chriseth
77b26552b1 Allow multi-dimensional arrays in interfaces. 2017-08-14 12:44:25 +02:00
chriseth
4d9790b6d5 Merge pull request #2703 from ethereum/warnAboutLargeStorageArrays
Warn about large storage structures.
2017-08-14 11:37:01 +02:00
Federico Bond
3571db6e3f Avoid duplicate errors due to function overrides 2017-08-11 22:45:26 +01:00
Federico Bond
d4997dd9a3 Use a secondary location for function override errors 2017-08-11 22:45:25 +01:00
Federico Bond
a6949851f3 Refactor function override check to remove duplicate logic 2017-08-11 22:45:25 +01:00
Federico Bond
ff5bb54e3c Use fully qualified name of super in message 2017-08-11 22:45:25 +01:00
Federico Bond
a5ceaac8df Improve override changes signature error message 2017-08-11 22:45:25 +01:00
chriseth
da3ac86403 Warn about large storage structures. 2017-08-11 20:57:57 +02:00
Federico Bond
a8c047f48d Enforce commas in tuple syntax 2017-08-11 17:28:48 +01:00
Alex Beregszaszi
2d1bab0de8 Output experimental flag in metadata only for risky features 2017-08-11 16:38:43 +01:00
Alex Beregszaszi
4d82d4f57a Store experimental flag in metadata CBOR 2017-08-11 16:38:43 +01:00
Alex Beregszaszi
53a497b4d8 Add analysis-only experimental features 2017-08-11 16:38:37 +01:00
Alex Beregszaszi
644c91fc2d Add __test experimental mode for testing 2017-08-11 16:38:02 +01:00
chriseth
a7a9ed4718 Merge pull request #2727 from ethereum/simplify-types
Simplify if/else statements in Types
2017-08-11 11:46:16 +02:00
Alex Beregszaszi
3dcf089c3f Simplify if/else statements in Types 2017-08-10 19:14:33 +01:00
gubatron
ad7a63f890 FunctionType operator== boolean refactor 2017-08-10 17:04:40 +01:00
Alex Beregszaszi
1b32cdcf21 Check for payable when comparing function types 2017-08-10 17:03:45 +01:00
chriseth
41e3cbe084 Merge pull request #2690 from ethereum/experimental-pragma
Support experimental feature pragma
2017-08-10 15:23:34 +02:00
Alex Beregszaszi
57c2451130 Introduce ExperimentalFeatures header 2017-08-10 00:15:25 +01:00
Alex Beregszaszi
690ed37fd4 Reject wildcard and multiple experimental pragmas 2017-08-09 23:41:46 +01:00
Alex Beregszaszi
de9e758ef7 Reject unsupported experimental feature names 2017-08-09 23:41:46 +01:00
Alex Beregszaszi
e44da40835 Warn if using experimental pragma 2017-08-09 23:41:46 +01:00
Alex Beregszaszi
fbcc5f4ee5 Support experimental feature pragma 2017-08-09 23:41:46 +01:00
chriseth
b38f31617e Add isDynamicallyEncoded member function to types. 2017-08-09 23:18:42 +01:00
Alex Beregszaszi
b210db8058 Make toString(visibility) a helper 2017-08-09 14:58:59 +01:00
Alex Beregszaszi
efd45f64a5 Show previous visibility specifier in parser error 2017-08-09 14:30:17 +01:00
Alex Beregszaszi
a8ca623a0f Add test for multiple visibilites on functions 2017-08-09 14:30:02 +01:00
Alex Beregszaszi
3b41cd3c23 Rename Token::Const to Token::Constant 2017-08-09 12:50:53 +01:00
Alex Beregszaszi
8df89c5d5b Disable unimplemented library functions instead 2017-08-08 12:42:10 +01:00
Alex Beregszaszi
1ada48f61e Raise error when using unimplemented internal library functions. 2017-08-08 11:58:00 +01:00
Alex Beregszaszi
bb0eb57c2f Constructors must be implemented if declared. 2017-08-04 20:38:45 +01:00
Alex Beregszaszi
a372941a44 Merge pull request #2687 from ethereum/show-unimplemented-funcs
Show unimplemented function if trying to instantiate an abstract class
2017-08-04 19:46:09 +01:00
chriseth
060d229a22 Search for shadowee starting from parent scope. 2017-08-04 19:06:24 +02:00
Alex Beregszaszi
32acadf43d Do not mark overloaded functions as shadowing 2017-08-04 19:06:23 +02:00
Alex Beregszaszi
2186401479 Remove duplicated check for unimplemented functions 2017-08-04 14:03:38 +01:00
Alex Beregszaszi
494dea262e Show unimplemented function if trying to instantiate an abstract class 2017-08-04 14:03:37 +01:00
Alex Beregszaszi
c835bcec62 Replace isFullyImplemented with unimplementedFunctions in ASTAnnotations 2017-08-04 14:03:37 +01:00
chriseth
38e9505a83 Merge pull request #2673 from ethereum/builtin-gas
Disallow gas modifier on sha256/ripemd160/ecrecover
2017-08-04 14:43:15 +02:00
chriseth
bd9e91085b Merge pull request #2679 from ethereum/delegatecall
.delegatecall() should always return a boolean of execution status
2017-08-02 15:46:02 +02:00
Alex Beregszaszi
934a5dbf53 Consistent format for secondary location in sourceformatter 2017-08-02 11:31:55 +01:00
Alex Beregszaszi
7553beb6a6 Consistent new line in sourceformatter 2017-08-02 11:31:17 +01:00
Alex Beregszaszi
b7642dc8a7 Disallow gas modifier on sha255/ripemd160/ecrecover 2017-08-01 20:55:01 +01:00
Alex Beregszaszi
b3061225bc .delegatecall() should always return a boolean of execution status 2017-08-01 20:50:03 +01:00
Alex Beregszaszi
39dba0efe8 Provide new account gas for low-level callcode/delegatecall 2017-08-01 14:00:17 +01:00
Alex Beregszaszi
6d37f30d76 Rename Bare to Barecall 2017-08-01 10:47:10 +01:00
chriseth
b74118ec57 Fix for invalid clearing of memory in ecrecover. 2017-07-28 15:32:42 +02:00
Alex Beregszaszi
7d37eba4ba Remove the need of jumping out of the fallback 2017-07-27 21:52:58 +01:00
Alex Beregszaszi
d4e44ecb46 Disallow externalSignature for fallback functions 2017-07-27 21:52:58 +01:00
Alex Beregszaszi
9fc6eccc26 Add isFallback() helper 2017-07-27 21:52:57 +01:00
Alex Beregszaszi
53f747b7de Merge pull request #2635 from ethereum/fixCrashOnAssignmentToNonLValue
Fix crash on assignment to non-LValue
2017-07-27 13:59:22 +01:00
chriseth
517a366404 Merge pull request #2652 from ethereum/fixMultiModifier
Re-allow multiple modifiers per function.
2017-07-27 14:20:18 +02:00
chriseth
7c7c2baa82 Re-allow multiple modifiers per function. 2017-07-27 13:45:39 +02:00
Alex Beregszaszi
89fadd6935 Merge pull request #2645 from ethereum/asserts
Use solAssert where possible
2017-07-27 11:12:30 +01:00
Yoichi Hirai
85b338a019 Merge pull request #2643 from ethereum/compilerstack
Reorder CompilerStack to be in logical order
2017-07-27 11:28:08 +02:00
Yoichi Hirai
b68591c468 Merge pull request #2644 from ethereum/toodeep
Report location on stack too deep if possible
2017-07-27 11:21:07 +02:00
Yoichi Hirai
772de8c4d9 Merge pull request #2646 from ethereum/standardcompiler
Clean up error catching in StandardCompiler
2017-07-27 11:20:17 +02:00
chriseth
1298a8df14 Merge pull request #2566 from ethereum/metadata-only-relevant
Metadata: only include relevant files in the source list
2017-07-27 11:07:15 +02:00
Alex Beregszaszi
f4b6bdad38 DocstringParsingError is not thrown anymore in StandardCompiler 2017-07-26 23:25:49 +01:00
Alex Beregszaszi
fb7eec8dd5 Catch FatalError in StandardCompiler 2017-07-26 23:25:43 +01:00
Alex Beregszaszi
af57879187 Report location on stack too deep if possible 2017-07-26 22:56:55 +01:00
Alex Beregszaszi
8098030986 Use solAssert instead of boost throw where possible 2017-07-26 22:23:21 +01:00
Alex Beregszaszi
9982e73dce Reorder CompilerStack to be in logical order 2017-07-26 22:16:02 +01:00
chriseth
925569bfa3 Merge pull request #1637 from ethereum/warn-shadowing-globals
Warn if shadowing built-ins
2017-07-26 17:30:27 +02:00
Alex Beregszaszi
30012db396 Add CompilerStack::setOptimiserSettings 2017-07-26 15:17:07 +01:00
Alex Beregszaszi
6848199b66 Add CompilerStack::setLibraries 2017-07-26 15:05:16 +01:00
Alex Beregszaszi
fa5a7efb45 Remove unused interfaces from CompilerStack 2017-07-26 15:05:16 +01:00
chriseth
cb75e6218b Fix crash on assignment to non-lvalue. 2017-07-26 14:32:25 +02:00
Alex Beregszaszi
e0dc74b895 Warn about shadowing variables. 2017-07-25 16:32:37 +02:00
chriseth
72917c4f35 Cleanup fixed point type changes 2017-07-19 22:13:42 +01:00
VoR0220
78769f3b39 Change fixed point types to have digit count
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-07-19 21:49:01 +01:00
Rhett Aultman
a2a759f792 Migrate over to ErrorReporter 2017-07-19 07:19:21 -07:00
Alex Beregszaszi
f3e591eedd Add template for merging sets 2017-07-19 14:56:40 +01:00
Alex Beregszaszi
89a1e97e7d Avoid cyclic imports in referencedSourceUnits 2017-07-19 14:56:40 +01:00
Alex Beregszaszi
c617336587 Only include files usde in metadata 2017-07-19 14:56:40 +01:00
Alex Beregszaszi
ed592d6ccb Add option to recurse referencedSourceUnits 2017-07-19 14:56:40 +01:00
Alex Beregszaszi
a9bddf71aa Add referencedSourceUnits() helper 2017-07-19 14:56:40 +01:00
Alex Beregszaszi
1b0ef0b785 Add sourceUnit() helper to Declaration 2017-07-19 14:56:40 +01:00
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