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

Implements deref in reassignment for projections. #6941

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

esdrubal
Copy link
Contributor

@esdrubal esdrubal commented Feb 19, 2025

Description

Implements dereferencing as LHS in reassignments for projections.

With this PR we will support:

  • (*array)[0] = 1
  • (*tuple).0 = 1
  • (*struct).a = 1

This also includes support for nested references.

Fixes #6397
There is some progress in #5063

Checklist

  • I have linked to any relevant issues.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation where relevant (API docs, the reference, and the Sway book).
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added (or requested a maintainer to add) the necessary Breaking* or New Feature labels where relevant.
  • I have done my best to ensure that my PR adheres to the Fuel Labs Code Review Standards.
  • I have requested a review from the relevant team or maintainers.

@esdrubal esdrubal added compiler: ir IRgen and sway-ir including optimization passes language feature Core language features visible to end users compiler: frontend Everything to do with type checking, control flow analysis, and everything between parsing and IRgen compiler: parser Everything to do with the parser labels Feb 19, 2025
@esdrubal esdrubal self-assigned this Feb 19, 2025
@esdrubal esdrubal force-pushed the esdrubal/reassignment_of_projections branch from 7063057 to 18c0d39 Compare February 19, 2025 13:40
@esdrubal esdrubal force-pushed the esdrubal/reassignment_of_projections branch from 18c0d39 to ecbd95a Compare February 19, 2025 13:46
Copy link

codspeed-hq bot commented Feb 19, 2025

CodSpeed Performance Report

Merging #6941 will not alter performance

Comparing esdrubal/reassignment_of_projections (b72e89b) with master (988be9b)

Summary

✅ 22 untouched benchmarks

Implements dereferencing as LHS in reassignments for projections.

With this PR we will support:
 - `(*array)[0] = 1`
 - `(*tuple).0 = 1`
 - `(*struct).a = 1`

This allow includes support for nested references.

Fixes #6397
@esdrubal esdrubal force-pushed the esdrubal/reassignment_of_projections branch from ecbd95a to b72e89b Compare February 19, 2025 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler: frontend Everything to do with type checking, control flow analysis, and everything between parsing and IRgen compiler: ir IRgen and sway-ir including optimization passes compiler: parser Everything to do with the parser language feature Core language features visible to end users
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Dereferencing Arrays Is Not Possible
1 participant