From: Chris Hanson Date: Mon, 28 Dec 1992 21:56:38 +0000 (+0000) Subject: Fix bug in code that recognizes named structures. Don't integrate X-Git-Tag: 20090517-FFI~8639 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b7bf5b972a08ee1f436854e3552632ffa7d8e34d;p=mit-scheme.git Fix bug in code that recognizes named structures. Don't integrate predicates, since compiler is unable to take advantage of this integration in the situations that need it. --- diff --git a/v7/src/runtime/defstr.scm b/v7/src/runtime/defstr.scm index c211f035b..06a939124 100644 --- a/v7/src/runtime/defstr.scm +++ b/v7/src/runtime/defstr.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: defstr.scm,v 14.21 1992/12/22 22:05:32 cph Exp $ +$Id: defstr.scm,v 14.22 1992/12/28 21:56:38 cph Exp $ Copyright (c) 1988-1992 Massachusetts Institute of Technology @@ -591,8 +591,7 @@ differences: (if predicate-name (let ((tag-expression (structure/tag-expression structure)) (variable (string->uninterned-symbol "object"))) - `((DECLARE (INTEGRATE-OPERATOR ,predicate-name)) - (DEFINE (,predicate-name ,variable) + `((DEFINE (,predicate-name ,variable) ,(case (structure/type structure) ((RECORD) `(AND (,(absolute '%RECORD?) ,variable) @@ -706,8 +705,7 @@ differences: (if (structure-type? tag) (and (eq? (structure-type/type tag) type) tag) - (and (symbol? tag) - (let ((structure-type (named-structure/get-tag-description tag))) - (and (structure-type? structure-type) - (eq? (structure-type/type structure-type) type) - structure-type))))) \ No newline at end of file + (let ((structure-type (named-structure/get-tag-description tag))) + (and (structure-type? structure-type) + (eq? (structure-type/type structure-type) type) + structure-type)))) \ No newline at end of file