v0.22.0
0.22.0 "Vulcanite" (2023-04-05)
This is the first non-alpha release of Fe. Read our announcement for more details.
Features
-
Support for tests.
example:
#test fn my_test() { assert 26 + 16 == 42 }
Tests can be executed using the
test
subcommand.example:
$ fe test foo.fe
(#807) -
Fixed broken trait orphan rule
Fe has an orphan rule for Traits similar to Rust's that requires
that either the trait or the type that we are implementing the trait for
are located in the same ingot as theimpl
. This rule was implemented
incorrectly so that instead of requiring them to be in the same ingot,
they were required to be in the same module. This change fixes this
so that the orphan rule is enforced correctly.
(#863) -
address
values can now be specified with a number literal, with no explicit
cast. So instead oflet t: address = address(0xfe)
, one can now write
let t: address = 0xfe
. This also means that it's possible to defineconst
addresses:const SOME_KNOWN_CONTRACT: address = 0xfefefefe
(#864)
Bugfixes
-
Fixed resolving of generic arguments to associated functions.
For example, this code would previously crash the compiler:
... // This function doesn't take self pub fn run_static<T: Computable>(_ val: T) -> u256 { return val.compute(val: 1000) } ... // Invoking it would previously crash the compiler Runner::run_static(Mac()) ...
(#861)
Improved Documentation
- Changed the Deployment tutorial to use foundry and the Sepolia network (#853)