aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
Commit message (Collapse)AuthorAgeFilesLines
* Fix: Contract inheriting from base with unimplemented constructor is abstract.chriseth2017-03-221-0/+10
|
* Visit structs only once.chriseth2017-03-211-3/+7
|
* Simplify interface checks for FunctionDefinitionAlex Beregszaszi2017-03-181-8/+7
|
* Disallow private or internal functions in interfacesAlex Beregszaszi2017-03-181-0/+3
|
* Disallow constructor in interfacesAlex Beregszaszi2017-03-181-0/+3
|
* Disallow enums in interfacesAlex Beregszaszi2017-03-182-0/+8
|
* Use declared instead of definedAlex Beregszaszi2017-03-181-1/+1
|
* Reject invalid definitions for interface contractsAlex Beregszaszi2017-03-181-0/+13
|
* Change references to FunctionType::LocationAlex Beregszaszi2017-03-162-25/+24
|
* Mention 'transfer' in warning about unchecked 'send'.chriseth2017-03-151-2/+3
|
* Merge pull request #1729 from ethereum/constantvariablesYoichi Hirai2017-03-151-18/+62
|\ | | | | Only allow pure expressions for constant state variables.
| * Turn non-constant constants error into warning.chriseth2017-03-151-2/+3
| |
| * Disallow constants that are neither value types nor strings.chriseth2017-03-131-0/+8
| |
| * Allow enum values for constants.chriseth2017-03-131-1/+4
| |
| * Type checking for pure expressions.chriseth2017-03-131-18/+50
| |
* | Require and Assert.chriseth2017-03-141-3/+4
|/
* Merge pull request #1751 from ethereum/warnLiteralExpBaseYoichi Hirai2017-03-111-0/+20
|\ | | | | Warn if base of exponentiation operation is a literal.
| * Warn about literal constant base in exponentiation.chriseth2017-03-071-0/+20
| |
* | Resolve build-stopping error about 'minor' and 'major' being defined in ↵Ryan Casey2017-03-101-0/+3
| | | | | | | | <sys/types.h>
* | Merge pull request #1747 from ethereum/fixICEInternalConstructorYoichi Hirai2017-03-091-3/+1
|\ \ | | | | | | Move privateness of constructor into AST itself.
| * | Move public constructor property into AST itself.chriseth2017-03-061-3/+1
| | |
* | | Merge pull request #1748 from ethereum/singletonArraychriseth2017-03-081-1/+1
|\ \ \ | | | | | | | | Use mobile type for singleton array.
| * | | Convert to mobile type for array type.chriseth2017-03-061-1/+1
| | |/ | |/|
* | | Disallow compound assignment for tuples.chriseth2017-03-081-0/+5
| | |
* | | Merge pull request #1699 from ethereum/asmlabelsYoichi Hirai2017-03-081-4/+11
|\ \ \ | | | | | | | | Assembly labels with stack information
| * | | Move lambda.chriseth2017-03-031-3/+9
| | | |
| * | | Refactor CodeGen to recurse on blocks.chriseth2017-03-031-3/+4
| | | |
* | | | Merge pull request #1733 from ethereum/selfReferentialConstantchriseth2017-03-073-0/+180
|\ \ \ \ | | | | | | | | | | Detect cyclic dependencies between constants.
| * | | | Check for circular references in constant variables.chriseth2017-03-063-0/+180
| | |/ / | |/| |
* | | | Merge pull request #1737 from ethereum/localmappingschriseth2017-03-061-2/+5
|\ \ \ \ | |/ / / |/| | | Disallow uninitialized mapping variables.
| * | | Disallow uninitialized mapping variables.chriseth2017-03-061-2/+5
| | |/ | |/|
* / | Mention way to remove warning.chriseth2017-03-061-1/+5
|/ /
* | Merge pull request #1702 from ethereum/assertErrorYoichi Hirai2017-03-041-2/+3
|\ \ | |/ |/| Change effect of assert to invalid opcode.
| * Remove assert for now.chriseth2017-02-241-2/+3
| |
* | Disallow variable declaration with inferred empty tuple type.chriseth2017-03-021-0/+5
| |
* | Deposit one stack item for non-value types in inline assembly type checking.chriseth2017-02-201-1/+1
| |
* | Fix early exist for fatal errors.chriseth2017-02-164-73/+82
|/
* Review comments.chriseth2017-02-143-7/+7
|
* Allow different entry scope for registerDeclarations.chriseth2017-02-143-9/+22
|
* Extract scopes into compiler stack.chriseth2017-02-142-2/+8
|
* Refactor type system to allow multiple entry points.chriseth2017-02-144-15/+27
|
* Refactor NameAndTypeResolver and SyntaxChecker to allow other entry points.chriseth2017-02-146-61/+86
|
* Support revert()Alex Beregszaszi2017-02-111-1/+3
|
* Implement assert as a global functionAlex Beregszaszi2017-02-101-1/+3
|
* Disallow arrays with negative lengthAlex Beregszaszi2017-02-021-0/+2
|
* Warn about invalid checksums of addresses.chriseth2017-01-251-0/+10
|
* Merge pull request #1245 from ethereum/1215chriseth2017-01-242-7/+19
|\ | | | | Allow multiple events of the same name
| * analysis: disallow overloading functions with eventsYoichi Hirai2017-01-231-1/+6
| |
| * analysis: fix formatYoichi Hirai2017-01-231-4/+7
| |
| * analysis: Resolve event overloadingYoichi Hirai2017-01-232-14/+11
| |
| * analysis: Allow multiple events of the same nameYoichi Hirai2017-01-231-0/+7
| | | | | | | | Fixes #1215
* | Check if constructor is public or not.chriseth2017-01-211-1/+6
|/
* Fix default function type name visibility.chriseth2017-01-191-1/+0
|
* analysis: use Declaration::functionType() in another locationYoichi Hirai2017-01-121-11/+4
|
* ast: add Declaration::functionType()Yoichi Hirai2017-01-121-14/+7
|
* analysis: avoid emscripten build failureYoichi Hirai2017-01-121-3/+3
|
* analysis: changes necessary to compile std/StandardToken.solYoichi Hirai2017-01-123-12/+58
|
* analysis: allow some shadowings explicitlyYoichi Hirai2017-01-121-0/+8
|
* analysis: report errors when inheritance causes collisionYoichi Hirai2017-01-121-1/+25
|
* Improve error message when trying to modify constant variablesFederico Bond2016-12-131-1/+6
|
* Warn about using msg.value in non-payable functionFederico Bond2016-12-092-0/+150
|
* Fix licensing headersVoR02202016-11-2318-72/+72
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Check that no internals are used in any external function type.chriseth2016-11-163-1/+17
|
* Disallow payable internal functions.chriseth2016-11-161-1/+2
|
* Function types.chriseth2016-11-162-0/+18
|
* Type checker: move the burden of computing mobile type to commonTypeYoichi Hirai2016-11-111-2/+2
| | | | This solves #621
* Suggest correct version for pragma and complain about pre-release version.chriseth2016-10-251-4/+13
|
* Merge pull request #1279 from ethereum/semver-helperchriseth2016-10-251-0/+6
|\ | | | | Export major/minor/patch helpers on SemVerVersion
| * Export major/minor/patch helpers on SemVerVersionAlex Beregszaszi2016-10-251-0/+6
| |
* | Merge pull request #1264 from ethereum/988chriseth2016-10-251-0/+5
|\ \ | |/ |/| State variable under contract's name
| * analysis: determine if a member access on a contract is an l-valueYoichi Hirai2016-10-251-0/+5
| |
* | More checks for missing mobile type.chriseth2016-10-241-4/+14
|/
* Use warning function in TypeCheckerAlex Beregszaszi2016-10-201-5/+4
|
* Disallow unsupported RValues in inline assemblyAlex Beregszaszi2016-10-201-4/+2
|
* Disallow magic variables in inline assemblyAlex Beregszaszi2016-10-201-0/+4
|
* Fix pragma keyword checkYoichi Hirai2016-10-111-1/+1
| | | | Fixes #1192
* Add alias keccak256() for sha3()Alex Beregszaszi2016-10-061-0/+2
|
* Fix crash for TypeName[k].chriseth2016-09-161-1/+1
|
* Constructor must be internal or publicAlex Beregszaszi2016-09-061-0/+2
|
* Reject constant constructorsAlex Beregszaszi2016-09-061-2/+6
|
* Reject constant modifier on the fallback functionAlex Beregszaszi2016-09-061-0/+2
|
* Tests for payable / private combination.chriseth2016-09-061-2/+2
|
* Make constant and payable mutually exclusive.chriseth2016-09-061-0/+2
|
* Change function type to include and propagate payable and constant modifier.chriseth2016-09-061-10/+2
|
* Merged in changes from chriseth/payableAlex Beregszaszi2016-09-061-2/+12
|
* Use version string (including prerelease) for pragma matching.chriseth2016-09-011-2/+3
|
* Version pragma.chriseth2016-09-014-3/+449
|
* Make fallback function throw by default.chriseth2016-08-301-0/+2
|
* Disallow fallback function to return values.chriseth2016-08-261-0/+2
|
* Require modifiers to contain "_".chriseth2016-08-162-1/+29
|
* Only warn about unused return in low-level functions.chriseth2016-06-261-6/+15
|
* Warn about unused return values.chriseth2016-06-262-0/+20
|
* Disallow implementation of abstract function by constructor of derived class.chriseth2016-06-071-1/+4
|
* fix: error: call of overloaded ‘list(int, <brace-enclosed initializer ↵moneroexample2016-05-171-1/+1
| | | | | | | | | | | | | | | | 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*>{})
* Remove unused tests and add asserts for not implemented parts in code ↵chriseth2016-05-111-0/+2
| | | | | | | | | | | | 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-6/+6
|
* Prefer mobileType() to check rational range.chriseth2016-05-111-16/+18
|
* reorganized tests and fixed mobile types and implicit conversions of ↵VoR02202016-05-101-19/+53
| | | | | | | | 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-13/+14
| | | | | | | | | | | | 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
* rational renamingVoR02202016-05-102-4/+4
|
* changed names for Rational Constants and categoriesVoR02202016-05-101-8/+8
|
* initial work for fixed types...potentially needing a constant literal type ↵RJ Catalano2016-05-103-14/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* reduce unnecessary solidity:: namespaceDimitry2016-04-041-1/+1
|
* rename namespace for instruction.h/cpp in libevmasmDimitry2016-04-021-1/+1
|
* Code generation (missing external access and source locations).chriseth2016-03-304-0/+81
|
* changes to redefine the token list, the scanner, and the parser and how they ↵RJ Catalano2016-02-191-1/+1
| | | | | | | | 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
* Fix segfault when using wrong number of constructor arguments.chriseth2016-02-121-0/+3
|
* Index access for bytesXX.chriseth2016-02-101-0/+18
|
* cond-expr: use the mobile type instead of the original typeLu Guanqun2016-01-231-12/+3
|
* [cond-expr] change the end to end testLu Guanqun2016-01-231-2/+6
|
* [cond-expr] add a test for different typesLu Guanqun2016-01-231-1/+1
|
* [cond-expr] add a test to assign memory to storageLu Guanqun2016-01-231-2/+6
|
* [cond-expr] don't allow conditional as left value for the first stageLu Guanqun2016-01-231-43/+25
|
* [cond-expr] fixup according to code reviewLu Guanqun2016-01-231-2/+7
|
* [cond-expr] change endVisit() to visit()Lu Guanqun2016-01-232-30/+41
|
* [cond-expr] fix the crash in ExpressionStatementLu Guanqun2016-01-231-0/+5
|
* [cond-expr] support conditional expression as lvalueLu Guanqun2016-01-231-0/+8
|
* [cond-expr] add type checkerLu Guanqun2016-01-232-0/+28
|
* Merge pull request #356 from guanqun/break-not-in-loopchriseth2016-01-212-0/+141
|\ | | | | check whether break/continue is in the loop
| * add another test case for continue not in loopLu Guanqun2016-01-191-4/+4
| |
| * code changes according to Chris's commentsLu Guanqun2016-01-192-19/+15
| |
| * check whether break/continue is in the loopLu Guanqun2016-01-152-0/+145
| |
* | Update TypeChecker.cppLiana Husikyan2016-01-161-0/+2
| |
* | fixed assert on EI creation for structs containing only mapping or arraysLianaHus2016-01-161-6/+8
| |
* | Merge pull request #346 from chriseth/importAliaseschriseth2016-01-142-16/+52
|\ \ | |/ |/| Allow aliases during import.
| * Allow aliases during import.chriseth2016-01-112-16/+52
| |
* | clarification on dynamic arrays, switcheroo on typepointer, and a ↵RJ Catalano2016-01-121-1/+1
| | | | | | | | documentation test added
* | Merge branch 'develop' of https://github.com/ethereum/solidity into developRJ Catalano2016-01-121-0/+3
|\|
| * Fixed a crash during type checking.chriseth2016-01-081-0/+3
| |
* | final changes to typechecker, the expression compiler, and a couple more ↵RJ Catalano2016-01-121-15/+25
| | | | | | | | tests for good measure
* | find common typeRJ2016-01-101-2/+11
|/
* Merge pull request #338 from guanqun/add_parenchriseth2016-01-051-1/+4
|\ | | | | support syntax "(x) = 3"
| * support decayed tuple expression as left valueLu Guanqun2016-01-041-1/+4
| |
* | Use paths instead of simple identifiers wherever possible.chriseth2015-12-221-1/+1
|/
* Simple aliasing during import.chriseth2015-12-182-9/+24
|
* Parse complex import directives.chriseth2015-12-181-1/+1
|
* changed a couple of small nuances, made an attempt at fixing the parsing in ↵RJ Catalano2015-12-171-9/+2
| | | | the inline arrays case (fails), and added test for inline arrays per Chriseth request
* temporary assert addedRJ Catalano2015-12-171-0/+1
|
* still not able to get types resolved, however it is compilingRJ Catalano2015-12-161-2/+9
|
* Merge pull request #288 from chriseth/import_contextschriseth2015-12-155-58/+123
|\ | | | | Do not clutter importee when importing.
| * Style.chriseth2015-12-151-4/+4
| |
| * Relative paths in import directives.chriseth2015-12-101-4/+10
| |
| * Source units are independent scopes.chriseth2015-12-105-43/+96
| |
| * Bugfix concerning pointers to moved data.chriseth2015-12-082-21/+27
| |
* | Merge pull request #289 from chriseth/fix_base_constructor_paramschriseth2015-12-101-0/+3
|\ \ | | | | | | Fix: Type checker crash for wrong number of base constructor arguments.
| * | Fix: Type checker crash for wrong number of base constructor arguments.chriseth2015-12-101-0/+3
| |/
* / Fix: Segfaults connected to paramater types.chriseth2015-12-101-2/+2
|/ | | | parameterTypes does not return by const reference anymore.
* Bugfix for explicit memory types in libraries.chriseth2015-12-011-20/+24
|
* Merge pull request #251 from chriseth/bind2chriseth2015-11-305-86/+89
|\ | | | | Bind library functions to types.
| * Also check the object type for bound functions.chriseth2015-11-291-1/+10
| |
| * Added the `using x for y` directive.chriseth2015-11-273-3/+13
| |
| * Resolve type names using regular AST visit.chriseth2015-11-272-82/+66
| |
* | Introduce selfdestruct alias for suicide.chriseth2015-11-291-1/+3
|/
* Do not store elements of a contract by AST node type.chriseth2015-11-264-50/+24
|
* Make members context-sensitive.chriseth2015-11-265-19/+14
|
* Fix MSVC errors and warnings.chriseth2015-11-262-4/+5
|
* Make some functions const.chriseth2015-11-262-4/+4
|
* Type checking for creating new arrays.chriseth2015-11-263-2/+28
|
* Allow "new expressions" also for general type names.chriseth2015-11-263-26/+44
| | | | | | | 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)`
* Addmod and mulmod.chriseth2015-11-191-0/+4
|
* style fixLianaHus2015-11-072-12/+14
|
* style fixesLianaHus2015-11-073-25/+26
|
* fixed test frameworkLianaHus2015-11-072-10/+8
|
* fixLianaHus2015-11-073-35/+60
|
* fixed return valu for resolverLianaHus2015-11-072-5/+5
|
* added SourceLocations to error reporting for ReferenceResolverLianaHus2015-11-072-15/+18
|
* passed SourceLocations instead of nodes to the error reporting functionLianaHus2015-11-075-109/+116
|
* fixed buildLianaHus2015-11-071-3/+4
|
* added errors tu ReferencesResolverLianaHus2015-11-073-55/+78
|
* Allow docstrings for statements.chriseth2015-10-272-12/+30
|
* Fix indent.chriseth2015-10-271-3/+3
|
* Store docstrings in AST annotations.chriseth2015-10-262-0/+181
|
* File reorganisation.chriseth2015-10-2112-0/+2898