aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup is not needed for assert()Alex Beregszaszi2017-02-101-1/+1
|
* Implement assert as a global functionAlex Beregszaszi2017-02-103-4/+15
|
* Rename SUICIDE opcode to SELFDESTRUCT in libevmasmAlex Beregszaszi2017-02-072-3/+3
|
* Warn early when exhausting stackAlex Beregszaszi2017-02-021-0/+1
|
* Disallow arrays with negative lengthAlex Beregszaszi2017-02-021-0/+2
|
* Add isNegative to RationalNumberTypeAlex Beregszaszi2017-02-021-0/+3
|
* Only capture function type to address conversionAlex Beregszaszi2017-02-011-8/+10
|
* Be more verbose on the stack-mismatch errorsAlex Beregszaszi2017-02-011-1/+1
|
* Support explicit conversion of external function type to addressAlex Beregszaszi2017-02-014-1/+25
|
* Merge pull request #1598 from wuestholz/developchriseth2017-01-276-18/+61
|\ | | | | Change translation of implicit throws
| * Changelog and review suggestions.chriseth2017-01-271-1/+1
| |
| * Uninitialized internal function should call INVALID.chriseth2017-01-261-1/+3
| |
| * Allow inserting low-level functions without calling them.chriseth2017-01-262-5/+26
| |
| * Split line.chriseth2017-01-261-1/+3
| |
| * Address feedback from code review.Valentin Wüstholz2017-01-262-6/+6
| |
| * Change translation of implicit throws (issue #1589).Valentin Wüstholz2017-01-266-13/+31
| | | | | | | | | | | | | | This adds a new invalid instruction that is used for encoding implicit throws that are emitted by the compiler. This makes it possible to distinguish such runtime errors from user-provided, explicit throws.
* | Merge pull request #1451 from LefterisJP/fix_buildchriseth2017-01-271-16/+54
|\ \ | | | | | | Accept any kind of whitespace after natspec tags
| * | Minor changes.chriseth2017-01-271-19/+17
| | |
| * | More verbose function namingLefteris Karapetsas2017-01-271-2/+2
| | |
| * | Doc tags followed by newline are now parsed properlyLefteris Karapetsas2017-01-271-1/+1
| | |
| * | Fix and better output for testsLefteris Karapetsas2017-01-251-0/+6
| | |
| * | Accept any kind of whitespace after natspec tagsLefteris Karapetsas2017-01-251-13/+47
| | |
* | | Refactor json return type generation.chriseth2017-01-274-40/+38
| |/ |/|
* | Merge pull request #1604 from ethereum/checksumsAlex Beregszaszi2017-01-266-2/+47
|\ \ | | | | | | Warn about invalid checksums of addresses.
| * | Also check library addresses.chriseth2017-01-251-21/+1
| | |
| * | Warn about invalid checksums of addresses.chriseth2017-01-256-2/+67
| |/
* | Add option to store literal sources in metadataAlex Beregszaszi2017-01-262-4/+11
| |
* | Update error message.chriseth2017-01-261-1/+1
| |
* | Disallow assignment to non-identifiers.chriseth2017-01-261-0/+2
| |
* | Disallow instructions in assignment.chriseth2017-01-261-6/+5
| |
* | Renamed function.chriseth2017-01-262-5/+5
| |
* | Moved test.chriseth2017-01-261-1/+1
| |
* | Do not allow shadowing inline assembly instructions with variablesAlex Beregszaszi2017-01-252-1/+11
|/
* Include creation code only once.chriseth2017-01-251-14/+18
|
* Use int arithmetics for stack adjustment.chriseth2017-01-241-1/+1
|
* Change clearStorageLoop to TypePointer.chriseth2017-01-242-16/+18
|
* Use shared_ptrs to enable shared_from_this.chriseth2017-01-241-4/+4
|
* Convert ArrayUtils routines into low-level functions.chriseth2017-01-241-228/+251
|
* Move some util functions to low-level functions.chriseth2017-01-245-244/+320
|
* Low level named functions for CompilerContext.chriseth2017-01-242-0/+23
|
* 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
* | Merge pull request #1591 from ethereum/stackTooDeepLocationYoichi Hirai2017-01-232-2/+14
|\ \ | | | | | | Report source location on "stack too deep" errors.
| * | Report source location on "stack too deep" errors.chriseth2017-01-212-2/+14
| |/
* / Check if constructor is public or not.chriseth2017-01-213-2/+13
|/
* Merge pull request #1576 from ethereum/typeIdentifiersYoichi Hirai2017-01-205-20/+291
|\ | | | | Type identifiers.
| * Make m_id const.chriseth2017-01-201-1/+1
| |
| * Reset AST node IDs between compilation runs.chriseth2017-01-204-5/+27
| |
| * Properly escape user strings and lists.chriseth2017-01-192-44/+86
| |
| * Type identifiers.chriseth2017-01-192-3/+210
| |
* | Fix default function type name visibility.chriseth2017-01-192-2/+4
|/
* Fix typo in commentFederico Bond2017-01-181-1/+1
|
* Merge pull request #1581 from ethereum/fixosxchriseth2017-01-181-2/+2
|\ | | | | Fix JSON output on macos.
| * Fix JSON output on macos.chriseth2017-01-181-2/+2
| |
* | Merge pull request #1397 from roadriverrail/contract_collisionchriseth2017-01-186-46/+65
|\ \ | |/ |/| Error out when contracts collide on name
| * Provide fall-back method for contract lookupRhett Aultman2017-01-171-1/+18
| | | | | | | | | | | | | | | | Properly, contracts are now looked up via <source>:<contract> identifiers called "fully qualified names." As a modicum of backward-compatibility, failure on a lookup is now backed up by seeing if the ":" exists at all, and if it doesn't, then the known contracts are scanned for any matching contract name.
| * Remove checkLibraryNameClashes()Rhett Aultman2017-01-172-37/+0
| | | | | | | | | | | | | | | | The library name clash checker throws errors when two libraries of the same name are spotted. In a previous commit, this function was rewritten to use fully-qualified names instead, which makes it redundant to the checker for multiply-declared identifiers. Since it no longer serves a clear purpose, the function is being dropped.
| * Use fully-qualified names for linking, tooRhett Aultman2017-01-172-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using libraries leaves behind a library link reference in the binary which the linker must later resolve. These link references were still being generated by name and not by fully-qualified name. This would lead to a link-time collision between two libraries having the same name but in different source units. This change changes linker symbols over to fully-qualified names, which resolves that issue. This does potentially introduce a new problem, which is that linker symbols appear to be limited to 36 characters and are truncated. Storing paths extends the average symbol size, and it would be great if truncation was from the tail rather than the head.
| * Remove unique error for contract collisionRhett Aultman2017-01-171-39/+10
| | | | | | | | | | | | Because contracts are uniquely identified by their source unit, there is no need for a unique error for this; it's actually covered by the checker for double-declaration of identifiers.
| * Move fullyQualified() name to DeclarationRhett Aultman2017-01-172-10/+1
| |
| * Stylistic correctionsRhett Aultman2017-01-172-9/+5
| |
| * Push the error instead of throwing itRhett Aultman2017-01-171-10/+34
| | | | | | | | | | | | | | Throwing a CompilerError on multiple contract definition violates the expectations of the test suite, which thinks that compile() will return false if the code can't compile. This brings contract collision reporting in line with most of the other errors.
| * Drop ':' if the source file name is emptyRhett Aultman2017-01-171-1/+2
| | | | | | | | | | | | | | | | A large number of tests compile contracts while passing in an empty string for the source name. This leads to it being keyed by the name ":<contract>", while the tests try to look it up under the name "<contract>". This change resolves that issue by dropping the ':' in cases where there is, effectively, no source file to prepend anyway.
| * Only avoid collision if it's the same fileRhett Aultman2017-01-174-12/+48
| | | | | | | | | | | | | | | | | | @chriseth had suggested that it would be better if contracts were referenced in a file:contract notation, and that we output .bin files that prepend original path names if necessary to avoid a collision. This commit is mostly a draft; it still needs to be run through the test suite.
| * Tab whitespace cleanup (again)Rhett Aultman2017-01-171-1/+2
| |
| * Tidy up the error messageRhett Aultman2017-01-171-3/+3
| |
| * Fix tab, drop stupid '!!!', change error message.Rhett Aultman2017-01-171-3/+3
| |
| * Error out when contracts collide on nameRhett Aultman2017-01-171-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous behaviour, courtesy of the [] operator in std::map, would uncritically store a new ContractDefinition in m_contracts even when a ContractDefinition already existed. This "resolved" collissions on contract names by clobbering the original one with the new one, and could lead to scenarios where the clobber would only be discovered when the original ContractDefinition could not be found or referred to, which was an unhelpful InternalCompilerError. This change checks the m_contracts map for a collision first and will not let the ContractDefinition be changed to a new one once it's set, throwing a CompilerError with information about the conflict.
* | Include SOL_VERSION_COMMIT/SOL_VERSION_PLATFORM in buildinfo.hAlex Beregszaszi2017-01-171-1/+2
| |
* | Store strict version number in metadata (exclude the platform)Alex Beregszaszi2017-01-173-1/+5
| |
* | Deterministic AST node identifiers.chriseth2017-01-173-2/+8
|/
* Merge pull request #1479 from ethereum/function_variable_mixinchriseth2017-01-135-11/+157
|\ | | | | Disallow mixin of functions and attributes under the same name
| * ast: events have FunctionType tooYoichi Hirai2017-01-122-8/+17
| |
| * analysis: use Declaration::functionType() in another locationYoichi Hirai2017-01-121-11/+4
| |
| * ast: add Declaration::functionType()Yoichi Hirai2017-01-123-14/+80
| |
| * 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
| |
* | fixedVoR02202017-01-121-2/+2
| | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* | added fix and a test for order independence of nested prefixingVoR02202017-01-121-2/+2
| | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* | cleanupVoR02202017-01-122-14/+15
| | | | | | | | | | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com> fixup Signed-off-by: VoR0220 <rj@erisindustries.com>
* | fixed unused filepath bugVoR02202017-01-111-2/+1
| | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* | much smaller helper functionVoR02202017-01-102-5/+5
| | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* | can do this purely on length. Also made prefix filesystem string for more ↵VoR02202017-01-091-27/+16
| | | | | | | | | | | | accurate readings. Signed-off-by: VoR0220 <rj@erisindustries.com>
* | fixed test and added solutionVoR02202017-01-091-3/+26
|/ | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Merge pull request #1537 from ethereum/absolute-pathchriseth2017-01-071-3/+3
|\ | | | | absolute path detection is not confused by ".dir"
| * interface: change absolutePath() so that ".dir" is considered as an absolute ↵Yoichi Hirai2017-01-041-3/+3
| | | | | | | | | | | | path fixes #1534
* | Merge pull request #1545 from federicobond/refactor-renamechriseth2017-01-051-3/+3
|\ \ | |/ |/| Rename contractName to typeName when parsing new expression
| * Rename contractName to typeName when parsing new expressionFederico Bond2017-01-051-3/+3
| |
* | ast, codegen: enable accessing events through contract names.Yoichi Hirai2017-01-032-9/+36
|/ | | | Fixes #1286
* Merge pull request #1503 from federicobond/json-visibilityYoichi Hirai2016-12-152-7/+22
|\ | | | | Include visibility level for functions in AST
| * Include visibility level for functions in ASTFederico Bond2016-12-132-7/+22
| |
* | Merge pull request #1508 from ethereum/multiurlschriseth2016-12-151-2/+4
|\ \ | | | | | | Use multiple URLs for metadata.
| * | Use multiple URLs for metadata.chriseth2016-12-131-2/+4
| | |
* | | Merge pull request #1487 from ethereum/shift-opsYoichi Hirai2016-12-143-30/+130
|\ \ \ | | | | | | | | Shift operators
| * | | Use correct type for storing.chriseth2016-12-131-7/+7
| | | |
| * | | Cleaner shift handling and type conversion for binary operations.chriseth2016-12-123-75/+100
| | | |
| * | | Type after shift should be type of left operand.chriseth2016-12-121-5/+42
| | | |
| * | | Support bitshifting in variablesAlex Beregszaszi2016-12-123-9/+47
| | |/ | |/|
* | | Merge pull request #1507 from ethereum/memcopystyleYoichi Hirai2016-12-142-14/+14
|\ \ \ | |_|/ |/| | Renamed padToWordBoundaries -> padToWords
| * | Renamed padToWordBoundaries -> padToWordschriseth2016-12-132-14/+14
| | |
* | | Improve error message when trying to modify constant variablesFederico Bond2016-12-132-1/+8
|/ /
* | Merge pull request #1468 from ethereum/memcpy-assemblyYoichi Hirai2016-12-134-16/+82
|\ \ | | | | | | Implement memcpy without the identity precompile
| * | Split memcopy into three functions.chriseth2016-12-123-54/+79
| | |
| * | Fix inline assembly.chriseth2016-12-121-1/+2
| | |
| * | Reset stack height after inline assembly blockAlex Beregszaszi2016-12-121-0/+1
| | |
| * | Better assert message for appendInlineAssembnlyAlex Beregszaszi2016-12-121-1/+1
| | |
| * | Implement identity call in inline assemblyAlex Beregszaszi2016-12-121-14/+21
| | |
| * | Turn off the identity precompile for testingAlex Beregszaszi2016-12-121-1/+1
| | |
| * | Implement CompilerUtils::memoryCopy using inline assemblyAlex Beregszaszi2016-12-121-1/+26
| | |
| * | Add usingIdentity option to CompilerUtils::memoryCopyAlex Beregszaszi2016-12-122-2/+9
| |/
* | Merge pull request #1491 from ameten/refactoringchriseth2016-12-131-1/+1
|\ \ | |/ |/| Just refactored some code
| * - fixed a misprint.Danil Nemirovsky2016-12-091-1/+1
| |
* | Merge pull request #1464 from federicobond/warn-msgvaluechriseth2016-12-114-0/+162
|\ \ | | | | | | Warn about using msg.value in non-payable function
| * | Warn about using msg.value in non-payable functionFederico Bond2016-12-094-0/+162
| |/
* / Fix names of JSON AST nodesFederico Bond2016-12-111-2/+2
|/
* Merge pull request #1351 from ethereum/truncate_bitchriseth2016-12-083-3/+5
|\ | | | | Truncate a boolean from calldata into one bit
| * codegen: clean not only booleans but all types before storing them into memoryYoichi Hirai2016-12-012-4/+3
| |
| * codegen: clean any data from the inputYoichi Hirai2016-12-011-2/+2
| |
| * codegen: truncate booleans before they enter storageYoichi Hirai2016-12-011-1/+0
| |
| * codegen: cleanup booleans before storing them into memoryYoichi Hirai2016-12-011-0/+2
| |
| * codegen: truncate a boolean calldata down to one bitYoichi Hirai2016-12-011-0/+2
| |
* | Merge pull request #1465 from ethereum/missing_keywordschriseth2016-12-061-2/+2
|\ \ | | | | | | document missing keywords
| * | parsing: `default` and `null` are reserved keywordsYoichi Hirai2016-12-021-2/+2
| | |
* | | Throw if calling the identity precompile (memoryCopy) failedAlex Beregszaszi2016-12-021-1/+2
|/ /
* | Add the `_runs` parameter.chriseth2016-12-012-3/+3
| |
* | Fix type of optimizeRunsAlex Beregszaszi2016-12-011-1/+1
| |
* | Use CBOR encoding.chriseth2016-12-013-4/+11
| |
* | Fix tests.chriseth2016-12-012-10/+0
| |
* | Add swarm hash to the end of the bytecode.chriseth2016-12-015-12/+5
| |
* | Make sure some keys are present.chriseth2016-12-011-0/+3
| |
* | Incorporate comments.chriseth2016-12-011-10/+10
| |
* | Metadata stamp.chriseth2016-12-019-31/+126
| |
* | Merge pull request #1462 from ethereum/fix-incorrect-assertionchriseth2016-12-011-1/+1
|\ \ | | | | | | codegen: assertion did not assert non-nullness
| * | codegen: assertion did not assert non-nullnessYoichi Hirai2016-12-011-1/+1
| |/ | | | | | | | | This commit strengthens an assertion so that it makes sure that a pointer is not null. Moreover, `isLocalVariable(variable)` is now positively asserted, following the error message.
* | Merge pull request #1463 from ethereum/duplicate-assignmentchriseth2016-12-011-2/+0
|\ \ | | | | | | codegen: this commit removes one of duplicate assignments
| * | codegen: this commit removes one of duplicate assignmentsYoichi Hirai2016-12-011-2/+0
| |/
* / parser: recognize an end of comment of the form `**/` at the end of a ↵Yoichi Hirai2016-12-011-1/+6
|/ | | | | | multi-line doc comment This fixes #1433
* Include the grammar verbatim in the documentationAlex Beregszaszi2016-11-301-110/+0
|
* Rename dev::validate to dev::validateUTF8Alex Beregszaszi2016-11-292-3/+3
|
* Make position optional in dev::validateAlex Beregszaszi2016-11-292-4/+2
|
* Use solUnimplemented wherever possibleAlex Beregszaszi2016-11-282-3/+3
|
* Merge pull request #1395 from ethereum/grammarchriseth2016-11-251-1/+1
|\ | | | | Properly define the pragma directive in the grammar
| * Properly define the pragma directive in the grammarAlex Beregszaszi2016-11-181-1/+1
| |
* | Merge pull request #1381 from ethereum/overflown_enum_comparedchriseth2016-11-253-8/+35
|\ \ | | | | | | Enum overflow checking before writing to storage
| * | codegen: cleanup values to fit in storage bytesYoichi Hirai2016-11-251-0/+4
| | |
| * | codegen: storing of non-value types; add some assertionsYoichi Hirai2016-11-251-8/+5
| | |
| * | codegen: shorten the bit truncationYoichi Hirai2016-11-251-5/+2
| | |
| * | codegen: merge type conversion and cleaning upYoichi Hirai2016-11-251-3/+2
| | |
| * | codegen: document _chopSignBits parameter of convertType functionYoichi Hirai2016-11-251-0/+1
| | |
| * | codegen: add an option to CovertType so that it can truncate sign bitsYoichi Hirai2016-11-253-10/+22
| | |
| * | codegen: cleanup stored values in a more consistent wayYoichi Hirai2016-11-251-4/+16
| | |
| * | codegen: cleanup value types before storing themYoichi Hirai2016-11-241-0/+5
| | |
* | | Indentation.chriseth2016-11-251-1/+1
| | |
* | | ast: string literals that are not valid UTF are not convertible to stringsYoichi Hirai2016-11-252-1/+10
|/ /
* | Fix licensing headersVoR02202016-11-2377-308/+308
| | | | | | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* | Add appendCallValueCheckAlex Beregszaszi2016-11-182-20/+14
| |
* | Include payable for the constructor in the ABIAlex Beregszaszi2016-11-181-0/+1
| |
* | Add payable check for constructor in codegenAlex Beregszaszi2016-11-181-0/+12
|/
* Some more assertions and style changes.chriseth2016-11-162-17/+26
|
* Change encoding to address-funid and add "function" as ABI type.chriseth2016-11-166-18/+29
|
* Fix parser for function type disambiguity.chriseth2016-11-161-1/+12
|
* Simple peephole optimizer that is activated even if not requested.chriseth2016-11-162-5/+3
|
* Check that no internals are used in any external function type.chriseth2016-11-165-1/+45
|
* Converted sub assembly to smart pointer.chriseth2016-11-165-48/+50
|
* Stored combined creation and runtime tags.chriseth2016-11-1610-62/+136
| | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought.
* ABI: Use external function.chriseth2016-11-161-2/+2
|
* Disallow payable internal functions.chriseth2016-11-162-2/+5
|
* Mention "payable" in the documentation.chriseth2016-11-161-2/+2
|
* Fix tests.chriseth2016-11-161-1/+11
|
* delete for function typeschriseth2016-11-162-0/+8
|
* codegen: add a compilation mode and a runtime context to CompilerContextYoichi Hirai2016-11-164-6/+23
|
* Added function types to the grammar.chriseth2016-11-161-1/+4
|
* Implement uninitialized storage functions.chriseth2016-11-162-11/+17
|
* Bugfix in code generator.chriseth2016-11-161-1/+1
|
* Change alignment.chriseth2016-11-164-31/+43
|
* Changelog entry and small fixes.chriseth2016-11-162-5/+8
|
* External functions in storage.chriseth2016-11-163-18/+49
|
* Fix some type checks and tests for internal / external function parameters.chriseth2016-11-161-3/+3
|
* Function type state variables.chriseth2016-11-162-31/+68
|
* Code generator for function types.chriseth2016-11-164-2/+46
|
* Function types.chriseth2016-11-1614-39/+241
|
* Move InterfaceHandler from string to JSONAlex Beregszaszi2016-11-156-39/+37
|
* Rename ErrorTag to invalidJumpLabel in inline assemblyAlex Beregszaszi2016-11-151-1/+1
|
* Support ErrorTag as a jump label in inline assemblyAlex Beregszaszi2016-11-151-1/+5
|
* Merge pull request #1375 from ethereum/inline-assembly-stack-heightchriseth2016-11-151-7/+9
|\ | | | | Fix inline assembly stack warnings when using variables
| * Fix inline assembly stack warnings when using variablesAlex Beregszaszi2016-11-151-7/+9
| |
* | Do not include a trailing new line in the ABI JSON outputAlex Beregszaszi2016-11-151-1/+4
|/
* Unimplemented features moved to their own exception (#1361)Rhett Aultman2016-11-157-17/+24
| | | | | | | | | | | | | | | | | | Unimplemented features moved to their own exception InternalCompilerError is an exception that really should be reserved for actual internal errors of the compiler. Unimplemented features can now use either solUnimplemented( ) or, if it should be conditional, then solUnimplementedAssert( ). * Revert some unimplemented exceptions, add handlers The jsonCompiler and CommandLineInterface needed handlers for the new UnimplementedFeatureException, and some cases I had moved on to the new exception were better treated as real internal compiler errors. * Standardize on "Unimplemented feature" message
* Merge pull request #1367 from asinyagin/developchriseth2016-11-151-2/+2
|\ | | | | Print canonical names of structs and enums in AST
| * Print canonical names of structs and enums in ASTAlex Sinyagin2016-11-141-2/+2
| |
* | Merge pull request #1372 from ethereum/invalid_enum_as_external_retchriseth2016-11-151-2/+2
|\ \ | | | | | | Invalid enum as external ret
| * | codegen: overflow checking also during conversion from enumsYoichi Hirai2016-11-151-2/+2
| |/
* / codegen: add a missing `break;`Yoichi Hirai2016-11-141-0/+1
|/
* Merge pull request #1365 from walter-weinmann/developchriseth2016-11-141-1/+1
|\ | | | | #1362: As it stands currently, the >>> operator will not be implemented.
| * #1362: As it stands currently, the >>> operator will not be implemented.Walter Weinmann2016-11-141-1/+1
| |
* | codegen: move the enum overflow checking closer to the conversion into enumsYoichi Hirai2016-11-141-8/+16
| |
* | ast, codegen: disallow conversion between different enum typesYoichi Hirai2016-11-122-2/+2
| |
* | codegen: shorten the overflow checking when converting into enumsYoichi Hirai2016-11-121-1/+2
| |
* | parsing: ban empty enum definition.Yoichi Hirai2016-11-121-0/+2
| |
* | codegen: check the value range after converting something to an enum elementYoichi Hirai2016-11-121-0/+8
| |
* | ast: add EnumType::numberOfMembers()Yoichi Hirai2016-11-122-1/+7
|/
* Merge pull request #1355 from ethereum/chriseth-patch-2chriseth2016-11-121-3/+3
|\ | | | | Fix semicolons
| * Fix semicolonschriseth2016-11-111-3/+3
| |
* | Type checker: move the burden of computing mobile type to commonTypeYoichi Hirai2016-11-112-6/+6
|/ | | | This solves #621
* Add support for do/while loopsRhett Aultman2016-11-108-9/+59
| | | | | | | This commit adds support for a standard do <statement> while <expr>; form of statement. While loops were already being supported; supporting a do/while loop mostly involves reusing code from while loops but putting the conditional checking last.
* add payable to ASTyann3002016-11-031-1/+2
|
* Clear all value types prior to storing.chriseth2016-10-311-7/+1
|
* ast: ban signed EXP, fixing #1246Yoichi Hirai2016-10-251-1/+4
|
* Suggest correct version for pragma and complain about pre-release version.chriseth2016-10-252-7/+28
|
* 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-253-9/+21
|\ \ | |/ |/| State variable under contract's name
| * analysis: determine if a member access on a contract is an l-valueYoichi Hirai2016-10-251-0/+5
| |
| * codegen: refactor common codeYoichi Hirai2016-10-242-20/+15
| |
| * codegen: if a member access has been resolved as a variable, follow thatYoichi Hirai2016-10-241-0/+12
| | | | | | | | This fixes at least the first example in #988
* | More checks for missing mobile type.chriseth2016-10-244-11/+44
|/
* codegen: skip contract L for L.Foo where Foo is a typeYoichi Hirai2016-10-241-1/+6
| | | | Fixes #1116
* Fix crash in throw.chriseth2016-10-241-1/+1
|
* Merge pull request #1240 from ethereum/1151chriseth2016-10-241-1/+5
|\ | | | | ast: super contract type does not contain native members
| * ast: simplifications suggested by @chrisethYoichi Hirai2016-10-201-7/+4
| |
| * When a contract type is super, its members do not contain the functions of ↵Yoichi Hirai2016-10-201-1/+8
| | | | | | | | | | | | itself Fixes #1151
* | ast: add a null checkYoichi Hirai2016-10-211-0/+1
| |
* | ast: ContractDefinition::inheritableMembers contains enums as well as structsYoichi Hirai2016-10-211-0/+3
| | | | | | | | This fixes #1131
* | Support variable references within modifiers for inline assemblyAlex Beregszaszi2016-10-211-1/+1
| |
* | Allow warnings for inline assembly blockAlex Beregszaszi2016-10-201-1/+1
| |
* | Issue warnings if stack is not balanced after inline assembly blockAlex Beregszaszi2016-10-201-2/+24
| |
* | Use warning function in TypeCheckerAlex Beregszaszi2016-10-201-5/+4
|/
* Use >> (SAR) to denote constant shiftsAlex Beregszaszi2016-10-201-1/+3
|
* Reject negative shifts within constantsAlex Beregszaszi2016-10-201-4/+8
|
* Support shifting constantsRJ2016-10-201-0/+22
|
* Disallow unsupported RValues in inline assemblyAlex Beregszaszi2016-10-201-4/+2
|
* Disallow magic variables in inline assemblyAlex Beregszaszi2016-10-201-0/+4
|
* Omit non-convertible bound functionsAlex Beregszaszi2016-10-191-1/+2
|
* Ensure that bound functions cannot be defined without self typeAlex Beregszaszi2016-10-192-2/+11
|
* `super`'s size on stack is zero, because the expression compiler does not ↵Yoichi Hirai2016-10-181-0/+1
| | | | | | push an address. This is different from `this`, which is translated to `ADDRESS` instruction.
* Check if a fixedBytes fits an integer typeYoichi Hirai2016-10-141-1/+5
| | | | | | before looking up the size of the integer type. Fixes #1150.
* Merge pull request #1169 from ethereum/inline-assembly-tagsAlex Beregszaszi2016-10-121-1/+3
|\ | | | | Fix assignment after tags in inline assembly
| * Fix assignment after tags in inline assemblyAlex Beregszaszi2016-10-111-1/+3
| |
* | Merge pull request #1181 from ethereum/formal_ignore_pragmachriseth2016-10-112-0/+15
|\ \ | | | | | | formal: ignore pragmas during Why3 code generation
| * | Chack for non-version pragmasYoichi Hirai2016-10-111-1/+10
| | |
| * | formal: ignore pragmas during Why3 code generationYoichi Hirai2016-10-112-0/+6
| |/ | | | | | | Fixes #1177
* / Fix pragma keyword checkYoichi Hirai2016-10-111-1/+1
|/ | | | Fixes #1192
* Merge pull request #1189 from NicolaiSoeborg/developchriseth2016-10-111-2/+2
|\ | | | | Add HexLiteral to grammar, fixes #1186
| * Fix: HexLiteral must be even number of nibblesNicolai2016-10-111-1/+1
| | | | | | | | | | solc even allow 0 nibbles: bytes a = hex"";
| * Add HexLiteral to grammar, fixes #1186Nicolai2016-10-111-2/+2
| |