Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support exception throwing #68

Open
franklinsch opened this issue Jan 13, 2018 · 2 comments
Open

Support exception throwing #68

franklinsch opened this issue Jan 13, 2018 · 2 comments

Comments

@franklinsch
Copy link
Collaborator

No description provided.

@bearbin
Copy link
Contributor

bearbin commented Sep 21, 2018

I think this needs more discussion before we implement - I'm not sure that exceptions are actually a desirable feature for Flint.

@DJRHails
Copy link
Member

Unless it's closer to adding an error message to reverts - which would be beneficial. I know there is an EVM proposal related to that.

SusanEisenbach pushed a commit that referenced this issue Jan 17, 2019
* ABNF grammar for do-catch statements

* Add tokens do, catch, and is Token.swift

* Add parser handling of do ... catch ...

* Add tests

* address review comments

* Address scoping in doCatch

* Fix post catch body scoping
SusanEisenbach pushed a commit that referenced this issue Jan 17, 2019
* [WIP] External traits (#71)

* ABNF syntax for external traits

* Add external token into Sources/Lexer/Token.swift

* Parse new token in Sources/Lexer/Lexer.swift

* Extend Sources/Parser/Parser+Declaration.swift (parseTopLevelDeclarations, parseTraitDeclaration)

* Add tests to Tests/ParserTests

* Change vim plugin to reflect external

* Parse if let statements (#69)

Parsing if let statements

* Parse do-catch statements (#68)

* ABNF grammar for do-catch statements

* Add tokens do, catch, and is Token.swift

* Add parser handling of do ... catch ...

* Add tests

* address review comments

* Address scoping in doCatch

* Fix post catch body scoping

* Parse external calls (#70)

* ABNF grammar for external calls

* Adding backticks for consistency

* Add call token and parse it in lexer

* Add ExternalCall ASTNode

* Parse external calls

* Moved external trait test to Integration folder

* Fix all target in Makefile

* Added tests

* Remove semicolon from Makefile

* Add comment

* Change variable name x to paramVisit

* Remove unnecessary backticks for non-keywords

* Introduce mode enum for external calls

* Removed ASTPass.swift generated file

* Address style changes for enum members

* Prioritise external call on top of binary expression, inside parseExpression

* Remove useless type function

* Create PR

* Add stubs and comments for changes required

* Add external call semantic error messages

* Add isInsideDo context variable

* Add external call type checks

* Remove  from

* Remove  requirements reflecting changed proposal

* Add stubs and comments for changes required

* Add external call semantic error messages

* Add isInsideDo context variable

* Add external call type checks

* Remove  from

* Remove  requirements reflecting changed proposal

* Add semantic checks

* Merge external call semantic checks

* Correct pass context for isInsideDoBlock variable

* Move optional type external call variable declaration to BinaryExpression process function

* Add accidentally deleted process(functionalCall, ...) function

* Improve variable names and comment new error function

* Remove isInsideIfCondition context element

* Add external call in nested do-catch test

* Replace isInsideDoCatch context variable by counter to support nested do-catches

* Replace backticks with single quotation marks in error messages

* Replace backticks with single quotation marks in test case

* added semantic checks for external call hyperparameter types and usage (#106)

Added semantic checks for correct hyperparameter types and usages regarding payable and non-payable functions.

* Fix dot associativity (#116)

* fix associativity of dot

* fix linux not running all tests

* fix function calls and variable dereferencing by adding new pass

* fix linter errors in EnclosingTypeAssigner

* add fix for loop variables

* fix property ordering

Properties were added to special declaration bodies in a different order
to how they were declared. This probably isn't a problem right now, but
might be a problem down the line so since I came across it I fixed it.

* Revert "fix property ordering"

This reverts commit d4917f4.

* fix codegen for memory test, same issue as for ForStatement

* update comments to be more descriptive

* fix pivot op tokens

* Implement casting parsing (#102)

* work in progress – adding parsing for as as? as!

* parse as

* type conversions parser testing

* fix linter issue

* add semantic checks for as? as occurrence

* wip compat check

* add reinterpret checks + tests

* add semantic analyzer tests and messages when types cannot be reinterpreted

* add isSolidityType

* fix tabs

* ignore swp

* fix external call type resolution and rename x-call flag

* preliminary checks and diagnostic message

* fix rebase isExternalCall => isExternalFunctionCall

* correct ExternalCall visit not passing forward process result

* fix type conversion tests

* indicate kind when dumping AST of TCX

* early return in default case for corrected enclosing type resolution in binary expressions

* return true in isComplexStatement for x-calls and tcx

* Add stubs and comments for changes required

* Add external call semantic error messages

* Add isInsideDo context variable

* Add external call type checks

* Remove  from

* Remove  requirements reflecting changed proposal

* Add semantic checks

* Merge external call semantic checks

* Correct pass context for isInsideDoBlock variable

* Move optional type external call variable declaration to BinaryExpression process function

* Improve variable names and comment new error function

* Remove isInsideIfCondition context element

* Add external call in nested do-catch test

* Replace isInsideDoCatch context variable by counter to support nested do-catches

* Replace backticks with single quotation marks in error messages

* Replace backticks with single quotation marks in test case

* Rebase

* Merge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants