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(gnovm): correct type for shift expression #1775

Open
wants to merge 140 commits into
base: master
Choose a base branch
from

Conversation

ltzmaxwell
Copy link
Contributor

@ltzmaxwell ltzmaxwell commented Mar 14, 2024

UPDATE: this one is ready for review.

shift operator where first operand is an untyped bigint always results in a bigint is not resolved by #1426, it's fixed by this one.

=================================================================

  1. This is a fix to shift operator where first operand is an untyped bigint always results in a bigint #1462;
  2. NOTE: This PR should be reviewed following the potential merger of feat: gno type check #1426, from which it is both decoupled and dependent. feat: gno type check #1426 serves as base branch of this one.
  3. NOTE: Currently, this PR displays all code including that from feat: gno type check #1426, because it is being compared to the master branch instead of differing against feat: gno type check #1426 directly.

@ltzmaxwell ltzmaxwell marked this pull request as ready for review August 5, 2024 06:30
@ltzmaxwell ltzmaxwell changed the title fix: correct type for shift expression fix(gnome): correct type for shift expression Aug 5, 2024
@ltzmaxwell ltzmaxwell changed the title fix(gnome): correct type for shift expression fix(gnovm): correct type for shift expression Aug 5, 2024
@ltzmaxwell
Copy link
Contributor Author

Hi @thehowl , this one is good to review too.

Copy link
Contributor

@deelawn deelawn left a comment

Choose a reason for hiding this comment

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

Nice work. I think there are a few things that need fixing. I appreciate all of the tests. The Go spec has a some nice cases that maybe we could also include as part of the tests: https://arc.net/l/quote/offplfsv

gnovm/pkg/gnolang/preprocess.go Outdated Show resolved Hide resolved
gnovm/pkg/gnolang/preprocess.go Show resolved Hide resolved
gnovm/pkg/gnolang/preprocess.go Show resolved Hide resolved
@ltzmaxwell ltzmaxwell marked this pull request as draft August 8, 2024 10:06
@ltzmaxwell ltzmaxwell marked this pull request as ready for review August 9, 2024 09:53
Copy link
Contributor

@deelawn deelawn left a comment

Choose a reason for hiding this comment

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

Looks good to me. Thanks for quickly addressing my comments 🙏

@@ -7,4 +7,4 @@ func main() {
}

// Error:
// main/files/types/shift_a11.gno:3:1: cannot convert StringKind to UintKind
// main/files/types/shift_a11.gno:5:7: invalid operation: invalid shift count: (const ("hello" <untyped> string))
Copy link
Contributor

Choose a reason for hiding this comment

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

the original error message seems correct.

https://go.dev/play/p/h5iW1knB4gb

@@ -6,4 +6,4 @@ func main() {
}

// Error:
// main/files/types/shift_a7.gno:3:1: cannot convert StringKind to UintKind
// main/files/types/shift_a7.gno:5:10: invalid operation: invalid shift count: (const ("a" <untyped> string))
Copy link
Contributor

Choose a reason for hiding this comment

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

the original error message seems correct

https://go.dev/play/p/ouTJIOmUWfO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📦 🤖 gnovm Issues or PRs gnovm related 🧾 package/realm Tag used for new Realms or Packages.
Projects
Status: In Progress
Status: No status
Status: In Review
Development

Successfully merging this pull request may close these issues.

None yet

5 participants