aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
Commit message (Expand)AuthorAgeFilesLines
* Disallow the years unit denomination properlyAlex Beregszaszi2018-06-221-12/+4
* Merge pull request #4301 from rnaby/TypeCheckerchriseth2018-06-221-5/+3
|\
| * Simplification of typeSupportedByOldABIEncoderKhan M Rashedun-Naby2018-06-211-5/+3
* | Merge pull request #4306 from ethereum/remove_050_workaround_scopingchriseth2018-06-214-36/+23
|\ \
| * | C99 scoping rules by defaultLeonardo Alt2018-06-204-36/+23
* | | Merge pull request #4219 from ethereum/functionTypeNamedArgumentsAlex Beregszaszi2018-06-211-1/+1
|\ \ \ | |/ / |/| |
| * | Return parameters in function types may not be named.Daniel Kirchner2018-06-181-1/+1
| |/
* / Disallow raw callcode (was deprecated in 0.4.12)Alex Beregszaszi2018-06-201-12/+4
|/
* Enforce disallowing empty structsChristian Parpart2018-06-141-8/+2
* Disallow sha3/suicide aliasesAlex Beregszaszi2018-06-131-10/+2
* Show named argument name in errorAlex Beregszaszi2018-06-061-1/+1
* Fix view/pure error ordering problem.chriseth2018-06-041-2/+2
* Allow using `calldata` keyword to specify data locationmingchuan2018-05-302-8/+32
* Update control flow graph.Daniel Kirchner2018-05-171-5/+4
* Split warning for multi arguments for hash functionsAlex Beregszaszi2018-05-161-10/+12
* Warn/enforce single bytes argument for certain builtins (hashing functions).chriseth2018-05-161-0/+27
* ABI encoding functions are pure and should be usable in constants.chriseth2018-05-151-0/+3
* Add control flow analyzer and test for uninitialized storage returns.Daniel Kirchner2018-05-152-0/+208
* Add control flow graph.Daniel Kirchner2018-05-154-0/+797
* Deprecate wildcard assignments.chriseth2018-05-081-8/+49
* Merge pull request #4063 from ethereum/emit-non-eventchriseth2018-05-041-0/+1
|\
| * Show proper error when trying to emit a non-eventAlex Beregszaszi2018-05-041-0/+1
* | Change numBits to unsigned IntegerTypeAlex Beregszaszi2018-05-031-1/+2
|/
* Merge pull request #3981 from ethereum/years-suffixchriseth2018-04-241-0/+16
|\
| * The "year" denomination is deprecatedAlex Beregszaszi2018-04-231-0/+16
* | Merge pull request #3976 from ethereum/emptyTupleComponentchriseth2018-04-231-0/+13
|\ \ | |/ |/|
| * Treats inline array as an error.Erik Kundt2018-04-231-0/+2
| * Turns it into warning (error for 0.5.0) and adds Changelog entry.Erik Kundt2018-04-231-1/+8
| * Prevents null type from being used in tuple.Erik Kundt2018-04-221-0/+4
* | Turn deprecated warnings for sha3/suicide into errors (experimental 0.5.0)Alex Beregszaszi2018-04-211-2/+10
|/
* Make literals an error for tight packing (experimental 0.5.0)Alex Beregszaszi2018-04-201-8/+18
* Improve error message for failed member lookup.chriseth2018-04-191-11/+16
* Warn about functions named "constructor".chriseth2018-04-191-1/+6
* Fix name clashes between constructor and fallback function.chriseth2018-04-181-47/+45
* Merge pull request #3880 from ethereum/addressMemberDocAndWarnchriseth2018-04-161-1/+2
|\
| * Improve documentation and warning about accessing contract members inherited ...Daniel Kirchner2018-04-141-1/+2
* | Merge pull request #3875 from ethereum/constructorSelfRefchriseth2018-04-141-4/+26
|\ \ | |/ |/|
| * Stricter check for member access to "this" in constructor.Daniel Kirchner2018-04-131-4/+26
* | Merge pull request #3364 from ethereum/revertWithReasonchriseth2018-04-134-8/+18
|\ \
| * | Allow error string for ``require``.chriseth2018-04-121-0/+1
| * | Register overload for ``revert()`` that can receive a reason string.chriseth2018-04-122-1/+4
| * | Allow function overloads involving MagicVariableDeclarations.chriseth2018-04-123-7/+13
| |/
* | Merge pull request #2980 from ethereum/abi-apichriseth2018-04-133-11/+39
|\ \ | |/ |/|
| * Allow struct encoding with new encoder.chriseth2018-04-121-7/+18
| * Check partial function parameters if rest is arbitrary.chriseth2018-04-121-3/+14
| * Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSi...Alex Beregszaszi2018-04-122-1/+7
* | Merge pull request #3848 from ethereum/constantDivisionByZerochriseth2018-04-122-0/+44
|\ \ | |/ |/|
| * Error on invalid arithmetic with constant expressions.Daniel Kirchner2018-04-122-0/+44
* | Warn if modifiers are applied to functions without implementation.chriseth2018-04-121-0/+7
|/
* Fix ConstantEvaluator to correctly handle single element tuples.Daniel Kirchner2018-04-122-0/+7
* Merge pull request #3309 from ethereum/limit-errorschriseth2018-04-111-11/+1
|\
| * Catch FatalError in CompilerStack::analysis to cover all the analysis testsAlex Beregszaszi2018-04-061-11/+1
* | Error when using no parentheses in modifier-style constructor calls.Daniel Kirchner2018-04-101-4/+23
* | Use the most derived contract as main location in case of diamond inheritance.Daniel Kirchner2018-04-091-3/+18
* | Move constructor argument override check to TypeChecker and reuse annotations...Daniel Kirchner2018-04-094-65/+60
* | Allow duplicated constructor calls, if no arguments; support for multiple inh...Daniel Kirchner2018-04-091-20/+30
* | Error on duplicated super constructor callsFederico Bond2018-04-092-0/+33
* | Static Analyzer: Fix non-deterministic order of unused variable warnings.Daniel Kirchner2018-04-072-8/+10
|/
* Merge pull request #3824 from ethereum/baseArgumentsEmptyParenthesisDaniel Kirchner2018-04-051-23/+39
|\
| * Error when using empty parenthesis for base class constructors that require a...Daniel Kirchner2018-04-051-23/+39
* | Merge pull request #3745 from ethereum/fixRecursionAlex Beregszaszi2018-04-052-19/+22
|\ \ | |/ |/|
| * Generalize cycle detection.chriseth2018-04-032-19/+22
* | Constructors are defined using the ``constructor`` keyword.Daniel Kirchner2018-04-041-1/+16
|/
* Merge pull request #3699 from ethereum/interfaceExternalVisibilityAlex Beregszaszi2018-04-032-12/+13
|\
| * Makes visibility warning more concise.Erik Kundt2018-04-031-2/+4
| * Defaults to external visibility for interfaces.bitshift2018-04-032-12/+11
* | Merge pull request #3790 from ethereum/empty-structschriseth2018-03-302-0/+16
|\ \
| * | Still allow empty structs for non-0.5.0 modeAlex Beregszaszi2018-03-271-1/+8
| * | Disallow empty structsAlex Beregszaszi2018-03-272-0/+9
| |/
* / Prevent encoding of weird types and support packed encoding of external funct...chriseth2018-03-291-0/+11
|/
* Merge pull request #3681 from ethereum/interface-externalchriseth2018-03-271-0/+9
|\
| * Introduce inContractKind helper on FunctionDefinitionAlex Beregszaszi2018-03-261-11/+5
| * Allow overriding external functions in interfaces with public in an implement...Alex Beregszaszi2018-03-261-0/+15
* | Changes deprecation and adjusts tests.bitshift2018-03-271-0/+15
* | Moves blockhash function to global level.bitshift2018-03-271-0/+1
|/
* Decode dynamic data.chriseth2018-03-211-1/+1
* Move dynamic type removal out of the type system.chriseth2018-03-211-3/+9
* Merge pull request #3611 from ethereum/warn-using-address-overloadAlex Beregszaszi2018-03-071-0/+14
|\
| * Assert that address members are not present on contract types in 0.5.0.chriseth2018-03-051-0/+4
| * Warn if using address overloads on contractsAlex Beregszaszi2018-03-051-0/+10
* | Merge pull request #3664 from ethereum/literalsHexUnitSmallFixchriseth2018-03-071-2/+2
|\ \
| * | Use double quotes for suggestion about hex literals and denominations.Daniel Kirchner2018-03-071-2/+2
* | | Warn about using loose inline assembly features as experimental 0.5.0 feature.chriseth2018-03-072-1/+7
|/ /
* | Merge pull request #3549 from ethereum/fixmultidimAlex Beregszaszi2018-03-061-4/+26
|\ \
| * | Fix multi-dimensional arrays in the ABI.chriseth2018-03-011-4/+26
* | | Merge pull request #3652 from ethereum/gasleft_v2chriseth2018-03-061-1/+18
|\ \ \
| * | | Use StaticAnalyzer to deprecate msg.gas instead of conditionally removing it ...Daniel Kirchner2018-03-061-1/+18
* | | | Merge pull request #3643 from ethereum/gasleftchriseth2018-03-061-0/+1
|\| | | | |_|/ |/| |
| * | Move msg.gas to global function gasleft(). Closes #2971.Daniel Kirchner2018-03-051-0/+1
* | | Merge pull request #3569 from ethereum/evmVersionchriseth2018-03-053-2/+11
|\ \ \ | |/ / |/| |
| * | Provide EVM version to assembly analysis.chriseth2018-03-022-1/+3
| * | Use EVM version in type checker.chriseth2018-03-021-1/+8
| |/
* | Suggest expressions of the form '0x1234 * 1 day' instead of hex numbers with ...Daniel Kirchner2018-03-021-2/+4
* | Deprecate using unit denominations in combination with hex numbers. Closes #3...Daniel Kirchner2018-03-011-0/+15
|/
* Merge pull request #3613 from ethereum/require-visibilitychriseth2018-02-281-6/+13
|\
| * Issue error if no visibility is specified (on 0.5.0)Alex Beregszaszi2018-02-271-6/+13
* | Only active variables at the point of their declaration.chriseth2018-02-276-30/+84
* | Enable C99-scoping with the 0.5.0-experimental pragma.chriseth2018-02-273-17/+31
* | Blocks and for loops can be scopes.chriseth2018-02-274-1/+63
* | Scopes do not have to be declarations.chriseth2018-02-272-11/+23
* | Make all lookups recursive by default.chriseth2018-02-272-10/+11
|/
* Turn throw into a syntax error for 0.5.0Alex Beregszaszi2018-02-271-4/+12
* Warn about using events without emit.chriseth2018-02-222-1/+13
* Introduce emit statement.chriseth2018-02-222-0/+10
* Do not warn about analysis-only experimental features.chriseth2018-02-221-2/+4
* Fix shadowing for imports with aliases.chriseth2018-02-201-2/+3
* Properly warn about the use of constants in inline assembly in connection wit...chriseth2018-02-201-6/+6
* Disallow uninitialized storage pointers as experimental 0.5.0 feature.chriseth2018-02-151-1/+5
* Merge pull request #3498 from ethereum/allowthisfselectorchriseth2018-02-142-0/+17
|\
| * Allow `this.f.selector` to be pure.chriseth2018-02-132-0/+17
* | Fix: remove reference.chriseth2018-02-131-2/+4
* | Minor changes.chriseth2018-02-131-2/+1
* | Restructure code for alternative identifier suggestionsBalajiganapathi S2018-02-133-19/+6
* | Move string distance function to utils and format error messageBalajiganapathi S2018-02-133-48/+6
* | Suggest alternatives when identifier not found.Balajiganapathi S2018-02-135-2/+95
|/
* Deprecate the var keyword (and mark it an error as experimental 0.5.0 feature)Jimmy Vogel2018-02-132-0/+16
* Fix segfault with undeclared array typesFederico Bond2018-02-121-0/+5
* Merge pull request #3360 from federicobond/nonfatal-reference-errorsAlex Beregszaszi2018-02-041-13/+20
|\
| * Replace some fatal errors when resolving references with normal onesFederico Bond2018-02-031-13/+20
* | Issue warning for using public visibility for interface functionsAlex Beregszaszi2018-02-011-0/+2
|/
* Split inline assembly into loose and strict flavours.chriseth2018-01-062-2/+2
* Merge pull request #3297 from ethereum/separate_expression_and_statementAlex Beregszaszi2018-01-041-0/+4
|\
| * Separate expression and statement.chriseth2017-12-131-0/+4
* | Improve error message for wrong struct initialization (#3359)Federico Bond2018-01-041-1/+5
* | Merge pull request #3232 from ethereum/simplifyConstantchriseth2017-12-143-47/+65
|\ \ | |/ |/|
| * Re-use `commonType`chriseth2017-12-121-1/+1
| * Simplify ConstantEvaluator.chriseth2017-12-123-41/+61
| * Reduce the types of errors outputted by ConstantEvaluatorAlex Beregszaszi2017-12-121-8/+6
| * Improve error message for constant evaluatorAlex Beregszaszi2017-12-121-1/+1
* | Limit number of secondary source locations.chriseth2017-12-121-14/+5
|/
* Fix struct encoding warning for libraries.chriseth2017-12-111-0/+1
* Suggest the experimental ABI encoder if using structs as function parametersAlex Beregszaszi2017-12-111-0/+10
* Split Instruction and FunctionalInstruction in JuliaAlex Beregszaszi2017-12-051-5/+9
* Unary operators and division.chriseth2017-11-301-1/+1
* If statement for Iulia / inline assembly.chriseth2017-11-221-0/+5
* Improve cyclic constant error messageAlex Beregszaszi2017-11-221-1/+1
* Detect cyclic constant definitionsBalajiganapathi S2017-11-222-8/+15
* Allow constant integer variables as array lengths.Balajiganapathi S2017-11-222-0/+19
* Do not try to display checksummed address for too-short/long address literalsAlex Beregszaszi2017-11-171-2/+2
* Improves address literal checksum error messagewadeAlexC2017-11-171-3/+5
* Update outdated commentsKwang Yul Seo2017-11-154-4/+4
* Fix a typoKwang Yul Seo2017-11-141-1/+1
* More detailed errors for invalid array lengths (such as division by zero).Alex Beregszaszi2017-10-201-3/+20
* Turn usage of callcode into an error as experimental 0.5.0 featureAlex Beregszaszi2017-10-191-4/+12
* Only check tuples for valid rational numbers if they have more than one element.chriseth2017-10-181-1/+1
* Validate each tuple literalAlex Beregszaszi2017-10-181-0/+6
* Force interface functions as external (0.5.0)Alex Beregszaszi2017-10-061-2/+10
* Use the proper error reporting interface in ConstantEvaluatorAlex Beregszaszi2017-10-063-7/+13
* Require location keyword for local variables (0.5.0)Alex Beregszaszi2017-10-061-5/+13
* Do not consider shadowing in variable names inside event declarationsFederico Bond2017-10-051-2/+4
* Better error message when using fractional number as array size expressionswadeAlexC2017-10-041-2/+3
* Disallow non-pure constant state variables in 0.5.0Federico Bond2017-10-031-5/+14
* Extract duplicate function or event finding logicFederico Bond2017-09-302-37/+14
* Emit error when declaring event with same name and arguments twiceFederico Bond2017-09-302-0/+45
* Unary + now a synax error (experimental 0.5.0)Rhett Aultman2017-09-301-1/+8
* Validate array length in type checkerAlex Beregszaszi2017-09-291-1/+1
* Order GlobalContext entriesAlex Beregszaszi2017-09-271-13/+13
* Format GlobalContext for readabilityAlex Beregszaszi2017-09-271-42/+25
* Merge pull request #2978 from ethereum/infer-locationchriseth2017-09-271-1/+1
|\
| * Report correct location for inferred types in packed encodingAlex Beregszaszi2017-09-271-1/+1
* | Ensure that address types are always declared as 160bitAlex Beregszaszi2017-09-271-1/+1
|/
* Merge pull request #2902 from ethereum/warn-obsoletechriseth2017-09-211-0/+8
|\
| * Warn about obsolete sha3/suicide callsAlex Beregszaszi2017-09-191-0/+8
* | Ensure parameter names match between headers and implementationAlex Beregszaszi2017-09-203-11/+11
|/
* Allow constant byte arrays.chriseth2017-09-191-1/+1
* Merge pull request #2910 from ethereum/fallback-restrict-externalchriseth2017-09-181-0/+5
|\
| * Force fallback to be external (experimental 0.5.0 change)Alex Beregszaszi2017-09-181-0/+5
* | Check for recursive structs.chriseth2017-09-161-3/+3
|/
* Merge pull request #2904 from ethereum/viewPure5Alex Beregszaszi2017-09-152-11/+24
|\
| * Enforce view with error for experimental 0.5.0.chriseth2017-09-142-11/+24
* | Warn if no visibility is specified on contract functions.Alex Beregszaszi2017-09-142-1/+14
|/
* Merge pull request #2848 from ethereum/checkViewPurechriseth2017-09-146-4/+398
|\
| * Minor changes from review.chriseth2017-09-131-9/+3
| * Rename to invalidInPureFunctionschriseth2017-09-131-1/+1
| * Allow constant variables in pure functions.chriseth2017-09-061-1/+1
| * Rename and add anonymous namespace.chriseth2017-09-061-1/+4
| * Fix testschriseth2017-09-061-5/+8
| * Tone down error message.chriseth2017-09-061-2/+2
| * Modifier invocation can be base constructor callchriseth2017-09-061-5/+7
| * Analyze assembly.chriseth2017-09-062-11/+88
| * Do not report on overriding function and only warn for view.chriseth2017-09-061-12/+19
| * Store super function.chriseth2017-09-062-0/+4
| * Remove previous warning about pureness not being enforced.chriseth2017-09-061-2/+0
| * View-pure checker.chriseth2017-09-063-2/+308
* | Limit each duplicate declaration error to 32 referencesAlex Beregszaszi2017-09-131-2/+20
* | Merge pull request #2852 from ssuman/developchriseth2017-09-121-1/+10
|\ \
| * | Display helpful warning for unused function arguments/return parametersSuman2017-09-121-1/+10
* | | Do not report overload conflicts for every line excessivelyAlex Beregszaszi2017-09-121-1/+5
|/ /
* | Merge pull request #2888 from ethereum/same-declaration-errorAlex Beregszaszi2017-09-121-10/+12
|\ \
| * | Use secondary source location as a vector in same declaration errorsAlex Beregszaszi2017-09-121-10/+12
* | | Show each unimplemented function in secondary source locationAlex Beregszaszi2017-09-121-5/+7
|/ /
* / Do not show the same error multiple times for eventsAlex Beregszaszi2017-09-121-4/+4
|/
* Change array too large error message as it is valid for non-calldata tooAlex Beregszaszi2017-09-061-1/+1
* Swap declaration/statemutability in FunctionType constructorAlex Beregszaszi2017-08-291-1/+0
* Mark all built in functions with appropriate statemutabilityAlex Beregszaszi2017-08-292-11/+14
* Warn on using literals in tight packingAlex Beregszaszi2017-08-251-0/+22
* Remove unused statements from the Natspec headersAlex Beregszaszi2017-08-251-1/+1
* Introduce pure specifier on functionsAlex Beregszaszi2017-08-241-0/+2
* Check inheritance specifier arguments for interfaces.chriseth2017-08-221-5/+5
* Reject the creation of interface with the new statementAlex Beregszaszi2017-08-221-0/+6
* Fix crash related to ``using for`` without a library.chriseth2017-08-211-1/+1
* Library cannot have constructorsAlex Beregszaszi2017-08-211-0/+3
* Use state mutability in override error messagesAlex Beregszaszi2017-08-171-11/+10
* Use state mutability in fallback/constructor checkAlex Beregszaszi2017-08-171-4/+14
* Warn about shift of literals.chriseth2017-08-161-2/+3
* Remove useless payable & constant typecheckAlex Beregszaszi2017-08-141-2/+0
* Merge pull request #2703 from ethereum/warnAboutLargeStorageArrayschriseth2017-08-142-0/+45
|\
| * Warn about large storage structures.chriseth2017-08-122-0/+45
* | Avoid duplicate errors due to function overridesFederico Bond2017-08-121-5/+5
* | Use a secondary location for function override errorsFederico Bond2017-08-122-24/+16
* | Refactor function override check to remove duplicate logicFederico Bond2017-08-122-47/+50
* | Use fully qualified name of super in messageFederico Bond2017-08-121-4/+3
* | Improve override changes signature error messageFederico Bond2017-08-122-1/+34
|/
* Introduce ExperimentalFeatures headerAlex Beregszaszi2017-08-101-6/+4
* Reject wildcard and multiple experimental pragmasAlex Beregszaszi2017-08-101-13/+16
* Reject unsupported experimental feature namesAlex Beregszaszi2017-08-101-0/+5
* Warn if using experimental pragmaAlex Beregszaszi2017-08-101-0/+5
* Support experimental feature pragmaAlex Beregszaszi2017-08-102-4/+30
* Disable unimplemented library functions insteadAlex Beregszaszi2017-08-081-15/+2
* Raise error when using unimplemented internal library functions.Alex Beregszaszi2017-08-081-0/+15
* Constructors must be implemented if declared.Alex Beregszaszi2017-08-051-6/+2
* Merge pull request #2687 from ethereum/show-unimplemented-funcsAlex Beregszaszi2017-08-051-12/+16
|\
| * Remove duplicated check for unimplemented functionsAlex Beregszaszi2017-08-041-2/+0
| * Show unimplemented function if trying to instantiate an abstract classAlex Beregszaszi2017-08-041-1/+8
| * Replace isFullyImplemented with unimplementedFunctions in ASTAnnotationsAlex Beregszaszi2017-08-041-10/+9
* | Search for shadowee starting from parent scope.chriseth2017-08-052-24/+4
* | Do not mark overloaded functions as shadowingAlex Beregszaszi2017-08-052-1/+20
|/
* Rename Bare to BarecallAlex Beregszaszi2017-08-011-1/+1
* Add isFallback() helperAlex Beregszaszi2017-07-281-2/+2
* Merge pull request #2635 from ethereum/fixCrashOnAssignmentToNonLValueAlex Beregszaszi2017-07-271-1/+3
|\
| * Fix crash on assignment to non-lvalue.chriseth2017-07-261-1/+3
* | Re-allow multiple modifiers per function.chriseth2017-07-271-2/+0
* | Warn about shadowing variables.Alex Beregszaszi2017-07-252-40/+98
|/
* Migrate over to ErrorReporterRhett Aultman2017-07-191-1/+1
* Warn if this is used in constructorAlex Beregszaszi2017-07-192-0/+15
* Include types in explicit conversion error messageAlex Beregszaszi2017-07-141-1/+8
* Disable large arrays for memory location tooAlex Beregszaszi2017-07-141-1/+5
* Issue error properly for oversized arrays for calldataAlex Beregszaszi2017-07-141-0/+6
* Add type error when attempting value transfer to a non-payable contractFederico Bond2017-07-131-0/+19
* Issue proper warning trying to access calldata variables in inline assemblyAlex Beregszaszi2017-07-121-1/+4
* Fix invalid "explicit storage keyword" warning for reference members of structs.chriseth2017-07-111-1/+1
* Deprecate throw.chriseth2017-07-062-0/+13
* Warn if local storage reference variable does not use "storage" explicitly.chriseth2017-07-062-5/+20
* Remove parsing of why3 doc stringsAlex Beregszaszi2017-07-012-13/+1
* Warn about callcode.chriseth2017-06-301-0/+8
* Rename to isHexNumber()Alex Beregszaszi2017-06-291-1/+1
* Add hasHexPrefix() to AST::LiteralAlex Beregszaszi2017-06-281-1/+1
* Give min and max values in warning message.chriseth2017-06-281-1/+9
* Warn if using var x = 0chriseth2017-06-281-0/+24
* Merge pull request #2464 from federicobond/deprecate-function-type-nameschriseth2017-06-272-0/+14
|\