Rhett Aultman
e434437eb7
Unary + now a synax error (experimental 0.5.0)
...
The unary + was deprecated with a warning, but will be elevated to an
error in 0.5.0. This adds the syntax error for the 0.5.0 pragma, and
for a true 0.5.0 release we should consider removing the operator from
the parser.
2017-09-29 17:50:25 +01:00
Alex Beregszaszi
b1741b7735
Validate array length in type checker
2017-09-29 16:44:00 +01:00
chriseth
5ee3ceaef7
Remove leftover couts.
2017-09-29 12:44:39 +02:00
Alex Beregszaszi
d5d1a08b09
Pull out helper to apply address member to contract members
2017-09-28 14:54:15 +01:00
Alex Beregszaszi
aa6de49457
Simplify address overloading
2017-09-28 14:53:41 +01:00
Alex Beregszaszi
7cb4d714c7
Fix overload resolution when conflict is with members of address (balance, transfer, etc)
2017-09-28 13:57:19 +01:00
Alex Beregszaszi
010189d58e
Merge pull request #2986 from ethereum/fixsourcelocationofvariabledecsatement
...
Fix source location of VariableDeclarationStatement.
2017-09-28 13:50:23 +01:00
chriseth
639b85f498
Fix source location of VariableDeclarationStatement.
2017-09-27 19:27:36 +02:00
chriseth
3ebe29a031
Better readable encoder assembly.
2017-09-27 15:59:59 +02:00
chriseth
2940964044
ABI encoder fixes and test.
2017-09-27 15:57:39 +02:00
Alex Beregszaszi
3f783c8dad
Merge pull request #2975 from ethereum/encode-memory
...
Split encodeToMemory into packedEncode and abiEncode
2017-09-27 13:04:37 +01:00
Alex Beregszaszi
204214f070
Split encodeToMemory to packedEncode and abiEncode
2017-09-27 11:32:19 +01:00
Alex Beregszaszi
0dda5eeca3
Order GlobalContext entries
2017-09-27 11:19:53 +01:00
Alex Beregszaszi
82673b7b3f
Format GlobalContext for readability
2017-09-27 11:19:53 +01:00
Alex Beregszaszi
a657d3b1a1
Make most of the parameters mandatory in encodeToMemory
2017-09-27 11:15:27 +01:00
chriseth
9c62647f19
Merge pull request #2978 from ethereum/infer-location
...
Report correct location for inferred types in packed encoding
2017-09-27 12:13:01 +02:00
Alex Beregszaszi
dcb61352f6
Report correct location for inferred types in packed encoding
2017-09-27 10:21:24 +01:00
Alex Beregszaszi
ee65ecfb3b
Ensure that address types are always declared as 160bit
2017-09-26 22:46:33 +01:00
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