-
Notifications
You must be signed in to change notification settings - Fork 370
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
base: master
Are you sure you want to change the base?
Conversation
…terface_comparison
Hi @thehowl , this one is good to review too. |
There was a problem hiding this 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
There was a problem hiding this 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 🙏
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
partial
Co-authored-by: Morgan <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR greatly improves the behaviour of the shift operator. The tests are amazing and cover a lot of corner cases (several bugs also found in yaegi thanks to them) and match perfectly the results given by the compiler. Thank you for this effort. My remarks are minor and do no block approval. We should merge it ASAP now.
@@ -0,0 +1,23 @@ | |||
package main |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test is maybe legitimate but it has nothing to do with the shift operator. It should be renamed or suppressed.
|
||
//s1 := []int{0} | ||
//s1[0] = 1 + 1<<2 | ||
//fmt.Printf("%T\n", s1[0]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
//s1 := []int{0} | |
//s1[0] = 1 + 1<<2 | |
//fmt.Printf("%T\n", s1[0]) |
@@ -0,0 +1,10 @@ | |||
package main |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test has nothing to do with shift. Please rename it or suppress it.
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.
=================================================================