[squeak-dev] The Inbox: Compiler-nice.280.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue Feb 25 11:43:10 UTC 2014


2014-02-25 8:17 GMT+01:00 Frank Shearar <frank.shearar at gmail.com>:

> On 24 February 2014 13:41,  <commits at source.squeak.org> wrote:
> > Nicolas Cellier uploaded a new version of Compiler to project The Inbox:
> > http://source.squeak.org/inbox/Compiler-nice.280.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Compiler-nice.280
> > Author: nice
> > Time: 24 February 2014, 10:41:41.999 pm
> > UUID: 6e62064c-bd88-4957-98e4-c57da15738fc
> > Ancestors: Compiler-nice.279
> >
> > Accept ^ as a binary selector
> > With this change, binary selector can be arbitrarily composed of
> #verticalBar | #upArrow ^ or any other Character classified as #binary (See
> Scanner class>>initializeTypeTable)
> >
> > =============== Diff against Compiler-nice.279 ===============
>
> So
>
> foo
>   | a |
>   a := 1 + 3
>   ^ a.
>
> actually means
>
> foo
>   | a |
>   a := 1 + 3 ^ a.
>   ^ self.
>
> Which might be surprising - currently the former will fail with a
> sensible error message. (I say this while liking that I can write "2 ^
> 2" instead of "2 squared"...)
>
>
Yep, this is the objection that I anticipated in my first annoucement.
Note that the format is clearly expressing the intention, that makes me
think that the Python's interpretation of formating is not that bad ;) but
we ain't gonna change that...

If #'^' is not a Symbol, then you'll get a warning that you used a new
selector.
I don't remember, are all 1 char Symbol still interned, or did we change
that?
Of course, once you implement ^ as a binary message, then the code is
accepted as is without any sort of warning...

It's the same for self which is interpreted as a message send in this code:
    x := 1 + self foo
    self bar: x.
It warn once, at first self send, but then, #self is interned and you're
never warned again...

For this sort of error, we could have a kind of lint rule for checking
indentation : a single tab after a cr should match a beginning of a new
statement (same with proper indentation inside blocks)

 Nicolas

frank
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20140225/3096ed58/attachment.htm


More information about the Squeak-dev mailing list