On 02 Oct 2015, at 20:50, Peter Uhn��k <i.uhnak@gmail.com> wrote:

Hi,

What options do we have in terms of type annotations in Pharo?


which enabled type annotation for Squeak such as
~~~~~~~~~~~~~~~~
Fruit>>mixWith: aFruit <:type: Fruit :>
    ^ (Array with: self with: aFruit) <:type: Array E: Fruit :>
~~~~~~~~~~~~~~~~
Orange>>color
    ^ (Color orange) <:type: Color :>
~~~~~~~~~~~~~~~~
(or even blocks)
[ :a1 <:type: Integer :> :a2 <:type: Integer :> | a1 + a2 ]
~~~~~~~~~~~~~~~~

obviously something like this wouldn't even compile in Pharo (does Sqeak have different syntax for pragmas, or did the TypePlug change the syntax?)


This was based on a hacked compiler (using a smack grammar on top of a code generator based on RB Nodes similar to the one we have now in
Opal). We changed the grammar to parse these kind of annotations.

Marcus