On Jan 24, 2008 5:12 PM, Raymond Hettinger <[EMAIL PROTECTED]> wrote:
> > Looking over the code base, frozensets are used rarely.
> > So I don't think this is warranted.
>
> There is no shortage for perfect use cases in the form:
>
>    if urlext in {'html', 'xml', 'php'}:
>          . . .
>
>
> If the curly braces are taken to mean a frozenset,
> then the peepholer can code the whole thing as a
> compile time constant.  It is fast and clean.
> You need not even be aware that you're using a
> frozenset.

Is there any reason preventing it from being optimized even with a
mutable set?  urlext only interacts with the items in the set, and
doesn't get to see the set itself, so I don't see why the "in"
operator couldn't trigger transforming it into a constant.

The same argument applies to list literals.  The only limitation I see
is whether or not calling hash() on urlext is considered an essential
part of the semantics - and I'm inclined to say "no".


-- 
Adam Olsen, aka Rhamphoryncus
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to