Skip to content

v0.22.0

Compare
Choose a tag to compare
@github-actions github-actions released this 05 Apr 14:48
· 146 commits to master since this release

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 the impl. 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 of let t: address = address(0xfe), one can now write
    let t: address = 0xfe. This also means that it's possible to define const
    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)