From 968ae80529b8c684de16488ef87eeb119c306709 Mon Sep 17 00:00:00 2001 From: pzinn Date: Tue, 24 Sep 2024 10:53:18 +1000 Subject: [PATCH] fix infinite loop in degrees of ring map --- M2/Macaulay2/m2/ringmap.m2 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/M2/Macaulay2/m2/ringmap.m2 b/M2/Macaulay2/m2/ringmap.m2 index e1f5a200bf..647230d148 100644 --- a/M2/Macaulay2/m2/ringmap.m2 +++ b/M2/Macaulay2/m2/ringmap.m2 @@ -14,8 +14,6 @@ needs "mutablemat.m2" -- should do something about the degree map here degmap0 := n -> ( d := toList ( n : 0 ); e -> d ) -workable = f -> try (f(); true) else false - ----------------------------------------------------------------------------- -- RingMap type declarations and basic methods ----------------------------------------------------------------------------- @@ -85,7 +83,7 @@ map(Ring, Ring, Matrix) := RingMap => opts -> (R, S, m) -> ( " into a degree of length ", toString degreeLength R); opts.DegreeMap ) - else if workable (() -> promote({},S,R)) then (d -> first promote({d},S,R)) + else if (pr:=lookup(promote,List,S,R)) =!= null then (d -> first pr({d},S,R)) else if degreeLength R === degreeLength S then identity else if degreeLength S === 0 or degreeLength R === 0 then degmap0 degreeLength R else (