aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/compiler.boot6
-rw-r--r--src/interp/i-spec2.boot1
-rw-r--r--src/interp/sys-constants.boot3
3 files changed, 9 insertions, 1 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index c7a73820..fd4519fc 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -954,7 +954,11 @@ compConstruct(form is ["construct",:l],m,e) ==
++ Compile a literal (quoted) symbol.
compQuote: (%Form,%Mode,%Env) -> %Maybe %Triple
compQuote(expr,m,e) ==
- expr is ["QUOTE",x] and IDENTP x => convert([expr,$Symbol,e],m)
+ expr is ["QUOTE",x] and IDENTP x =>
+ -- Ideally, Identifier should be the default type. However, for
+ -- historical reasons we cannot afford that luxury yet.
+ m = $Identifier => [expr,$Identifier,e]
+ convert([expr,$Symbol,e],m)
stackAndThrow('"%1b is not a literal symbol.",[x])
compList: (%Form,%Mode,%Env) -> %Maybe %Triple
diff --git a/src/interp/i-spec2.boot b/src/interp/i-spec2.boot
index 0f158a2b..7c849c00 100644
--- a/src/interp/i-spec2.boot
+++ b/src/interp/i-spec2.boot
@@ -810,6 +810,7 @@ upQUOTE t ==
m:= getBasicMode expr => m
IDENTP expr =>
-- $useSymbolNotVariable => $Symbol
+ getTarget t = $Identifier => $Identifier
['Variable,expr]
$InputForm
evalQUOTE(op,[expr],ms)
diff --git a/src/interp/sys-constants.boot b/src/interp/sys-constants.boot
index 51bdfea0..25382ba9 100644
--- a/src/interp/sys-constants.boot
+++ b/src/interp/sys-constants.boot
@@ -427,6 +427,9 @@ $String ==
$Symbol ==
'(Symbol)
+++ The Identifier domain form
+$Identifier ==
+ '(Identifier)
++ The 'wildcar' for a type -- "?" in Spad syntax. This stands for
++ an unspecified type.