racket / drracket

DrRacket, IDE for Racket
http://www.racket-lang.org/
Other
444 stars 93 forks source link

[bug][check-syntax] Check Syntax throws error pop-up on a program using qi #578

Closed ameya-dubey closed 1 year ago

ameya-dubey commented 1 year ago

In DrRacket version 8.6, Check Syntax fails for the program

#lang racket/base

(require qi)

(define example-vector (make-vector 1 3))
(define-flow access-example-vector (~> (vector-ref example-vector _)))

and a pop-up titled DrRacket Internal Error with the following message is thrown up.

send: target is not an object
  target: #f
  method name: last-position
  context...:
   /Applications/Racket v8.6/collects/racket/private/class-internal.rkt:4681:0: obj-error
   /Applications/Racket v8.6/share/pkgs/drracket/drracket/private/syncheck/gui.rkt:1138:12: add-to-range/key method in make-syncheck-text%379
   /Applications/Racket v8.6/share/pkgs/drracket-tool-text-lib/drracket/private/syncheck/traversals.rkt:233:12: collect-general-info
   /Applications/Racket v8.6/share/pkgs/drracket-tool-text-lib/drracket/private/syncheck/traversals.rkt:184:2: level+tail+mod-loop
   /Applications/Racket v8.6/share/pkgs/drracket-tool-text-lib/drracket/private/syncheck/traversals.rkt:292:6: try-next
   [repeats 1 more time]
   /Applications/Racket v8.6/share/pkgs/drracket-tool-text-lib/drracket/private/syncheck/traversals.rkt:48:10: expanded-expression
   /Applications/Racket v8.6/share/pkgs/drracket/drracket/private/syncheck/gui.rkt:2533:27
   /Applications/Racket v8.6/share/pkgs/drracket/drracket/private/syncheck/gui.rkt:2555:8: with-lock/edit-sequence method in unit-frame-mixin
   /Applications/Racket v8.6/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:435:6
   /Applications/Racket v8.6/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:486:32
   /Applications/Racket v8.6/share/pkgs/gui-lib/mred/private/wx/common/queue.rkt:634:3

However, it works fine for this program using the other threading form:

#lang racket/base

(require qi)

(define example-vector (make-vector 1 3))
(define-flow access-example-vector (~>> (vector-ref example-vector)))