What's Changed
⭐ Features
- Improve JSON encoding test cases, add REPL command for exporting by @turbolent in #2107
- Add static and native modifiers for fields and functions by @turbolent in #2119
- Implement FLIP #1071: borrow contract by @bluesign in #1934
- Allow embedders to reuse interpreter shared state by @turbolent in #2100
🛠 Improvements
- Improve interpreter config by @turbolent in #2097
- Allow export of function values by @turbolent in #2052
- Improve JSON decoding error messages, add utility by @turbolent in #2104
- Improve common supertype calculation by @SupunS in #2103
- Fix "log" crashing the REPL by @dreamsmasher in #2109
- Type fixes and improvements by @turbolent in #2135
- Improve error messages for values/types that cannot be imported or exported by @turbolent in #2138
- Meter big int allocations in parser, improve over-estimation by @turbolent in #2110
- Improve parameter AST node by @turbolent in #2143
- Address some tech debt by @turbolent in #2155
- Improve reference static type by @turbolent in #2156
- Improve type mismatch errors by @turbolent in #2161
- Improve sema by @turbolent in #2166
- Optimize sema by @turbolent in #2162
- Use invocation's interpreter by @turbolent in #2159
- improve ConformanceError error message by @dsainati1 in #2172
- Suggest lexically closest member in cases of NotDeclaredMemberError by @dsainati1 in #2173
- Add support for nested pragma declarations by @turbolent in #2169
- Initialize the Crypto contract lazily by @turbolent in #2183
- Pretty print interpreter errors by @dsainati1 in #2185
- Fix whitespace parsing between expressions by @turbolent in #2115
- Improve allocations in checker by @turbolent in #2127
- Add positions to numerical runtime errors by @dsainati1 in #2174
- Optimize elaboration by @turbolent in #2178
- Avoid unnecessary slice allocations by @turbolent in #2191
🐞 Bug Fixes
- Fix self declaration by @turbolent in #2108
- Report invalid identifier preceding a member or nested declaration by @turbolent in #2134
- Fix parsing of array and dictionary expressions by @turbolent in #2136
📖 Documentation
- rename why-cadence.md to why.md to fix broken link by @j1010001 in #2102
- Add documentation for String.fromUTF8, numeric types' fromString by @dreamsmasher in #2105
- Note in docs that inbox api is not yet released on mainnet by @dsainati1 in #2123
- Fix documentation by @turbolent in #2122
- Remove outdated callout from the testing-framework docs by @SupunS in #2132
- Update flow-docs.json by @bthaile in #2133
- Add meeting notes for interface inheritance meeting by @SupunS in #2144
- Update design-patterns.mdx by @gregsantos in #2146
- Add link to style guide by @bthaile in #2149
- Fix links in documentation by @turbolent in #2142
Other Changes
- Add JSON language annotations to expected JSON encodings in AST tests by @turbolent in #2118
- Move test framework tests to Cadence by @turbolent in #2129
- Update CI jobs by @turbolent in #2128
- Lint JSON files by @turbolent in #2139
- Clean up metering by @turbolent in #2152
- Report unkeyed composite literals by @turbolent in #2184
New Contributors
- @bthaile made their first contribution in #2133
- @gregsantos made their first contribution in #2146
Full Changelog: v0.29.0...v0.30.0