Fix panic in TimeZone::from_local_datetime#1071
Conversation
7a3747c to
fdf5bb0
Compare
|
It is a bit unfortunate that I think it is better to implement the conversion in Then we can guarantee that |
fdf5bb0 to
2c66f24
Compare
|
I also found a place in |
1564bfd to
cb98162
Compare
cb98162 to
d1c6503
Compare
d1c6503 to
b6bebc6
Compare
b6bebc6 to
f3c0fa2
Compare
f3c0fa2 to
fa25a5c
Compare
86cd777 to
bc10f89
Compare
bc10f89 to
b5940e5
Compare
Codecov Report
@@ Coverage Diff @@
## 0.4.x #1071 +/- ##
==========================================
+ Coverage 91.21% 91.23% +0.01%
==========================================
Files 38 38
Lines 17121 17157 +36
==========================================
+ Hits 15617 15653 +36
Misses 1504 1504
... and 2 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
ee5a532 to
8a2cd95
Compare
8a2cd95 to
49ec1b3
Compare
This was based on a wrong assumption. So this is now back to a simple fix of the provided method |
88add13 to
9454970
Compare
|
This no longer depends on other PRs. |
|
|
||
| /// Helper function to map `LocalResult<FixedOffset>` to `LocalResult<DateTime<Local>>`. | ||
| /// Returns `None` on out-of-range. | ||
| fn local_time_min_offset<Tz: TimeZone>( |
There was a problem hiding this comment.
Since this has a single caller, let's just inline it?
There was a problem hiding this comment.
With a separate function I could use ?, and convert to LocalResult::None in the caller. It seemed the cleanest solution at the time.
Found a nicer way to write it now.
9454970 to
d7dfcf5
Compare
d7dfcf5 to
e50dd89
Compare
|
Thank you for all your reviews! |
Split out from #1048. Depends on #1069 for
NaiveDateTime::checked_sub_offset, only the last commit is new.The change is that
TimeZone::from_local_datetimeshould check for overflow instead of blindly subtracting the offset. But you can't do so easily inLocalResult::map, so this adds a helper method.Note that this PR only fixes the default implementation. But the implementations of
TimeZoneforLocaldon't use the default implementation, and are not fixed yet.The last commit in #1017 (comment) refactors
Localto pick up this fix.@djc do you want me to split out that commit and try to apply it to 0.4.x?Edit: Split it out to #1072.