This patch improves the correctness of SingleJso types by following all super-interfaces when calculating singleJso data.  Additionally, casts to singleJso interfaces will trigger a rescue of the concrete JSO type.

Without these changes, singleJso types that are referred to only via cast operations would generate incorrect code at the cast site, as a Cast.throwClassCastExceptionUnlessNull() call would be made instead of a dynamicCastJso() as the compiler would decide there are no concrete implementations of the singleJso interface type.

Patch by: bobv, mtsui
Review by: spoon
Reported by: macpherson, mtsui


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5466 8db76d5a-ed1c-0410-87a9-c151d255dfc7
13 files changed