Tweak NaiveDateTime.from_erl and Time.from_erl specs
#13987
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The changes align
NaiveDateTime.from_erlandTime.from_erlspecs with their correspondingNaiveDateTime.newandTime.newspecs.The
newfunction specs accept a non-negative integer or a tuple of {seconds, precision} for microseconds.Here's
NaiveDateTime.new/8's spec:elixir/lib/elixir/lib/calendar/naive_datetime.ex
Lines 248 to 257 in cb2e036
And
NaiveDateTime.from_erl's spec + implementation:elixir/lib/elixir/lib/calendar/naive_datetime.ex
Lines 1004 to 1011 in cb2e036
Here's the
Time.new/5spec:elixir/lib/elixir/lib/calendar/time.ex
Lines 114 to 120 in cb2e036
And the corresponding
from_erl:elixir/lib/elixir/lib/calendar/time.ex
Lines 364 to 371 in cb2e036
In both cases, the corresponding
newfunctions handlenon_negative_integermicroseconds. I also added tests to confirm it.Please notice that both
NaiveDateTime.t.microsecondandTime.t.microsecondare ofCalendar.microsecond()type, and it's okay becausenewfunctions setmicrosecond: {microsecond, 6}with default precision if none is provided.