* Add compiler warnings
Add include_type annotation to position
Add warning for unused includes
Add warning for unused stateful annotation
Add warning for unused functions
Add warning for shadowed variables
Add division by zero warning
Add warning for negative spends
Add warning for unused variables
Add warning for unused parameters
Change the ets table type to set for unused vars
Add warning for unused type defs
Move unused variables warning to the top level
Temporarily disable unused functions warnings
Add all kinds of warnings to a single ets table
Enable warnings separately through options
Use when_option instead of enabled_warnings
Turn warnings into type errors with warn_error option
Enable warning package warn_all
Re-enable unused functions warnings
Report warnings as type errors in a separate function
Make unused_function a recognized warning
Report warnings as a result of compilation
Fix tests and error for unknown warnings options
Fix dialyzer warnings
Do not show warning for variables called "_"
Move warnings handling into a separate module
Do not show warning for unused public functions in namespaces
Add src file name to unused include warning
Mark public functions in namespaces as used
Add tests for added warnings
Add warning for unused return value
Add test for turning warnings into type errors
* Update CHANGELOG
* Add case guards to parser
* Add pattern guards to infer types and fcode generation
* Add functions guards
* Add test for patterns guards
* Update docs
* Update CHANGELOG.md
* Remove stateful context from Env for guards
* Elaborate on guards
* Add failing test for stateful pattern guards
* Implement multiple guards
* Fix tests
* Disable aevm related tests
* Split the sentence before if and otherwise
* Fix type in docs
* Implement multiple exprs in the same guard
* Fix pretty printing
* Change tests to include multiple guards
* Add test for non-boolean guards
* Desugar clauses with guards
* Fix incomplete patterns bug
* Fix docs
* Compile to icode when no guards are used
* Revert "Disable aevm related tests"
This reverts commit e828099bd97dffe11438f2e48f3a92ce3641e85b.
* Change syntax tree and parser
* Add assign pattern to type inference
* Use check_expr instead of hard-coded type
* Add fcode generation for assign pattern
* Implement rename_spat for assign pattern
* Add tests
* Update CHANGELOG.md
* Update docs and changelog
* Add letpat to aeso_syntax_utils:fold
* Use Plus instead of Scoped
* Add using namespace as to scanner and parser
* Change the alias from id() to con()
* Add using namespace to AST type inference
* Allow using namespace to appear in the top level
* Allow using namespace to appear inside functions
* Add a compiler test for using namespace
* Handle name collisions
* Implement mk_error for ambiguous_name
* Add failing test for ambiguous names
* Limit the scope of the used namespaces
* Add test for wrong scope of using namespace
* Use a single using declaration
* Split long line
* Forbid using undefined namespaces
* Add a test for using undefined namespaces
* Change the type of used_namespaces
* Add using namespace parts to scanner and parser
* Add using namespace parts to ast type inference
* Add tests for using namespace parts
* Update CHANGELOG.md
* Code cleaning
* Update the docs
* Update the docs about the same alias for multiple namespaces
* Support for CREATE, CLONE and BYTECODE_HASH
* Add missing files
* Pushed the clone example through the typechecker
* CLONE compiles
* Fix dependent type in CLONE
* Bytecode hash fixes
* Refactor
* Refactor 2
* move some logic away
* Fixed some error messages. Type inference of child contract still does some random shit\n(mistakes arguments with result type)
* CREATE sometimes compiles and sometimes not
* Fix some scoping/constraint issues
* works, needs cleanup
* cleanup
* Fix some tests. Remove optimization of singleton tuples
* Fix default argument for clone
* Cleanup
* CHANGELOG
* Mention void type
* Address review, fix some dialyzer errors
* Please dialyzer
* Fix failing tests
* Write negative tests
* Docs
* TOC
* missing 'the'
* missing 'the'
* missing 'the'
* missing 'the'
* mention pre-fund
* format
* pre-fund clarification
* format
* Grammar in docs
* Updated tests, banned type decls and toplevel letvals
* Properly ban nested contracts
* Fix including by path
* Fix error message test
* Fix prettpr attr display. Make dialyzer happy
* More tests
* Fixed type printing
* Updated docs
* Allow block with separate type signature and definition of a function
For instance,
```
function
add : (int, int) => int
add(x, y) = x + y
```
cc #196
* Allow pattern matching in left-hand sides
* Changelog
* Fix type spec
* partial case-on-constructor
* Changelog for pattern-matching lets