-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
macros.newLit now preserves named vs unnamed tuples #14720
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
macros.newLit now preserves named vs unnamed tuples #14720
Conversation
35fc8d5
to
8511529
Compare
## use -d:nimHasWorkaround14720 to restore behavior prior to PR, forcing | ||
## a named tuple even when `arg` is unnamed. | ||
result = nnkTupleConstr.newTree | ||
when defined(nimHasWorkaround14720) or isNamedTuple(T): |
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.
Sometimes, I've thought that it would be nice if the compiler has a generic way to check for the presence of a bug fix (a bit like the generic since
mechanism).
Right how, when I encounter an issue, I often leave a TODO comment in the code with a link to the filed issue. If each release of the compiler was storing internally an integer set of all the fixed issues, it would have been possible to write the following code:
when not hasFix(12231):
# some work-around here
else:
{.fatal: "The work-around can be removed now".}
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 would not have helped here, where a bugfix causes some code relying on the bug to fail (see ggplotnim)
- nim already has a mechanism for that using
nimHasFoo
(see condsyms.nim), and it's strictly more flexible than an issue number, because it gives you freedom to specify what was fixed; eg if:
bug 1234 contains 2 sub issuesfoo and
bar, you can have a nim commit with:
nimHasFix1234Foo(or
nimHasFixFoo`)
see timotheecour#317 for the detailed proposal
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.
there is such a library in rust: you can do it as a macro
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.
I can't find it :( but it checks the issue tracker on compile time e.g. in CI iirc. it's cool
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.
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.
no it was much simpler, just something like waitIssue!(..)
https://www.reddit.com/r/rust/comments/gsq5gd/blocked_a_procmacro_that_emits_a_compiler_warning/
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.
sorry, it seems its blocked!
CI failure unrelated: #14685