aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
Commit message (Expand)AuthorAgeFilesLines
* Fix crash when FunctionType has undeclared type as parameterLeonardo Alt2018-07-311-1/+1
* Merge pull request #4527 from ethereum/mappingEnforceStorageAlex Beregszaszi2018-07-241-1/+8
|\
| * Enforces data location of local mappings to storage.Erik Kundt2018-07-241-1/+8
* | Disallow functions without implementation to use modifiers. This was already ...Christian Parpart2018-07-241-8/+2
* | Do not handle `balance` member of contract types specially.chriseth2018-07-201-2/+1
* | Merge pull request #4439 from ethereum/address_memberschriseth2018-07-191-18/+16
|\ \
| * | Changes in ExpressionCompilerLeonardo Alt2018-07-191-2/+3
| * | Add suggestion to error messageLeonardo Alt2018-07-171-18/+15
* | | Adds warning if function is shadowing a contract.Erik Kundt2018-07-181-9/+1
* | | Disallows old constructor syntax.Erik Kundt2018-07-182-25/+17
| |/ |/|
* | Suggests external for fallback and interface functions.chriseth2018-07-182-1/+15
* | Enforces visibility specifier and updates docs.Erik Kundt2018-07-172-11/+1
|/
* Add missing period in the end of error messagesLeonardo Alt2018-07-161-3/+3
* Deprecate the throw statementAlex Beregszaszi2018-07-161-12/+4
* 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 #4437 from ethereum/report-empty-var-declschriseth2018-07-132-0/+15
|\
| * Generates a syntax error when declaring a variable declaration's LHS has no n...Christian Parpart2018-07-122-0/+15
* | Require storage location.Daniel Kirchner2018-07-121-13/+4
|/
* Merge pull request #4443 from ethereum/double_var_decl_fixchriseth2018-07-123-1/+15
|\
| * Add comment explaining new codeLeonardo Alt2018-07-111-0/+5
| * Fix crash for double variable declaration in the same scope.Leonardo Alt2018-07-113-1/+10
* | Merge pull request #4404 from ethereum/v050-var-keyword-suggestChristian Parpart2018-07-113-19/+63
|\ \
| * | Coding style.chriseth2018-07-111-23/+18
| * | semantics: Suggest auto-deduced type when user declares variable with `var` k...Christian Parpart2018-07-113-19/+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-112-2/+2
| |/ / |/| |
* | | 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
* | | | | defaulting to v0.5.0 behaviour of unary + operator (disallow); also adapting ...Christian Parpart2018-07-101-8/+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
* | | Merge pull request #4418 from ethereum/initialConstantschriseth2018-07-051-13/+4
|\ \ \
| * | | Only allow compile-time constants for constant state variables.chriseth2018-07-041-13/+4
| |/ /
* | | Merge pull request #4409 from ethereum/viewPureCheckerchriseth2018-07-042-26/+13
|\ \ \
| * | | Remove v050 check for enforcing "view" in ViewPureChecker.Daniel Kirchner2018-07-042-26/+13
| |/ /
* / / Enforcing error on msg.gas and block.blockhash()Leonardo Alt2018-07-041-27/+9
|/ /
* | Merge pull request #4379 from ethereum/constructorArgsTwicechriseth2018-07-041-14/+5
|\ \
| * | Disallow constructor arguments given multiple times.chriseth2018-06-291-14/+5
* | | libsolidity: turns the var-keyword use from deprecation-warning to an error a...Christian Parpart2018-07-031-6/+1
| |/ |/|
* | Remove trailing whitespace in missing visibility warning.Daniel Kirchner2018-07-021-2/+2
|/
* 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-282-37/+44
|\ \
| * | 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-252-33/+4
* | | 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
* 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