aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis/TypeChecker.cpp
Commit message (Expand)AuthorAgeFilesLines
* Changes in ExpressionCompilerLeonardo Alt2018-07-191-2/+3
* Add suggestion to error messageLeonardo Alt2018-07-171-18/+15
* Add missing period in the end of error messagesLeonardo Alt2018-07-161-3/+3
* enforce interface-functions to be external-declaredChristian Parpart2018-07-161-12/+4
* Merge pull request #4501 from ethereum/recursiveStructsWithFixedArrayschriseth2018-07-131-13/+16
|\
| * Use CycleDetector and account for multi-dimensional arrays.Daniel Kirchner2018-07-131-19/+16
| * Consider fixed size array members when checking for recursive structs.Daniel Kirchner2018-07-131-0/+6
* | Disallow multi variable declarations with mismatching number of values.Daniel Kirchner2018-07-131-72/+16
|/
* Merge pull request #4404 from ethereum/v050-var-keyword-suggestChristian Parpart2018-07-111-8/+63
|\
| * Coding style.chriseth2018-07-111-23/+18
| * semantics: Suggest auto-deduced type when user declares variable with `var` k...Christian Parpart2018-07-111-8/+68
* | Merge pull request #4454 from ethereum/constructorArgCountchriseth2018-07-111-24/+9
|\ \
| * | Improves error with suggestion to remove parantheses.Erik Kundt2018-07-111-1/+1
| * | Updates Changelog, syntax test and simplifies type checker.Erik Kundt2018-07-111-3/+1
| * | Turns wrong argument count in base constructor call into en error.Erik Kundt2018-07-111-22/+9
| |/
* | Merge pull request #4388 from ethereum/noPackedLiteralschriseth2018-07-111-17/+7
|\ \
| * | Disallow packed encoding of literals.chriseth2018-07-031-17/+7
* | | Code, Changelog, ReleaseChecklist: Fix typos.Cryptomental2018-07-111-1/+1
| |/ |/|
* | Merge pull request #4376 from ethereum/fallbackExternalchriseth2018-07-111-4/+1
|\ \
| * | Fallback function has to be external.chriseth2018-07-041-4/+1
* | | Merge pull request #4464 from cryptomental/bugfix/fix-typos-in-AsmParser-and-...chriseth2018-07-111-1/+1
|\ \ \
| * | | AsmParser,TypeChecker: Fix typos.Cryptomental2018-07-101-1/+1
* | | | Merge pull request #4466 from ethereum/tupleNotEmptychriseth2018-07-111-11/+2
|\ \ \ \
| * | | | Remove special ``(x,)`` case from type assignment.chriseth2018-07-101-4/+0
| * | | | Disallow empty tuple components.Daniel Kirchner2018-07-101-7/+2
* | | | | Merge pull request #4415 from ethereum/uninitializedStoragePointerchriseth2018-07-101-4/+1
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Turn uninitialized storage variables into an error.Daniel Kirchner2018-07-101-4/+1
| |/ / /
* / / / Check for matching number of components in TupleType::isImplicitlyConvertible...Daniel Kirchner2018-07-101-19/+1
|/ / /
* | | Enforce error on hex number combined with unit denominationLeonardo Alt2018-07-091-17/+6
* | | Only allow compile-time constants for constant state variables.chriseth2018-07-041-13/+4
|/ /
* / Disallow constructor arguments given multiple times.chriseth2018-06-291-14/+5
|/
* Merge pull request #4352 from D-Nice/developchriseth2018-06-291-1/+1
|\
| * Fixes storage ref var typo error from 'prefix' to 'suffix'D-Nice2018-06-251-1/+1
* | Merge pull request #4097 from ethereum/noPackedExceptForPackedchriseth2018-06-281-33/+40
|\ \
| * | Also mention regular abi.encode in error message.chriseth2018-06-271-2/+8
| * | Provide better suggestions in error messages with respect to call and hash fu...chriseth2018-06-251-4/+34
| * | Bare functions take single bytes argument.chriseth2018-06-251-29/+0
* | | Remove non-0.5.0 warning for emit keyword (make it mandatory)Alex Beregszaszi2018-06-271-6/+1
|/ /
* | Keep the 'if it not used as an address' helper message for all cases of addre...Alex Beregszaszi2018-06-251-7/+12
* | Better wording for invalid address literal errorAlex Beregszaszi2018-06-251-2/+4
* | Change invalid (not exactly 160 bits long) address literal to errorJason Cobb2018-06-251-4/+11
|/
* Disallow the years unit denomination properlyAlex Beregszaszi2018-06-221-12/+4
* Simplification of typeSupportedByOldABIEncoderKhan M Rashedun-Naby2018-06-211-5/+3
* Disallow sha3/suicide aliasesAlex Beregszaszi2018-06-131-10/+2
* Show named argument name in errorAlex Beregszaszi2018-06-061-1/+1
* Allow using `calldata` keyword to specify data locationmingchuan2018-05-301-1/+1
* 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
* 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
* Fix name clashes between constructor and fallback function.chriseth2018-04-181-47/+45
* Improve documentation and warning about accessing contract members inherited ...Daniel Kirchner2018-04-141-1/+2
* Merge pull request #3364 from ethereum/revertWithReasonchriseth2018-04-131-4/+3
|\
| * Allow function overloads involving MagicVariableDeclarations.chriseth2018-04-121-4/+3
* | Allow struct encoding with new encoder.chriseth2018-04-121-7/+18
* | Check partial function parameters if rest is arbitrary.chriseth2018-04-121-3/+14
|/
* 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-091-21/+54
|/
* Error when using empty parenthesis for base class constructors that require a...Daniel Kirchner2018-04-051-23/+39
* Prevent encoding of weird types and support packed encoding of external funct...chriseth2018-03-291-0/+11
* 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
* 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-071-0/+5
|/ /
* | 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 #3569 from ethereum/evmVersionchriseth2018-03-051-0/+1
|\ \
| * | Provide EVM version to assembly analysis.chriseth2018-03-021-0/+1
| |/
* | 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
|/
* Warn about using events without emit.chriseth2018-02-221-1/+9
* Introduce emit statement.chriseth2018-02-221-0/+9
* 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
* Issue warning for using public visibility for interface functionsAlex Beregszaszi2018-02-011-0/+2
* Split inline assembly into loose and strict flavours.chriseth2018-01-061-1/+1
* Improve error message for wrong struct initialization (#3359)Federico Bond2018-01-041-1/+5
* 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
* Unary operators and division.chriseth2017-11-301-1/+1
* 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
* 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
* Disallow non-pure constant state variables in 0.5.0Federico Bond2017-10-031-5/+14
* Extract duplicate function or event finding logicFederico Bond2017-09-301-37/+11
* Emit error when declaring event with same name and arguments twiceFederico Bond2017-09-301-0/+44
* 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
|/
* Warn about obsolete sha3/suicide callsAlex Beregszaszi2017-09-191-0/+8
* 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 #2848 from ethereum/checkViewPurechriseth2017-09-141-0/+3
|\
| * Store super function.chriseth2017-09-061-0/+3
* | Limit each duplicate declaration error to 32 referencesAlex Beregszaszi2017-09-131-2/+20
* | 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-291-1/+4
* Warn on using literals in tight packingAlex Beregszaszi2017-08-251-0/+22
* 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
* Avoid duplicate errors due to function overridesFederico Bond2017-08-121-5/+5
* Use a secondary location for function override errorsFederico Bond2017-08-121-24/+15
* Refactor function override check to remove duplicate logicFederico Bond2017-08-121-44/+48
* Use fully qualified name of super in messageFederico Bond2017-08-121-4/+3
* Improve override changes signature error messageFederico Bond2017-08-121-1/+31
* 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
* 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
* 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
|/
* 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
* Warn if local storage reference variable does not use "storage" explicitly.chriseth2017-07-061-4/+6
* 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
* Warn about copies in storage that might overwrite unexpectedly.chriseth2017-06-261-0/+31
* Merge pull request #2460 from ethereum/disallowMultiModifierAlex Beregszaszi2017-06-261-0/+13
|\
| * Disallow invoking the same modifier multiple times.chriseth2017-06-241-0/+13
* | Merge pull request #2449 from federicobond/warn-bytesxx-decimalchriseth2017-06-261-1/+18
|\ \ | |/ |/|
| * Warn if decimal literals are used in a bytesXX contextFederico Bond2017-06-241-1/+18
* | Fix address literals not being treated as compile-time constantsFederico Bond2017-06-231-5/+5
* | Fix segmentation fault with constant function parametersFederico Bond2017-06-221-1/+8
|/
* Silence compiler warning.chriseth2017-06-141-1/+1
* Fix a crash about a non-callable expression.chriseth2017-06-141-4/+1
* Initial EVM1.5 assembly implementation.chriseth2017-06-081-1/+2
* Refactor error reportingRhett Aultman2017-05-301-178/+152
* Introduce Julia mode in AsmAnalyzerAlex Beregszaszi2017-05-271-0/+1
* Adapt EVM codegen to new namespace.chriseth2017-05-261-5/+5
* minor fixes and changelog updatedjudjuu2017-05-221-0/+1
* refactoring functionCallAnnotationdjudjuu2017-05-191-6/+9
* Refactor to combined scope and stack height info.chriseth2017-04-261-2/+8
* Fix storage access tests.chriseth2017-04-251-5/+5
* Storage access from inline assembly.chriseth2017-04-251-6/+19
* Move analysis out of code generator.chriseth2017-04-251-2/+2
* Only allow access to local variables and only if they have a stack size of one.chriseth2017-04-251-28/+38
* Review comments and cleanup.chriseth2017-04-251-0/+2
* Use actual type checking phase of assembler.chriseth2017-04-251-6/+5
* Split external identifier access into resolving and code generation.chriseth2017-04-251-23/+20
* Warn about side-effect free statements.chriseth2017-04-211-2/+2
* 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-181-0/+7
* 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-161-8/+7
* Mention 'transfer' in warning about unchecked 'send'.chriseth2017-03-151-2/+3
* 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
* Merge pull request #1751 from ethereum/warnLiteralExpBaseYoichi Hirai2017-03-111-0/+20
|\
| * Warn about literal constant base in exponentiation.chriseth2017-03-071-0/+20
* | Merge pull request #1747 from ethereum/fixICEInternalConstructorYoichi Hirai2017-03-091-3/+1
|\ \
| * | Move public constructor property into AST itself.chriseth2017-03-061-3/+1
* | | Merge pull request #1748 from ethereum/singletonArraychriseth2017-03-081-1/+1
|\ \ \
| * | | 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
|\ \ \
| * | | Move lambda.chriseth2017-03-031-3/+9
| * | | Refactor CodeGen to recurse on blocks.chriseth2017-03-031-3/+4
| | |/ | |/|
* | | Merge pull request #1737 from ethereum/localmappingschriseth2017-03-061-2/+5
|\ \ \ | |_|/ |/| |
| * | Disallow uninitialized mapping variables.chriseth2017-03-061-2/+5
| |/
* / Mention way to remove warning.chriseth2017-03-061-1/+5
|/
* 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
* Review comments.chriseth2017-02-141-5/+2
* Allow different entry scope for registerDeclarations.chriseth2017-02-141-1/+6
* Refactor type system to allow multiple entry points.chriseth2017-02-141-2/+2
* Warn about invalid checksums of addresses.chriseth2017-01-251-0/+10
* Check if constructor is public or not.chriseth2017-01-211-1/+6
* analysis: changes necessary to compile std/StandardToken.solYoichi Hirai2017-01-121-2/+17
* Improve error message when trying to modify constant variablesFederico Bond2016-12-131-1/+6
* Fix licensing headersVoR02202016-11-231-4/+4
* Check that no internals are used in any external function type.chriseth2016-11-161-0/+8
* Type checker: move the burden of computing mobile type to commonTypeYoichi Hirai2016-11-111-2/+2
* Merge pull request #1264 from ethereum/988chriseth2016-10-251-0/+5
|\
| * 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 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
* Make fallback function throw by default.chriseth2016-08-301-0/+2
* Disallow fallback function to return values.chriseth2016-08-261-0/+2
* Only warn about unused return in low-level functions.chriseth2016-06-261-6/+15
* Warn about unused return values.chriseth2016-06-261-0/+17
* Disallow implementation of abstract function by constructor of derived class.chriseth2016-06-071-1/+4
* Remove unused tests and add asserts for not implemented parts in code generat...chriseth2016-05-111-0/+2
* Simplify interface of RationalNumber.chriseth2016-05-111-5/+5
* Prefer mobileType() to check rational range.chriseth2016-05-111-16/+18
* reorganized tests and fixed mobile types and implicit conversions of rational...VoR02202016-05-101-19/+53