@simone,
Interesting case you found.
Delphi v2 does _not_ accept the "shRectangle..shExagon" construct in the variant.
I have to admit that I have not checked what the last Pascal standard says about the construction of variants but, I believe the code you presented should work because 1. variants are identified using "case" and ranges are valid in a "case" 2. the ".." is just a way to abbreviate multiple possibilities, it has no semantic effect therefore it should be valid (IOW, there is no good reason to make it invalid.)
Summary: I believe FPC is correct in accepting that construction and, codetools should accept it too.