A few references to oracles still remain, but they have been removed as a feature, at least.
Reviewed-on: #985
Reviewed-by: Ulf Wiger <ulfwiger@qpq.swiss>
Co-authored-by: Craig Everett <zxq9@zxq9.com>
Co-committed-by: Craig Everett <zxq9@zxq9.com>
* Add polymorphism to syntax tree and parser
* Add polymorphism to infer types
* Fix pretty printing
* Add new tests and fix old tests
* Fix the comparison between unit and empty tuple
* Report undefined interface errors before checking implemented interfaces
* Add test for implementing multiple interfaces
* Add test for implementing two interfaces with entrypoints of same names and different types
* Add tests for interfaces implementing interfaces
* Draft: Add variance switching
* Revert "Draft: Add variance switching"
This reverts commit 92dc6ac169cfbff447ed59de04994f564876b3fb.
* Add variance switching
* Fix broken tests
* Fix broken abi tests
* Add tests for variance switching
* Fix tests after rebase
* Variance switching for custom datatypes
* Fix dialyzer warning
* Add testing for custom types variance switching
* Make opposite_variance a separate function
* Make is_subtype/4 a separate function
* Fix warning
* Mark tvars as invariant
* Add type_vars_uvar ets table to ets_tables()
* Don't destroy and recreate type errors table when not needed
* Fixes from the reviews
* Use is_list to check if a var is a list
* Compare named args in fun_t
* Test only for covariance and contravariance
* Remove arrows_in_type and use infer_type_vars_variance instead
* Add tests for option and type aliases
* Fix previous commit
* Rename check_implemented_interfaces_recursive to check_implemented_interfaces1
* Make interfaces declare functions from extended interfaces
* Restore test.aes
* Add test for variance switching in records
* Enable variance switching for record types
* Handle builtin types type variables separately
* Add tests for oracles and oracle queries
* Replace compare_types with non-throwing version of unify
* Add the context to unification error
* Test variance switching for bivariant records
* Give clear names to the records in records variance switching test
* Handle comments about polymorphism_variance_switching.aes
* Rename datatypes in custom types variance switching test for readability
* Change the variance of the oracle_query type vars
* Add test for accessing maps with the wrong type
* Default to invariant when the variance of the type vars is unknown
* Rename test files to have common prefix
* Rename functions in variance switching tests for readability
* Fix variance inference
* Eliminate redundant tests
* Test all cases for bivariant
* 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