aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/ast
Commit message (Collapse)AuthorAgeFilesLines
* Support revert()Alex Beregszaszi2017-02-112-0/+2
|
* Implement assert as a global functionAlex Beregszaszi2017-02-101-3/+4
|
* Add isNegative to RationalNumberTypeAlex Beregszaszi2017-02-021-0/+3
|
* Support explicit conversion of external function type to addressAlex Beregszaszi2017-02-012-0/+12
|
* Refactor json return type generation.chriseth2017-01-272-20/+0
|
* Also check library addresses.chriseth2017-01-251-21/+1
|
* Warn about invalid checksums of addresses.chriseth2017-01-254-2/+56
|
* Check if constructor is public or not.chriseth2017-01-211-0/+2
|
* Merge pull request #1576 from ethereum/typeIdentifiersYoichi Hirai2017-01-204-20/+290
|\ | | | | Type identifiers.
| * Make m_id const.chriseth2017-01-201-1/+1
| |
| * Reset AST node IDs between compilation runs.chriseth2017-01-203-5/+26
| |
| * Properly escape user strings and lists.chriseth2017-01-192-44/+86
| |
| * Type identifiers.chriseth2017-01-192-3/+210
| |
* | Fix default function type name visibility.chriseth2017-01-191-1/+4
|/
* Fix typo in commentFederico Bond2017-01-181-1/+1
|
* Merge pull request #1581 from ethereum/fixosxchriseth2017-01-181-2/+2
|\ | | | | Fix JSON output on macos.
| * Fix JSON output on macos.chriseth2017-01-181-2/+2
| |
* | Merge pull request #1397 from roadriverrail/contract_collisionchriseth2017-01-182-1/+1
|\ \ | |/ |/| Error out when contracts collide on name
| * Move fullyQualified() name to DeclarationRhett Aultman2017-01-172-10/+1
| |
| * Stylistic correctionsRhett Aultman2017-01-171-1/+1
| |
| * Drop ':' if the source file name is emptyRhett Aultman2017-01-171-1/+2
| | | | | | | | | | | | | | | | A large number of tests compile contracts while passing in an empty string for the source name. This leads to it being keyed by the name ":<contract>", while the tests try to look it up under the name "<contract>". This change resolves that issue by dropping the ':' in cases where there is, effectively, no source file to prepend anyway.
| * Only avoid collision if it's the same fileRhett Aultman2017-01-172-0/+8
| | | | | | | | | | | | | | | | | | @chriseth had suggested that it would be better if contracts were referenced in a file:contract notation, and that we output .bin files that prepend original path names if necessary to avoid a collision. This commit is mostly a draft; it still needs to be run through the test suite.
* | Deterministic AST node identifiers.chriseth2017-01-173-2/+8
|/
* ast: events have FunctionType tooYoichi Hirai2017-01-122-8/+17
|
* ast: add Declaration::functionType()Yoichi Hirai2017-01-122-0/+73
|
* ast, codegen: enable accessing events through contract names.Yoichi Hirai2017-01-031-0/+3
| | | | Fixes #1286
* Merge pull request #1503 from federicobond/json-visibilityYoichi Hirai2016-12-152-7/+22
|\ | | | | Include visibility level for functions in AST
| * Include visibility level for functions in ASTFederico Bond2016-12-132-7/+22
| |
* | Merge pull request #1487 from ethereum/shift-opsYoichi Hirai2016-12-141-0/+32
|\ \ | | | | | | Shift operators
| * | Cleaner shift handling and type conversion for binary operations.chriseth2016-12-121-30/+20
| | |
| * | Type after shift should be type of left operand.chriseth2016-12-121-5/+42
| | |
| * | Support bitshifting in variablesAlex Beregszaszi2016-12-121-0/+5
| |/
* / Improve error message when trying to modify constant variablesFederico Bond2016-12-131-0/+2
|/
* Merge pull request #1464 from federicobond/warn-msgvaluechriseth2016-12-111-0/+2
|\ | | | | Warn about using msg.value in non-payable function
| * Warn about using msg.value in non-payable functionFederico Bond2016-12-091-0/+2
| |
* | Fix names of JSON AST nodesFederico Bond2016-12-111-2/+2
|/
* Add swarm hash to the end of the bytecode.chriseth2016-12-011-0/+1
|
* Metadata stamp.chriseth2016-12-012-0/+12
|
* Rename dev::validate to dev::validateUTF8Alex Beregszaszi2016-11-292-3/+3
|
* Make position optional in dev::validateAlex Beregszaszi2016-11-292-4/+2
|
* Indentation.chriseth2016-11-251-1/+1
|
* ast: string literals that are not valid UTF are not convertible to stringsYoichi Hirai2016-11-252-1/+10
|
* Fix licensing headersVoR02202016-11-2315-60/+60
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Some more assertions and style changes.chriseth2016-11-161-16/+25
|
* Change encoding to address-funid and add "function" as ABI type.chriseth2016-11-163-3/+9
|
* Check that no internals are used in any external function type.chriseth2016-11-162-0/+28
|
* Disallow payable internal functions.chriseth2016-11-161-1/+3
|
* delete for function typeschriseth2016-11-162-0/+8
|
* Change alignment.chriseth2016-11-161-1/+1
|
* Changelog entry and small fixes.chriseth2016-11-162-5/+8
|
* Fix some type checks and tests for internal / external function parameters.chriseth2016-11-161-3/+3
|
* Code generator for function types.chriseth2016-11-162-1/+12
|
* Function types.chriseth2016-11-1610-6/+159
|
* Move InterfaceHandler from string to JSONAlex Beregszaszi2016-11-152-10/+11
|
* Print canonical names of structs and enums in ASTAlex Sinyagin2016-11-141-2/+2
|
* ast, codegen: disallow conversion between different enum typesYoichi Hirai2016-11-121-1/+1
|
* ast: add EnumType::numberOfMembers()Yoichi Hirai2016-11-122-1/+7
|
* Type checker: move the burden of computing mobile type to commonTypeYoichi Hirai2016-11-111-4/+4
| | | | This solves #621
* Add support for do/while loopsRhett Aultman2016-11-103-4/+12
| | | | | | | This commit adds support for a standard do <statement> while <expr>; form of statement. While loops were already being supported; supporting a do/while loop mostly involves reusing code from while loops but putting the conditional checking last.
* add payable to ASTyann3002016-11-031-1/+2
|
* ast: ban signed EXP, fixing #1246Yoichi Hirai2016-10-251-1/+4
|
* More checks for missing mobile type.chriseth2016-10-241-2/+14
|
* Fix crash in throw.chriseth2016-10-241-1/+1
|
* Merge pull request #1240 from ethereum/1151chriseth2016-10-241-1/+5
|\ | | | | ast: super contract type does not contain native members
| * ast: simplifications suggested by @chrisethYoichi Hirai2016-10-201-7/+4
| |
| * When a contract type is super, its members do not contain the functions of ↵Yoichi Hirai2016-10-201-1/+8
| | | | | | | | | | | | itself Fixes #1151
* | ast: add a null checkYoichi Hirai2016-10-211-0/+1
| |
* | ast: ContractDefinition::inheritableMembers contains enums as well as structsYoichi Hirai2016-10-211-0/+3
| | | | | | | | This fixes #1131
* | Support variable references within modifiers for inline assemblyAlex Beregszaszi2016-10-211-1/+1
|/
* Use >> (SAR) to denote constant shiftsAlex Beregszaszi2016-10-201-1/+3
|
* Reject negative shifts within constantsAlex Beregszaszi2016-10-201-4/+8
|
* Support shifting constantsRJ2016-10-201-0/+22
|
* Omit non-convertible bound functionsAlex Beregszaszi2016-10-191-1/+2
|
* Ensure that bound functions cannot be defined without self typeAlex Beregszaszi2016-10-192-2/+11
|
* `super`'s size on stack is zero, because the expression compiler does not ↵Yoichi Hirai2016-10-181-0/+1
| | | | | | push an address. This is different from `this`, which is translated to `ADDRESS` instruction.
* Check if a fixedBytes fits an integer typeYoichi Hirai2016-10-141-1/+5
| | | | | | before looking up the size of the integer type. Fixes #1150.
* Rename dev::sha3 to dev::keccak256Alex Beregszaszi2016-10-062-2/+2
|
* Include assert for selfType on bound functions to avoid crashAlex Beregszaszi2016-09-071-1/+2
|
* Merge pull request #665 from axic/feature/accept-etherchriseth2016-09-063-31/+91
|\ | | | | BREAKING: Add payable modifier
| * Change function type to include and propagate payable and constant modifier.chriseth2016-09-062-18/+68
| |
| * Merged in changes from chriseth/payableAlex Beregszaszi2016-09-061-14/+17
| |
| * Support payable keyword for functionsAlex Beregszaszi2016-09-063-0/+7
| |
* | Do not emit non-utf8 strings for ast json.chriseth2016-09-021-2/+15
|/
* Version pragma.chriseth2016-09-018-0/+74
|
* JSON AST: Some attribute cleanup. Add linearized base contracts.chriseth2016-08-192-36/+35
|
* Rename root AST JSON node to SourceUnitAlex Sinyagin2016-08-181-1/+1
|
* Do not add children to EnumValue and PlaceholderStatement elements in JSON ASTAlex Sinyagin2016-08-181-4/+2
|
* Use the full names for JSON AST nodesAlex Sinyagin2016-08-181-11/+11
|
* Move creation of the root element of JSON AST to the SourceUnit visitorAlex Sinyagin2016-08-182-5/+18
|
* Add ast json converter for PlaceholderStatementAlex Sinyagin2016-08-182-0/+13
|
* Add ast json converter for ArrayTypeNameAlex Sinyagin2016-08-182-0/+13
|
* Add ast json converter for ModifierInvocation and EventDefinitionAlex Sinyagin2016-08-182-0/+26
|
* Add ast json converter for ModifierDefinitionAlex Sinyagin2016-08-182-0/+13
|
* Add ast json converter for EnumValueAlex Sinyagin2016-08-182-0/+13
|
* Add ast json converter for EnumDefinitionAlex Sinyagin2016-08-182-0/+13
|
* Add ast json converter for UsingForDirectiveAlex Sinyagin2016-08-182-1/+14
|
* Add a ast json converter for InheritanceSpecifierAlex Sinyagin2016-08-182-0/+13
|
* Merge pull request #844 from Denton-L/remove-afterchriseth2016-08-121-3/+2
|\ | | | | BREAKING: Remove after
| * Remove After from Types.cppDenton Liu2016-08-111-3/+2
| |
* | Fix Mapping and InlineAssembly in JSON ASTAlex Sinyagin2016-08-121-0/+2
| |
* | Fix JSON AST structureAlex Sinyagin2016-08-121-0/+1
|/
* Merge pull request #794 from chriseth/fixastsourcechriseth2016-08-102-3/+3
|\ | | | | Fix segfault in ast output.
| * Fix segfault in ast output.chriseth2016-08-092-3/+3
| |
* | Remove dev::utf8 namespaceAlex Beregszaszi2016-08-091-1/+1
| |
* | Use size_t in dev::utf8::validate()Alex Beregszaszi2016-08-091-1/+1
| |
* | Use utf8::validate in StringLiteral::toStringAlex Beregszaszi2016-08-091-0/+6
| |
* | Move LiteralString::toString from the headerAlex Beregszaszi2016-08-092-1/+6
|/
* Source location as part of AST.chriseth2016-07-212-56/+83
|
* Inaccessible dynamic typeschriseth2016-06-022-17/+29
|
* Fixes for invalid cleanups for small types.chriseth2016-05-202-14/+0
|
* updated docsVoR02202016-05-191-4/+13
| | | | | | types reference
* explicit conversion and loosening of binary operations on integer and fixed ↵VoR02202016-05-191-24/+11
| | | | | | point types...still other problems fixed some spaces and deleted lines from failing test
* current debugging infoVoR02202016-05-191-2/+20
|
* Remove unused tests and add asserts for not implemented parts in code ↵chriseth2016-05-112-5/+4
| | | | | | | | | | | | 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
* Simplify interface of RationalNumber.chriseth2016-05-112-16/+17
|
* Special case for moving sign bit to fractional part.chriseth2016-05-111-5/+10
|
* Cleanup.chriseth2016-05-111-14/+19
|
* Disallow explicit fixed->enum, but allow bytes->fixed.chriseth2016-05-111-1/+1
|
* Some cleanup.chriseth2016-05-112-60/+32
|
* Replace "unsigned int" by "unsigned".chriseth2016-05-111-9/+9
|
* Prefer mobileType() to check rational range.chriseth2016-05-112-10/+5
|
* reorganized tests and fixed mobile types and implicit conversions of ↵VoR02202016-05-101-80/+85
| | | | | | | | rationals and fixed point types one final tweak check for null types
* updated algorithm for bit finding...now to figure out literal valueVoR02202016-05-102-126/+85
| | | | | | | | | | | | 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
* changed algorithm for finding bitsVoR02202016-05-101-29/+37
|
* much better way of doing modulusVoR02202016-05-101-8/+2
|
* added bytes conversion tests, resolved that, converted to binary scaling, ↵VoR02202016-05-102-60/+69
| | | | | | | | | | | | 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
* fixing modulus and Solidity Name and Type ResolutionVoR02202016-05-102-11/+9
| | | | | | minor fixes current attempts at binary fixup
* changed names for Rational Constants and categoriesVoR02202016-05-102-28/+32
|
* currently what we haveVoR02202016-05-101-4/+8
|
* got exponents up and working with their inverse, changed a few of the ↵RJ Catalano2016-05-102-37/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* size capabilities functioning properly for fixed typesRJ Catalano2016-05-101-9/+4
|
* fixed problem with var...probably a conversion problem for fixed in size ↵RJ Catalano2016-05-101-1/+1
| | | | | | | | capabilities adding fixed type tests Removing bitshift and regrouping fixed type tests together
* Rational implemented...trying to figure out exponentialRJ Catalano2016-05-101-52/+15
|
* initial work for fixed types...potentially needing a constant literal type ↵RJ Catalano2016-05-102-80/+461
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Allow calling internal functions of libraries.chriseth2016-05-041-26/+41
| | | | | | | | | | | | 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.
* Remove log.h from solidity.chriseth2016-04-121-0/+1
|
* move libevmcore to solidityDimitry2016-04-021-1/+1
|
* Code generation (missing external access and source locations).chriseth2016-03-303-5/+28
|
* Parsing for inline assembly.chriseth2016-03-307-0/+67
|
* Do not allow value for delegatecall functions.chriseth2016-03-121-1/+1
|
* - inline and assembly keywords addedLianaHus2016-03-121-1/+1
| | | | - some style fixes
* BREAKING: Implement delegatecall and make default for library calls.chriseth2016-03-122-24/+27
|
* further optimization, splitting function into piecesRJ Catalano2016-02-191-2/+2
| | | | generating strings on the fly, changed name, and added two tests
* added const correctness to extract functions in TokenRJ Catalano2016-02-191-6/+6
| | | | | | | | | | 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
* added two functions in Token to handle long identifiers, redid ↵RJ Catalano2016-02-191-3/+4
| | | | fromIdentifierOrKeyword, and made complementary changes in scanner and parser
* tests added and changes madeRJ Catalano2016-02-191-9/+5
| | | | | | fixed some silly problems in Token.cpp windows error fix
* changes to redefine the token list, the scanner, and the parser and how they ↵RJ Catalano2016-02-195-50/+51
| | | | | | | | 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
* style fixesLianaHus2016-02-181-12/+14
|
* Index access for bytesXX.chriseth2016-02-102-0/+6
|
* [cond-expr] add visitor related functionsLu Guanqun2016-01-235-0/+32
|
* [cond-expr] add an AST nodeLu Guanqun2016-01-233-0/+50
|
* fixed assert on EI creation for structs containing only mapping or arraysLianaHus2016-01-161-0/+4
|
* Allow aliases during import.chriseth2016-01-111-0/+4
|
* Merge pull request #317 from chriseth/pathsEverywherechriseth2016-01-042-7/+7
|\ | | | | Use paths instead of simple identifiers wherever possible.
| * Use paths instead of simple identifiers wherever possible.chriseth2015-12-222-7/+7
| |
* | Merge pull request #308 from chriseth/fixoverloadbugchriseth2015-12-211-0/+2
|\ \ | | | | | | Fix bug preventing overloads of different array types.
| * | Fix bug preventing overloads of different array types.chriseth2015-12-181-0/+2
| |/
* / Add structs and enums to contract types.chriseth2015-12-181-7/+20
|/
* Simple aliasing during import.chriseth2015-12-185-42/+112
|
* Parse complex import directives.chriseth2015-12-183-7/+23
|
* new testsRJ Catalano2015-12-161-1/+0
|
* now is compiling and passing soltest...but I think there may be a few more ↵RJ Catalano2015-12-161-1/+3
| | | | things to do
* fixed case statementsRJ Catalano2015-12-161-0/+1
|
* changing Tuple ConstructorRJ Catalano2015-12-161-2/+5
|
* updated attempt...still a bit more work to do but here's what's currentRJ Catalano2015-12-161-2/+3
|\
| * Inline array declarations completeRJ Catalano2015-12-151-2/+20
| |
* | Relative paths in import directives.chriseth2015-12-103-0/+14
| |
* | Source units are independent scopes.chriseth2015-12-101-3/+3
|/
* Code generation for calling bound methods.chriseth2015-12-011-0/+4
|
* Merge pull request #251 from chriseth/bind2chriseth2015-11-306-205/+319
|\ | | | | Bind library functions to types.
| * Also check the object type for bound functions.chriseth2015-11-293-8/+13
| |
| * Add bound functions to types.chriseth2015-11-294-203/+259
| |
| * Added the `using x for y` directive.chriseth2015-11-273-0/+53
| |
* | Introduce selfdestruct alias for suicide.chriseth2015-11-291-1/+1
|/
* Convert filter to template function.chriseth2015-11-272-60/+20
|
* Invalidate cached members if scope changes.chriseth2015-11-262-1/+3
|
* Do not store elements of a contract by AST node type.chriseth2015-11-264-61/+91
|
* Make members context-sensitive.chriseth2015-11-265-49/+50
|
* Type checking for creating new arrays.chriseth2015-11-261-4/+2
|
* Allow "new expressions" also for general type names.chriseth2015-11-263-7/+11
| | | | | | | 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)`
* Fixed string inside struct allocation bug.chriseth2015-11-242-4/+5
|
* Addmod and mulmod.chriseth2015-11-191-0/+2
|
* Fix problems with statement blocks.chriseth2015-11-111-0/+2
|
* Allow docstrings for statements.chriseth2015-10-273-17/+51
|
* Store docstrings in AST annotations.chriseth2015-10-263-1/+53
|
* File reorganisation.chriseth2015-10-2115-0/+7337