aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-analy.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/i-analy.boot')
-rw-r--r--src/interp/i-analy.boot5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/interp/i-analy.boot b/src/interp/i-analy.boot
index b4b4226d..a46c6b7a 100644
--- a/src/interp/i-analy.boot
+++ b/src/interp/i-analy.boot
@@ -248,6 +248,11 @@ bottomUp t ==
argModeSetList:= [bottomUp x for x in argl]
ms := bottomUpForm(t,op,opName,argl,argModeSetList)
+ -- If this is a type producing form, then we don't want
+ -- to store the representation object in the environment.
+ -- Rather, we want to record the reified canonical form.
+ if ms is [m] and (m in $LangSupportTypes or isCategoryForm(m,$e))
+ then putValue(t,objNew(devaluate objValUnwrap getValue t, m))
-- given no target or package calling, force integer constants to
-- belong to tightest possible subdomain