-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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 tmerge
for (partially) const types with undef fields
#43812
Conversation
When `tmerge` is applied to `Const`/`PartialStruct` and a field is `Const` in one of the types and `Union{}` (i.e. undef) in the other, the resulting field type must not be `Const` (as the resursively called `tmerge` produces). Fixes #43784.
Side note: Looks like the bug was exposed by #43305 which made |
Ci failure on FreeBSD is unrelated Download failure ("Connection time-out while requesting https://httpbingo.julialang.org/base64/SnVsaWEgaXMgZ3JlYXQh"). |
Co-authored-by: Simeon Schaub <schaub@mit.edu>
Could we instead modify |
I can confirm this fixes also #43561: Testing Running tests...
Test Summary: | Pass Total Time
Base | 7 7 1.5s
Test Summary: | Pass Total Time
Utils | 2 2 0.3s
Test Summary: | Pass Total Time
Promotion | 6 6 3.4s
Test Summary: | Pass Total Time
Maths | 18 18 1.3s
Test Summary: | Pass Total Time
Show | 4 4 1.5s
Testing PhysicalConstants tests passed
julia> versioninfo()
Julia Version 1.8.0-DEV.1315
Commit 73d46513d1 (2022-01-14 11:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.0 (ORCJIT, haswell) the fact that |
You cannot. This PR is currently exploiting that flaw to achieve convergence here. When that is improved to "just work", we will need to also add this case to |
Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
CI failure is a timeout in the Distributed test which I'd think is unrelated. Good to go? |
yep, let's go. |
…#43812) When `tmerge` is applied to `Const`/`PartialStruct` and a field is `Const` in one of the types and `Union{}` (i.e. undef) in the other, the resulting field type must not be `Const` (as the resursively called `tmerge` produces). Fixes JuliaLang#43784.
…#43812) When `tmerge` is applied to `Const`/`PartialStruct` and a field is `Const` in one of the types and `Union{}` (i.e. undef) in the other, the resulting field type must not be `Const` (as the resursively called `tmerge` produces). Fixes JuliaLang#43784.
When
tmerge
is applied toConst
/PartialStruct
and a field isConst
in one of the types andUnion{}
(i.e. undef) in the other, the resulting field type must not beConst
(as the resursively calledtmerge
produces).Fixes #43784.