I had a rule like the following which type-checked and everything, but that got me a lot of Permise failure: [Lots of ATerms here]. And it didn’t generate the exec_default method for the For_2 class.

Scope sc |- s@For(ib, st : Statement) --> CAndStar([c1, c2])
  where Scope sc, Pos spos(s) |- ib -sc-> ScC(sc',c1)
      , Scope sc' |- st --> c2

I found out that the problem was with the type annotation. st is already a Statement, nothing special going on there, no need to use another arrow to get a Statement. So the type annotation was redundant. Once removed this problem went away. I’m fine with supporting or forbidding these redundant type annotations, but the runtime failure kept me busy for a few hours, trying to find out which of my changes caused it :)

Submitted by Jeff Smits on 9 May 2015 at 03:04

Log in to post comments