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

Peter Uhnák i.uhnak at gmail.com
Fri Oct 2 14:50:38 EDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-users_lists.pharo.org/attachments/20151002/79efaa87/attachment.html>


More information about the Pharo-users mailing list