This Pull Request fixes/closes #1180. (I'll open a tracking issue for the progress)
It changes the following:
- Redesigns the internal API of Intl to (hopefully!) make it easier to implement a service.
- Implements the `Intl.Locale` service.
- Implements the `Intl.Collator` service.
- Implements the `Intl.ListFormat` service.
On the subject of the failing tests. Some of them are caused by missing locale data in the `icu_testdata` crate; we would need to regenerate that with the missing locales, or vendor a custom default data.
On the other hand, there are some tests that are bugs from the ICU4X crate. The repo https://github.com/jedel1043/icu4x-test262 currently tracks the found bugs when running test262. I'll sync with the ICU4X team to try to fix those.
cc @sffc
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.30 to 4.0.32.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.32</h2>
<h2>[4.0.32] - 2022-12-22</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parser)</em> When overriding <code>required(true)</code>, consider args that conflict with its group</li>
</ul>
<h2>v4.0.31</h2>
<h2>[4.0.31] - 2022-12-22</h2>
<h3>Performance</h3>
<ul>
<li>Speed up parsing when a lot of different flags are present (100 unique flags)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.32] - 2022-12-22</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parser)</em> When overriding <code>required(true)</code>, consider args that conflict with its group</li>
</ul>
<h2>[4.0.31] - 2022-12-22</h2>
<h3>Performance</h3>
<ul>
<li>Speed up parsing when a lot of different flags are present (100 unique flags)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ec4ccf005d"><code>ec4ccf0</code></a> chore: Release</li>
<li><a href="13fdb839b7"><code>13fdb83</code></a> docs: Update changelog</li>
<li><a href="b877345769"><code>b877345</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4573">#4573</a> from epage/conflict</li>
<li><a href="85ecb3e895"><code>85ecb3e</code></a> fix(parser): Override required when parent group has conflict</li>
<li><a href="d145b8b166"><code>d145b8b</code></a> test(parser): Demonstrate required-overload bug</li>
<li><a href="0eccd556ac"><code>0eccd55</code></a> chore: Release</li>
<li><a href="1e37c25f5e"><code>1e37c25</code></a> docs: Update changelog</li>
<li><a href="dcd5fecab0"><code>dcd5fec</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4572">#4572</a> from epage/group</li>
<li><a href="dde22e74ca"><code>dde22e7</code></a> style: Update for latest clippy</li>
<li><a href="dd8435d8f3"><code>dd8435d</code></a> perf(parser): Reduce duplicate lookups</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v4.0.30...v4.0.32">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.30&new-version=4.0.32)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.29 to 4.0.30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.30</h2>
<h2>[4.0.30] - 2022-12-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Improve error for <code>args_conflicts_with_subcommand</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.30] - 2022-12-21</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Improve error for <code>args_conflicts_with_subcommand</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d2d022248b"><code>d2d0222</code></a> chore: Release</li>
<li><a href="56a0bb624f"><code>56a0bb6</code></a> docs: Update changelog</li>
<li><a href="b941a3eaef"><code>b941a3e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4567">#4567</a> from epage/error</li>
<li><a href="453ac0bfb9"><code>453ac0b</code></a> fix(parser): Be less confusing with args/subcommand conflicts</li>
<li><a href="2a374db639"><code>2a374db</code></a> test(parser): Show bad behavior</li>
<li><a href="f632424e65"><code>f632424</code></a> test(parser): Consolidate args_conflicts_with tests</li>
<li><a href="a72f962d35"><code>a72f962</code></a> docs(builder): Escape non-tags</li>
<li><a href="ac48e2d5e4"><code>ac48e2d</code></a> docs: Make less brittle for rust versions</li>
<li><a href="a3381a2c05"><code>a3381a2</code></a> docs(readme): Fix build status badge (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4559">#4559</a>)</li>
<li><a href="aa5420469e"><code>aa54204</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4555">#4555</a> from epage/reset</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v4.0.29...v4.0.30">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.29&new-version=4.0.30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Per the [Standard Library development guide](https://std-dev-guide.rust-lang.org/code-considerations/performance/inline.html):
> You can add `#[inline]`:
>
> - To public, small, non-generic functions.
>
> You shouldn't need `#[inline]`:
> - On methods that have any generics in scope.
> - On methods on traits that don't have a default implementation.
>
> `#[inline]` can always be introduced later, so if you're in doubt they can just be removed.
This PR follows this guideline to reduce the number of `#[inline]` annotations in our code, removing the annotation in:
- Non-public functions
- Generic functions
- Medium and big functions.
Hopefully this shouldn't impact our perf at all, but let's wait to see the benchmark results.
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.89 to 1.0.91.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.91</h2>
<ul>
<li>Opt out of <code>-Zrustdoc-scrape-examples</code> on docs.rs for now</li>
</ul>
<h2>v1.0.90</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="26f147fde7"><code>26f147f</code></a> Release 1.0.91</li>
<li><a href="d9cdb98f2e"><code>d9cdb98</code></a> Opt out -Zrustdoc-scrape-examples on docs.rs</li>
<li><a href="331511d73d"><code>331511d</code></a> Release 1.0.90</li>
<li><a href="87538296f7"><code>8753829</code></a> Replace ancient CI service provider in readme</li>
<li><a href="0a43394ef6"><code>0a43394</code></a> Update build status badge</li>
<li><a href="8794844eee"><code>8794844</code></a> Prevent build.rs rerunning unnecessarily on all source changes</li>
<li><a href="0b548714d8"><code>0b54871</code></a> Time out workflows after 45 minutes</li>
<li><a href="ecad462c8e"><code>ecad462</code></a> Fix renamed let_underscore_drop lint</li>
<li><a href="9295c96c8e"><code>9295c96</code></a> Resolve needless_borrowed_reference clippy lints</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.89...v1.0.91">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.89&new-version=1.0.91)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.28 to 4.0.29.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.29</h2>
<h2>[4.0.29] - 2022-11-29</h2>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.29] - 2022-11-29</h2>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ad4726378b"><code>ad47263</code></a> chore: Release</li>
<li><a href="6e31743efa"><code>6e31743</code></a> docs: Fix docs.rs builds</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.28...v4.0.29">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.28&new-version=4.0.29)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.27 to 4.0.28.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.28</h2>
<h2>[4.0.28] - 2022-11-29</h2>
<h3>Fixes</h3>
<ul>
<li>Fix wasm support which was broken in 4.0.27</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.28] - 2022-11-29</h2>
<h3>Fixes</h3>
<ul>
<li>Fix wasm support which was broken in 4.0.27</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c3c9099e72"><code>c3c9099</code></a> chore: Release</li>
<li><a href="68127614ec"><code>6812761</code></a> docs: Update changelog</li>
<li><a href="2ad0eff495"><code>2ad0eff</code></a> fix: wasm32 targets with is-terminal (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4518">#4518</a>)</li>
<li><a href="bf39b8d280"><code>bf39b8d</code></a> docs(ref): Move flatten/subcommand to be under command attr</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.27...v4.0.28">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.27&new-version=4.0.28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.26 to 4.0.27.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.27] - 2022-11-24</h2>
<h3>Features</h3>
<ul>
<li>Have <code>Arg::value_parser</code> accept <code>Vec<impl Into<PossibleValue>></code></li>
<li>Implement <code>Display</code> and <code>FromStr</code> for <code>ColorChoice</code></li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Remove soundness issue by switching from <code>atty</code> to <code>is-terminal</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3262016c26"><code>3262016</code></a> chore: Release</li>
<li><a href="757f95b2e9"><code>757f95b</code></a> docs: Update changelog</li>
<li><a href="20e02eb34e"><code>20e02eb</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4509">#4509</a> from epage/possible</li>
<li><a href="fb1d960fe2"><code>fb1d960</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4249">#4249</a> from jcgruenhage/replace-atty</li>
<li><a href="94aca92e44"><code>94aca92</code></a> feat: Create ValueParser from Vec<PossibleValue></li>
<li><a href="3bccfced1a"><code>3bccfce</code></a> docs: Clarify PossibleValue is likely not needed</li>
<li><a href="19981a2455"><code>19981a2</code></a> docs: Clarify ColorChoice impls ValueEnum</li>
<li><a href="8d92f3e7a8"><code>8d92f3e</code></a> feat: Add Display/FromStr to ColorChoice</li>
<li><a href="ed683ef248"><code>ed683ef</code></a> fix: Always expose ColorChoice</li>
<li><a href="789bfd6813"><code>789bfd6</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4508">#4508</a> from epage/style</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v4.0.26...v4.0.27">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.26&new-version=4.0.27)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
This PR is a WIP implementation of a vm instruction flowgraph generator
This aims to make the vm easier to debug and understand for both newcomers and experienced devs.
For example if we have the following code:
```js
let i = 0;
while (i < 10) {
if (i == 3) {
break;
}
i++;
}
```
It generates the following instructions (which is hard to read, especially jumps):
<details>
```
----------------------Compiled Output: '<main>'-----------------------
Location Count Opcode Operands
000000 0000 PushZero
000001 0001 DefInitLet 0000: 'i'
000006 0002 LoopStart
000007 0003 LoopContinue
000008 0004 GetName 0000: 'i'
000013 0005 PushInt8 10
000015 0006 LessThan
000016 0007 JumpIfFalse 78
000021 0008 PushDeclarativeEnvironment 0, 1
000030 0009 GetName 0000: 'i'
000035 0010 PushInt8 3
000037 0011 Eq
000038 0012 JumpIfFalse 58
000043 0013 PushDeclarativeEnvironment 0, 0
000052 0014 Jump 78
000057 0015 PopEnvironment
000058 0016 GetName 0000: 'i'
000063 0017 IncPost
000064 0018 RotateRight 2
000066 0019 SetName 0000: 'i'
000071 0020 Pop
000072 0021 PopEnvironment
000073 0022 Jump 7
000078 0023 LoopEnd
Literals:
<empty>
Bindings:
0000: i
Functions:
<empty>
```
</details>
And the flow graph is generated:
![flowgraph](https://user-images.githubusercontent.com/8566042/200589387-40b36ad7-d2f2-4918-a3e4-5a8fa5eee89b.png)
The beginning of the function is marked by the `start` node (in green) and end (in red). In branching the "yes" branch is marked in green and "no" in red.
~~This only generates in [graphviz format](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) (a widely used format) but it would be nice to also generate to a format that `mermaid.js` can understand and that could be put in articles https://github.com/boa-dev/boa-dev.github.io/issues/26~~
TODO:
- [x] Generate graphviz format
- [x] Generate mermaid format
- [x] Programmatically generate colors push and pop env instructions
- [x] Display nested functions in sub-sub-graphs.
- [x] Put under a feature (`"flowgraph"`)
- [x] Handle try/catch, switch instructions
- [x] CLI option for configuring direction of flow (by default it is top down)
- [x] Handle `Throw` instruction (requires keeping track of try blocks)
- [x] Documentation
- [x] Prevent node name collisions (functions with the same name)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.88 to 1.0.89.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.89</h2>
<ul>
<li>Fix invalid JSON incorrectly accepted when a large number has no digits after decimal point (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/953">#953</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d2f936855d"><code>d2f9368</code></a> Release 1.0.89</li>
<li><a href="0b898369f9"><code>0b89836</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/956">#956</a> from dtolnay/decimal</li>
<li><a href="9d94e920ef"><code>9d94e92</code></a> Require at least one digit after decimal point</li>
<li><a href="c27b02334b"><code>c27b023</code></a> Add regression test for issue 953</li>
<li><a href="586fefb5a1"><code>586fefb</code></a> Resolve semicolon_if_nothing_returned pedantic clippy lint</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.88...v1.0.89">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.88&new-version=1.0.89)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
This Pull Request restructures the lint deny/warn/allow lists in almost all crates. `boa_engine` will be done in a follow up PR as the changes there are pretty extensive.
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.87 to 1.0.88.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.88</h2>
<ul>
<li>Optimize serde_json::Map's implementation of <code>append</code> and <code>clone_from</code> (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/952">#952</a>, thanks <a href="https://github.com/Lucretiel"><code>@Lucretiel</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9eb66da7e0"><code>9eb66da</code></a> Release 1.0.88</li>
<li><a href="057957ccf4"><code>057957c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/952">#952</a> from Lucretiel/map-traits</li>
<li><a href="3347248d82"><code>3347248</code></a> Add <code>clone_from</code> to <code>Map</code>; <code>Map::append</code> now uses <code>IndexMap::extend</code></li>
<li><a href="ca41bdd563"><code>ca41bdd</code></a> Update ui test suite to nightly-2022-11-16</li>
<li><a href="4f194c9141"><code>4f194c9</code></a> Resolve needless_borrow pedantic clippy lint in test</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.87...v1.0.88">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.87&new-version=1.0.88)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.25 to 4.0.26.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.26</h2>
<h2>[4.0.26] - 2022-11-16</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Fix typos in <code>ContextKind::as_str</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.26] - 2022-11-16</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Fix typos in <code>ContextKind::as_str</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f8e9211e38"><code>f8e9211</code></a> chore: Release</li>
<li><a href="6524416e9e"><code>6524416</code></a> docs: Update changelog</li>
<li><a href="df1efb4c53"><code>df1efb4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4486">#4486</a> from jpgrayson/master</li>
<li><a href="d9c9c7bdd8"><code>d9c9c7b</code></a> fix: ContextKind.as_str() spellings</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.25...v4.0.26">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.25&new-version=4.0.26)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.24 to 4.0.25.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.25</h2>
<h2>[4.0.25] - 2022-11-15</h2>
<h3>Features</h3>
<ul>
<li><em>(error)</em> Report available subcommands when required subcommand is missing</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.25] - 2022-11-15</h2>
<h3>Features</h3>
<ul>
<li><em>(error)</em> Report available subcommands when required subcommand is missing</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ba32ab87b2"><code>ba32ab8</code></a> chore: Release</li>
<li><a href="391cd0092d"><code>391cd00</code></a> docs: Update changelog</li>
<li><a href="8cefdf31cc"><code>8cefdf3</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4482">#4482</a> from epage/suggest</li>
<li><a href="6b62c82fe2"><code>6b62c82</code></a> feat(parser): Show available subcommands when one is missing</li>
<li><a href="d21ee513fd"><code>d21ee51</code></a> test(parser): Verify subcommand required message</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.24...v4.0.25">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.24&new-version=4.0.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.23 to 4.0.24.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.24</h2>
<h2>[4.0.24] - 2022-11-14</h2>
<h3>Fixes</h3>
<ul>
<li>Avoid panic when printing an argument that isn't built</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.24] - 2022-11-14</h2>
<h3>Fixes</h3>
<ul>
<li>Avoid panic when printing an argument that isn't built</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="010976c2ff"><code>010976c</code></a> chore: Release</li>
<li><a href="0bafd2f52d"><code>0bafd2f</code></a> docs: Update changelog</li>
<li><a href="8171a5f6d0"><code>8171a5f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4480">#4480</a> from epage/panic</li>
<li><a href="c939de8a25"><code>c939de8</code></a> fix: Don't panic on non-built arg rendering</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.23...v4.0.24">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.23&new-version=4.0.24)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.22 to 4.0.23.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.23</h2>
<h2>[4.0.23] - 2022-11-11</h2>
<h3>Fixes</h3>
<ul>
<li>Don't panic on reporting invalid-long errors when followed by invalid UTF8</li>
<li><em>(help)</em> Clarified argument to <code>help</code> subcommand</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.23] - 2022-11-11</h2>
<h3>Fixes</h3>
<ul>
<li>Don't panic on reporting invalid-long errors when followed by invalid UTF8</li>
<li><em>(help)</em> Clarified argument to <code>help</code> subcommand</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="95144b7590"><code>95144b7</code></a> chore: Release</li>
<li><a href="20ecae1cb3"><code>20ecae1</code></a> docs: Update changelog</li>
<li><a href="e6a3529e24"><code>e6a3529</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4474">#4474</a> from epage/utf8</li>
<li><a href="e9cbed34cd"><code>e9cbed3</code></a> fix(parser): Don't panic on invalid UTF-8 values</li>
<li><a href="45d26e0013"><code>45d26e0</code></a> test(parser): Show UTF8 bug</li>
<li><a href="4d69e56f06"><code>4d69e56</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4471">#4471</a> from epage/assert</li>
<li><a href="ec03972023"><code>ec03972</code></a> test(assert): Verify empty positional assert exists</li>
<li><a href="0d27188d87"><code>0d27188</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4465">#4465</a> from epage/help</li>
<li><a href="9376a57d40"><code>9376a57</code></a> fix(help): Clarify that 'help' command accepts multiple</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.22...v4.0.23">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.22&new-version=4.0.23)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.18 to 4.0.22.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.22</h2>
<h2>[4.0.22] - 2022-11-07</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Don't overflow into next-line-help early due to stale (pre-v4) padding calculations</li>
</ul>
<h2>v4.0.21</h2>
<h2>[4.0.21] - 2022-11-07</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> <code>long_about</code> and <code>long_help</code> attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)</li>
</ul>
<h2>v4.0.20</h2>
<h2>[4.0.20] - 2022-11-07</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Allow defaulted value parser for '()' fields</li>
</ul>
<h2>v4.0.19</h2>
<h2>[4.0.19] - 2022-11-04</h2>
<h3>Features</h3>
<ul>
<li><code>ColorChoice</code> now implements <code>ValueEnum</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.22] - 2022-11-07</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Don't overflow into next-line-help early due to stale (pre-v4) padding calculations</li>
</ul>
<h2>[4.0.21] - 2022-11-07</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> <code>long_about</code> and <code>long_help</code> attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)</li>
</ul>
<h2>[4.0.20] - 2022-11-07</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Allow defaulted value parser for '()' fields</li>
</ul>
<h2>[4.0.19] - 2022-11-04</h2>
<h3>Features</h3>
<ul>
<li><code>ColorChoice</code> now implements <code>ValueEnum</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6cbe5c4323"><code>6cbe5c4</code></a> chore: Release</li>
<li><a href="d2739c95cf"><code>d2739c9</code></a> docs: Update changelog</li>
<li><a href="eaa6bfe826"><code>eaa6bfe</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4463">#4463</a> from epage/help</li>
<li><a href="dfe9e73880"><code>dfe9e73</code></a> fix(help): Update auto-next-line to use new padding</li>
<li><a href="539577dfb2"><code>539577d</code></a> refactor(help): Remove dead code</li>
<li><a href="bc457b179f"><code>bc457b1</code></a> chore: Release</li>
<li><a href="d5c3c13ec2"><code>d5c3c13</code></a> docs: Update changelog</li>
<li><a href="87edc19ef7"><code>87edc19</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4461">#4461</a> from epage/help</li>
<li><a href="c37ab6c205"><code>c37ab6c</code></a> fix(derive): Allow 'long_help' to force populating from doc comment</li>
<li><a href="8751152316"><code>8751152</code></a> test(derive): Verify long_help behavior</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v4.0.18...v4.0.22">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.18&new-version=4.0.22)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [regex](https://github.com/rust-lang/regex) from 1.6.0 to 1.7.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's changelog</a>.</em></p>
<blockquote>
<h1>1.7.0 (2022-11-05)</h1>
<p>This release principally includes an upgrade to Unicode 15.</p>
<p>New features:</p>
<ul>
<li>[FEATURE <a href="https://github-redirect.dependabot.com/rust-lang/regex/issues/832">#832</a>](<a href="https://github-redirect.dependabot.com/rust-lang/regex/issues/916">rust-lang/regex#916</a>):
Upgrade to Unicode 15.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f871a8eb1d"><code>f871a8e</code></a> 1.7.0</li>
<li><a href="ca7b99c647"><code>ca7b99c</code></a> changelog: 1.7.0</li>
<li><a href="ea3b132080"><code>ea3b132</code></a> regex-syntax-0.6.28</li>
<li><a href="9a1892737b"><code>9a18927</code></a> syntax: update to Unicode 15</li>
<li><a href="0d0023e412"><code>0d0023e</code></a> rure-0.2.2</li>
<li><a href="3bac5c8075"><code>3bac5c8</code></a> capi: add 'rlib' crate type</li>
<li><a href="159a63c85e"><code>159a63c</code></a> doc: add a note about the empty regex</li>
<li><a href="fc6f5ccc51"><code>fc6f5cc</code></a> readme: re-word usage to remove version number</li>
<li><a href="67824c7af2"><code>67824c7</code></a> ci: switch to dtolnay/rust-toolchain</li>
<li><a href="54660765af"><code>5466076</code></a> capi: fix 'unused return value' warnings</li>
<li>See full diff in <a href="https://github.com/rust-lang/regex/compare/1.6.0...1.7.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.6.0&new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
This should hopefully improve our compilation times, both from a clean build and from an incremental compilation snapshot.
Next would be the parser, but it imports `Context`, so it'll require a bit more work.
The number of file changes is obviously big, but almost nothing was changed, I just moved everything to another crate and readjusted the imports of the `parser` module. (Though, I did have to change some details, because there were some functions on the ast that returned `ParseError`s, and the tests had to be moved to the parser)
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.17 to 4.0.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.18</h2>
<h2>[4.0.18] - 2022-10-20</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Allow <code>#[command(skip)]</code> to also work with enum variants with a value</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.18] - 2022-10-20</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Allow <code>#[command(skip)]</code> to also work with enum variants with a value</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7e2a1b5d94"><code>7e2a1b5</code></a> chore: Release</li>
<li><a href="3a0f9fe4a2"><code>3a0f9fe</code></a> docs: Update changelog</li>
<li><a href="422298ceb3"><code>422298c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4412">#4412</a> from epage/skip</li>
<li><a href="91daec67ca"><code>91daec6</code></a> fix(derive): Allow skipping enum variants with a value</li>
<li><a href="996636d56f"><code>996636d</code></a> chore: Release</li>
<li><a href="3e23cd102f"><code>3e23cd1</code></a> fix: Require release versions of clap</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.17...v4.0.18">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.17&new-version=4.0.18)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.86 to 1.0.87.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.87</h2>
<ul>
<li>Add <code>write_i128</code> and <code>write_u128</code> methods to <code>serde_json::Formatter</code> to control the formatting of 128-bit integers (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/940">#940</a>, thanks <a href="https://github.com/Lucretiel"><code>@Lucretiel</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="993e7a6eea"><code>993e7a6</code></a> Release 1.0.87</li>
<li><a href="31070349af"><code>3107034</code></a> Eliminate needless 'tri!' from Serializer impl</li>
<li><a href="46c9778ce1"><code>46c9778</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/942">#942</a> from serde-rs/integer128</li>
<li><a href="37e76e0f85"><code>37e76e0</code></a> Assume serde_if_integer128 is true</li>
<li><a href="ec0456ad7b"><code>ec0456a</code></a> Use existing macros to implement 128-bit From impls</li>
<li><a href="c183125e04"><code>c183125</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/941">#941</a> from serde-rs/alloc</li>
<li><a href="ab0f884fb6"><code>ab0f884</code></a> Delete 1.36+ caveat from descriptions of alloc feature</li>
<li><a href="486598bbef"><code>486598b</code></a> Merge pull request 940 from Lucretiel/int128</li>
<li><a href="84d6d95e01"><code>84d6d95</code></a> Add direct support for i128 and u128 via itoa</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.86...v1.0.87">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.86&new-version=1.0.87)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
This is an experiment that tries to migrate the codebase from eager `Error` objects to lazy ones.
In short words, this redefines `JsResult = Result<JsValue, JsError>`, where `JsError` is a brand new type that stores only the essential part of an error type, and only transforms those errors to `JsObject`s on demand (when having to pass them as arguments to functions or store them inside async/generators).
This change is pretty big, because it unblocks a LOT of code from having to take a `&mut Context` on each call. It also paves the road for possibly making `JsError` a proper variant of `JsValue`, which can be a pretty big optimization for try/catch.
A downside of this is that it exposes some brand new error types to our public API. However, we can now implement `Error` on `JsError`, making our `JsResult` type a bit more inline with Rust's best practices.
~Will mark this as draft, since it's missing some documentation and a lot of examples, but~ it's pretty much feature complete. As always, any comments about the design are very much appreciated!
Note: Since there are a lot of changes which are essentially just rewriting `context.throw` to `JsNativeError::%type%`, I'll leave an "index" of the most important changes here:
- [boa_engine/src/error.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-f15f2715655440626eefda5c46193d29856f4949ad37380c129a8debc6b82f26)
- [boa_engine/src/builtins/error/mod.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-3eb1e4b4b5c7210eb98192a5277f5a239148423c6b970c4ae05d1b267f8f1084)
- [boa_tester/src/exec/mod.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-fc3d7ad7b5e64574258c9febbe56171f3309b74e0c8da35238a76002f3ee34d9)
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.16 to 4.0.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.17</h2>
<h2>[4.0.17] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li>Allow using <code>Arg::last(true)</code> with <code>Arg::value_hint(ValueHint::CommandWithArguments)</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.17] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li>Allow using <code>Arg::last(true)</code> with <code>Arg::value_hint(ValueHint::CommandWithArguments)</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b9dfbbf7e4"><code>b9dfbbf</code></a> chore: Release</li>
<li><a href="a6c8f6a5bd"><code>a6c8f6a</code></a> docs: Update changelog</li>
<li><a href="e11afa284b"><code>e11afa2</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4401">#4401</a> from epage/last</li>
<li><a href="1ead5ef421"><code>1ead5ef</code></a> fix(complete): Support last(true) with CommandWithArguments</li>
<li><a href="e50a11a404"><code>e50a11a</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4399">#4399</a> from j-browne/link-fix</li>
<li><a href="a1d4476f24"><code>a1d4476</code></a> Fix a broken link in ValueEnum docs</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.16...v4.0.17">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.16&new-version=4.0.17)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.12 to 4.0.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.0.16</h2>
<h2>[4.0.16] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li><code>Arg::exclusive(true)</code> should not be exclusive with the argument's own <code>ArgGroup</code></li>
</ul>
<h2>v4.0.15</h2>
<h2>[4.0.15] - 2022-10-13</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Don't suggest <code>--</code> when it doesn't help</li>
<li><em>(error)</em> Be more consistent in quoting, punctuation, and indentation in errors</li>
</ul>
<h2>v4.0.14</h2>
<h2>[4.0.14] - 2022-10-12</h2>
<h3>Fixes</h3>
<ul>
<li>Only put <code>ArgGroup</code> in <code>ArgMatches</code> when explicitly specified, fixing derives handling of option-flattened fields (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4375">#4375</a>)</li>
</ul>
<h2>v4.0.13</h2>
<h2>[4.0.13] - 2022-10-11</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> Allow <code>()</code> for fields to mean "don't read" (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4371">#4371</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.0.16] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li><code>Arg::exclusive(true)</code> should not be exclusive with the argument's own <code>ArgGroup</code></li>
</ul>
<h2>[4.0.15] - 2022-10-13</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Don't suggest <code>--</code> when it doesn't help</li>
<li><em>(error)</em> Be more consistent in quoting, punctuation, and indentation in errors</li>
</ul>
<h2>[4.0.14] - 2022-10-12</h2>
<h3>Fixes</h3>
<ul>
<li>Only put <code>ArgGroup</code> in <code>ArgMatches</code> when explicitly specified, fixing derives handling of option-flattened fields (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4375">#4375</a>)</li>
</ul>
<h2>[4.0.13] - 2022-10-11</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> Allow <code>()</code> for fields to mean "don't read" (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4371">#4371</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cbb05d54f8"><code>cbb05d5</code></a> chore: Release</li>
<li><a href="b77bd0cc6a"><code>b77bd0c</code></a> docs: Update changelog</li>
<li><a href="466b6f837e"><code>466b6f8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4397">#4397</a> from epage/exclusive</li>
<li><a href="45dcf0ed22"><code>45dcf0e</code></a> fix(parser): Don't make Args <code>exclusive</code> with their ArgGroup</li>
<li><a href="a40c7b491e"><code>a40c7b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4390">#4390</a> from sergejp/master</li>
<li><a href="3250bcec4c"><code>3250bce</code></a> docs: Provide a better example for positional arg append under derive</li>
<li><a href="e6436a0967"><code>e6436a0</code></a> docs: Provide a better example for positional arg append</li>
<li><a href="bd5a6eab3b"><code>bd5a6ea</code></a> chore: Release</li>
<li><a href="7eaeed3abd"><code>7eaeed3</code></a> docs: Update changelog</li>
<li><a href="0f6ef3003d"><code>0f6ef30</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4384">#4384</a> from epage/consistent</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v4.0.12...v4.0.16">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.0.12&new-version=4.0.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
This Pull Request fixes#1371. And yeah, the number of file changes is real...
It changes the following:
- Split the ast `Node` into `Statement` and `Expression`.
- Rewrite the parser and bytecompiler to conform to this change.
- Refactor some ast nodes into reusable structures.
- Rewrite `contains_arguments` and `contains` to ease the transition into a future ast visitor.
List of things that were apparently fixed by this refactor?:
- Implement read-assign operation for private accessors (e.g. `this.#field ||= 5`).
- `var await` declaration now allowed outside `async` functions and inside functions nested in async functions.
- Reject redeclarations of variables declared in the init list of a for loop.
Still missing some documentation adjustments, will try to do it ASAP.
This Pull Request fixes/closes #2330.
It changes the following:
- Upgrades from clap 3 to clap 4 (note that criterion still uses clap 3, tracked here: https://github.com/bheisler/criterion.rs/issues/596)
- Updates the derive syntax with the new 4.0 syntax
- Adds hints for fish & zsh
Co-authored-by: José Julián Espina <jedel0124@gmail.com>
This Pull Request switches our codebase to the brand new [workspace inherited keys](https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table), which allows us to define common package options that are usable within each crate's Cargo.toml file.
It also allows to share dependency versions between crates, but I defined only shared versions for our workspace members. It would be a good follow-up to lift all the shared dependencies between crates into the global Cargo.toml.
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.21 to 3.2.22.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.22</h2>
<h2>[3.2.22] - 2022-09-16</h2>
<h3>Fixes</h3>
<ul>
<li>Unify dependencies on <code>terminal_size</code> to the 0.2 release</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/v3.2.22/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.22] - 2022-09-16</h2>
<h3>Fixes</h3>
<ul>
<li>Unify dependencies on <code>terminal_size</code> to the 0.2 release</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9e3fa67e04"><code>9e3fa67</code></a> chore: Release</li>
<li><a href="d188de0535"><code>d188de0</code></a> docs: Update changelog</li>
<li><a href="48b2373569"><code>48b2373</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4221">#4221</a> from niyaznigmatullin/bump_terminal_size</li>
<li><a href="2fd55076e6"><code>2fd5507</code></a> chore(deps): Bump terminal_size and textwrap</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v3.2.21...v3.2.22">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.21&new-version=3.2.22)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.20 to 3.2.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.21</h2>
<h2>[3.2.21] - 2022-09-12</h2>
<h3>Features</h3>
<ul>
<li><code>TypedValueParser::map</code> to allow reusing existing value parsers for other purposes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/v3.2.21/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.21] - 2022-09-12</h2>
<h3>Features</h3>
<ul>
<li><code>TypedValueParser::map</code> to allow reusing existing value parsers for other purposes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7de2f36e6b"><code>7de2f36</code></a> chore: Release</li>
<li><a href="af47562311"><code>af47562</code></a> docs: Roll back deprecation message</li>
<li><a href="1f053b9c9b"><code>1f053b9</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4205">#4205</a> from epage/deprecations</li>
<li><a href="d1ff0632ad"><code>d1ff063</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4204">#4204</a> from epage/map</li>
<li><a href="7272aa0950"><code>7272aa0</code></a> docs: Expand on deprecation instructions</li>
<li><a href="960c152b53"><code>960c152</code></a> feat(parser): TypedValueParseer::map for adapting value parsers</li>
<li><a href="c361d01ad5"><code>c361d01</code></a> docs: Remove v4 from changelog</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v3.2.20...v3.2.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.20&new-version=3.2.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.19 to 3.2.20.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.20</h2>
<h2>[3.2.20] - 2022-09-02</h2>
<h3>Features</h3>
<ul>
<li><code>ArgMatches::get_count</code> help for <code>ArgAction::Count</code></li>
<li><code>ArgMatches::get_flag</code> help for <code>ArgAction::SetTrue</code> / <code>ArgAction::SetFalse</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/v3.2.20/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.20] - 2022-09-02</h2>
<h3>Features</h3>
<ul>
<li><code>ArgMatches::get_count</code> help for <code>ArgAction::Count</code></li>
<li><code>ArgMatches::get_flag</code> help for <code>ArgAction::SetTrue</code> / <code>ArgAction::SetFalse</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ddcd13b71b"><code>ddcd13b</code></a> chore: Release</li>
<li><a href="9d35abc22b"><code>9d35abc</code></a> docs: Update changelog</li>
<li><a href="39aba08f88"><code>39aba08</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4171">#4171</a> from epage/helper2</li>
<li><a href="2d5fea50b9"><code>2d5fea5</code></a> feat(parser): Provide convenience for SetTrue</li>
<li><a href="d2a1f5a8f8"><code>d2a1f5a</code></a> feat(parser): Provide convenience accessor for Counts</li>
<li><a href="3c91438162"><code>3c91438</code></a> chore: Release</li>
<li><a href="75f17b6215"><code>75f17b6</code></a> docs: Update changelog</li>
<li><a href="19c922260f"><code>19c9222</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4146">#4146</a> from Calder-Ty/bugfix/3861_backport</li>
<li><a href="f7af7659b8"><code>f7af765</code></a> fix: Add possible vals to man for positional args</li>
<li><a href="9b4c276c01"><code>9b4c276</code></a> fix: Use roff bullet lists for possible_values</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v3.2.19...v3.2.20">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.19&new-version=3.2.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.17 to 3.2.19.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.19</h2>
<h2>[3.2.19] - 2022-08-30</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Ensure required arguments for parent commands aren't shown in their subcommands when using <code>args_conflicts_with_subcommand</code></li>
</ul>
<h2>v3.2.18</h2>
<h2>[3.2.18] - 2022-08-29</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> <code>Command::print_help</code> now respects <code>Command::colored_help</code></li>
<li><em>(derive)</em> Improved error messages</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/v3.2.19/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.19] - 2022-08-30</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Ensure required arguments for parent commands aren't shown in their subcommands when using <code>args_conflicts_with_subcommand</code></li>
</ul>
<h2>[3.2.18] - 2022-08-29</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> <code>Command::print_help</code> now respects <code>Command::colored_help</code></li>
<li><em>(derive)</em> Improved error messages</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cf7f1fa583"><code>cf7f1fa</code></a> chore: Release</li>
<li><a href="754a949ee8"><code>754a949</code></a> docs: Update changelog</li>
<li><a href="4371a7b6cd"><code>4371a7b</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4150">#4150</a> from epage/parent-usage</li>
<li><a href="ac5cd3795c"><code>ac5cd37</code></a> fix(usage): Don't include irrelevant parent args</li>
<li><a href="19bc3b75f6"><code>19bc3b7</code></a> chore: Release</li>
<li><a href="11f8ef8d10"><code>11f8ef8</code></a> docs: Update changelog</li>
<li><a href="6987ae9145"><code>6987ae9</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4139">#4139</a> from epage/help</li>
<li><a href="a7d7602582"><code>a7d7602</code></a> fix(help): Command::print_help should respect disable_colored_help</li>
<li><a href="d3f0931267"><code>d3f0931</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4124">#4124</a> from miguelff/v3-master</li>
<li><a href="dae2bb765f"><code>dae2bb7</code></a> fix: Amend error message when deriving enums</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v3.2.17...v3.2.19">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.17&new-version=3.2.19)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.83 to 1.0.85.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.85</h2>
<ul>
<li>Make <code>Display</code> for <code>Number</code> produce the same representation as serializing (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/919">#919</a>)</li>
</ul>
<h2>v1.0.84</h2>
<ul>
<li>Make <code>Debug</code> impl of <code>serde_json::Value</code> more compact (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/918">#918</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="44d9c53e25"><code>44d9c53</code></a> Release 1.0.85</li>
<li><a href="2c8e2b08af"><code>2c8e2b0</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/919">#919</a> from serde-rs/displaynum</li>
<li><a href="cb2515ba44"><code>cb2515b</code></a> Make Display for Number produce the same representation as serializing</li>
<li><a href="8ba854166d"><code>8ba8541</code></a> Preserve '.0' when Displaying Number</li>
<li><a href="de251c8198"><code>de251c8</code></a> Add test of Display for Number containing float</li>
<li><a href="6b8b07365e"><code>6b8b073</code></a> Release 1.0.84</li>
<li><a href="9e9b2b72fb"><code>9e9b2b7</code></a> Revert "Avoid cargo 1.45–1.50 in GitHub Actions"</li>
<li><a href="a685113765"><code>a685113</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/918">#918</a> from serde-rs/debug</li>
<li><a href="dd6a86db07"><code>dd6a86d</code></a> Reduce unneeded parens and newlines in Debug for Value</li>
<li><a href="de62e3e406"><code>de62e3e</code></a> Make Debug test compatible with preserve_order</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/json/compare/v1.0.83...v1.0.85">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.83&new-version=1.0.85)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->
This Pull Request removes two dependencies that were not really needed, and fixes#2244 by no longer having the package in the dependency tree.
It changes the following:
- The `structopt` dependency in `boa_tester` has been replaced by `clap` v3, the same way as we did in `boa_cli`. This means that we have one less dependency (at least), and that `clap` v2 is only used as a dev-dependency by `criterion` (which will probably be removed in 0.4, as per https://github.com/bheisler/criterion.rs/issues/596).
- The no-longer-updated `num-format` dependency has been removed from `boa_tester`. We were only using it to add comma thousands separator on results, so I added a simple function to do it (not very performant, but it will only be used a few times when showing results).
Looking at this, I noticed a couple of things:
- The `csv` dependency, used by `criterion` has not been updated in more than a year, and it's using a very old `itoa` dependency. They updated the dependency in the repository in March, but unfortunately, the release is taking some more time than expected, and a tracking issue can be found here: https://github.com/BurntSushi/rust-csv/issues/271
- `cargo update` fails, because the latest update to `tinystr` in the ICU4x breaks ICU4x 0.6. I have reported this here: https://github.com/unicode-org/icu4x/issues/2428 and their recommendation is for us to use a beta version of the library, but I don't think we should go for that, since this is a semver breakage.
This Pull Request fixes/closes #2223.
It changes the following:
- Check the .boa_history file, if it is not exist then create the file before load history function to prevent the crash
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.16 to 3.2.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.17</h2>
<h2>[3.2.17] - 2022-08-12</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Expose <code>#[clap(id = ...)]</code> attribute to match Arg's latest API</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/v3.2.17/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.17] - 2022-08-12</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Expose <code>#[clap(id = ...)]</code> attribute to match Arg's latest API</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="df30c1a1a8"><code>df30c1a</code></a> chore: Release</li>
<li><a href="57161dbe92"><code>57161db</code></a> docs: Update changelog</li>
<li><a href="e29f0140a6"><code>e29f014</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4068">#4068</a> from danielparks/issue-3785-derive-id-attr-v3</li>
<li><a href="bc84fc0f6e"><code>bc84fc0</code></a> chore(ci): Lock docs to MSRV</li>
<li><a href="d8e25498b2"><code>d8e2549</code></a> fix(derive): Add "id" attribute</li>
<li><a href="565c5ea5c0"><code>565c5ea</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4048">#4048</a> from epage/backport</li>
<li><a href="3af94ec0af"><code>3af94ec</code></a> docs(tutorial): Switch to hand-implemented ValueEnum</li>
<li><a href="3943ad7fc0"><code>3943ad7</code></a> test(tutorial): Ensure we actually test code</li>
<li><a href="a61f874a51"><code>a61f874</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4043">#4043</a> from epage/action</li>
<li><a href="c7123b3159"><code>c7123b3</code></a> docs(derive): Clarify what defaulted action/value_parser does</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v3.2.16...v3.2.17">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.16&new-version=3.2.17)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [phf](https://github.com/rust-phf/rust-phf) from 0.11.0 to 0.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/rust-phf/rust-phf/releases">phf's releases</a>.</em></p>
<blockquote>
<h2>phf v0.11.1</h2>
<h3>Chore</h3>
<ul>
<li><!-- raw HTML omitted --> point to local crates for now</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>state allowed key expressions in <code>phf_map</code></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p>remove now-unnecessary <code>proc-macro-hack</code> crate usage
Resolves <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/255">rust-phf/rust-phf#255</a>.</p>
<p>This resolves an issue with Windows Defender identifying <code>proc-macro-hack</code> as threats. It also sheds
a depedency that is no longer necessary, now that the MSRV of this crate is 1.46 and
<code>proc-macro-hack</code> is only useful for providing support for Rust versions 1.31 through 1.45. Per
<a href="https://github.com/dtolnay/proc-macro-hack">upstream</a>:</p>
<blockquote>
<p><strong>Note:</strong> <em>As of Rust 1.45 this crate is superseded by native support for #[proc_macro] in
expression position. Only consider using this crate if you care about supporting compilers between
1.31 and 1.45.</em></p>
</blockquote>
</li>
</ul>
<h3>Commit Statistics</h3>
<ul>
<li>234 commits contributed to the release over the course of 2957 calendar days.</li>
<li>3 commits where understood as <a href="https://www.conventionalcommits.org">conventional</a>.</li>
<li>1 unique issue was worked on: <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/249">#249</a></li>
</ul>
<h3>Commit Details</h3>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<ul>
<li><strong><a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/249">#249</a></strong>
<ul>
<li>Add <code>Map::new()</code> function and <code>Default</code> implementation to create new, empty map (baac7d0)</li>
</ul>
</li>
<li><strong>Uncategorized</strong>
<ul>
<li>Replace handmade changelog with generated one by <code>cargo-smart-release</code> (cb84cf6)</li>
<li>Add category to crates (32a72c3)</li>
<li>Update repository links on Cargo.toml (1af3b0f)</li>
<li>Release 0.11.0 (d2efdc0)</li>
<li>Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/257">#257</a> from JohnTitor/edition-2021 (36ec885)</li>
<li>Make crates edition 2021 (b9d25da)</li>
<li>remove now-unnecessary <code>proc-macro-hack</code> crate usage (caf1ce7)</li>
<li>point to local crates for now (92e7b43)</li>
<li>Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/253">#253</a> from JohnTitor/action-tweaks (a3e04bc)</li>
<li>Fix some Clippy warnings (71fd47c)</li>
<li>Make "unicase + macros" features work (11bb242)</li>
<li>Prepare 0.10.1 release (4cc8344)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-phf/rust-phf/blob/master/RELEASE_PROCESS.md">phf's changelog</a>.</em></p>
<blockquote>
<h1>How to make a new release</h1>
<p>Since v0.11.1, this repository uses <a href="https://crates.io/crates/cargo-smart-release"><code>cargo-smart-release</code></a> to release crates.</p>
<h2>Installation</h2>
<pre lang="sh"><code>cargo install cargo-smart-release
</code></pre>
<h2>Before running <code>cargo-smart-release</code></h2>
<p>If the next version has a major change or bumps MSRV, i.e. it increases a minor version on <code>v0.Y.Z</code> or a major version on <code>vX.Y.Z</code>,
update the versions mentioned on the README and doc comments (and CI config if it touches MSRV).</p>
<h2>Run <code>cargo-smart-release</code></h2>
<p>First, just run:</p>
<pre lang="sh"><code>cargo smart-release phf phf_codegen phf_generator phf_macros phf_shared
</code></pre>
<p>This would show what <code>cargo-smart-release</code> would do, e.g. how it updates the version number, changelog, etc.
If you satisfy the output, run:</p>
<pre lang="sh"><code>cargo smart-release -u -e phf phf_codegen phf_generator phf_macros phf_shared
</code></pre>
<p>This would make actual releases. <code>-e</code> means that it executes actual releases and <code>-u</code> means that it always updates crates-index.
<code>cargo-smart-release</code> also takes care of the Git tags.</p>
<p>After executing it, ensure that all the releases are actually happened and the tags are pushed.
If all the things are fine, that's it!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3897b21c6d"><code>3897b21</code></a> Release phf_shared v0.11.1, phf_generator v0.11.1, phf_macros v0.11.1, phf v0...</li>
<li><a href="3c6af3f7d7"><code>3c6af3f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/265">#265</a> from rust-phf/unpin-criterion</li>
<li><a href="27a2ce4b07"><code>27a2ce4</code></a> phf_generator: Unpin the <code>criterion</code> dependency</li>
<li><a href="97f997d2be"><code>97f997d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/264">#264</a> from rust-phf/tweak-changelog</li>
<li><a href="cb84cf6636"><code>cb84cf6</code></a> Replace handmade changelog with generated one by <code>cargo-smart-release</code></li>
<li><a href="d441940cbb"><code>d441940</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/263">#263</a> from lopopolo/lopopolo/rand-no-default-features</li>
<li><a href="deefda1cdf"><code>deefda1</code></a> Disable default features for rand dep in phf_generator</li>
<li><a href="1407ebe536"><code>1407ebe</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/260">#260</a> from JohnTitor/fix-repo-link</li>
<li><a href="488b1638d2"><code>488b163</code></a> Fix a typo</li>
<li><a href="e0b34fa0a6"><code>e0b34fa</code></a> Add README.md for some crates</li>
<li>Additional commits viewable in <a href="https://github.com/rust-phf/rust-phf/compare/v0.11.0...phf-v0.11.1">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=phf&package-manager=cargo&previous-version=0.11.0&new-version=0.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.82 to 1.0.83.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.83</h2>
<ul>
<li>Add categories to crates.io metadata</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="2b0403f5cd"><code>2b0403f</code></a> Release 1.0.83</li>
<li><a href="db96d72c3f"><code>db96d72</code></a> Add categories to crates.io metadata</li>
<li><a href="25129334eb"><code>2512933</code></a> Add authors to Cargo.toml</li>
<li><a href="22da79711a"><code>22da797</code></a> Sort package entries in Cargo.toml</li>
<li><a href="01ef46e363"><code>01ef46e</code></a> Ignore assertions_on_result_states clippy lint</li>
<li><a href="aac479a70a"><code>aac479a</code></a> Avoid cargo 1.43–1.45 in GitHub Actions</li>
<li><a href="1a433816f6"><code>1a43381</code></a> Convert i/u128 conversion to itoa instead of std::fmt</li>
<li><a href="84c157b41d"><code>84c157b</code></a> Directly install aarch64-unknown-none target support</li>
<li><a href="d1cbbb634a"><code>d1cbbb6</code></a> Update ui test suite to nightly-2022-07-20</li>
<li><a href="5b441a2881"><code>5b441a2</code></a> Ignore explicit_auto_deref clippy lint</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/json/compare/v1.0.82...v1.0.83">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.82&new-version=1.0.83)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.15 to 3.2.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.16</h2>
<h2>[3.2.16] - 2022-07-30</h2>
<h3>Fixes</h3>
<ul>
<li>Ensure required arguments appear in errors when they are also members of a group (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4004">#4004</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.16] - 2022-07-30</h2>
<h3>Fixes</h3>
<ul>
<li>Ensure required arguments appear in errors when they are also members of a group (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4004">#4004</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9bd1e2fd39"><code>9bd1e2f</code></a> chore: Release</li>
<li><a href="5e525944a5"><code>5e52594</code></a> docs: Update changelog</li>
<li><a href="80ea08cc5a"><code>80ea08c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4006">#4006</a> from epage/error</li>
<li><a href="4c43b21c35"><code>4c43b21</code></a> fix(parser): Include required argument in message</li>
<li><a href="ef1424b21c"><code>ef1424b</code></a> refactor(usage): Clarify required gathering</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v3.2.15...v3.2.16">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.15&new-version=3.2.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.14 to 3.2.15.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.15</h2>
<h2>[3.2.15] - 2022-07-25</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> New <code>default_values_t</code> and <code>default_values_os_t</code> attributes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/v3.2.15/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.15] - 2022-07-25</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> New <code>default_values_t</code> and <code>default_values_os_t</code> attributes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b2a8fd7f46"><code>b2a8fd7</code></a> chore: Release</li>
<li><a href="026e858065"><code>026e858</code></a> chore: Allow releasing from release branches</li>
<li><a href="84ae6df0a1"><code>84ae6df</code></a> docs: Update changelog</li>
<li><a href="69b0904eda"><code>69b0904</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3987">#3987</a> from emersonford/default-values-t-v3-backport</li>
<li><a href="027a67542b"><code>027a675</code></a> feat(clap_derive): Add <code>default_values_t</code> and <code>default_values_os_t</code></li>
<li><a href="9262d924bc"><code>9262d92</code></a> chore(gh): Start v3 patch maintenance</li>
<li><a href="19371247fc"><code>1937124</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3961">#3961</a> from epage/prep</li>
<li><a href="0eeb4da33d"><code>0eeb4da</code></a> chore(gh): Prepare for more branches to be added</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v3.2.14...v3.2.15">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.14&new-version=3.2.15)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.12 to 3.2.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.14</h2>
<h2>[3.2.14] - 2022-07-21</h2>
<h3>Fixes</h3>
<ul>
<li>A <code>multple_values</code> positional followed by another positional now works with multiple flags</li>
</ul>
<h2>v3.2.13</h2>
<h2>[3.2.13] - 2022-07-19</h2>
<h3>Documentation</h3>
<ul>
<li>Pulled in tutorials, cookbook, and derive reference into rustdoc</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.14] - 2022-07-21</h2>
<h3>Fixes</h3>
<ul>
<li>A <code>multple_values</code> positional followed by another positional now works with multiple flags</li>
</ul>
<h2>[3.2.13] - 2022-07-19</h2>
<h3>Documentation</h3>
<ul>
<li>Pulled in tutorials, cookbook, and derive reference into rustdoc</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d40e42a9ca"><code>d40e42a</code></a> chore: Release</li>
<li><a href="88b9406c1b"><code>88b9406</code></a> docs: Update changelog</li>
<li><a href="f48e517b71"><code>f48e517</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3960">#3960</a> from epage/pos</li>
<li><a href="48f087d090"><code>48f087d</code></a> fix(parser): low index multiples work with flags</li>
<li><a href="5e02445ce5"><code>5e02445</code></a> docs: Small tweak to lib docs</li>
<li><a href="318e0ab35d"><code>318e0ab</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3955">#3955</a> from tshepang/patch-1</li>
<li><a href="01d7e7ac04"><code>01d7e7a</code></a> docs: reduce the need to guess</li>
<li><a href="e6b8b4b607"><code>e6b8b4b</code></a> chore: Release</li>
<li><a href="85ccf3e901"><code>85ccf3e</code></a> chore: Update release process</li>
<li><a href="fcd7cae81f"><code>fcd7cae</code></a> docs: Update changelog</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v3.2.12...v3.2.14">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.12&new-version=3.2.14)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
This Pull Request overrides #2183#2187, #2189 and #2190.
It changes the following:
- Updates rustyline to 10.0.0 (this uses the new phf 0.11)
- Updates phf to 0.11 to avoid different dependency versions
- Fixes the `Editor` creation, which now returns a `Result`.
Bumps [rustyline-derive](https://github.com/kkawakam/rustyline) from 0.6.0 to 0.7.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/kkawakam/rustyline/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustyline-derive&package-manager=cargo&previous-version=0.6.0&new-version=0.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.11 to 3.2.12.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.12</h2>
<h2>[3.2.12] - 2022-07-14</h2>
<h3>Fixes</h3>
<ul>
<li>Allow an arg to declare a conflict with a group</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.12] - 2022-07-14</h2>
<h3>Fixes</h3>
<ul>
<li>Allow an arg to declare a conflict with a group</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a8a7a61f56"><code>a8a7a61</code></a> chore: Release</li>
<li><a href="ed8837f2cc"><code>ed8837f</code></a> docs: Update changelog</li>
<li><a href="afc540153b"><code>afc5401</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3902">#3902</a> from tmccombs/get-conflicts-with-group</li>
<li><a href="f27f1f57ea"><code>f27f1f5</code></a> fix: Include groups in <code>get_arg_conflicts_with</code></li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v3.2.11...v3.2.12">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.11&new-version=3.2.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.10 to 3.2.11.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.11</h2>
<h2>[3.2.11] - 2022-07-13</h2>
<h3>Features</h3>
<ul>
<li>Added <code>Arg::get_all_short_aliaes</code> and <code>Arg::get_all_aliases</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.11] - 2022-07-13</h2>
<h3>Features</h3>
<ul>
<li>Added <code>Arg::get_all_short_aliaes</code> and <code>Arg::get_all_aliases</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="2df0732df4"><code>2df0732</code></a> chore: Release</li>
<li><a href="1c2242251b"><code>1c22422</code></a> docs: Update changelog</li>
<li><a href="e8374e3f2e"><code>e8374e3</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3913">#3913</a> from emersonford/expose-non-visible-arg-aliases</li>
<li><a href="e39156e0b9"><code>e39156e</code></a> feat: Add method to get non-visible arg aliases</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v3.2.10...v3.2.11">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.10&new-version=3.2.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.8 to 3.2.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v3.2.10</h2>
<h2>[3.2.10] - 2022-07-12</h2>
<h3>Fixes</h3>
<ul>
<li>Loosen lifetime on <code>Command::mut_subcommand</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[3.2.10] - 2022-07-12</h2>
<h3>Fixes</h3>
<ul>
<li>Loosen lifetime on <code>Command::mut_subcommand</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9b6321a1f0"><code>9b6321a</code></a> chore: Release</li>
<li><a href="074712a739"><code>074712a</code></a> chore: Update release process</li>
<li><a href="096db791bf"><code>096db79</code></a> docs: Update changelog</li>
<li><a href="3802a35a43"><code>3802a35</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3909">#3909</a> from emersonford/fix-mut-subcommand-lifetime</li>
<li><a href="8e1411b3b2"><code>8e1411b</code></a> fix: Loosen lifetime constraint on mut_subcommand</li>
<li><a href="5c7ad01587"><code>5c7ad01</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3908">#3908</a> from jturner314-nrl/derive-ref-quotes</li>
<li><a href="f94eafbaf7"><code>f94eafb</code></a> Clarify in docs that rename_all needs a string literal</li>
<li><a href="93565c226c"><code>93565c2</code></a> Add "" around string literals in derive ref docs</li>
<li><a href="7c0068e5b9"><code>7c0068e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/3906">#3906</a> from epage/complete</li>
<li><a href="6286339f81"><code>6286339</code></a> docs(complete): Make example consistent</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v3.2.8...v3.2.10">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=3.2.8&new-version=3.2.10)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>