Fix method accessors for inherits and abstracts
Closes PR 13798
This commit is contained in:
parent
6b2a4ff54d
commit
6988b2e138
|
@ -1302,11 +1302,8 @@
|
|||
(append local-public-dynamic-names
|
||||
(map car all-inherits)))]
|
||||
[(method-accessor ...) (generate-temporaries
|
||||
(map car
|
||||
(append publics overrides augrides
|
||||
overments augments
|
||||
override-finals augment-finals
|
||||
all-inherits abstracts)))]
|
||||
(append local-public-dynamic-names
|
||||
(map car all-inherits)))]
|
||||
[(inherit-field-accessor ...) (generate-temporaries
|
||||
(map (lambda (id)
|
||||
(format "get-~a"
|
||||
|
@ -2432,7 +2429,7 @@
|
|||
(append new-normal-indices replace-normal-indices refine-normal-indices
|
||||
replace-augonly-indices refine-augonly-indices
|
||||
replace-final-indices refine-final-indices
|
||||
inherit-indices new-abstract-indices))])
|
||||
new-abstract-indices inherit-indices))])
|
||||
|
||||
;; -- Get new methods and initializers --
|
||||
(let-values ([(new-methods override-methods augride-methods init)
|
||||
|
|
|
@ -849,6 +849,21 @@
|
|||
(define/pubment (sum) number))
|
||||
exn:fail:object?)
|
||||
|
||||
;; example from PR 13798
|
||||
(let ()
|
||||
(define test%
|
||||
(class object% (super-new)
|
||||
(define/public (name) "test")))
|
||||
(define sub-abstract%
|
||||
(class test% (super-new) (inherit name)
|
||||
(abstract broken)
|
||||
(define/public (full-name) (string-append (name) "subabs"))))
|
||||
(define sub-concrete%
|
||||
(class sub-abstract% (super-new)
|
||||
(define/override (broken) "broken")))
|
||||
|
||||
(test "testsubabs" 'pr13798 (send (new sub-concrete%) full-name)))
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; Test send/apply dotted send and method-call forms:
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user