Bogdanp / racket-gui-easy

Declarative GUIs in Racket.
https://docs.racket-lang.org/gui-easy/index.html
134 stars 18 forks source link

fixes instantiate: unused initialization arguments [id id] #11

Closed namjae closed 2 years ago

namjae commented 2 years ago

testing with this module:

#lang racket/base

(require racket/gui/easy)

(provide show)

(define (show)
  ;; popup menu
  (define m (popup-menu (menu "&Product"
                              (menu-item "Item&1..." (λ () (void)))
                              (menu-item "Item&2..." (λ () (void)))
                              (menu-item-separator)
                              (menu-item "&Quit"))
                        (menu "Menu&2"
                              (menu-item "Item&1..." (λ () (void))))))
  (define main-window (window
                       #:title "Popup test"
                       #:size '(1024 768)
                       (menu-bar
                        (menu "&Product"
                              (menu-item "Item&1..." (λ () (void)))
                              (menu-item "Item&2..." (λ () (void)))
                              (menu-item-separator)
                              (menu-item "&Quit"))
                        (menu "Menu&2"
                              (menu-item "Item&1..." (λ () (void))))
                        (menu "&Account"
                              (menu-item "&Accounts..." (λ () (void))))
                        (menu "&Data"
                              (menu-item "Update" (λ () (void)))
                              (menu-item "Add" (λ () (void)))))))

  (define mwr (render main-window))
  (displayln (format "~a" (renderer? mwr)))
  (render-popup-menu mwr m 10 10))

(module+ main
  (show))

got this error:

; instantiate: unused initialization arguments
;   unused arguments:
;    [id 2]
;   instantiated class name: renderer%
; Context (plain; to see better errortrace context, re-run with C-u prefix):
;   /Users/dhpark/.asdf/installs/racket/8.4/collects/racket/private/class-internal.rkt:4681:0 obj-error
;   /Users/dhpark/.asdf/installs/racket/8.4/collects/racket/private/class-internal.rkt:3321:17
;   /Users/dhpark/.asdf/installs/racket/8.4/collects/racket/private/class-internal.rkt:3608:0 continue-make-object
;   /Users/dhpark/Library/Racket/8.4/pkgs/gui-easy-lib/gui/easy/private/renderer.rkt:28:2
;   /Users/dhpark/.asdf/installs/racket/8.4/collects/racket/private/class-internal.rkt:3608:0 continue-make-object
;   /Users/dhpark/.asdf/installs/racket/8.4/collects/racket/private/class-internal.rkt:3582:0 do-make-object/real-class
;   /Users/dhpark/Library/Racket/8.4/pkgs/gui-easy-lib/gui/easy/private/renderer.rkt:79:0 render-popup-menu
;   /Users/dhpark/.asdf/installs/racket/8.4/collects/racket/contract/private/arrow-val-first.rkt:486:18
;   /Users/dhpark/tmp/popup-test.rkt:8:0 show

removing [id id] solved the problem.

Bogdanp commented 2 years ago

Thanks! I made a small tweak to your change and merged with rebase.