palday commented on issue #391: URL: https://github.com/apache/arrow-julia/issues/391#issuecomment-1483407441
On Julia master, this seems to be fixed by: ``` commit 96acd4d4e90647caab17af0f689723f5a2594cfd Author: N5N3 <[email protected]> Date: Thu Feb 2 11:41:26 2023 +0800 Subtype: avoid false alarm caused by eager `forall_exists_subtype`. (#48441) * Avoid earsing `Runion` within nested `forall_exists_subtype` If `Runion.more != 0` we‘d better not erase the local `Runion` as we need it if the subtyping fails after. This commit replaces `forall_exists_subtype` with a local version. It first tries `forall_exists_subtype` and estimates the "problem scale". If subtyping fails and the scale looks small then it switches to the slow path. TODO: At present, the "problem scale" only counts the number of checked `Lunion`s. But perhaps we need a more accurate result (e.g. sum of `Runion.depth`) * Change the reversed subtyping into a local check. Make sure we don't forget the bound in `env`. (And we can fuse `local_forall_exists_subtype`) * Optimization for non-union invariant parameter. src/subtype.c | 119 ++++++++++++++++++++++++++++++++++++++------------------ test/subtype.jl | 13 +++++-- 2 files changed, 91 insertions(+), 41 deletions(-) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
