Fix tmerge for (partially) const types with undef fields#43812
Fix tmerge for (partially) const types with undef fields#43812
tmerge for (partially) const types with undef fields#43812Conversation
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
tmergeis applied toConst/PartialStructand a field isConstin one of the types andUnion{}(i.e. undef) in the other, the resulting field type must not beConst(as the resursively calledtmergeproduces).Fixes #43784.