What's Changed
- Limited autocomplete for expressions by @sdankel in #4207
- Improve
forc doc
navigation interface by @eureka-cpu in #4212 - Add lock file for sdk-harness test workspace, pin fuel-core to 0.17.3, fix sdk-harness CI issues by @mitchmindtree in #4248
- Adjust std::alloc::alloc() to accommodate upcoming VM changes. by @otrho in #4245
- Standardized module structure by @IGI-111 in #4232
- Change some
TyDeclaration
variants to hold decl refs by @JoshuaBatty in #4247 - Revert "Change some
TyDeclaration
variants to hold decl refs" by @emilyaherbert in #4252 - Add the
TypeInfo::TypeParam
variant but don't use it yet. by @emilyaherbert in #4253 - Apply new clippy suggestions from new clippy update by @emilyaherbert in #4259
- Remove a couple unneeded uses of
CompileResult
. by @emilyaherbert in #4254 - Updated tests to not use spent messages by @xgreenx in #4257
- Bump to fuels
v0.37
and add a test and docs forconfigurable
blocks by @mohammadfawaz in #4255 - Introduce
CallPath
toTyConstantDeclaration
by @mohammadfawaz in #4219 - feat(fmt): fmt comments with local insertions by @bingcicle in #4192
- refactor(forc-pkg): Attempt to simplify build/compile fns by introducing dedicated types by @mitchmindtree in #4209
- doc: Adding annotations support on highlight.js by @cold-briu in #4186
- More intrinsics and
const_eval
by @vaivaswatha in #4260 - Use
DeclId
directly forTyDeclaration::StructDeclaration
andTyDeclaration::EnumDeclaration
. by @emilyaherbert in #4251 - Make AST serializable by @AlicanC in #4193
- Add tokens for storage reassignment by @IGI-111 in #4261
- Slightly improve the
DeclRef
API and interface. by @emilyaherbert in #4258 - Share utils between sway-parse unit tests by @AlicanC in #4265
- Introduce
TypeSubstList
and add it toTyDeclaration
andDeclRef
. by @emilyaherbert in #4256 - Storage Vector Method and Dev-Doc Enhancements by @jtriley-eth in #4172
- Improve attribute parsing by @AlicanC in #4134
- Improve debug printing for
DeclId
. by @tritao in #4271 - refactor: remove span based test filters by @kayagokalp in #4280
- Error out on wrongly sized tuple destructuring by @IGI-111 in #4281
- Use
DeclRef
inTyExpressionVariant
variants. by @emilyaherbert in #4273 - fix(fmt): do not add extra spaces in empty parameter list when formatting by @bingcicle in #4269
- Update API for transforming declarations to
DeclRef
's. by @emilyaherbert in #4288 - docs: quick-start section move the
--node-url
explanation under the example by @kayagokalp in #4279 - Implement parsing and semantic analysis for associated consts by @tritao in #4262
- Make string representations of build targets consistent by @AlicanC in #4296
- Fixes trait item method DCA warning. by @esdrubal in #4229
- Implementing basic type aliases by @mohammadfawaz in #4151
- Manually clone
self
insubtract
forU256
andpow
forU128
by @mohammadfawaz in #4294 - ci: strip release binaries by @fgimenez in #4268
- feat: multi contract calls in unit tests for contracts by @kayagokalp in #4156
- refactor: deprecate
ConfigTimeConstant
s by @bingcicle in #4298 - Add skeleton code for monomorphization solver. by @emilyaherbert in #4264
- Implements unused variable DCA warning. by @esdrubal in #4286
- Upgrade to actions/checkout@v3 in CI to fix Node.js deprecation warnings by @tritao in #4305
- direct to fuel book quickstart by @sarahschwartz in #4313
- Cleanup TOMLs by @AlicanC in #4312
- Introduce the StorableSlice trait to the std library by @bitzoic in #4302
- Return
DeclRef
fromTypeBinding::type_check
. by @emilyaherbert in #4308 - docs: remove missing feature regarding configurables by @bingcicle in #4317
- docs(fmt): update swayfmt docs by @bingcicle in #4322
- Update
DeclEngine
API to use more abstract methods. by @emilyaherbert in #4315 - Rename
TypeSubstList
toSubstList
. by @emilyaherbert in #4323 - forc-pkg: throw error for nested workspaces by @bingcicle in #4321
- Fix semantic definitions for
Self
andself
tokens by @JoshuaBatty in #4325 - Improve layout of the
type_system
sub-module. by @emilyaherbert in #4316 - Double "Number of" removed from
StorageVec
inline documentation by @bitzoic in #4330 - Refactor
TyScrutinee
to useDeclRef
. by @emilyaherbert in #4327 - Remove the obsolete
unify_adt
method. by @emilyaherbert in #4332 - Rename
Declaration
toDecl
in a number of places. by @emilyaherbert in #4324 - Storage Vector New Methods by @jtriley-eth in #4174
- StorageVec Precondition Tests by @jtriley-eth in #4335
- Fixes DCA warning in impl block instead of method. by @esdrubal in #4326
- fix(fmt): item trait comment/annotation formatting by @bingcicle in #4364
- refactor: item_configurable test to use test_macros by @bingcicle in #4365
- feat: Introduce git SSH support to forc by @kayagokalp in #4287
- Add support for nested submodules to
forc doc
by @eureka-cpu in #4333 - streamline installation steps by @camiinthisthang in #4380
- IR explicit pointer refactor. by @otrho in #4336
- chore(
forc-doc
): Reorganizes the file tree by @eureka-cpu in #4382 - Allow importing enum variants by @IGI-111 in #4381
- docs: fix the
return_data
action value example by @iqdecay in #4367 - Conditional compilation by @AlicanC in #4292
- Improve ContractCaller type labels in CompileErrors and LSP features by @sdankel in #4361
- feat: allow multiple salt declarations in
forc deploy
by @bingcicle in #4362 - Rename
FunctionalDeclId
toAssociatedItemDeclId
. by @tritao in #4386 - feat: add
forc contract-id
andforc predicate-id
commands by @kayagokalp in #4338 - LSP: Refactor to use
Engines
where possible by @JoshuaBatty in #4392 - Bump to fuels
v0.39.0
by @mohammadfawaz in #4391 - Bug: ArithmeticOverflow when multiplying two large U256 numbers by @rostyslavtyshko in #4390
- Disallow block-level const declarations without a value expression. by @tritao in #4385
- Bump to
v0.36.0
by @mohammadfawaz in #4388
Breaking Changes
- Defining and structuring modules in Sway project has been reword. The
dep
keyword has been removed from the language in favour ofmod
:mod
declarations include a single ident specifying the name of the submodule. Note that this is different fromdep
declarations which would supply a/
-separated file system path to the submodule. Since the name of the submodule is specified in the declaration, submodules no longer need to supply their name via alibrary name;
header at the start of the file and can instead use the plainlibrary;
. The name of a submodule is used to find the source file for that submodule. For a submodule namedbar
of a modulefoo
, either the filefoo/bar.sw
orbar.sw
must exist. These paths are relative to the file defining thefoo
module containing themod bar;
declaration. It is an error for both or none of these paths to exist. Module paths behave the same as they previously did except that they use module names instead of library names. - Definition constants in
Forc.toml
is no longer supported. Instead, configurable constants defined in aconfigurable
block should be used. These constants do not change throughout the execution of a Sway program, but they can be changed at "configuration time" using the Rust SDK for example.
New Contributors
- @xgreenx made their first contribution in #4257
- @cold-briu made their first contribution in #4186
- @fgimenez made their first contribution in #4268
Full Changelog: v0.35.5...v0.36.0