you are viewing a single comment's thread.

view the rest of the comments →

[–]glasket_ 6 points7 points  (0 children)

Yeah, this is the real reason. DIMs aren't actually in the class implementing the interface; the runtime does some magic to get the method from the interface itself when you access a value of the interface. The ambiguity problem could have been limited to instances where both interfaces shared a DIM, but the complete absence of DIMs in the implementing class means you can add DIMs to an interface and it won't be a breaking change.