diff options
author | David Pirotte <david@altosw.be> | 2021-05-19 04:49:37 -0300 |
---|---|---|
committer | David Pirotte <david@altosw.be> | 2021-05-19 04:49:37 -0300 |
commit | ed3bace824942d7b3e9face9b05f8b2e16fb98a2 (patch) | |
tree | bcdda98c41eb9903619c734e8588f154187333fc | |
parent | 8bd5123a922f56d47646d7faf514bc4f0ce9e4cb (diff) |
Avoid overrides core binding warnings - 3.0/2.2/2.0 compatibilitywip-3.0
As describe in the previous d8bd512 commit, the(those) module(s) that
calls module-use! must also, re-export-and-replace the core bindings
that were overridden.
* g-golf.scm: re-export-and-replace! connect (overrides core binding
in (g-golf hl-api gobject)), then delete member map
for-each (overrides core binding in (srfi srfi-1).
* g-golf/hl-api/function.scm (gi-add-method-gf): Updated to fulfill the
above described 'contract', appropriately calling
(re-export-and-replace-names! (g-golf) `(,name)).
-rw-r--r-- | g-golf.scm | 7 | ||||
-rw-r--r-- | g-golf/hl-api/function.scm | 11 |
2 files changed, 14 insertions, 4 deletions
@@ -113,7 +113,14 @@ warn last)) + (eval-when (expand load eval) + (re-export-and-replace! (current-module) + connect + delete + member + map + for-each) (re-export-public-interface (oop goops) (oop goops describe) (ice-9 match) diff --git a/g-golf/hl-api/function.scm b/g-golf/hl-api/function.scm index 18bd58a..52b712a 100644 --- a/g-golf/hl-api/function.scm +++ b/g-golf/hl-api/function.scm @@ -283,12 +283,14 @@ method with its 'old' definition. !# (define* (gi-add-method-gf name #:optional (module #f)) - (let* ((module (or module + (let* ((g-golf (resolve-module '(g-golf))) + (module (or module (resolve-module '(g-golf hl-api gobject)))) (variable (module-variable module name)) (value (and variable (variable-bound? variable) - (variable-ref variable)))) + (variable-ref variable))) + (names `(,name))) (if value (cond ((generic? value) value) @@ -296,12 +298,13 @@ method with its 'old' definition. (gi-add-method-gf (syntax-name->method-name name) module)) (else - (module-replace! module `(,name)) + (module-replace! module names) + (re-export-and-replace-names! g-golf names) (let ((gf (ensure-generic value name))) (module-set! module name gf) gf))) (begin - (module-export! module `(,name)) + (module-export! module names) (let ((gf (make <generic> #:name name))) (module-set! module name gf) gf))))) |