Kurt Smith wrote:
> Here's the addition of a test case.
> 
> I added a visit_ReturnStatNode in PostParse (not in the patch below),
> but it seems there is some issue with error handling.  If I raise a
> PostParseError, everything is fine and the compiler stops there.  But
> when there are multiple tests in the test case (see below) the later
> errors (3:4 and 6:4) aren't tested.  It seems that the best route is
> to call the error(pos, message) function and have it record the
> errors; this works for other stages in the pipeline
> (AnalyseDeclarationsTransform, e.g.) but fails at the PostParse stage
> (the compiler barfs).

Indeed, this is one of the unclean things (of many) in Cython where 
different people have used different conventions. Myself I would like to 
never call Errors.error from transforms, because then you get full 
Inversion of Control and can much more easily unit-test.

I suppose we should just agree on something (in fact we may have agreed 
on using Errors.error, I can't remember). Stefan, Robert?

For now, try my preferred IoC way;

self.context.nonfatal_error(PostParseError(...)).

Also, proceed to "return None" which will delete the node from the tree 
before further processing.

-- 
Dag Sverre
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to