Since variables and functions cannot be used in the definition of
a compile time constants, the following warnings are not going to be
reported:
* Used/Unused variable
* Used/Unused function
* Add hole expressions
* Fix the issue of unreported holes
* Add tests
* New line in the end of the test file
* Update CHANGELOG
* Add hole expression to the docs
* Do not treat hole as a special type
* Update docs
* Update docs/sophia_features.md
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
* Ban calling contracts functions as functions namespaces
* Ban using contracts as namespaces
* Add tests
* Update CHANGELOG
* Separate guards with a semicolon
* Return mapping from variables to registers
* Fix dialyzer issues
* Record real names
* Report saved fresh names as part of fcode env
* Undo whitespace changes
* Fix dialyzer warnings
* Formatting fix
* Use function names as strings
* Manually handle making function names
* Update CHANGELOG
* Make variables registers optional
* Update docs about the new flag
* Remove empty saved_fresh_names map from fcode env
Add functions as fields before inferring
Unbound untyped fields before binding typed ones
Fix failing tests
Make complex_types contract non-compatible with aevm
Reduce code duplication
Undo changes to test.aes
Remove special handling of __constructor__ field
Resolve field constraint by arity of contract function
Update CHANGELOG
Update CHANGELOG.md
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
Split bind_field function
Add a comment about rebinding
* Include all functions in the symbols map
* .
* remove improper wording
* Use update_symbols exported from aebytecode
* Extract adding child symbols into a separate fun
* Make child contracts symbols optional
* Document include_child_contract_symbols option
Co-authored-by: Gaith Hallak <gaithhallak@gmail.com>
* Add separate flags for each scode optimization
* Add a list of available optimizations to docs
* Update CONTRIBUTING.md
* Update docs/aeso_compiler.md
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
* Prefix rules functions with optimize_ instead of r_
Co-authored-by: Radosław Rowicki <35342116+radrow@users.noreply.github.com>
* Assume that void is a supertype of all types
* Add test for void supertype
* Unify functions with decls from implemented interfaces
* Rename delete_if_implementation
* Match only with function name and without typesig
* Add CONTRIBUTING.md
* Include CONTRIBUTING.md in README.md
* Fix broken links
* Update CONTRIBUTING.md
* Update CONTRIBUTING.md
* Use "If a PR" instead of "If the PR"
* Mention fold and pretty printing
* Add missing precedence of the operator '|>'
* Add a note about tests
* Rename to Sophia
* Add missing using keyword
* Update the entire list of keywords in sophia syntax doc
* Add a section about creating a new aesophia release
* Add main contract, contract interface, and guards to the docs syntax
* Use Sep1 instead of Sep for the GuardedDef
* Add guarded case for switches
* Change '=' to '::=' in GuardedDef
* Add Using
* Add '|>' binary operator to aeso_syntax
* Add assign patter
* Fix typos
* Add polymorphism implmented interface syntax