We shipped 2 more releases
As always, you can find the binaries and notes on the release pages.
self as a parameter
self value is no longer implicitly defined in all code blocks. It must now be declared as the first parameter in a contract function signature.
This change was made as part of an effort to make function access more explicit. There is a similar change coming with #558.
Added in #520.
fn instead of
Fe no longer uses the
def keyword as a label for function definitions. We use
fn instead now. This makes the syntax more clear.
Added in #496.
The analyzer was previously implemented as a single pass through the AST, which meant that it wasn't possible to refer to a type defined later in the file or define recursive types. To solve this problem and to improve the overall design of the analyzer, we now use Salsa, and thus a query-based style.
Salsa is used extensively in rust-analyzer, which is where we got the idea to use it.
Added in #468.
Other features and bugfixes
- Typo fix in docs (thanks @jacobkaufmann!) #549
- Fuzzer crash fixed #546
- Readme improvements (thanks @zora89!) #544
- Pretty printed display of AST #540
- Analyzer checks for shadowing of built-ins and generic arg lists where they don't belong #539
- Don't ignore non-fatal parser errors when analysis succeeds #535
- Fix "analysis failed but no diagnostics were emitted" panics #534
- Add support for numeric invert operator #526
- Check labels in function calls on self and external contracts #518
- Cover all remaining statements and expressions in the spec #514
- Fuzzer crash fixed (thanks @andy-ow!) #510
letvar decl (thanks @WilfredTA!) #509
- Validate string literals to only allow a subset of ASCII chars #506
- Reject certain code that should return but doesn't #502
- Overhaul spec content #489
We are still focused on cutting a beta release before the end of the year and will keep the community updated. For more information about our immediate goals and to see whats under development, please see the issues and PRs in our repository.
Stay tuned for more updates and monthly releases.