Bugs and Listeners
I spent a good chunk of this week tracking down a bug and eventually squashing it. It surfaced when I was trying to save and reload a world with inferred types, which I had working earlier in the semester. I've made some pretty substantial structural changes to how I'm making inferred types happen recently, so it was difficult to point to what exactly was going wrong. I dove into the XML of the world thinking I may need to change how the encoding/decoding of these variables was happening, and eventually discovered it was a problem with property ownership and was straightforward to solve. Worlds now save and reload correctly, although there's a little goofiness with a type keeping track of what methods have been called on it. To fix this I need to change the way I'm storing this information, and I may need to look into crawlers.
I also did work on the event listeners for updating what methods are available to an inferred type. If you edit an array in a for loop, it now correctly updates what methods are currently available. Next steps on this will be showing in the interface that behavior already in use limits what you can assign to a variable.