[Pharo-users] IS there TypePlug for Pharo or similar type annotation tool?

stepharo stepharo at free.fr
Sat Oct 3 02:56:43 EDT 2015


Why do you need that?



Le 2/10/15 20:50, Peter Uhnák a écrit :
> Hi,
>
> What options do we have in terms of type annotations in Pharo?
>
> I stumbled upon TypePlug this 
> https://marcusdenker.de/talks/08ParisTypes/08ParisTypePlug.pdf (or 
> rather this http://scg.unibe.ch/archive/masters/Hald07a.pdf )
>
> 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?)
>
> And my question is... is there a port of this, or something similar?
>
> I've also found this 
> http://randycoulman.com/blog/2013/02/12/specifying-types-for-smalltalk-fit/
> Which is a framework for integrated testing that uses pragmas such as
> ~~~~~~~~~~~~~~~~
> makeBatchWithdrawalOn: aDate note: aString
>   <fitTakes: #(#{Date} #{String})>
>   <fitReturns: #{Fixture}>
>   ^(BatchWithdrawalFixture date: aDate note: aString)
>       systemUnderTest: systemUnderTest
> ~~~~~~~~~~~~~~~~
>
> Right now I am exploring what options we have in Pharo in terms of 
> type annotations (before writing yet-another-library ;-)).
>
> Thanks,
> Peter





More information about the Pharo-users mailing list