The purpose of this utility is to search through IL for code that could be refactored. There are other utilities out there that try to do this by comparing source code. This falls apart whenever changes are made in one copy but not the other.
My idea was to use the compile IL instead. Currently I'm using the FxCop 1.36 engine to process the IL into a slightly better abstract syntax tree that is slightly easier to handle. If something else comes along that works better I will switch to it.
This project has a number of very difficult issues that have to be overcome. Here's the list in the order I will work on them:
1) The actual comparisons of IL and putting together chunks of IL that are the same or could be modified to be the same. This works a little bit now but isn't really usable.
2) Present the matches in a way that a normal developer could use them to refactor their code. Currently I can make sense out of the results but I doubt many others would.
3) The number of combinations of items to compare is huge. Double the amount of IL and four times as much work needs to be done.
One of my goals with this project was to learn more about functional programming. I've learned a bunch and found a lot of cool stuff.
I'm not sure when or if this project will ever done or even usable. For now, it has been a fun learning project.