aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/daase.lisp2
-rw-r--r--src/interp/g-util.boot4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/interp/daase.lisp b/src/interp/daase.lisp
index 551925ee..29cbf446 100644
--- a/src/interp/daase.lisp
+++ b/src/interp/daase.lisp
@@ -761,6 +761,8 @@
(setf (database-abbreviation struct) value)
(when (symbolp value)
(setf (get value 'abbreviationfor) constructor)))
+ (superdomain
+ (setf (database-superdomain struct) value))
(constructorkind
(setf (database-constructorkind struct) value))))))
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot
index 6f2961d8..7889e49f 100644
--- a/src/interp/g-util.boot
+++ b/src/interp/g-util.boot
@@ -69,6 +69,7 @@ isSharpVarWithNum x ==
++ If `dom' is a subdomain, return its immediate super-domain.
superType: %Mode -> %Maybe %Mode
superType dom ==
+ dom = "$" => superType $functorForm
dom isnt [ctor,:args] => nil
[super,.] := getSuperDomainFromDB ctor or return nil
sublisFormal(args,super,$AtVariables)
@@ -78,7 +79,6 @@ superType dom ==
++ form `d'.
maximalSuperType: %Mode -> %Mode
maximalSuperType d ==
- atom d => d
d' := superType d => maximalSuperType d'
d
@@ -87,7 +87,7 @@ maximalSuperType d ==
++ predicate `pred'.
noteSubDomainInfo: (%Symbol,%Instantiation,%Form) -> %Thing
noteSubDomainInfo(sub,super,pred) ==
- MAKEPROP(sub,"%SuperDomain",[super,pred])
+ SETDATABASE(sub,"SUPERDOMAIN",[super,pred])
++ Returns non-nil if `d1' is a sub-domain of `d2'. This is the
++ case when `d1' is transitively given by an instance of SubDomain