From a4d5c9bf32bca9daeab052956a0488b002ff7484 Mon Sep 17 00:00:00 2001 From: Jishnu Bhattacharya Date: Sat, 10 Dec 2022 15:34:33 +0400 Subject: [PATCH] Orthogonalize maxspace/union for ConstantSpace --- src/Space.jl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Space.jl b/src/Space.jl index 2de51cd2..23898ee4 100644 --- a/src/Space.jl +++ b/src/Space.jl @@ -626,12 +626,16 @@ end # we override maxspace instead of maxspace_rule to avoid # domainscompatible check. + +_anydomain_or_union(a::AnyDomain, ::AnyDomain) = a +_anydomain_or_union(a, b::AnyDomain) = a +_anydomain_or_union(a::AnyDomain, b) = b +_anydomain_or_union(a, b) = a ∪ b + for OP in (:maxspace,:(union)) @eval begin - $OP(A::ConstantSpace{AnyDomain},B::ConstantSpace{AnyDomain}) = A - $OP(A::ConstantSpace{AnyDomain},B::ConstantSpace) = B - $OP(A::ConstantSpace,B::ConstantSpace{AnyDomain}) = A - $OP(A::ConstantSpace,B::ConstantSpace) = ConstantSpace(domain(A) ∪ domain(B)) + $OP(A::ConstantSpace, B::ConstantSpace) = + ConstantSpace(_anydomain_or_union(domain(A), domain(B))) end end