18 |
(prog1 |
(prog1 |
19 |
(let ((p (make-package "H"))) |
(let ((p (make-package "H"))) |
20 |
(intern "FOO" p) |
(intern "FOO" p) |
21 |
(multiple-value-bind (sym access) |
(multiple-value-bind* (sym access) |
22 |
(find-symbol "FOO" p) |
(find-symbol "FOO" p) |
23 |
(and |
(and |
24 |
(eqt access :internal) |
(eqt access :internal) |
37 |
(let ((*PACKAGE* (make-package "H"))) |
(let ((*PACKAGE* (make-package "H"))) |
38 |
(declare (special *PACKAGE*)) |
(declare (special *PACKAGE*)) |
39 |
(intern "FOO") |
(intern "FOO") |
40 |
(multiple-value-bind (sym access) |
(multiple-value-bind* (sym access) |
41 |
(find-symbol "FOO") |
(find-symbol "FOO") |
42 |
(and |
(and |
43 |
(eqt access :internal) |
(eqt access :internal) |
54 |
(prog1 |
(prog1 |
55 |
(let ((p (make-package "H"))) |
(let ((p (make-package "H"))) |
56 |
(intern "FOO" p) |
(intern "FOO" p) |
57 |
(multiple-value-bind (sym access) |
(multiple-value-bind* (sym access) |
58 |
(find-symbol "FOO" p) |
(find-symbol "FOO" p) |
59 |
(and |
(and |
60 |
(eqt access :internal) |
(eqt access :internal) |
71 |
(prog1 |
(prog1 |
72 |
(let ((p (make-package "H"))) |
(let ((p (make-package "H"))) |
73 |
(intern "FOO" p) |
(intern "FOO" p) |
74 |
(multiple-value-bind (sym access) |
(multiple-value-bind* (sym access) |
75 |
(find-symbol "FOO" p) |
(find-symbol "FOO" p) |
76 |
(and |
(and |
77 |
(eqt access :internal) |
(eqt access :internal) |
89 |
(prog1 |
(prog1 |
90 |
(let ((p (make-package "H"))) |
(let ((p (make-package "H"))) |
91 |
(intern "FOO" p) |
(intern "FOO" p) |
92 |
(multiple-value-bind (sym access) |
(multiple-value-bind* (sym access) |
93 |
(find-symbol "FOO" p) |
(find-symbol "FOO" p) |
94 |
(and |
(and |
95 |
(eqt access :internal) |
(eqt access :internal) |
116 |
(export (intern "FOO" "H") "H") |
(export (intern "FOO" "H") "H") |
117 |
;; At this point, G:FOO is also an external |
;; At this point, G:FOO is also an external |
118 |
;; symbol of H. |
;; symbol of H. |
119 |
(multiple-value-bind (sym1 access1) |
(multiple-value-bind* (sym1 access1) |
120 |
(find-symbol "FOO" "H") |
(find-symbol "FOO" "H") |
121 |
(and sym1 |
(and sym1 |
122 |
(eqt access1 :external) |
(eqt access1 :external) |
124 |
(eqt (find-package "G") |
(eqt (find-package "G") |
125 |
(symbol-package sym1)) |
(symbol-package sym1)) |
126 |
(unintern sym1 "H") |
(unintern sym1 "H") |
127 |
(multiple-value-bind (sym2 access2) |
(multiple-value-bind* (sym2 access2) |
128 |
(find-symbol "FOO" "H") |
(find-symbol "FOO" "H") |
129 |
(and (eqt sym1 sym2) |
(and (eqt sym1 sym2) |
130 |
(eqt (symbol-package sym1) |
(eqt (symbol-package sym1) |
146 |
(error (c) (return-from failed (list :shadow-error c)))) |
(error (c) (return-from failed (list :shadow-error c)))) |
147 |
(export (intern "FOO" pg) pg) |
(export (intern "FOO" pg) pg) |
148 |
;; At this point, H::FOO shadows G:FOO |
;; At this point, H::FOO shadows G:FOO |
149 |
(multiple-value-bind (sym1 access1) |
(multiple-value-bind* (sym1 access1) |
150 |
(find-symbol "FOO" ph) |
(find-symbol "FOO" ph) |
151 |
(and |
(and |
152 |
sym1 |
sym1 |
154 |
(eqt access1 :internal) |
(eqt access1 :internal) |
155 |
(equal (list sym1) (package-shadowing-symbols ph)) |
(equal (list sym1) (package-shadowing-symbols ph)) |
156 |
(unintern sym1 ph) |
(unintern sym1 ph) |
157 |
(multiple-value-bind (sym2 access2) |
(multiple-value-bind* (sym2 access2) |
158 |
(find-symbol "FOO" ph) |
(find-symbol "FOO" ph) |
159 |
(and (not (eqt sym1 sym2)) |
(and (not (eqt sym1 sym2)) |
160 |
(eqt access2 :inherited) |
(eqt access2 :inherited) |
179 |
(gsym2 (intern "FOO" pg2))) |
(gsym2 (intern "FOO" pg2))) |
180 |
(export gsym1 pg1) |
(export gsym1 pg1) |
181 |
(export gsym2 pg2) |
(export gsym2 pg2) |
182 |
(multiple-value-bind (sym1 access1) |
(multiple-value-bind* (sym1 access1) |
183 |
(find-symbol "FOO" ph) |
(find-symbol "FOO" ph) |
184 |
(and |
(and |
185 |
(equal (list sym1) (package-shadowing-symbols ph)) |
(equal (list sym1) (package-shadowing-symbols ph)) |
217 |
(export gsym pg3) |
(export gsym pg3) |
218 |
(export gsym pg1) |
(export gsym pg1) |
219 |
(export gsym pg2) |
(export gsym pg2) |
220 |
(multiple-value-bind (sym access) |
(multiple-value-bind* (sym access) |
221 |
(find-symbol "FOO" ph) |
(find-symbol "FOO" ph) |
222 |
(and |
(and |
223 |
(equal (list sym) (package-shadowing-symbols ph)) |
(equal (list sym) (package-shadowing-symbols ph)) |
227 |
(eqt access :internal) |
(eqt access :internal) |
228 |
(handler-case |
(handler-case |
229 |
(and (unintern sym ph) |
(and (unintern sym ph) |
230 |
(multiple-value-bind (sym2 access2) |
(multiple-value-bind* (sym2 access2) |
231 |
(find-symbol "FOO" ph) |
(find-symbol "FOO" ph) |
232 |
(and (eqt gsym sym2) |
(and (eqt gsym sym2) |
233 |
(eqt access2 :inherited)))) |
(eqt access2 :inherited)))) |