diff --git a/pkgs/racket-test-core/tests/racket/struct.rktl b/pkgs/racket-test-core/tests/racket/struct.rktl index 31f87d768d..ffbdf1f1c1 100644 --- a/pkgs/racket-test-core/tests/racket/struct.rktl +++ b/pkgs/racket-test-core/tests/racket/struct.rktl @@ -647,6 +647,11 @@ (test #f inspector-superior? (make-inspector) (make-inspector)) (test #t inspector-superior? (current-inspector) (make-inspector (make-inspector (make-inspector)))) +(test #t inspector? (make-sibling-inspector)) +(test #f inspector-superior? (current-inspector) (make-sibling-inspector)) +(test #f inspector-superior? (make-sibling-inspector) (current-inspector)) +(test #t inspector-superior? (current-inspector) (make-sibling-inspector (make-inspector))) + ;; ------------------------------------------------------------ ;; Property accessor errors diff --git a/racket/src/cs/rumble/struct.ss b/racket/src/cs/rumble/struct.ss index eec053f35b..6069ec0f8c 100644 --- a/racket/src/cs/rumble/struct.ss +++ b/racket/src/cs/rumble/struct.ss @@ -133,10 +133,10 @@ (define/who make-sibling-inspector (case-lambda - [() (make-sibling-inspector (current-inspector))] + [() (make-sibling-inspector (|#%app| current-inspector))] [(i) (check who inspector? i) - (make-inspector (inspector-parent i))])) + (new-inspector (inspector-parent i))])) (define/who (inspector-superior? sup-insp sub-insp) (check who inspector? sup-insp) @@ -145,7 +145,8 @@ #f (let ([parent (inspector-parent sub-insp)]) (or (eq? parent sup-insp) - (inspector-superior? sup-insp parent))))) + (and parent + (inspector-superior? sup-insp parent)))))) (define (inspector-ref rtd) (getprop (record-type-uid rtd) 'inspector none))