aboutsummaryrefslogtreecommitdiff
path: root/src/interp/nruncomp.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/nruncomp.boot')
-rw-r--r--src/interp/nruncomp.boot9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/interp/nruncomp.boot b/src/interp/nruncomp.boot
index 2d2a0184..6734e132 100644
--- a/src/interp/nruncomp.boot
+++ b/src/interp/nruncomp.boot
@@ -689,8 +689,8 @@ NRTputInHead bod ==
bod is ['SPADCALL,:args,fn] =>
NRTputInTail rest bod --NOTE: args = COPY of rest bod
-- The following test allows function-returning expressions
- fn is [elt,dom,ind] and not (dom='$) and elt in '(getShellEntry ELT QREFELT CONST) =>
- k:= NRTassocIndex dom => lastNode(bod).first := [$elt,'_$,k]
+ fn is [elt,dom,ind] and dom ~='$ and elt in '(getShellEntry ELT QREFELT CONST) =>
+ k := NRTassocIndex dom => lastNode(bod).first := ['%vref,'_$,k]
nil
NRTputInHead fn
bod
@@ -699,9 +699,6 @@ NRTputInHead bod ==
bod
bod is ["QUOTE",:.] => bod
bod is ["CLOSEDFN",:.] => bod
- bod is ["SPADCONST",dom,ind] =>
- keyedSystemError("S2GE0016",['"NRTputInHead",
- '"unexpected SPADCONST form"])
NRTputInHead first bod
NRTputInTail rest bod
bod
@@ -711,7 +708,7 @@ NRTputInTail x ==
atom (u := first y) =>
u='$ or LASSOC(u,$devaluateList) => nil
k:= NRTassocIndex u =>
- atom u => y.first := [$elt,'_$,k]
+ atom u => y.first := ['%vref,'_$,k]
-- u atomic means that the slot will always contain a vector
y.first := ['SPADCHECKELT,'_$,k]
--this reference must check that slot is a vector