Restrict static params of our types, so e.g. PolyRing{T} now always must satisfy T<:RingElement#2286
Restrict static params of our types, so e.g. PolyRing{T} now always must satisfy T<:RingElement#2286
PolyRing{T} now always must satisfy T<:RingElement#2286Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2286 +/- ##
==========================================
+ Coverage 88.12% 88.15% +0.03%
==========================================
Files 126 126
Lines 32108 32108
==========================================
+ Hits 28294 28305 +11
+ Misses 3814 3803 -11 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Is this "breaking" as in it actually breaks some of our code, or is it just "theoretically breaking"? Or do we need to wait for working downstream tests to see that? |
|
It should not be breaking in practice. But we know how it is ... I'd not be surprised if some code out there is broken. So I really would like to wait till the upstream tests are restored. |
1804060 to
ebdb890
Compare
|
Downstream tests seem unhappy, but it is not immediately clear to me why |
The current error seems to be due to a typo in a signature in Oscar, which will be fixed by oscar-system/Oscar.jl#5724. Let's re-run CI again once that is in to see if it breaks anything more. But nonetheless, the "breaking" label should now stay, even if with future patches to Oscar the CI becomes green. |
PolyRing{T} now always must satisfy T<:RingElement
This gives a lot of extra hints to JET and also Julia itself.
ebdb890 to
7c6ee86
Compare
lgoettgens
left a comment
There was a problem hiding this comment.
good to go in the next breaking release
This gives a lot of extra hints to JET and also Julia itself.
It should also help to catch certain human errors. And it also gives developers a hint what those type params are (I certainly struggled with that when I started out).
But I am sure this also will break some code (and perhaps even uncover a bug here or there), or it might even turn out to be infeasible after all.
The idea came to me during some debugging last night and I thought I'd give it a quick try...