Clean checking : add abstraction to avoid futur conflict and remove etection of polymorphic var
type:internal
Do some clean-up in the checking file :
- reorder function to follow the same order as other passes
- add abstraction (self function) for recursive calls to avoid further bugs
- remove destruct for all as there is no polymorphic var anymore