chriseth
af4d8779bb
Merge pull request #2934 from ethereum/fallthrough
...
Remove last two instances of switch fall-through
2017-09-26 11:38:22 +02:00
Alex Beregszaszi
cb6cdfe780
Simplify switch statements by refactoring internal break statements
2017-09-25 10:57:21 +01:00
Alex Beregszaszi
74972f5fa6
Avoid switch fallthrough in ExpressionCompiler
2017-09-25 10:51:58 +01:00
Alex Beregszaszi
3e5d81578a
Avoid switch fallthrough in CompilerUtils
2017-09-25 10:51:58 +01:00
wadeAlexC
0099911ace
Better error message for unexpected trailing comma in parameter lists
2017-09-25 10:42:01 +01:00
chriseth
2530223ab5
More verbose errors for generated assembly.
2017-09-22 15:18:32 +02:00
chriseth
8af298ade3
Merge pull request #2902 from ethereum/warn-obsolete
...
Warn about obsolete sha3/suicide calls
2017-09-20 18:00:40 +02:00
Alex Beregszaszi
6948758156
Limit parser recursion depth further (needed by increased assembly data structure size)
2017-09-20 11:16:23 +02:00
Alex Beregszaszi
3b813ed295
Support multiple assignment in inline assembly
2017-09-20 11:16:23 +02:00
Alex Beregszaszi
efa4598c23
Mark functions static
2017-09-20 01:23:21 +01:00
Alex Beregszaszi
1c0c5d923a
Mark constructors explicit
2017-09-20 01:23:21 +01:00
Alex Beregszaszi
aad829948a
Ensure parameter names match between headers and implementation
2017-09-20 01:23:21 +01:00
Alex Beregszaszi
ed1fd49ab0
Warn about obsolete sha3/suicide calls
2017-09-19 11:11:19 +01:00
chriseth
ff275e369c
Allow constant byte arrays.
2017-09-18 19:49:27 +01:00
chriseth
3a9a9db6d6
Merge pull request #2910 from ethereum/fallback-restrict-external
...
Force fallback to be external (experimental 0.5.0 change)
2017-09-18 16:38:55 +02:00
Alex Beregszaszi
a3380ea8d0
Force fallback to be external (experimental 0.5.0 change)
2017-09-18 11:58:37 +01:00
chriseth
0696545808
Check for interface types of members and cache recursion check.
2017-09-16 12:31:13 +01:00
chriseth
c5063d3155
Use "tuple" for struct types in ABI JSON.
...
Only use tuple as a type in the ABI (and remove all "anonymous struct" references too)
2017-09-16 12:31:12 +01:00
chriseth
70d70e7816
Implement struct encoder.
2017-09-16 12:31:12 +01:00
chriseth
6385641f6e
Fix tests.
2017-09-16 12:31:12 +01:00
chriseth
7e1b9c1652
Structure type json using "components".
2017-09-16 12:12:44 +01:00
chriseth
36a90289e6
Fix interface type conversion internal to structs.
2017-09-16 12:12:43 +01:00
chriseth
080be885f8
Function signatures containing structs.
2017-09-16 12:12:43 +01:00
chriseth
22f85d5af3
Update tests and error messages.
2017-09-16 12:12:43 +01:00
chriseth
59ea19b3b9
Check for recursive structs.
2017-09-16 12:12:43 +01:00
chriseth
2e72bd163a
Allow structs as part of function interfaces.
2017-09-16 12:12:43 +01:00
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
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
chriseth
8e5c4bf21d
Add include file to forward-declare inline assembly structs.
2017-06-16 10:56:21 +01:00
chriseth
49b1112117
For loops analysis.
2017-06-16 10:56:21 +01:00
Alex Beregszaszi
47925bc14e
Parse for statement in assembly parser / printer
2017-06-16 10:56:21 +01:00
Federico Bond
0eaae03bbf
Try to recover from parser errors where possible
2017-06-15 21:14:05 -03:00
Federico Bond
60bfae75e5
Improve error reporting of trailing commas
2017-06-15 13:10:08 -03:00
chriseth
9084d48750
Merge pull request #2382 from ruchevits/combined-json-hashes
...
Allow including hashes of method signatures in --combined-json output
2017-06-15 10:10:18 +02:00
Alex Beregszaszi
c08c4b8b6f
Move subroutine helpers from CompilerContext to Assembly
2017-06-14 21:21:26 +01:00
Alex Beregszaszi
398099f50e
Remove obsolete errorTag()
2017-06-14 21:21:26 +01:00
Alex Beregszaszi
42b61171d9
Merge pull request #2192 from winsvega/develop
...
add STATICCALL instruction
2017-06-14 21:03:32 +01:00
chriseth
f008ddf836
Merge pull request #2381 from ethereum/fixcrash
...
Fix a crash about a non-callable expression.
2017-06-14 18:35:38 +02:00
chriseth
fd5bf16101
Merge pull request #2384 from ethereum/parseFunctionalInstructions
...
Enforce function arguments when parsing functional instructions.
2017-06-14 18:35:16 +02:00
Dimitry
c20cdd0a05
add new opcode instructions to the parser
...
STATICCALL 0xfa 6 inputs (gas address mem1 mem2 mem3 mem4)
2017-06-14 18:18:12 +02:00
chriseth
29e7ad3d7b
Silence compiler warning.
2017-06-14 17:39:36 +02:00
Alex Beregszaszi
a921bd0ae4
Display user friendly instruction name
2017-06-14 16:00:39 +02:00
Alex Beregszaszi
494b9dbfaa
Issue warning for using CREATE2 in inline assembly
2017-06-14 16:00:39 +02:00
chriseth
1ae0e082b3
Merge pull request #2392 from federicobond/disallow-trailing-commas
...
Forbid trailing commas in named arguments
2017-06-14 15:31:40 +02:00
chriseth
1b1f35762e
Enforce function arguments when parsing functional instructions.
2017-06-14 14:51:47 +02:00
chriseth
21aafaa704
Merge pull request #2331 from ethereum/ASTDocumentationEntry
...
documentation field added to ContractDefinition-Node
2017-06-14 14:32:27 +02:00
chriseth
e232a105f0
Merge pull request #2327 from ethereum/assembler-object
...
Return assembler object in AssemblyStack
2017-06-14 14:28:06 +02:00
chriseth
07cc84fade
Fix a crash about a non-callable expression.
2017-06-14 14:26:20 +02:00
chriseth
43cfab70d0
Merge pull request #2389 from ethereum/moveLabelIDs
...
Move LabelIDs to generation phase.
2017-06-14 14:12:33 +02:00
Federico Bond
fd8365df08
Forbid trailing commas in named arguments
2017-06-14 00:15:27 -03:00
chriseth
154002cda0
Move "active variable" to analysis phase.
2017-06-14 00:10:33 +02:00
chriseth
1bf717fd65
Remove struct constructor.
2017-06-14 00:03:08 +02:00
chriseth
c554145f4d
Move stack height to generation phase.
2017-06-14 00:01:06 +02:00
chriseth
45d96959f8
Move LabelIDs to generation phase.
2017-06-13 22:01:15 +02:00
Edward Ruchevits
5f7bca94e5
Reverted functionHashes output to use method signature as keys
2017-06-13 18:04:33 +01:00
Edward Ruchevits
2e816967d3
Allow including hashes of method signatures in --combined-json output
2017-06-13 17:03:17 +01:00
Yoichi Hirai
8775e77305
Add a warning about a varialbe of the name of an instruction
2017-06-13 16:57:08 +02:00
Alex Beregszaszi
05af6c9255
Warn if returndatasize/returndatacopy is used
2017-06-13 16:57:07 +02:00
Alex Beregszaszi
ca92bda886
Supply text representation of assembly
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
f0d213e6b5
Introduce MachineAssemblyObject
2017-06-09 16:40:14 +02:00
Alex Beregszaszi
fe3b46554a
Merge pull request #2362 from ethereum/lowercase_instructions
...
Use lowercase when reporting instruction error.
2017-06-09 14:49:59 +01:00
chriseth
bf2b5c746a
Use lowercase when reporting instruction error.
2017-06-09 15:17:29 +02:00
Alex Beregszaszi
8768080a02
Remove excess includes
2017-06-09 12:47:05 +01:00
Alex Beregszaszi
1da3af161f
Simplify CodeGenerator by remove seldom used case
2017-06-09 12:45:56 +01:00
Alex Beregszaszi
114c157b04
Remove obsolete AsmStack
2017-06-09 11:43:41 +01:00
Alex Beregszaszi
ae6251effd
Use inline assembly directly and not via AsmStack
2017-06-09 11:43:40 +01:00
chriseth
6b3e7f79cf
Comments and consistent variable names.
2017-06-09 10:45:36 +01:00
chriseth
308a726ad1
Fix: Copy resolver.
2017-06-08 15:52:45 +02:00
chriseth
b32d5e4cc0
Visitor bugfix.
2017-06-08 15:52:45 +02:00
chriseth
ef3d5874fe
Remove error reporter from code generation phase.
2017-06-08 15:52:45 +02:00
chriseth
19f707aeaa
Some more comments.
2017-06-08 15:52:45 +02:00
chriseth
0185f3cbf6
Correct stack height adjustment after returnsub.
2017-06-08 15:52:45 +02:00
chriseth
ba5ee71b7f
Generate only single error in inline assembly.
2017-06-08 15:52:45 +02:00
chriseth
fefd3b866d
Introduce machine-dependent stack adjustment.
2017-06-08 15:52:45 +02:00
chriseth
97cc968a13
Initial EVM1.5 assembly implementation.
2017-06-08 15:52:44 +02:00
Alex Beregszaszi
aa310f9fec
Refactor AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
502304f30b
Add analyze(block) to AssemblyStack
2017-06-07 14:42:22 +01:00
Alex Beregszaszi
937c208320
Reset error list in parseAndAnalyze
2017-06-07 14:41:44 +01:00
chriseth
1fba984966
Merge pull request #2332 from ethereum/fixLiteralPrint
...
fix Literalprint
2017-06-06 15:09:48 +02:00
djudjuu
62eafdd010
adjusted testcase and renaming
2017-06-06 13:26:23 +02:00
chriseth
b4ae188a0f
Merge pull request #2336 from ethereum/expectExpression
...
Refactor to use expectExpression in analyzer.
2017-06-01 15:57:28 +02:00
chriseth
d5408f78ad
Add comma.
2017-06-01 15:56:49 +02:00
chriseth
40f3e4413b
Improved error message.
2017-06-01 15:31:07 +02:00
Alex Beregszaszi
998ca552b8
Fix state after CompilerStack.reset()
2017-06-01 13:44:08 +01:00
chriseth
05004253ba
Refactor to use expectExpression in analyzer.
2017-06-01 14:28:39 +02:00
Alex Beregszaszi
c212d7c2e6
Remove unused functions from CompilerStack
2017-06-01 13:28:05 +01:00
djudjuu
597bf8a43d
fix Literalprint
2017-05-30 19:53:32 +02:00
chriseth
d4a57d81ba
Merge pull request #2317 from ethereum/keccak256
...
Use keccak256 in tests and replace the SHA3 instruction in assembly
2017-05-30 19:34:28 +02:00
djudjuu
2e7190534b
documentation field added to ContractDefinition-Node
2017-05-30 18:52:43 +02:00
Rhett Aultman
89b60ffbd4
Refactor error reporting
...
This commit introduces ErrorReporter, a utility class which consolidates
all of the error logging functionality into a common set of functions.
It also replaces all direct interactions with an ErrorList with calls to
an ErrorReporter.
This commit resolves issue #2209
2017-05-30 07:28:31 -07:00
Alex Beregszaszi
75e4a2be1b
Alias sha3 to keccak256 in inline assembly
2017-05-30 10:54:29 +01:00
Alex Beregszaszi
0c8beac357
Rename the SHA3 assembly instruction to KECCAK256
2017-05-30 10:54:29 +01:00
chriseth
8b29cc5535
Merge pull request #2319 from ethereum/virtualBlocks
...
Introduce virtual blocks for function arguments.
2017-05-29 16:52:51 +02:00
chriseth
4af55c78eb
Introduce virtual blocks for function arguments.
2017-05-29 16:18:16 +02:00
chriseth
9adff68ecc
Introduce LabelID typedef.
2017-05-29 15:40:32 +02:00
chriseth
2c4a107f43
Merge pull request #2311 from ethereum/julia-types
...
Validate types for Julia (part 1)
2017-05-29 14:12:38 +02:00
Alex Beregszaszi
751c97ca19
Pull out common code to a helper
2017-05-26 21:40:14 +01:00
Alex Beregszaszi
48f58aa3f9
Remove duplicate code
2017-05-26 21:02:31 +01:00
Alex Beregszaszi
9337003d5e
Use the new ParserBase API in AsmParser
2017-05-26 20:44:34 +01:00
Alex Beregszaszi
3459052ae8
Add scanner helpers to ParserBase
2017-05-26 20:44:34 +01:00
Alex Beregszaszi
2fefe3b549
Move Solidity specific methods from ParserBase to the Solidity Parser
2017-05-26 20:44:34 +01:00
Alex Beregszaszi
2a50e869d0
Move builtin type list to the top
2017-05-26 20:43:28 +01:00
Alex Beregszaszi
efadf7e41f
Change error message for invalid type
2017-05-26 20:42:17 +01:00
Alex Beregszaszi
8fe79fe706
Introduce Julia mode in AsmAnalyzer
2017-05-26 20:39:30 +01:00
Alex Beregszaszi
3b75c5b45f
Validate that only basic types are used in Julia
2017-05-26 20:39:10 +01:00
Alex Beregszaszi
dda497ca02
Move constructor to AsmAnalyzer header
2017-05-26 20:39:10 +01:00
chriseth
fe32531a16
More comments for assembly
2017-05-26 15:08:27 +02:00
chriseth
261731f7ee
Adapt EVM codegen to new namespace.
2017-05-26 15:08:27 +02:00
chriseth
71b923cc36
Move EVM codegen to libjulia.
2017-05-26 15:03:30 +02:00
chriseth
eaa13d42a0
Support multiple assembly front and backends.
2017-05-26 15:03:29 +02:00
chriseth
68e1e464be
Merge pull request #2316 from ethereum/inlineasm-cleanup
...
Better error message for elementary operations
2017-05-26 11:29:51 +02:00
chriseth
ec676ba9f2
Merge pull request #2224 from ethereum/julia-switch
...
Implement switch statement in the assembly parser/printer
2017-05-26 11:24:38 +02:00
chriseth
40d5d5a956
Also change error message.
2017-05-26 11:13:32 +02:00
Alex Beregszaszi
e410cec19a
Better error message for elementary operations
2017-05-26 09:41:53 +01:00
Alex Beregszaszi
05fcf1989c
Better error messages for invalid switch cases
2017-05-26 03:20:34 +01:00
Alex Beregszaszi
c64bd33784
Disallow instructions as a switch expression
2017-05-26 03:20:34 +01:00
Alex Beregszaszi
d745dd6542
Visit case bodies in scope filler
2017-05-26 03:20:34 +01:00
Alex Beregszaszi
ba8a79c600
Do not stop on first switch error
2017-05-26 03:20:31 +01:00
Alex Beregszaszi
e48e84ca2b
Check token within parseCase
2017-05-26 03:20:15 +01:00
Alex Beregszaszi
db3d9e0416
Switch cases are not followed by colon
2017-05-26 03:20:15 +01:00
Alex Beregszaszi
66eab1caf6
Change switch case string to Literal
2017-05-26 03:20:10 +01:00
Alex Beregszaszi
b5080860d5
Implement switch statement in the assembly parser/printer
2017-05-26 03:16:09 +01:00
Alex Beregszaszi
8c3ec16132
Scanner requires only the SourcesSet state
2017-05-24 22:45:10 +01:00
Alex Beregszaszi
338202ea96
Uniform error messages
2017-05-24 13:35:52 +01:00
Alex Beregszaszi
56fe3a6ab9
Better error messages during parsing functional instructions
2017-05-24 13:35:52 +01:00
chriseth
451acd4c9f
Merge pull request #2301 from ethereum/ASTFunctionTypeFix
...
insert ParameterList-node in FunctionType-json
2017-05-24 14:28:07 +02:00
chriseth
6873c936ed
Merge pull request #2294 from ethereum/inlineasm
...
Fix scope assert in AsmAnalyzer
2017-05-24 14:19:08 +02:00
chriseth
e980812fab
Merge pull request #2289 from ethereum/astjson-fix
...
Fix AST JSON converter type lookup
2017-05-24 13:55:56 +02:00
djudjuu
26abd61d9b
insert ParameterList-node in FunctionType-json
2017-05-24 13:52:16 +02:00
Alex Beregszaszi
74d41ad25f
Fix scope assert in AsmAnalyzer
2017-05-24 11:58:49 +01:00
Alex Beregszaszi
b77b11781d
Rename parseFunctionalInstruction to parseCall
2017-05-24 01:48:54 +01:00
Alex Beregszaszi
4f738ff1c0
Reorder AsmData for readability
2017-05-24 01:48:54 +01:00
Alex Beregszaszi
187fa50751
Rename FunctionalAssignment to Assignment
2017-05-24 01:48:53 +01:00
Alex Beregszaszi
f15d6ea45f
Rename Assignment to StackAssignment
2017-05-24 01:07:07 +01:00
Alex Beregszaszi
604d254e8c
Fix AST JSON converter type lookup
2017-05-23 23:12:40 +01:00
Alex Beregszaszi
e9b106cd0e
Merge pull request #2292 from roadriverrail/inline_asm_unused_warning
...
Drop the inline asm includes from StaticAnalyzer
2017-05-23 23:11:03 +01:00
Rhett Aultman
f735207732
Drop the inline asm includes from StaticAnalyzer
2017-05-23 06:38:17 -07:00
Alex Beregszaszi
3451a30e5c
Display actual error message and not assertion in analysis
2017-05-22 18:45:34 +01:00
Alex Beregszaszi
cb4966046d
Enable a single right hand item on let
2017-05-22 18:45:34 +01:00
Alex Beregszaszi
15b4d4def2
Support multiple variables in a variable declaration in inline assembly
2017-05-22 18:45:34 +01:00
chriseth
74d2e7311a
Merge pull request #2265 from roadriverrail/inline_asm_unused_warning
...
Analyze InlineAssembly for variable use
2017-05-22 16:34:29 +02:00
chriseth
8eead553af
Merge pull request #1810 from ethereum/compactJson
...
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00
djudjuu
e82df073d1
minor fixes and changelog update
2017-05-22 12:25:50 +02:00
Rhett Aultman
621c3fa22f
Analyze InlineAssembly for variable use
...
The unused variable checker in StaticAnalyzer did not conssider
InlineAssembly objects. This commit introduces that missing feature.
2017-05-21 15:23:05 -07:00
chriseth
7f5601fd4b
Add const
2017-05-19 20:15:28 +02:00
chriseth
69413ae32a
Review changes.
2017-05-19 20:12:12 +02:00
chriseth
e2b21e1c96
Refactor to abstract assembly to JULIA.
2017-05-19 19:20:28 +02:00
chriseth
56424bb202
Merge pull request #2262 from ethereum/interface-cleanup
...
Cleanup the external interfaces (ABI and Natspec)
2017-05-19 17:55:33 +02:00
Alex Beregszaszi
cd5d93da2a
Rename CompilerStack.metadata to CompilerStack.natspec
2017-05-19 16:11:04 +01:00
Alex Beregszaszi
81877cc594
Rename InterfaceHandler to Natspec
2017-05-19 16:11:04 +01:00
Alex Beregszaszi
12328b7848
Split ABI out of InterfaceHandler
2017-05-19 16:11:03 +01:00
Alex Beregszaszi
4bf3cbb09a
Use CompilerStack.contractABI directly
2017-05-19 15:57:36 +01:00
Alex Beregszaszi
8169e149c9
Rename CompilerStack.interface to CompilerStack.contractABI
2017-05-19 15:57:36 +01:00
djudjuu
1d22233a43
refactoring functionCallAnnotation
2017-05-19 15:48:07 +02:00
Alex Beregszaszi
ebcb27e5c1
Accept bool as a type in Julia mode
2017-05-19 09:44:16 +01:00
Alex Beregszaszi
edd0afa3c3
Support true/false literals in inline assembly
2017-05-19 09:44:16 +01:00
djudjuu
6316a76ab9
testsuite adjustment
2017-05-19 09:51:23 +02:00
djudjuu
e3583d04f7
include new InlineAssemblyInformation into JSON
2017-05-17 15:58:28 +02:00
djuju
a4ba5ace8a
prefixChanges and contractKind-field
2017-05-17 11:14:33 +02:00
djuju
2fa7646944
fixed styletypos, renaming and added helperfunction
2017-05-17 11:14:33 +02:00
Alex Beregszaszi
487eef18cc
Use different AST node names in legacy and new format
2017-05-17 11:14:33 +02:00
Alex Beregszaszi
f2a6331ffb
Support the new AST in StandardCompiler
2017-05-17 11:14:33 +02:00
chriseth
dea7b864e6
Compact format for AST-Json with backwards compatibility
2017-05-17 11:14:33 +02:00
chriseth
d9b5ff0b43
Merge pull request #2222 from ethereum/julia-types
...
Add support for types in Julia
2017-05-16 16:59:15 +02:00
Alex Beregszaszi
c0f31e4c1b
Ensure proper checks are in CompilerStack
2017-05-11 08:02:03 +01:00
Alex Beregszaszi
5b4b620d8b
Do not crash on AST if parsing failed
2017-05-11 08:02:03 +01:00
Erik Quenon Steggall
0489c99870
Added change to make compile happy on MacOS 10.9.5
2017-05-05 16:49:09 -07:00
Alex Beregszaszi
8688b63fa6
Use boost range adaptors in AsmPrinter
2017-05-05 22:31:22 +01:00
Alex Beregszaszi
d6396ee85f
Parse types in Julia mode
2017-05-05 22:31:22 +01:00
Alex Beregszaszi
07176e82de
Assert that invalid AST elements are not printed in Julia mode
2017-05-05 14:21:25 +01:00
Alex Beregszaszi
c423e140ee
Add flag for JULIA printing
2017-05-05 14:21:25 +01:00
Alex Beregszaszi
804971973d
Show better error message for Julia mode
2017-05-05 14:21:25 +01:00
Alex Beregszaszi
f1f209db40
Do not allow literal pushes in Julia
2017-05-05 14:21:25 +01:00
Alex Beregszaszi
d61f9c4d4e
Disable labels in Julia
2017-05-05 14:21:25 +01:00
chriseth
0582fcb93b
Merge pull request #2194 from ethereum/removeerrorlabel
...
Remove error label / invalid jump label.
2017-05-05 14:25:43 +02:00
chriseth
230f51efb7
Cleanup, style and additional test.
2017-05-03 11:26:21 +02:00
chriseth
e0266b79f3
Refactor: Combine bool and function pointer.
2017-05-03 11:26:21 +02:00
Rhett Aultman
a6faa5acf3
Treat returns with expressions as return param use
...
There are many cases of code where the return parameters exist mostly
as a form of documentation. This change ensures that they do not have
to be used in the function body so long as there is a return supplying
values
2017-05-03 11:26:21 +02:00
Rhett Aultman
a40c8cfb68
Warn on unused local variables
...
Analyze functions for all local variables, parameters, and named
return variables which are never used in the function, and issue
a warning.
2017-05-03 11:26:21 +02:00
Alex Beregszaszi
c09f071ff6
Merge pull request #2211 from ethereum/jsonio-fixes
...
Follow the JSON I/O spec closely
2017-05-02 16:47:14 +01:00
Alex Beregszaszi
ed3ab3506a
Follow the JSON I/O spec closely
2017-05-02 16:52:38 +02:00
chriseth
acab525fef
Merge pull request #2199 from roadriverrail/no_unary_plus
...
Deprecate use of unary '+'
2017-05-02 16:43:47 +02:00
Alex Beregszaszi
2871663cad
Remove why3 from standard compiler
2017-05-02 14:49:13 +01:00
chriseth
96870686a9
Style and stricter tests.
2017-05-02 15:48:58 +02:00
chriseth
f42a9a9408
Merge pull request #2198 from ethereum/conditionalCompilerStateReset
...
conditional reset of compilerState-Enum
2017-05-02 15:17:10 +02:00
chriseth
2891b98882
Merge pull request #2110 from federicobond/fix-posttypechecker
...
Fix PostTypeChecker retaining state across contracts
2017-05-02 12:12:46 +02:00
Rhett Aultman
e544698ad3
Deprecate use of unary '+'
...
The unary '+' serves no meaningful purpose in Solidity and it makes it
possible to produce typos with dagerous implications (e.g. 'a =+5 '),
so we are deprecating it. The SyntaxChecker currently issues warnings
on the unary '+' but will still compile it for now.
2017-04-28 17:43:19 -07:00
djuju
e9954eb325
conditional reset of compilerState-Enum
2017-04-28 18:46:27 +02:00