Commit Graph

1406 Commits

Author SHA1 Message Date
chriseth
ab7a22f4a0 Disallow implementation of abstract function by constructor of derived class. 2016-06-06 19:38:22 +02:00
chriseth
754a992500 Inaccessible dynamic types 2016-06-02 12:52:25 +02:00
chriseth
708129abd5 Fixes for invalid cleanups for small types. 2016-05-20 16:52:40 +02:00
chriseth
2f37356c58 Merge pull request #565 from VoR0220/fixedDataType
Fixed data typename fixes and documentation
2016-05-20 16:48:50 +02:00
chriseth
6b859a2bff Refactor compiler to avoid weird swap of contexts 2016-05-20 14:20:45 +02:00
VoR0220
9192357452 updated docs
types

reference
2016-05-18 16:36:05 -05:00
VoR0220
6289410152 explicit conversion and loosening of binary operations on integer and fixed point types...still other problems
fixed some spaces and deleted lines from failing test
2016-05-18 15:52:09 -05:00
VoR0220
3ba308fb2e current debugging info 2016-05-18 15:52:09 -05:00
chriseth
775b757d0e Merge pull request #545 from chriseth/accessFunLabels
Allow access to functions in inline assembly.
2016-05-17 23:59:13 +02:00
moneroexample
9d237fbfdc fix: error: call of overloaded ‘list(int, <brace-enclosed initializer list>)’
Issue: https://github.com/ethereum/solidity/issues/574

Compilation of webthree-umbrella on Arch with gcc 6.1 results in the following
error:

/home/mwo/webthree-umbrella/solidity/libsolidity/analysis/NameAndTypeResolver.cpp:299:51: error: call of overloaded ‘list(int, <brace-enclosed initializer list>)’ is ambiguous
  list<list<ContractDefinition const*>> input(1, {});

This can be overcome by explicitly specifying initial value, for example:

  list<list<ContractDefinition const*>> input(1, list<ContractDefinition const*>{})
2016-05-17 13:27:39 +08:00
chriseth
67ca3bb4b9 Allow access to functions in inline assembly. 2016-05-12 12:30:48 +02:00
chriseth
d4206b7cd0 Remove unused tests and add asserts for not implemented parts in code generation.
quick fix on christian's rational

change so that ubuntu will stop yelling

be more specific with rational declaration for Windows sake

rational in namespace correction for windows
2016-05-10 16:03:33 -05:00
chriseth
656405240e Simplify interface of RationalNumber. 2016-05-10 19:40:37 +02:00
chriseth
cf226f0607 Special case for moving sign bit to fractional part. 2016-05-10 19:40:37 +02:00
chriseth
02e1c9be0d Cleanup. 2016-05-10 19:40:37 +02:00
chriseth
4dfe9a216c Disallow explicit fixed->enum, but allow bytes->fixed. 2016-05-10 19:40:37 +02:00
chriseth
ef7049f9a6 Some cleanup. 2016-05-10 19:40:37 +02:00
chriseth
22318c0c1a Replace "unsigned int" by "unsigned". 2016-05-10 19:40:37 +02:00
chriseth
80c368dac1 Prefer mobileType() to check rational range. 2016-05-10 19:40:35 +02:00
VoR0220
a6fc3c8f30 reorganized tests and fixed mobile types and implicit conversions of rationals and fixed point types
one final tweak

check for null types
2016-05-09 11:41:03 -05:00
VoR0220
bfc238c8d1 updated algorithm for bit finding...now to figure out literal value
tiny fixups

changed location of the check

got rid of extra space and fixed a couple of things

added binary results bits

change back literal value
2016-05-09 11:41:03 -05:00
VoR0220
5bddb2d6ff changed algorithm for finding bits 2016-05-09 11:41:03 -05:00
VoR0220
4b3e1f140c much better way of doing modulus 2016-05-09 11:41:03 -05:00
VoR0220
82039b732e added bytes conversion tests, resolved that, converted to binary scaling, refactored the find algo to prevent large numbers and take into account integer bytes
think we're good on solidity type name resolution now

removed couts

updates to documentation and more removed couts along with literal value implementation

forgot semicolons
2016-05-09 11:41:03 -05:00
VoR0220
f0ea817580 fixing modulus and Solidity Name and Type Resolution
minor fixes

current attempts at binary fixup
2016-05-09 11:41:03 -05:00
VoR0220
f67bfd24a3 rational renaming 2016-05-09 11:41:03 -05:00
VoR0220
4b749fc333 changed names for Rational Constants and categories 2016-05-09 11:41:02 -05:00
VoR0220
4d283b2b30 currently what we have 2016-05-09 11:41:02 -05:00
RJ Catalano
93295ae8f8 got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be
slight changes to how to flip the rational negative around...still trying to figure it out

tests added

updated tests

odd differences in trying soltest from solc binary, let me know if you can replicate

test not working for odd reason

fixed test problem with fixed literals...still need a way to log this error

broken up the tests, added some, changed some things in types and began compiler work

moar tests and prepping for rebuilding much of the types.cpp file

further fixing

infinite loop still happening but it's somewhere in the fixedPoint methodd

fractional bits needed algo improved! Eliminated 2 errors

Corrected problems with the previous commit. No infinite loops. Actually appear to have corrected an error
2016-05-09 11:41:02 -05:00
RJ Catalano
a1a2eac5fd size capabilities functioning properly for fixed types 2016-05-09 11:41:02 -05:00
RJ Catalano
91fda50922 fixed problem with var...probably a conversion problem for fixed in size capabilities
adding fixed type tests

Removing bitshift and regrouping fixed type tests together
2016-05-09 11:41:02 -05:00
RJ Catalano
dff1a26f55 fix for token bug, also quick fix for the wei and seconds 2016-05-09 11:41:02 -05:00
RJ Catalano
6fa5e0fac9 Rational implemented...trying to figure out exponential 2016-05-09 11:41:02 -05:00
RJ Catalano
9a075458ad initial work for fixed types...potentially needing a constant literal type for this
notation

Rational implemented...trying to figure out exponential

fix for token bug, also quick fix for the wei and seconds

fixed problem with var...probably a conversion problem for fixed in size capabilities

adding fixed type tests

Removing bitshift and regrouping fixed type tests together

size capabilities functioning properly for fixed types

got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be

slight changes to how to flip the rational negative around...still trying to figure it out

tests added

updated tests

odd differences in trying soltest from solc binary, let me know if you can replicate

test not working for odd reason

fixed test problem with fixed literals...still need a way to log this error

broken up the tests, added some, changed some things in types and began compiler work

moar tests and prepping for rebuilding much of the types.cpp file

further fixing

initial work for fixed types...potentially needing a constant literal type for this
2016-05-09 11:41:02 -05:00
chriseth
7ea3d950d7 Allow calling internal functions of libraries.
Internal functions of libraries can be called as if the library were a
base contract of the calling contract. As the calling convention for
internal functions is to not create a new call context, the code of
these functions will be pulled into the context of the caller,
duplicating their code. This might pull in code of further internal or
even private functions.

The use case for such functions is to allow libraries which can operate
on memory types such that these types can also be modified in place.
2016-05-03 22:41:18 +02:00
chriseth
652bc583c0 Remove non-determinism in missing code queue. 2016-05-03 01:14:26 +02:00
chriseth
8704dd0f7f Windows fix. 2016-04-21 16:13:39 +02:00
chriseth
ed9da5171b Source location for inline assembly. 2016-04-19 18:35:21 +02:00
chriseth
b125090208 Bugfix: static arrays in constructor arguments 2016-04-15 18:42:44 +02:00
chriseth
35ffcac35b Fix for bug about deleting dynamic array of structs. 2016-04-15 16:49:59 +02:00
Bob Summerwill
539b392a6d Merge pull request #496 from chriseth/removelog
Remove log.h from solidity.
2016-04-11 21:50:05 -07:00
chriseth
6f54b13d7a Remove log.h from solidity. 2016-04-12 01:03:46 +02:00
chriseth
f227050c20 Make solidity independent from ethcore. 2016-04-06 20:56:00 +02:00
chriseth
193b1c940c Merge pull request #475 from chriseth/byteasm
Allow "byte" in inline assembly.
2016-04-06 16:40:20 +02:00
chriseth
26a91109a7 Allow "byte" in inline assembly. 2016-04-06 12:31:31 +02:00
Dimitry
d2cee6f9c6 reduce unnecessary solidity:: namespace 2016-04-04 15:41:35 +04:00
Dimitry
d43d4347bf return instructionInfo style 2016-04-04 15:27:09 +04:00
Dimitry
9816510065 enable solidity test 2016-04-04 15:18:24 +04:00
Dimitry
858c41260d rename namespace for instruction.h/cpp in libevmasm 2016-04-02 15:56:43 +03:00
Dimitry
ccbd3ff63f move libevmcore to solidity 2016-04-01 23:11:01 +03:00
Bob Summerwill
c492d9be00 Merge pull request #470 from chriseth/redundancy
Remove code duplication in source references formatter.
2016-03-31 20:31:15 -03:00
chriseth
285fdf3b0a Merge pull request #457 from VoR0220/tokenNameAndStringFix
Fix for Token::name and token::toString
2016-04-01 01:08:59 +02:00
chriseth
ea7325d2d2 Remove code duplication in source references formatter. 2016-04-01 00:54:12 +02:00
VoR0220
3fc67245bf readding conditionals but with slight changes 2016-03-31 12:15:49 -05:00
Bob Summerwill
15a4f4d322 Merge pull request #465 from chriseth/fixindexaccess
Clean higher order bits before array index access.
2016-03-31 13:46:35 -03:00
chriseth
e31ecc8f77 Do not use source reference if it is empty. 2016-03-31 13:05:41 +02:00
chriseth
2c29492227 Correctly clean higher order bits for index access. 2016-03-31 10:33:45 +02:00
VoR0220
1b39d3b5d4 solAsserts added and some changes rolled back. 2016-03-30 13:15:54 -05:00
VoR0220
9404600b3f helper function in scanner and corresponding edits to parserBase 2016-03-30 13:09:38 -05:00
VoR0220
6c61e28dc2 Got it working exactly like you wanted ;) 2016-03-30 11:54:00 -05:00
VoR0220
6395168371 change lexical cast to unsigned int 2016-03-30 11:54:00 -05:00
VoR0220
ddd16d7655 Fix for Token::name and token::toString 2016-03-30 11:54:00 -05:00
chriseth
f049430723 Code generation (missing external access and source locations). 2016-03-30 02:37:00 +02:00
chriseth
949b00ed59 Parsing for inline assembly. 2016-03-30 02:37:00 +02:00
chriseth
79167aa897 Move libevmasm and lll. 2016-03-23 23:10:10 +01:00
Bob Summerwill
a1ce66b304 Fixed Windows warnings 2016-03-18 01:22:15 -07:00
chriseth
9b00290d74 Remove timestamp again and some fixes for ufixed parsing. 2016-03-11 17:50:09 +01:00
chriseth
299fef0c79 Do not allow value for delegatecall functions. 2016-03-11 17:50:09 +01:00
RJ Catalano
d0054a8d29 added keyword type and some tests, changes in lexical cast 2016-03-11 17:50:09 +01:00
RJ Catalano
b8bcb706e9 stylistic change, and got lexical cast to work with an iterator range 2016-03-11 17:49:32 +01:00
LianaHus
58e07151e3 - inline and assembly keywords added
- some style fixes
2016-03-11 17:49:32 +01:00
RJ Catalano
67793f1aed changed documentation and using lexical cast 2016-03-11 17:49:32 +01:00
RJ Catalano
9f5c3977fb changed extractUnsigned to handle iterators rather than a string 2016-03-11 17:49:32 +01:00
RJ Catalano
2738f4066a changed 1 to 0 in invalid argument catch block 2016-03-11 17:49:32 +01:00
RJ Catalano
93114949a3 needed this one string of notation 2016-03-11 17:49:32 +01:00
RJ Catalano
953e92b6f5 added from identifier or keyword handling of fixed types 2016-03-11 17:49:32 +01:00
RJ Catalano
29b74be413 fixed keyword added in for token type 2016-03-11 17:49:32 +01:00
chriseth
e5514becb8 BREAKING: Implement delegatecall and make default for library calls. 2016-03-11 17:49:32 +01:00
chriseth
94cbf15cfc Buildfix. 2016-02-22 18:12:58 +01:00
chriseth
968934c05d Move reusable parser components into base class. 2016-02-22 18:02:29 +01:00
RJ Catalano
9b67969fd6 further optimization, splitting function into pieces
generating strings on the fly, changed name, and added two tests
2016-02-18 11:23:00 -06:00
RJ Catalano
d2c0712f36 added const correctness to extract functions in Token
optimizations added in

more elegant solution created for m declaration

ubuntu wants to get rid of 0 <= first statement...so I will

change returnToken to token
2016-02-18 11:22:58 -06:00
RJ Catalano
84f2eb461b added two functions in Token to handle long identifiers, redid fromIdentifierOrKeyword, and made complementary changes in scanner and parser 2016-02-18 11:22:58 -06:00
RJ Catalano
f4da126018 tests added and changes made
fixed some silly problems in Token.cpp

windows error fix
2016-02-18 11:22:56 -06:00
RJ Catalano
7b918a7bc7 changes to redefine the token list, the scanner, and the parser and how they pass around variable types of different sizes
not ready for change to FixedPoint just yet

made this more const correct and added a switch statement for easier reading
2016-02-18 11:22:52 -06:00
LianaHus
5fb8953003 style fixes 2016-02-18 13:29:20 +01:00
chriseth
4a837169c5 Fix segfault when using wrong number of constructor arguments. 2016-02-11 17:12:30 +01:00
chriseth
29faf1b298 Index access for bytesXX. 2016-02-09 17:07:04 +01:00
chriseth
33b02a0d1b Fix uint178 problem. 2016-01-25 21:05:13 +01:00
Lu Guanqun
d36537e737 cond-expr: use the mobile type instead of the original type 2016-01-22 17:14:01 +00:00
Lu Guanqun
c8b0533933 [cond-expr] change the end to end test 2016-01-22 17:14:01 +00:00
Lu Guanqun
ac3019298a [cond-expr] add a test for different types 2016-01-22 17:14:01 +00:00
Lu Guanqun
1cd3288311 [cond-expr] add a test to assign memory to storage 2016-01-22 17:14:01 +00:00
Lu Guanqun
bf7daf0814 [cond-expr] don't allow conditional as left value for the first stage 2016-01-22 17:14:00 +00:00
Lu Guanqun
b003290638 [cond-expr] fixup according to code review 2016-01-22 17:14:00 +00:00
Lu Guanqun
82ee9503e9 [cond-expr] change endVisit() to visit() 2016-01-22 17:14:00 +00:00
Lu Guanqun
c781b130ef [cond-expr] make the codegen one instruction less 2016-01-22 17:14:00 +00:00
Lu Guanqun
36a758e224 [cond-expr] fix the crash in ExpressionStatement 2016-01-22 17:14:00 +00:00
Lu Guanqun
9cd96222da [cond-expr] support conditional expression as lvalue 2016-01-22 17:14:00 +00:00
Lu Guanqun
ff4f1666ab [cond-expr] generate assembly for _ ? _ : _ 2016-01-22 17:14:00 +00:00
Lu Guanqun
047172eb9a [cond-expr] add type checker 2016-01-22 17:14:00 +00:00
Lu Guanqun
7eefa838a3 [cond-expr] parse _ ? _ : _ into conditional AST node 2016-01-22 17:14:00 +00:00
Lu Guanqun
4563d4bd3c [cond-expr] add visitor related functions 2016-01-22 17:14:00 +00:00
Lu Guanqun
4fa0326813 [cond-expr] add an AST node 2016-01-22 17:14:00 +00:00
chriseth
67c855c583 Merge pull request #356 from guanqun/break-not-in-loop
check whether break/continue is in the loop
2016-01-20 19:23:23 +01:00
Lu Guanqun
cb3e07acfc remove the unused line 2016-01-19 15:00:19 +00:00
chriseth
d21c4276b3 Merge pull request #351 from chriseth/autoload
Automatically load imported files in solc.
2016-01-19 13:14:25 +01:00
Lu Guanqun
df728581ce add another test case for continue not in loop 2016-01-19 03:24:58 +00:00
Lu Guanqun
c8886ed5cf code changes according to Chris's comments 2016-01-19 02:16:13 +00:00
chriseth
0099513cd4 Merge pull request #347 from chriseth/libraryNameClashes
Detect library name clashes
2016-01-18 09:24:11 +01:00
chriseth
2c5d045729 Merge pull request #359 from LianaHus/sol_only_one_array_as_state_var
fixed ICError when creating EI for structs containing only mapping or arrays
2016-01-18 09:23:21 +01:00
Liana Husikyan
9613a94153 Update TypeChecker.cpp 2016-01-15 18:11:05 +01:00
LianaHus
b2daa5a9d8 fixed assert on EI creation for structs containing only mapping or arrays 2016-01-15 17:36:06 +01:00
Paweł Bylica
31863528a4 Remove unnecesary std::move 2016-01-15 14:04:18 +01:00
Lu Guanqun
e130bc7e7c check whether break/continue is in the loop 2016-01-15 15:12:23 +08:00
chriseth
8f7c4e0cc2 Build fix for MacOS. 2016-01-14 14:47:32 +01:00
chriseth
17199edb4f Set error flag to true. 2016-01-14 11:36:13 +01:00
chriseth
2364c55735 Detect library name clashes. 2016-01-14 11:36:13 +01:00
chriseth
d2f18c73f7 Merge pull request #346 from chriseth/importAliases
Allow aliases during import.
2016-01-13 17:29:34 +01:00
RJ Catalano
c45593a444 clarification on dynamic arrays, switcheroo on typepointer, and a documentation test added 2016-01-11 23:41:20 -06:00
chriseth
287f0a2ddf Autoload files in solc. 2016-01-12 01:05:05 +01:00
RJ Catalano
4a6815c9bd Merge branch 'develop' of https://github.com/ethereum/solidity into develop 2016-01-11 15:39:35 -06:00
RJ Catalano
ac664e7f86 final changes to typechecker, the expression compiler, and a couple more tests for good measure 2016-01-11 14:25:59 -06:00
chriseth
f20a604c5a Allow aliases during import. 2016-01-11 13:56:02 +01:00
RJ
c78b9c5737 Update ExpressionCompiler.cpp 2016-01-10 21:49:36 -06:00
RJ
72a641fe9f Update ExpressionCompiler.cpp 2016-01-10 21:37:47 -06:00
RJ
e18eaa4615 Update ExpressionCompiler.cpp 2016-01-10 01:12:17 -06:00
RJ
df9dfa8fef find common type 2016-01-10 01:09:58 -06:00
chriseth
d3c8847726 Fixed a crash during type checking. 2016-01-08 15:20:54 +01:00
chriseth
b158e48c1a Merge pull request #338 from guanqun/add_paren
support syntax "(x) = 3"
2016-01-05 13:15:29 +01:00
chriseth
e27bfa023d Merge pull request #317 from chriseth/pathsEverywhere
Use paths instead of simple identifiers wherever possible.
2016-01-04 11:47:11 +01:00
Lu Guanqun
568da11369 support decayed tuple expression as left value 2016-01-04 16:11:36 +08:00
chriseth
0e2fa39fad Use paths instead of simple identifiers wherever possible. 2015-12-21 18:44:21 +01:00
chriseth
2466fb68a0 Merge pull request #308 from chriseth/fixoverloadbug
Fix bug preventing overloads of different array types.
2015-12-21 15:37:51 +01:00
chriseth
6f78998aaf Merge pull request #309 from chriseth/fix_cross_contract_enum_access
Add structs and enums to contract types.
2015-12-21 15:37:24 +01:00
chriseth
6c6295b74e Merge pull request #311 from guanqun/correct-boolean-literal-position
correct true/false literal's source
2015-12-18 17:14:57 +01:00
chriseth
54e3637d23 Add structs and enums to contract types. 2015-12-18 16:50:14 +01:00
Lu Guanqun
e4f713b55b correct true/false literal's source
Before:
        Literal, token: true value: true
           Type: bool
           Source: "true;"

After:
        Literal, token: true value: true
           Type: bool
           Source: "true"

Extra token is removed.
2015-12-18 23:48:34 +08:00
chriseth
79c5d032fe Fix bug preventing overloads of different array types. 2015-12-18 13:56:37 +01:00
chriseth
603dc58040 Simple aliasing during import. 2015-12-18 12:46:56 +01:00
chriseth
d3c459b5a9 Parse complex import directives. 2015-12-18 12:46:54 +01:00
RJ Catalano
ed1dd50acd changed error message 2015-12-16 17:26:41 -06:00
RJ Catalano
905d55e34f updated tests and much simpler algorithm for parsing errors 2015-12-16 16:47:37 -06:00
RJ Catalano
fe04d7f7f7 added one more test and realized that there was one last change before the parser is perfect 2015-12-16 14:50:40 -06:00
RJ Catalano
de969945ea Parsing is complete 2015-12-16 13:17:41 -06:00
RJ Catalano
0ba24a5289 changed a couple of small nuances, made an attempt at fixing the parsing in the inline arrays case (fails), and added test for inline arrays per Chriseth request 2015-12-16 12:55:52 -06:00
RJ Catalano
caa6202f62 temporary assert added 2015-12-16 10:34:16 -06:00
RJ Catalano
c8e4e9c05c still not able to get types resolved, however it is compiling 2015-12-15 16:44:11 -06:00
RJ Catalano
9ab066de8c new tests 2015-12-15 14:47:09 -06:00
RJ Catalano
aebce8a1d5 now is compiling and passing soltest...but I think there may be a few more things to do 2015-12-15 12:22:52 -06:00
RJ Catalano
5a462afd03 fixed case statements 2015-12-15 11:37:00 -06:00
RJ Catalano
767103be57 changing Tuple Constructor 2015-12-15 11:16:54 -06:00
RJ Catalano
84241804dc updated attempt...still a bit more work to do but here's what's current 2015-12-15 11:00:35 -06:00
RJ Catalano
42c4339404 updated attempt, a couple of more things to sort through and change 2015-12-15 10:57:57 -06:00
chriseth
591a4f1ff4 Merge pull request #288 from chriseth/import_contexts
Do not clutter importee when importing.
2015-12-15 11:43:59 +01:00
chriseth
53da78e609 Style. 2015-12-15 09:57:05 +01:00
RJ Catalano
574e48b0b5 Inline array declarations complete 2015-12-14 17:40:35 -06:00
chriseth
251e7aa462 Merge pull request #289 from chriseth/fix_base_constructor_params
Fix: Type checker crash for wrong number of base constructor arguments.
2015-12-10 15:48:48 +01:00
chriseth
f8228e8ab1 Relative paths in import directives. 2015-12-09 19:21:02 +01:00
chriseth
7cb7818cea Source units are independent scopes. 2015-12-09 19:09:24 +01:00
chriseth
39f57a9c71 Fix: Segfaults connected to paramater types.
parameterTypes does not return by const reference anymore.
2015-12-09 17:57:34 +01:00
chriseth
f5b184323d Fix: Type checker crash for wrong number of base constructor arguments. 2015-12-09 17:37:19 +01:00
chriseth
e510e7e792 Bugfix concerning pointers to moved data. 2015-12-08 12:41:24 +01:00
chriseth
7f415da886 Code generation for calling bound methods. 2015-12-01 12:35:34 +01:00
chriseth
e853eb22fa Merge pull request #261 from chriseth/dataloc
Bugfix for explicit memory types in libraries.
2015-12-01 12:15:17 +01:00
chriseth
7e3bf833ae Bugfix for explicit memory types in libraries. 2015-11-30 19:46:26 +01:00
chriseth
35b310cfaf Simplify and optimise stack rotation. 2015-11-30 18:50:47 +01:00
chriseth
e9c7837c15 Merge pull request #251 from chriseth/bind2
Bind library functions to types.
2015-11-30 16:06:44 +01:00
chriseth
a8736b7b27 Merge pull request #256 from chriseth/selfdestruct
Introduce selfdestruct alias for suicide.
2015-11-30 16:06:18 +01:00
chriseth
6796afc2f8 Bugfix for constructor unpacking with fixed-size arrays. 2015-11-29 01:03:39 +01:00
chriseth
f9e52c9db1 Also check the object type for bound functions. 2015-11-29 00:16:07 +01:00
chriseth
93b3237c6a Add bound functions to types. 2015-11-29 00:16:07 +01:00
chriseth
b97bb086de Introduce selfdestruct alias for suicide. 2015-11-29 00:10:07 +01:00
chriseth
d71cd3aa2b Added the using x for y directive. 2015-11-26 17:49:39 +01:00
chriseth
09b2f9acb7 Resolve type names using regular AST visit. 2015-11-26 17:49:02 +01:00
chriseth
4aaa150674 Convert filter to template function. 2015-11-26 17:28:44 +01:00
chriseth
cc2df5f9f2 Invalidate cached members if scope changes. 2015-11-26 15:37:55 +01:00
chriseth
b47d593252 Do not store elements of a contract by AST node type. 2015-11-26 15:37:55 +01:00
chriseth
86495dfc57 Make members context-sensitive. 2015-11-26 15:37:55 +01:00
chriseth
e06768e8b5 Fix MSVC errors and warnings. 2015-11-26 14:47:28 +01:00
chriseth
6a2a946200 Make some functions const. 2015-11-26 13:44:09 +01:00
chriseth
879844dd0a Code generation for creating arrays. 2015-11-26 13:10:12 +01:00
chriseth
bf55aa6ae2 Type checking for creating new arrays. 2015-11-26 13:10:12 +01:00
chriseth
30b325fdc1 Allow "new expressions" also for general type names.
Breaking change: If you want to send value with a contract creation, you
have to use parentheses now:

`(new ContractName).value(2 ether)(arg1, arg2)`
2015-11-26 13:10:12 +01:00
chriseth
f86451cd68 Fix solidity dependencies. 2015-11-26 12:40:15 +01:00
chriseth
20542d1623 Style. 2015-11-25 14:24:00 +01:00
chriseth
36ba7d11ca Again some why3 fixes with regards to separators in blocks. 2015-11-25 14:24:00 +01:00
chriseth
ce1e73a734 Merge pull request #245 from chriseth/buildfixes
Build dependency fixes.
2015-11-25 14:03:29 +01:00
chriseth
aa8e9e66ed Merge pull request #244 from chriseth/fix_stringAlloc
Fix for memory allocation bug.
2015-11-24 16:18:41 +01:00
chriseth
46bc70e709 Build dependency fixes. 2015-11-24 16:12:42 +01:00
chriseth
68f1da1e3a Fixed string inside struct allocation bug. 2015-11-24 14:54:37 +01:00
chriseth
e59b9b445a Merge pull request #241 from chriseth/why3VariablesInConditions
Why3 variables in conditions
2015-11-24 11:33:35 +01:00
chriseth
10fe0a2434 Style. 2015-11-23 16:30:51 +01:00
Gav Wood
2554d6104a Merge pull request #236 from ethereum/hot_gav
Fix up for new API from EIP-1.1.
2015-11-23 12:42:28 +01:00
chriseth
806507d5c0 addmod and mulmod for why3. 2015-11-23 00:58:17 +01:00
chriseth
82a6ab486d Why3: Direct references to variables using #. 2015-11-23 00:58:17 +01:00
Gav Wood
bff172cf65 Fix up for new API from EIP-1.1. 2015-11-21 14:34:21 +01:00
chriseth
284d8f8b13 Merge pull request #229 from chriseth/fv_storage_types
Formal Verification: State variables.
2015-11-19 13:16:23 +01:00
chriseth
8dfc964e7d Merge pull request #227 from chriseth/addmod
Addmod and mulmod.
2015-11-19 13:16:13 +01:00
Gav Wood
3be0ae6e2c Merge pull request #204 from ethereum/hot_gav
The Big Refactor
2015-11-19 12:20:46 +01:00
Gav Wood
938b6793f1 Minor API change - must provide SealEngine to Executive now. 2015-11-19 10:19:53 +01:00
chriseth
12f19fa46b Formal Verification: State variables. 2015-11-19 02:04:33 +01:00
chriseth
0cf8d022ae Addmod and mulmod. 2015-11-18 17:12:39 +01:00
chriseth
f4de369bad Merge pull request #218 from chriseth/fix_overwriteMemory
Fix memory overwrite problem for arrays.
2015-11-17 14:46:19 +01:00
chriseth
0c900f9b8a Fix memory overwrite problem for arrays. 2015-11-16 18:32:21 +01:00
chriseth
a35f91816b Fix dynamic indexed event arguments - applies sha3. 2015-11-16 17:09:09 +01:00
chriseth
34829ae764 Fix problems with statement blocks. 2015-11-11 15:21:01 +01:00
LianaHus
a15d2bbb52 style fix 2015-11-06 21:07:42 +01:00
LianaHus
da47f9df7b style fixes 2015-11-06 20:56:14 +01:00
LianaHus
63060fc1f0 fixed test framework 2015-11-06 18:45:06 +01:00
LianaHus
7eb162c0df fix 2015-11-06 18:45:06 +01:00
LianaHus
79177de80b fixed return valu for resolver 2015-11-06 18:45:06 +01:00
LianaHus
3f726825fb added SourceLocations to error reporting for ReferenceResolver 2015-11-06 18:45:06 +01:00
LianaHus
ff421a9d65 passed SourceLocations instead of nodes to the error reporting function 2015-11-06 18:45:06 +01:00
LianaHus
02d060ea5c fixed build 2015-11-06 18:45:06 +01:00
LianaHus
1a27bf8a39 added errors tu ReferencesResolver 2015-11-06 18:45:06 +01:00
chriseth
907cf28f49 Fix: Cope with non-existing commit hash. 2015-11-02 18:03:04 +01:00
chriseth
a5c227778d Bugfix: Returning literal strings in tuples. 2015-10-31 23:13:45 +01:00
chriseth
56f5d58850 Rename error type. 2015-10-27 17:45:58 +01:00
chriseth
a957322fd7 Preliminary why3 code output. 2015-10-27 00:49:27 +01:00
chriseth
8fb49d85f9 Allow docstrings for statements. 2015-10-26 19:47:25 +01:00
chriseth
af4d687062 Fix indent. 2015-10-26 17:21:32 +01:00
chriseth
b4f561680a Store docstrings in AST annotations. 2015-10-26 15:24:36 +01:00
chriseth
7a9f8d9f35 Merge pull request #171 from LianaHus/sol_change_expected_error_in_parser
Sol change "expected" errors in parser
2015-10-23 13:25:29 +02:00
LianaHus
d8865f9f05 more corrections 2015-10-23 12:56:50 +02:00
chriseth
e48ee59549 Fix override warning. 2015-10-23 12:51:49 +02:00
LianaHus
6e13853421 modified error msg 2015-10-23 12:44:26 +02:00
chriseth
e3dffb611f File reorganisation. 2015-10-21 00:46:01 +02:00
chriseth
87079bd3fd Correctly parse ambiguities like A.B[10] x and x.y[10] = 3. 2015-10-16 16:12:25 +02:00
chriseth
452d473293 Merge pull request #143 from chriseth/loneStructArray
Fix errors when struct array type is used on its own.
2015-10-16 15:20:44 +02:00
chriseth
102114176c Merge pull request #142 from chriseth/fixWarnings
Fix warning.
2015-10-16 15:20:36 +02:00
chriseth
fd8eb2d074 Merge pull request #141 from chriseth/fixExternalTypes
Do not include function in interface list if there are errors.
2015-10-16 15:20:25 +02:00
chriseth
7b56206a98 Do not catch InternalCompilerErrors as part of fatal error handling.
InternalCompilerErrors always have to end the whole compilation process because a serious inconsistency was detected.
2015-10-16 14:52:01 +02:00
chriseth
ead0478f26 Fix errors when struct array type is used on its own. 2015-10-16 14:36:30 +02:00
chriseth
02a3c1d999 Fix warning. 2015-10-16 13:48:46 +02:00
chriseth
cd9132672a Do not include function in interface list if there are errors. 2015-10-16 13:11:16 +02:00
chriseth
52eaa477d4 Merge pull request #132 from chriseth/tupleExpression
Tuple expressions and destructuring assignments
2015-10-16 10:01:34 +02:00
chriseth
2920a32ae8 Fixed indentation. 2015-10-16 10:01:22 +02:00
chriseth
030c868f58 Merge pull request #136 from LianaHus/sol_error_types_refuctoring
changed the way of reporting error during contract checking
2015-10-15 18:30:32 +02:00
LianaHus
ec5b9c2e92 changed the way of reporting error during contract checking 2015-10-15 18:15:52 +02:00
chriseth
1d4219d43d Some fixes taking other pull requests into account. 2015-10-15 18:14:14 +02:00
chriseth
e21df35416 MacOS fix. 2015-10-15 17:38:42 +02:00
chriseth
ae5b12f54b Fix compiler warnings. 2015-10-15 17:38:42 +02:00
chriseth
029b819489 Wildcards. 2015-10-15 17:38:42 +02:00
chriseth
039b2a764f Destructuring assignments. 2015-10-15 17:38:42 +02:00
chriseth
7ebd536e79 Tuple expressions. 2015-10-15 17:38:42 +02:00
chriseth
7ba42f4707 Merge pull request #130 from LefterisJP/dynamic_array_push
Dynamic array push
2015-10-15 17:37:15 +02:00
LianaHus
b2e787b803 missing const 2015-10-15 16:59:38 +02:00
LianaHus
2348a4ef34 indent 2015-10-15 16:56:12 +02:00
LianaHus
656e749b1e added const 2015-10-15 16:51:01 +02:00
LianaHus
162d021c3f some more style fixes 2015-10-15 16:27:26 +02:00
LianaHus
3871e77946 style fixes 2015-10-15 16:13:52 +02:00
LianaHus
68e126dc7d style fixes mostly 2015-10-15 16:08:02 +02:00
LianaHus
cd6262998c removed commit 2015-10-15 15:16:31 +02:00
Lefteris Karapetsas
a823de2d58 push() for byte arrays also properly implemented 2015-10-15 14:37:11 +02:00
LianaHus
771f20b595 mainly style fixes/renaming 2015-10-15 14:36:23 +02:00
Lefteris Karapetsas
9224c1f712 Working implementation of arraypush
ByteArrayPush() gets a test but is ignored for now, since there are
still some issues with its implementation
2015-10-15 13:54:59 +02:00
LianaHus
675aed1edf fixed new tests 2015-10-15 11:50:25 +02:00
LianaHus
7a7a7dcbb5 fixes error after conflict resolving 2015-10-15 11:10:55 +02:00
Lefteris Karapetsas
a521843f6b Implement Dynamic array push and fix test
Still a work in progress. There is a disturbance in the stack at the
moment and that's why there are some cout statements left for debugging.
2015-10-15 10:52:30 +02:00
Lefteris Karapetsas
3287cd464f WIP - Expression compiler for array push 2015-10-15 10:52:30 +02:00
LianaHus
c3491e4469 errors instead of exceptions
Conflicts:
	libsolidity/CompilerStack.cpp
	libsolidity/NameAndTypeResolver.cpp
	libsolidity/NameAndTypeResolver.h
	libsolidity/TypeChecker.cpp
	test/libsolidity/SolidityNameAndTypeResolution.cpp
2015-10-14 20:37:41 +02:00
LianaHus
8f7f22c5a6 some fixes 2015-10-14 20:27:44 +02:00
LianaHus
742e5b259a added Error class for all kind of errors
Conflicts:
	libsolidity/Exceptions.h
2015-10-14 20:27:41 +02:00
LianaHus
95ad872678 added Error class for all kind of errors
Conflicts:
	libsolidity/Exceptions.h

Conflicts:
	libsolidity/ReferencesResolver.cpp
2015-10-14 20:27:30 +02:00
chriseth
72f7792f8e Some further test fixes. 2015-10-13 14:31:24 +02:00
chriseth
13d7bc4ee8 Some more tests and typos fixed. 2015-10-13 12:22:57 +02:00
chriseth
deebc7e860 Multi-variable declarations. 2015-10-13 12:16:23 +02:00
chriseth
a5d12b8761 Introduced tuple type and added multi variable declarations to type
checker.
2015-10-09 19:35:41 +02:00
chriseth
b9a166061b Refactoring to allow multi-variable declarations. 2015-10-08 18:25:44 +02:00
chriseth
35de03626f Check invalid integer constants for functions accepting arbitrary arguments. 2015-10-07 18:13:20 +02:00
chriseth
24d04087d2 Resolve binary dependencies properly. 2015-10-07 17:35:07 +02:00
chriseth
68bf6e60c5 Merge pull request #122 from chriseth/anonymousEventsWithFourIndexedParams
Allow four indexed arguments for anynomous events.
2015-10-07 17:01:37 +02:00
chriseth
8644ad6866 Merge pull request #118 from chriseth/rejectEtherSentToLibrary
Reject ether sent to library.
2015-10-07 16:41:49 +02:00
chriseth
b6ddde9372 Allow four indexed arguments for anynomous events. 2015-10-07 16:40:54 +02:00
chriseth
f3913d6996 Fix boost error. 2015-10-07 12:31:38 +02:00
chriseth
0297a213fe Reject ether sent to library. 2015-10-06 22:55:45 +02:00
chriseth
55af63e463 Add const. 2015-10-06 14:43:09 +02:00
chriseth
99351aebe0 Compiler version stamp. 2015-10-06 14:20:06 +02:00
chriseth
44e42bf52e Add structs to library interface. 2015-10-06 14:20:06 +02:00
chriseth
bf5b387954 Provide access to scoped structs. 2015-10-06 14:20:06 +02:00
chriseth
bc609c55c0 Compute canonical names of types for function signatures. 2015-10-06 14:20:06 +02:00
chriseth
ce25ddfa6a Encode storage items correctly for library calls. 2015-10-06 14:20:06 +02:00
chriseth
421dcf4c1a Tests apart from new one work fine. 2015-10-06 14:20:06 +02:00
chriseth
9cc7402c95 Split external type into ecoding and interface type. 2015-10-06 14:19:56 +02:00
chriseth
da408640ca Store small byte arrays and strings in storage in one slot with their
length.
2015-10-02 13:12:23 +02:00
LianaHus
53d0684cb4 -fixed the warning printing
-style fixes
2015-10-02 12:38:48 +02:00
LianaHus
2706846f43 -added warning case to cl compiler
-modified warning msg
2015-10-02 12:38:48 +02:00
LianaHus
b2fa457327 removed unnecessary function declaration 2015-10-02 12:38:48 +02:00
LianaHus
fe2b9a3b3c added warning for noninitialized references in storage. 2015-10-02 12:38:48 +02:00
LianaHus
6712437e6b style fixes 2015-10-02 12:38:48 +02:00
LianaHus
468d6b6175 style fixes 2015-10-02 12:38:48 +02:00
chriseth
6161ec96ff Bugfix in calldata unpacker.
The offset was not specified correctly if memory activity preceded the
unpacker.
2015-10-01 16:50:11 +02:00
chriseth
e81f4ba45e Provide types for VariableDeclaration. 2015-09-24 12:12:36 +02:00
chriseth
1736fe8015 Merge pull request #95 from chriseth/styleCleanup
Style cleanup.
2015-09-24 11:55:44 +02:00
chriseth
c49e58a201 Style cleanup. 2015-09-24 11:05:04 +02:00
LianaHus
99ec6702df improved overflow check in memorySize for ArrayType 2015-09-24 10:51:06 +02:00
chriseth
52f7e35843 Merge pull request #91 from chriseth/literalStringsToStoragePointer
Literal strings to storage pointer
2015-09-24 10:23:35 +02:00
chriseth
8a9b9e4fdb Do not allow assignment from literal strings to storage pointers.
Fixes #90
2015-09-23 17:34:08 +02:00
LianaHus
c096c3c349 improved the test 2015-09-23 17:31:47 +02:00
LianaHus
5ba559beaf style fix 2015-09-23 17:31:47 +02:00
LianaHus
9547c4563c fixed-sized arrays as return type
Conflicts:
	test/libsolidity/SolidityEndToEndTest.cpp
2015-09-23 17:31:37 +02:00
chriseth
efdea76d5e Merge pull request #85 from chriseth/warnings
Support mulitple errors and warnings.
2015-09-23 14:42:54 +02:00
chriseth
3841d39904 Merge pull request #87 from chriseth/fixVersion
Add libevmasm version string.
2015-09-22 22:54:31 +02:00
chriseth
4d82e3165f Add libevmasm version string. 2015-09-22 16:23:21 +02:00
chriseth
e32a063a10 Style fix. 2015-09-22 12:07:34 +02:00
chriseth
31dc588b55 Build fix for MacOS. 2015-09-22 11:17:54 +02:00
chriseth
42c0009205 Error formatting. 2015-09-21 20:03:53 +02:00
chriseth
39d1e2bc06 Refactored annotations. 2015-09-21 20:03:10 +02:00
chriseth
34a81fd60e Refactoring: Check types outside of AST and recover from some errors. 2015-09-21 20:03:05 +02:00
LianaHus
e50400082b fixed using string as a type for struct member 2015-09-17 15:15:46 +02:00
Marek Kotewicz
352c196eb3 Merge pull request #79 from arkpar/cmake
Per project versioning
2015-09-17 10:34:15 +02:00
arkpar
bda7dbd30a per project versioning 2015-09-16 15:55:25 +02:00
LianaHus
1fb7488671 style 2015-09-16 13:44:07 +02:00
LianaHus
ca08fe50c6 style fixes 2015-09-16 13:25:32 +02:00
LianaHus
279a36b6f8 throw statement implementation 2015-09-16 13:25:32 +02:00
LianaHus
5291467a26 removed unneccessary check from ExpresiionCompiler 2015-09-15 11:40:20 +02:00
LianaHus
dd3b0664c6 style fixes 2015-09-15 11:40:20 +02:00
LianaHus
e17938a2a9 fixed conflict mergeing 2015-09-15 11:40:20 +02:00
LianaHus
e4eb40036b - changed implementation
- style fixes

Conflicts:
	libsolidity/AST.cpp
2015-09-15 11:40:19 +02:00
LianaHus
ede1f4b153 Update ExpressionCompiler.cpp
Conflicts:
	libsolidity/ExpressionCompiler.cpp
2015-09-15 11:40:19 +02:00
LianaHus
b7b16b153b added compile time check for out of bounds access for ordinary arrays
todo: check for dynamicaly sized arrays

Conflicts:
	libsolidity/ExpressionCompiler.cpp
2015-09-15 11:37:59 +02:00
chriseth
9309b6aa82 Merge pull request #70 from chriseth/sol_libraries2
Commandline interface for linker.
2015-09-14 14:56:01 +02:00
chriseth
4360e04596 Merge pull request #66 from chriseth/sol_libraries
Calling libraries.
2015-09-11 19:35:31 +02:00
chriseth
70c0ed4129 Commandline interface for the linker. 2015-09-11 19:35:01 +02:00
chriseth
147830d1a3 Small fixes to the type system concerning libraries. 2015-09-11 16:36:47 +02:00
chriseth
3c25420b84 Merge pull request #69 from LianaHus/sol_enum_too_many_indexed_args
too many indexed arguments for event
2015-09-11 15:48:43 +02:00
chriseth
d89832fa89 Style. 2015-09-11 15:25:00 +02:00
LianaHus
1d1386a58c add call for EventDefinition::checkTypeRequirements() 2015-09-11 15:24:11 +02:00
chriseth
976c380b61 Possibility to call library functions. 2015-09-11 15:21:37 +02:00
chriseth
a9edc7b1a6 Transition from bytecode to more general linker objects. 2015-09-11 15:21:37 +02:00
chriseth
337fde9d11 Parsing and type checking of libraries without inheritance. 2015-09-11 15:21:37 +02:00
chriseth
c5b6d9d2a9 Merge pull request #65 from LianaHus/sol_Creating_a_contract_from_within_itself
Added error when creating a contract from within itself
2015-09-11 15:19:58 +02:00
LianaHus
d570ab44c8 style fixes 2015-09-11 14:31:00 +02:00
LianaHus
47e42430f2 added type check if the type of the var decl is one of base contract type 2015-09-10 17:17:13 +02:00
LianaHus
845bcf8db0 - added tests to test empty comment
- fixed skipSingleLineComment
- some style fixes
2015-09-10 14:26:34 +02:00
chriseth
9967ae4038 Stylistic corrections. 2015-09-09 16:15:35 +02:00
chriseth
985eb80695 Fix for constant strings. 2015-09-08 16:51:14 +02:00
chriseth
ea981cb0f5 Merge pull request #41 from LianaHus/sol_rename_getters
solidity interface changes. removing get prefix
2015-09-08 16:47:58 +02:00
LianaHus
df8c82bc60 - renamed AST to ast and ABI to abi
- style fixes
2015-09-08 14:30:21 +02:00
LianaHus
02d4198242 removed get prefix
style fixes
2015-09-08 13:12:00 +02:00
LianaHus
1b5e6fc9e7 renamed getter functions 2015-09-08 13:12:00 +02:00
debris
619c91321b changes required to compile solidity in a single project 2015-09-01 15:30:26 +02:00
Gav Wood
91cffa0d5d Merge pull request #24 from LianaHus/sol_fix_error_check
added check for having type in VariableDeclaration::checkTypeRequirem…
2015-08-27 16:54:44 +02:00
debris
1741e89c09 client refactor 2015-08-27 14:28:31 +02:00
Marek Kotewicz
40e65295ff Merge pull request #26 from arkpar/cmake
Refactored CMakeLists for new module system
2015-08-24 15:57:48 +02:00
arkpar
3ea1a62fa9 Refactoreed CMakeLists for new module system 2015-08-24 15:51:52 +02:00
LianaHus
fed363263a added check for having type in VariableDeclaration::checkTypeRequirements() 2015-08-24 12:34:44 +02:00
chriseth
625be53252 Merge pull request #22 from LianaHus/sol_accessors_for_const_state_var
fixed the issue with accessors for constant state variables
2015-08-21 18:17:05 +02:00
LianaHus
1af8ff0121 add tests for state variables accessors. normal and constant
fixed the issue with accessors for constant state variables
2015-08-21 17:57:57 +02:00
chriseth
4128b04253 Propagate exceptions in clone calls. 2015-08-20 20:02:38 +02:00
Gav Wood
289b814670 Merge pull request #7 from chriseth/moreInfoForCommandlineOptions
More information for help screen, some fixes for argument parsing.
2015-08-20 11:02:07 +02:00
chriseth
0906042ce0 More information for help screen, some fixes for argument parsing. 2015-08-20 02:12:37 +02:00
chriseth
8d9eb68307 Modularise CMakeLists files and integrate tests. 2015-08-20 00:55:41 +02:00
Lefteris Karapetsas
27388950dd include Version.h under libsolidity 2015-08-19 16:12:18 +02:00
Lefteris Karapetsas
1690f1c947 Add CMakeLists.txt for libsolidity 2015-08-19 14:57:25 +02:00