/[guile]/guile/guile-core/oop/goops.scm
ViewVC logotype

Diff of /guile/guile-core/oop/goops.scm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.21 by mdj, Thu Mar 6 12:51:45 2003 UTC revision 1.22 by mdj, Fri Mar 7 13:12:47 2003 UTC
# Line 820  Line 820 
820    (write-object o file))    (write-object o file))
821    
822  ;;;  ;;;
823    ;;; Handling of duplicate bindings in the module system
824    ;;;
825    
826    (define-method (merge-generics (module <module>)
827                                   (name <symbol>)
828                                   (int1 <module>)
829                                   (val1 <top>)
830                                   (int2 <module>)
831                                   (val2 <top>)
832                                   (var <top>)
833                                   (val <top>))
834      #f)
835    
836    (define-method (merge-generics (module <module>)
837                                   (name <symbol>)
838                                   (int1 <module>)
839                                   (val1 <generic>)
840                                   (int2 <module>)
841                                   (val2 <generic>)
842                                   (var <top>)
843                                   (val <boolean>))
844      (make-variable (make-extended-generic (list val2 val1) name)))
845    
846    (define-method (merge-generics (module <module>)
847                                   (name <symbol>)
848                                   (int1 <module>)
849                                   (val1 <generic>)
850                                   (int2 <module>)
851                                   (val2 <generic>)
852                                   (var <top>)
853                                   (gf <extended-generic>))
854      (slot-set! gf
855                 'extends
856                 (cons val2 (delq! val2 (slot-ref gf 'extends))))
857      (slot-set! val2
858                 'extended-by
859                 (cons gf (delq! gf (slot-ref val2 'extended-by))))
860      var)
861    
862    (module-define! duplicate-handlers 'merge-generics merge-generics)
863    
864    ;;;
865  ;;; slot access  ;;; slot access
866  ;;;  ;;;
867    

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26