Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: require loop/for/while body to be unit #7437

Merged
merged 3 commits into from
Feb 19, 2025

Conversation

asterite
Copy link
Collaborator

Description

Problem

Resolves #7408

Summary

In addition to that:

  1. It fixes an issue where the error span when the "then" and "else" branches of an "if" didn't match was wrong (I introduced that bug some weeks ago)
  2. A new feature where some type errors will now point to more precise spans

For point 2, here's the error you got when the branches of an "if" didn't match:

image

And this is how it looks now:

image

That is, for a given expression we now point the type mismatch in the innermost expression that gives it its type.

The same is done for loops:

image

I made this change in places where a block usually happens. We could eventually do it in other places (prefix expression, index expressions, call arguments, etc.) as we find them, though using blocks there is pretty rare.

Additional Context

Documentation

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@asterite asterite requested a review from a team February 19, 2025 12:02
@TomAFrench
Copy link
Member

Can you bump that compilation timeout to 110?

Copy link
Member

@TomAFrench TomAFrench left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@TomAFrench TomAFrench added this pull request to the merge queue Feb 19, 2025
Merged via the queue into master with commit 13a7309 Feb 19, 2025
101 of 102 checks passed
@TomAFrench TomAFrench deleted the ab/require-loop-body-to-be-unit branch February 19, 2025 14:19
@asterite
Copy link
Collaborator Author

Ah, sorry. Today I have a meeting in my kid's school, I'll continue working a bit later. I'll send a separate PR.

@TomAFrench
Copy link
Member

Ah nah, I bumped it in #7441 so no worries.

AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 19, 2025
chore!: make `ResolverError::OracleMarkedAsConstrained` into a full error (noir-lang/noir#7426)
chore: simplify reports (noir-lang/noir#7421)
fix: do not discard negative sign from field literals in comptime interpreter (noir-lang/noir#7439)
chore: bump aztec-packages commit (noir-lang/noir#7441)
fix: require loop/for/while body to be unit (noir-lang/noir#7437)
feat: simplify assertions that squared values are equal to zero (noir-lang/noir#7432)
chore(benchmark): Improve noir msm benchmark (noir-lang/noir#7390)
chore: Add SSA security checks description (noir-lang/noir#7366)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 19, 2025
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
feat(cli): add noir-execute binary
(noir-lang/noir#7384)
chore!: make `ResolverError::OracleMarkedAsConstrained` into a full
error (noir-lang/noir#7426)
chore: simplify reports (noir-lang/noir#7421)
fix: do not discard negative sign from field literals in comptime
interpreter (noir-lang/noir#7439)
chore: bump aztec-packages commit
(noir-lang/noir#7441)
fix: require loop/for/while body to be unit
(noir-lang/noir#7437)
feat: simplify assertions that squared values are equal to zero
(noir-lang/noir#7432)
chore(benchmark): Improve noir msm benchmark
(noir-lang/noir#7390)
chore: Add SSA security checks description
(noir-lang/noir#7366)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <tom@tomfren.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bug: loop, for and while don't require their body to be ()
2 participants