Yes, that makes sense. This will change the kind of exception thrown. Is that ok?
On Fri, May 1, 2015 at 4:51 PM, Robby Findler <[email protected]> wrote: > Sorry to be picky: it isn't that it isn't available; it isn't allowed. > It is a _good_ thing that you cannot mutate an immutable set, just > like it is a good thing that (begin (set! 3 4) (+ 3 3)) doesn't > evaluate to 8. > > What about trying to follow with a message like this one: > > -> (hash-set! (hash) 'x 1) > ; hash-set!: contract violation > ; expected: (and/c hash? (not/c immutable?)) > ; given: '#hash() > ; argument position: 1st > > Robby > > On Fri, May 1, 2015 at 3:48 PM, <[email protected]> wrote: >> stchang has updated `master' from 606a946212 to aef101fd84. >> http://git.racket-lang.org/plt/606a946212..aef101fd84 >> >> =====[ One Commit ]===================================================== >> Directory summary: >> 100.0% racket/collects/racket/private/ >> >> ~~~~~~~~~~ >> >> aef101f Stephen Chang <[email protected]> 2015-05-01 16:43 >> : >> | hashset unavailable method err msg: don't say unimplemented >> : >> M racket/collects/racket/private/set-types.rkt | 8 ++++---- >> >> =====[ Overall Diff ]=================================================== >> >> racket/collects/racket/private/set-types.rkt >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --- OLD/racket/collects/racket/private/set-types.rkt >> +++ NEW/racket/collects/racket/private/set-types.rkt >> @@ -459,13 +459,13 @@ >> (define custom-set-constant >> (equal-hash-code "hash code for a set based on a hash table")) >> >> -(define (((mk-not-impl struct-descrip) method-name) s . args) >> +(define (((mk-not-impl meth-descrip struct-descrip) method-name) s . args) >> (raise >> (exn:fail:support >> - (format "~a: method not implemented for ~a ~e" method-name >> struct-descrip s) >> + (format "~a: ~a operation not available for ~a: ~e" method-name >> meth-descrip struct-descrip s) >> (current-continuation-marks)))) >> -(define mk-not-impl/immut (mk-not-impl "immutable set")) >> -(define mk-not-impl/mut (mk-not-impl "mutable set")) >> +(define mk-not-impl/immut (mk-not-impl "mutation" "immutable set")) >> +(define mk-not-impl/mut (mk-not-impl "non-mutation" "mutable set")) >> >> (serializable-struct immutable-custom-set custom-set [] >> #:methods gen:stream > > -- > You received this message because you are subscribed to the Google Groups > "Racket Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-dev/CAL3TdOM7fPgfmPbKXjm%2B-7m5pL5uamA%3DVNb70aYOkAfr-G_J3Q%40mail.gmail.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/CAFfiA1%2BiSkA_WR%2BeWE-a4nbW1nNk3M7L6%3DBTusSQ1kh4%3D2OUEg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
