652: ASG refactor r=collinc97 a=Protryon
## Motivation
This PR makes the ASG more user friendly by using arenas instead of RefCell/Arc:
1. Impossible to leak the ASG by creating a circular strong reference chain
2. We don't need RefCell's everywhere to implement passes
663: Bug 625/fix negative fields not allowed r=collinc97 a=gluax
Resolves#625. Logic used to do so is in check if first character of string to convert is a negative sign. If so remove first character convert from string to field, and then negate it on the leo side. If first character wasn't a negative sign, do the same as before.
Co-authored-by: Protryon <max.bruce12@gmail.com>
Co-authored-by: gluax <jonathan.t.pavlik@gmail.com>
Co-authored-by: gluax <16431709+gluax@users.noreply.github.com>
667: Bump zip from 0.5.9 to 0.5.10 r=collinc97 a=dependabot-preview[bot]
Bumps [zip](https://github.com/zip/zip-rs) from 0.5.9 to 0.5.10.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/zip/zip-rs/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=zip&package-manager=cargo&previous-version=0.5.9&new-version=0.5.10)](https://dependabot.com/compatibility-score/?dependency-name=zip&package-manager=cargo&previous-version=0.5.9&new-version=0.5.10)
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
653: Fix return type error for input-dependent branches r=collinc97 a=Protryon
This PR fixes failure to handle input-dependent branches. No tests added here since base case is covered, and this only occurs with production constraints. Should fix#535.
There is an additional issue not solved by this PR on branching on booleans from input.
Co-authored-by: Protryon <max.bruce12@gmail.com>
641: Bug/564 input array len not enforced r=collinc97 a=gluax
Resolves#564, depends on #563. The changes for this branch have pulled from PR #638, which is the PR that fixes#563.
Co-authored-by: gluaxspeed <jonathan.t.pavlik@gmail.com>
638: bug/563-array-input-wrong-dimensions r=collinc97 a=gluax
Closes#563. Fixes the array dimension builder when coming from the input file. Adds a test for it as well.
Co-authored-by: gluaxspeed <jonathan.t.pavlik@gmail.com>
633: duplicate name context test r=collinc97 a=gluax
Adding a test for duplicate name context that was resolved in #546.
634: fn call array params r=collinc97 a=gluax
Adding a test for bug #522, which was resolved by the asg.
Closes#522
Co-authored-by: gluaxspeed <jonathan.t.pavlik@gmail.com>
620: Feature/254 strengthen import rules r=collinc97 a=gluax
Grammar changes are a bit different than what was suggested in the original feature request #254. However, it should be logically equivalent and I think makes more sense on the rust side.
Closes#254
Co-authored-by: gluaxspeed <jonathan.t.pavlik@gmail.com>
598: [Feature] 374 circuit self access r=collinc97 a=gluax
Feature resolves#374. At the grammar level the following syntax is no longer allowed on self:
```
self[0];
self();
```
Syntax that is allowed at the grammar level is:
```
console.log("b: {}", self::b);
console.log("hmm: {}",self::hmm());
self.hello();
console.log("access: {}", self.a);
```
Note that these changes are only at the grammar level only.
Co-authored-by: gluaxspeed <jonathan.t.pavlik@gmail.com>
Co-authored-by: Howard Wu <9260812+howardwu@users.noreply.github.com>