## Description
This moves the examples workspace manifest introduced in #4118 into the
`examples/` directory and cleans it up a bit.
We also now integrate the examples workspace into CI, making the old
`examples-checker` script redundant. This old script is also removed as
a part of this PR.
## Checklist
- [x] I have linked to any relevant issues.
- [x] I have commented my code, particularly in hard-to-understand
areas.
- [x] I have updated the documentation where relevant (API docs, the
reference, and the Sway book).
- [x] I have added tests that prove my fix is effective or that my
feature works.
- [x] I have added (or requested a maintainer to add) the necessary
`Breaking*` or `New Feature` labels where relevant.
- [x] I have done my best to ensure that my PR adheres to [the Fuel Labs
Code Review
Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
- [x] I have requested a review from the relevant team or maintainers.
The current `core::num` name is not well aligned with types like `b256`
which are not numeric types.
In addition, in Rust, methods like `min(), `max()` and `bits()` are in
the `primitives` module.
Closes#2777
Closes#1078
* New trait `From<T>` in a new library called `convert.rs`
* Most changes are trivial
* Added `From` to the prelude
* Had to modify `from()` in `U128`, `U256`, and `B512` to take a tuple
of components instead of multiple arguments to conform to the trait.
This is a breaking change of course.
* Updating lock files for all the examples.
Fixes https://github.com/FuelLabs/sway/issues/1436.
This PR first removes the need for `~` in `~Foo::bar` by first delaying
the interpretation of `Foo::Bar` (associated call, free function call,
or enum variant construction?) until type checking. This is achieved
with `ExprKind::AmbiguousPathExpression`. During type checking, we ask
whether `Foo` (and any prefixes) is a module, or an enum. If it's
neither, we attempt type checking as an associated function call.
Otherwise, we continue as if we had a `ExpressionKind::DelineatedPath`.
Once `~` is made redundant, it's then also removed from the language and
so also from tests, examples, and the standard library.
Co-authored-by: Alex Hansen <alex@alex-hansen.com>
* Disambiguate `path` dependencies using the parent package ID
Implements and closes#1789.
TODO:
- [x] Disambiguate `path` dependencies using parent package ID.
- [ ] Impl `Display` and `FromStr` for `PinnedId` to convert it to and
from hex for path source string in lock file.
- [ ] Address #1637 now to reduce this PR adding even more noise in the
lock file `dependencies` lists.
- [ ] Refactor `fetch_deps` slightly to better accomodate new `Root`
source variant.
- [ ] Update lock files of all examples and tests in repository.
* Swap `ToString` impls for `Display`. Add `PinnedId` impls.
Also removes the `lock::source_from_str/source_to_string` impls in
favour of implementing `Display` and `FromStr` for `SourcePinned`.
* Only disambiguate pkg lock dependencies if the name requires it
Closes#1637.
* Update new add_deps function for changes applied to pin_pkg
* Fix path dependency disambiguation using a path root rather than parent
Improves path dependency disambiguation by using the ID of the package
that is the root of the subgraph of path dependencies.
* Update `examples` forc lock files for path disambiguation changes
* Update E2E test forc lock files for path disambiguation changes
* Update stdlib test lock files for path dependency disambiguation changes
* Update new lock files introduced since previous rebase
* Fix space formatting between fn opening parenthesis and string
* Move check out of append_with_whitespace, since it's more correct there
* Update formatting within hashing example
* cleanup: remove some consts from constants.sw
* feat: add impl b256 to num module
* test: fix all usage of ZERO const in tests
* fix: update example project to use new b256::min()
* style: fmt
* fix: fix comments
* style: fmt examples
* Revert "fix: fix comments"
This reverts commit 65e7176a4e.
* docs: fix comment for b256::max()
* fix: update intrinsics
* fmt