rgrig/barista — Issue #11: high-level INVOKE
Author: rgrig
Created: 2012-01-24 16:44:09+00:00
State: open

It is undesirable to distinguish between INVOKEINTERFACE and INVOKEVIRTUAL in the high-level representation. The choice should be made based on whether the type name is that of an interface or that of a class. Which brings up another point: It is impossible to distinguish between interfaces and classes given their name. In particular, Barista won't complain if someone uses both INVOKEs on the same type name. Is there a setup in which such bytecode will run without error?

I'm inclined to say that the high-level representation should distinguish between names of classes and names of interfaces. One option is to introduce a type Name.for_interface, another is to have a map Name.for_class -> bool. However, this whole issue needs more thought.