What's Changed
⭐ Features
- Add utility function
ccf.HasMsgPrefix
by @fxamacker in #2609 - Introduce
Character.utf8
by @darkdrag00nv2 in #2617 - Provide suggested fixes for argument label errors by @turbolent in #2619
- Suggest optional chaining by @turbolent in #2625
- Introduce
reverse
in Fixed/Variable sized Array type by @darkdrag00nv2 in #2654
🛠 Improvements
- Improve update tool config by @turbolent in #2601
- Update integration tests for built-in
Crypto
contract by @m-Peter in #2615 - Use atree orderd map's
Has
function to test for existence by @turbolent in #2618 - Delegate Cadence composite
Storable()
to Atree by @fxamacker in #2621 - Delegate storage address to Atree by @fxamacker in #2622
- Cleanup by @turbolent in #2692
- Temporarily remove deprecations for existing capability API by @m-Peter in #2673
🐞 Bug Fixes
- Populate
Message
,LocationRange
fields forAssertionError
onTest.expect
function by @m-Peter in #2607 - Fix data race in sema/type_test.go by @fxamacker in #2624
- Fix potential data races by @turbolent in #2633
- Add support for max parameter count (internal #128) by @SupunS in #2656
- Remove spurious resource loss errors (internal #130) by @SupunS in #2657
- Fix checking of reference expressions involving optionals (internal #129) by @SupunS in #2658
- Prevent recursive transfers (internal #133) by @SupunS in #2659
- Handle destroyed optional references by @SupunS in #2661
- Fix positioning of default function conflict errors by @dsainati1 in #2665
- Wrap host env errors with external errors by @SupunS in #2683
- Fix storage iteration and error misclassification by @SupunS in #2676
- Fix error on reference creation with invalid type by @SupunS in #2687
Other Changes
- Add support for forks to compatibility check by @turbolent in #2612
- Set permissions in backward compatibility check by @turbolent in #2613
- Don't skip benchmark for forks by @turbolent in #2616
- Add mailmap by @turbolent in #2628
- Use diff command to generate diff by @turbolent in #2636
Full Changelog: v0.39.14...v0.40.0