aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
Commit message (Expand)AuthorAgeFilesLines
...
* | Fix a typoKwang Yul Seo2017-11-141-1/+1
* | Remove a redundant checkKwang Yul Seo2017-11-131-1/+1
|/
* Merge pull request #3092 from rivenhk/b_2885chriseth2017-10-231-0/+15
|\
| * updated formatting when source snippets is too longrivenhk2017-10-191-3/+3
| * updating formatting when source snippets is too longrivenhk2017-10-181-5/+5
| * added formatting when source snippets is too longrivenhk2017-10-181-0/+15
* | Merge pull request #3030 from ethereum/smt-variable-typeschriseth2017-10-202-1/+16
|\ \
| * | SMT enforce variable typesAlex Beregszaszi2017-10-052-1/+16
* | | More detailed errors for invalid array lengths (such as division by zero).Alex Beregszaszi2017-10-201-3/+20
* | | Merge pull request #3101 from ethereum/compilerstack-headerchriseth2017-10-192-27/+41
|\ \ \
| * | | Simplify contract lookup in CompileStackAlex Beregszaszi2017-10-191-5/+10
| * | | Implement CompilerStack.lastContractName()Alex Beregszaszi2017-10-192-10/+19
| * | | Always require a contract/sourceName in CompilerStackAlex Beregszaszi2017-10-191-14/+14
* | | | Merge pull request #3108 from ethereum/remove-callcodechriseth2017-10-191-4/+12
|\ \ \ \
| * | | | Turn usage of callcode into an error as experimental 0.5.0 featureAlex Beregszaszi2017-10-191-4/+12
| |/ / /
* / / / Remove unused variable in Z3Alex Beregszaszi2017-10-191-1/+1
|/ / /
* | | Merge pull request #2925 from ethereum/tuple-value-checkchriseth2017-10-181-0/+6
|\ \ \
| * | | 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
| | |/ | |/|
* | | Do not accept truncated function selectors.chriseth2017-10-181-7/+4
* | | Catch exception in Z3.chriseth2017-10-181-18/+27
* | | Remove duplicate >= in Z3Alex Beregszaszi2017-10-181-2/+1
* | | Missing forward declaration.chriseth2017-10-181-0/+1
* | | Rename variables in SMT checker.chriseth2017-10-182-11/+11
|/ /
* | Allocate one byte per memory byte array element instead of 32.chriseth2017-10-171-2/+9
* | Improve Z3 message in cmakeAlex Beregszaszi2017-10-131-2/+2
* | Force interface functions as external (0.5.0)Alex Beregszaszi2017-10-061-2/+10
* | Remove obsolete createTypeError in ASTAlex Beregszaszi2017-10-063-12/+1
* | 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
* | Merge pull request #2981 from ethereum/no-address-overloadchriseth2017-10-051-2/+5
|\ \
| * | Do not add members of address to contracts in experimental 0.5.0Alex Beregszaszi2017-10-051-2/+5
* | | Merge pull request #3020 from ethereum/smt-functioncallAlex Beregszaszi2017-10-051-0/+10
|\ \ \ | |_|/ |/| |
| * | SMT should not crash on typecast/structsAlex Beregszaszi2017-10-051-0/+10
* | | Merge pull request #2982 from ethereum/encoderFixesAlex Beregszaszi2017-10-052-25/+18
|\ \ \ | |_|/ |/| |
| * | Rename "compacted" to "fromStack".chriseth2017-10-042-22/+18
| * | ABI encoder fixes and test.chriseth2017-09-271-5/+2
* | | Merge pull request #3029 from ethereum/tanwisgasAlex Beregszaszi2017-10-051-0/+3
|\ \ \
| * | | Send all gas for 0.5.0.chriseth2017-10-051-0/+3
| | |/ | |/|
* | | Merge pull request #2968 from ethereum/calldataencodedsizechriseth2017-10-051-0/+3
|\ \ \
| * | | Add some asserts about calldata encoded size.chriseth2017-10-041-0/+3
* | | | Merge pull request #2901 from ethereum/compiler-nameschriseth2017-10-053-1/+40
|\ \ \ \
| * | | | Restrict contracts compiled via outputSelection (but not the individual outpu...Alex Beregszaszi2017-10-051-0/+19
| * | | | Provide optional list of contract names to CompilerStack.compileAlex Beregszaszi2017-10-052-1/+21
| | |/ / | |/| |
* / | | Do not consider shadowing in variable names inside event declarationsFederico Bond2017-10-051-2/+4
|/ / /
* | | Merge pull request #2962 from ethereum/optionalDebugInfoAsmchriseth2017-10-041-5/+16
|\ \ \
| * | | Debugging info in CompilerContext.chriseth2017-10-041-5/+16
* | | | Merge pull request #3022 from ethereum/assertAlex Beregszaszi2017-10-043-3/+3
|\ \ \ \
| * | | | Use solAssert and not assertAlex Beregszaszi2017-10-043-3/+3
* | | | | Merge pull request #2990 from ethereum/someMoreSMTStuffchriseth2017-10-041-7/+0
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Remove leftover couts.chriseth2017-09-291-7/+0
* | | | | 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
* | | | | Merge pull request #2997 from federicobond/duplicate-eventsAlex Beregszaszi2017-10-032-5/+27
|\ \ \ \ \
| * | | | | 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
* | | | | | Add helpers for isPush/isDup/isSwapAlex Beregszaszi2017-10-021-3/+3
|/ / / / /
* | | | | 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
|/ / / /
* | | | Pull out helper to apply address member to contract membersAlex Beregszaszi2017-09-282-4/+10
* | | | Simplify address overloadingAlex Beregszaszi2017-09-282-30/+39
* | | | Fix overload resolution when conflict is with members of address (balance, tr...Alex Beregszaszi2017-09-281-6/+28
* | | | Merge pull request #2986 from ethereum/fixsourcelocationofvariabledecsatementAlex Beregszaszi2017-09-281-0/+1
|\ \ \ \
| * | | | Fix source location of VariableDeclarationStatement.chriseth2017-09-281-0/+1
| | |_|/ | |/| |
* / | | Better readable encoder assembly.chriseth2017-09-271-6/+28
|/ / /
* | | Merge pull request #2975 from ethereum/encode-memoryAlex Beregszaszi2017-09-274-22/+45
|\ \ \
| * | | Split encodeToMemory to packedEncode and abiEncodeAlex Beregszaszi2017-09-274-18/+41
| * | | Make most of the parameters mandatory in encodeToMemoryAlex Beregszaszi2017-09-272-6/+6
* | | | 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-275-14/+14
|/ /
* | Merge pull request #2934 from ethereum/fallthroughchriseth2017-09-262-53/+56
|\ \ | |/ |/|
| * Simplify switch statements by refactoring internal break statementsAlex Beregszaszi2017-09-252-24/+24
| * Avoid switch fallthrough in ExpressionCompilerAlex Beregszaszi2017-09-251-26/+32
| * Avoid switch fallthrough in CompilerUtilsAlex Beregszaszi2017-09-251-6/+3
* | Better error message for unexpected trailing comma in parameter listswadeAlexC2017-09-251-0/+2
|/
* More verbose errors for generated assembly.chriseth2017-09-221-2/+18
* Merge pull request #2902 from ethereum/warn-obsoletechriseth2017-09-211-0/+8
|\
| * Warn about obsolete sha3/suicide callsAlex Beregszaszi2017-09-191-0/+8
* | Limit parser recursion depth further (needed by increased assembly data struc...Alex Beregszaszi2017-09-201-1/+1
* | Support multiple assignment in inline assemblyAlex Beregszaszi2017-09-204-6/+56
* | Mark functions staticAlex Beregszaszi2017-09-204-14/+14
* | Mark constructors explicitAlex Beregszaszi2017-09-201-1/+1
* | Ensure parameter names match between headers and implementationAlex Beregszaszi2017-09-205-14/+14
|/
* 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 interface types of members and cache recursion check.chriseth2017-09-162-21/+48
* | Use "tuple" for struct types in ABI JSON.chriseth2017-09-161-1/+1
* | Implement struct encoder.chriseth2017-09-165-8/+141
* | Fix tests.chriseth2017-09-162-2/+2
* | Structure type json using "components".chriseth2017-09-161-8/+8
* | Fix interface type conversion internal to structs.chriseth2017-09-162-2/+8
* | Function signatures containing structs.chriseth2017-09-163-39/+84
* | Update tests and error messages.chriseth2017-09-161-1/+1
* | Check for recursive structs.chriseth2017-09-163-4/+33
* | Allow structs as part of function interfaces.chriseth2017-09-163-10/+54
|/
* Move ABI encoder into its own function.chriseth2017-09-165-66/+82
* Named assembly labels.chriseth2017-09-165-18/+24
* 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-143-1/+15
|/
* Add experimental feature 'v0.5.0'Alex Beregszaszi2017-09-141-0/+2
* Merge pull request #2473 from ethereum/functiontype-sigAlex Beregszaszi2017-09-142-1/+13
|\
| * Rename .sig to .selector on function typesAlex Beregszaszi2017-09-132-2/+2
| * Add sig member on function typeAlex Beregszaszi2017-09-132-1/+13
* | Merge pull request #2848 from ethereum/checkViewPurechriseth2017-09-1410-4/+414
|\ \
| * | 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-064-0/+8
| * | Remove previous warning about pureness not being enforced.chriseth2017-09-061-2/+0
| * | View-pure checker.chriseth2017-09-065-2/+320
* | | 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
* | | Merge pull request #2887 from ethereum/missing-functions-listchriseth2017-09-121-5/+7
|\ \ \
| * | | Show each unimplemented function in secondary source locationAlex Beregszaszi2017-09-121-5/+7
| |/ /
* | | Merge pull request #2853 from ethereum/cleanup-asm-streamchriseth2017-09-126-21/+38
|\ \ \ | |/ / |/| |
| * | Introduce assemblyStringAlex Beregszaszi2017-09-116-17/+12
| * | Do not return the stream in asssemblyStreamAlex Beregszaszi2017-09-114-8/+7
| * | Split out the JSON functionality from assembly.stream()Alex Beregszaszi2017-09-116-14/+37
| |/
* / 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
* Merge pull request #2860 from ethereum/noparamsfordefaultedAlex Beregszaszi2017-08-311-4/+4
|\
| * Remove parameter names for defaulted functions.chriseth2017-08-311-4/+4
* | Use Json::valueToQuotedString directlyAlex Beregszaszi2017-08-291-4/+2
* | Remove escape function.chriseth2017-08-291-3/+11
|/
* Merge pull request #2847 from ethereum/codegen-docsAlex Beregszaszi2017-08-293-1/+25
|\
| * Document more of the codegen featuresAlex Beregszaszi2017-08-293-1/+25
* | Merge pull request #2833 from ethereum/statemutability-builtinschriseth2017-08-295-22/+24
|\ \
| * | Swap declaration/statemutability in FunctionType constructorAlex Beregszaszi2017-08-294-11/+8
| * | Mark all built in functions with appropriate statemutabilityAlex Beregszaszi2017-08-293-12/+17
* | | Move all file specific globals to anonymous namespaceAlex Beregszaszi2017-08-292-0/+10
| |/ |/|
* | Include all overloaded events in ABIAlex Beregszaszi2017-08-291-2/+10
|/
* Mark event non-payable and not viewAlex Beregszaszi2017-08-281-2/+6
* Merge pull request #2835 from ethereum/compilerstack-docsAlex Beregszaszi2017-08-281-5/+7
|\
| * Reorder some methods in CompilerStack for readabilityAlex Beregszaszi2017-08-281-5/+7
* | Merge pull request #2834 from ethereum/fixTypeNameParsingAlex Beregszaszi2017-08-281-1/+4
|\ \ | |/ |/|
| * Crash fix, parseTypeName can return null.chriseth2017-08-281-1/+4
* | Merge pull request #2825 from ethereum/contract-unused-natspecchriseth2017-08-283-33/+0
|\ \ | |/ |/|
| * Removed unused natspec members of ContractDefinitionAlex Beregszaszi2017-08-263-33/+0
* | Merge pull request #2821 from ethereum/errorreporter-copyAlex Beregszaszi2017-08-261-0/+3
|\ \ | |/ |/|
| * Add copy constructor to ErrorReporter (since it has assignment operator)Alex Beregszaszi2017-08-251-0/+3
* | Merge pull request #2819 from ethereum/compilerstack-typecheckchriseth2017-08-261-19/+5
|\ \
| * | Do not create a new TypeChecker instance for every contractAlex Beregszaszi2017-08-251-3/+1
| * | Attach natspec before type checkingAlex Beregszaszi2017-08-251-6/+4
| * | Remove duplicate work from CompilerStack.analyze()Alex Beregszaszi2017-08-251-10/+0
* | | Merge pull request #2820 from ethereum/fallthroughchriseth2017-08-264-6/+8
|\ \ \
| * | | Move the break in switch for readabilityAlex Beregszaszi2017-08-251-3/+3
| * | | Mark to places fall-throughAlex Beregszaszi2017-08-252-0/+2
| * | | Remove fallthrough from ArrayUtilsAlex Beregszaszi2017-08-251-3/+3
| | |/ | |/|
* | | Merge pull request #2813 from ethereum/tightpack-warnAlex Beregszaszi2017-08-251-0/+22
|\ \ \ | |/ / |/| |
| * | Warn on using literals in tight packingAlex Beregszaszi2017-08-251-0/+22
* | | Merge pull request #2815 from ethereum/parser-fallthroughAlex Beregszaszi2017-08-252-9/+14
|\ \ \ | |_|/ |/| |
| * | Remove two other fall-through cases in ParserAlex Beregszaszi2017-08-252-3/+5
| * | Remove fallthrough from literal parsingAlex Beregszaszi2017-08-251-6/+9
| |/
* / Cleanup of Common.hchriseth2017-08-251-0/+1
|/
* Remove unused statements from the Natspec headersAlex Beregszaszi2017-08-252-28/+1
* Reorder ABI for readabilityAlex Beregszaszi2017-08-251-9/+10
* Rename statemutability to stateMutability in ABI/ASTAlex Beregszaszi2017-08-242-5/+5
* Consider pure as constant for the AST JSON (to aid static analyzers)Alex Beregszaszi2017-08-241-2/+2
* Introduce pure specifier on functionsAlex Beregszaszi2017-08-245-4/+10
* Merge pull request #2770 from ethereum/recursionInAsmchriseth2017-08-245-39/+44
|\
| * Reduce max recursion depth.chriseth2017-08-221-1/+1
| * Check recursion depth in assembly parser.chriseth2017-08-225-39/+44
* | Review changes.chriseth2017-08-235-24/+24
* | Use experimental feature pragma for SMT checker.chriseth2017-08-232-6/+4
* | Partial support for if statements.chriseth2017-08-234-16/+128
* | Format numbers more nicely.chriseth2017-08-231-11/+25
* | Refactor Z3 read callback.chriseth2017-08-236-133/+46
* | Rename read file callback.chriseth2017-08-238-20/+23
* | Introduce native Z3 support.chriseth2017-08-232-0/+244
* | Insert abstraction layer.chriseth2017-08-235-148/+225
* | Prepare build system for Z3.chriseth2017-08-232-1/+18
* | Cleanup.chriseth2017-08-239-716/+686
* | Use file to communicate with z3.chriseth2017-08-233-14/+274
* | Rewrite using SMTLIB2 interface.chriseth2017-08-234-63/+233
* | z3 conditionschriseth2017-08-237-1/+646
* | Merge pull request #2757 from ethereum/cmakeAlex Beregszaszi2017-08-231-21/+4
|\ \
| * | CMake: Cleanup "local" include pathPaweł Bylica2017-08-231-1/+0
| * | CMake: Remove libsolidity <- boost::regex dependencyPaweł Bylica2017-08-211-1/+1
| * | CMake: Make libs dependencies explicitPaweł Bylica2017-08-211-1/+1
| * | CMake: Simplify libsolidity configPaweł Bylica2017-08-181-19/+5
| * | CMake: Build static libs by defaultPaweł Bylica2017-08-181-2/+0
* | | Merge pull request #2656 from ethereum/performance1chriseth2017-08-232-21/+31
|\ \ \
| * | | Create children node in ASTJsonConverter when neccesaryAlex Beregszaszi2017-08-211-0/+8
| * | | Avoid some Json copy operations.chriseth2017-08-212-21/+23
* | | | Introduce view (and keep constant as an alias)Alex Beregszaszi2017-08-235-5/+8
* | | | Merge pull request #2775 from ethereum/coveritychriseth2017-08-222-5/+4
|\ \ \ \
| * | | | Some smaller issues found by Covertiy ScanAlex Beregszaszi2017-08-222-5/+4
* | | | | Merge pull request #2776 from ethereum/removeVisitsToAbstractASTNodeAlex Beregszaszi2017-08-227-40/+2
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Remove visits to abstract AST class TypeName.chriseth2017-08-227-40/+2
| | |_|/ | |/| |
* | | | Merge pull request #2734 from ethereum/reject-create-interfaceAlex Beregszaszi2017-08-222-1/+10
|\ \ \ \ | |/ / / |/| | |
| * | | Check inheritance specifier arguments for interfaces.chriseth2017-08-221-5/+5
| * | | Reject the creation of interface with the new statementAlex Beregszaszi2017-08-222-0/+9
* | | | Mark a lot of functions static (where possible)Alex Beregszaszi2017-08-224-6/+6
* | | | Mark appropriate constructors explicitAlex Beregszaszi2017-08-229-10/+10
* | | | Mark a lot of functions const (where possible)Alex Beregszaszi2017-08-2214-23/+23
* | | | Set variable to nullptr in ASTPrinterAlex Beregszaszi2017-08-221-1/+1
|/ / /
* | | Merge pull request #2773 from ethereum/usingForWithoutLibraryAlex Beregszaszi2017-08-221-1/+1
|\ \ \ | |/ / |/| |
| * | Fix crash related to ``using for`` without a library.chriseth2017-08-211-1/+1
* | | Merge pull request #2771 from ethereum/unused-includesAlex Beregszaszi2017-08-212-3/+0
|\ \ \ | |/ / |/| |
| * | Remove some unused includesAlex Beregszaszi2017-08-212-3/+0
| |/
* | Merge pull request #2748 from ethereum/natspecchriseth2017-08-213-38/+38
|\ \
| * | Remove DocumentationType from natspecAlex Beregszaszi2017-08-163-38/+38
* | | Merge branch 'develop' into library-constructorchriseth2017-08-212-0/+23
|\ \ \
| * | | Be more strict about number literals in assembly.chriseth2017-08-212-0/+23
| | |/ | |/|
* / | Library cannot have constructorsAlex Beregszaszi2017-08-211-0/+3
|/ /
* | Remove isDeclaredConst() from functionsAlex Beregszaszi2017-08-173-5/+3
* | Add statemutability to AST JSONAlex Beregszaszi2017-08-171-0/+2
* | Use state mutability in override error messagesAlex Beregszaszi2017-08-171-11/+10
* | Use state mutability in fallback/constructor checkAlex Beregszaszi2017-08-171-4/+14
* | FunctionType comparison/identifer to support all statemutability levelsAlex Beregszaszi2017-08-171-10/+4
* | Warn about shift of literals.chriseth2017-08-161-2/+3
|/
* Add statemutability field to the ABIAlex Beregszaszi2017-08-151-0/+3
* Prevent too deep recursion in parser.chriseth2017-08-152-0/+82
* Merge pull request #2704 from ethereum/newEncoderchriseth2017-08-149-14/+1302
|\
| * Experimental feature switch for ABI encoder.chriseth2017-08-144-4/+16
| * Remove unused magic global feature.chriseth2017-08-142-10/+2
| * Interface for new ABI encoder.chriseth2017-08-142-0/+40
| * New ABI encoder.chriseth2017-08-142-0/+1246
| * Allow multi-dimensional arrays in interfaces.chriseth2017-08-141-2/+0
* | Remove constant/payable in all function typesAlex Beregszaszi2017-08-143-31/+16
* | Remove useless payable & constant typecheckAlex Beregszaszi2017-08-141-2/+0
* | Replace constant/payable with StateMutability in ASTAlex Beregszaszi2017-08-148-68/+129
|/
* 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-123-26/+18
* | Refactor function override check to remove duplicate logicFederico Bond2017-08-122-47/+50
* | Use fully qualified name of super in messageFederico Bond2017-08-123-4/+13
* | Improve override changes signature error messageFederico Bond2017-08-122-1/+34
|/
* Enforce commas in tuple syntaxFederico Bond2017-08-121-2/+3
* Output experimental flag in metadata only for risky featuresAlex Beregszaszi2017-08-111-9/+27
* Store experimental flag in metadata CBORAlex Beregszaszi2017-08-111-0/+6
* Add analysis-only experimental featuresAlex Beregszaszi2017-08-111-2/+9
* Add __test experimental mode for testingAlex Beregszaszi2017-08-111-2/+6
* Merge pull request #2727 from ethereum/simplify-typeschriseth2017-08-111-16/+29
|\